summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arm9/arm9.lcf2
-rw-r--r--arm9/asm/libc.s4
-rw-r--r--arm9/asm/scrcmd.s26
-rw-r--r--arm9/asm/unk_02003B98.s2
-rw-r--r--arm9/asm/unk_020040F4.s2
-rw-r--r--arm9/asm/unk_02005CFC.s2
-rw-r--r--arm9/asm/unk_020061E8.s2
-rw-r--r--arm9/asm/unk_02008DEC.s2
-rw-r--r--arm9/asm/unk_0200E1D0.s6
-rw-r--r--arm9/asm/unk_0200E850.s20
-rw-r--r--arm9/asm/unk_02011744.s6
-rw-r--r--arm9/asm/unk_02012CC8.s81669
-rw-r--r--arm9/asm/unk_02013724.s395
-rw-r--r--arm9/asm/unk_020139D8.s81286
-rw-r--r--arm9/asm/unk_02038C78.s4
-rw-r--r--arm9/asm/unk_02046030.s220
-rw-r--r--arm9/data/rom2_2.s320
-rw-r--r--arm9/global.inc15
-rw-r--r--arm9/modules/04/asm/arm_04.s26
-rw-r--r--arm9/modules/05/asm/module_05.s264
-rw-r--r--arm9/modules/06/asm/module_06.s112
-rw-r--r--arm9/modules/07/asm/module_07.s10
-rw-r--r--arm9/modules/08/asm/module_08.s60
-rw-r--r--arm9/modules/09/asm/module_09.s4
-rw-r--r--arm9/modules/11/asm/module_11.s158
-rw-r--r--arm9/modules/13/asm/module_13_arm2.s2
-rw-r--r--arm9/modules/13/asm/module_13_thumb.s6
-rw-r--r--arm9/modules/16/asm/module_16.s160
-rw-r--r--arm9/modules/17/asm/module_17.s46
-rw-r--r--arm9/modules/18/asm/module_18.s12
-rw-r--r--arm9/modules/28/asm/module_28.s4
-rw-r--r--arm9/modules/36/asm/module_36.s2
-rw-r--r--arm9/modules/37/asm/module_37.s2
-rw-r--r--arm9/modules/52/asm/module_52.s4
-rw-r--r--arm9/modules/53/asm/module_53.s2
-rw-r--r--arm9/modules/54/asm/module_54.s2
-rw-r--r--arm9/modules/57/asm/module_57.s2
-rw-r--r--arm9/modules/58/asm/module_58.s2
-rw-r--r--arm9/modules/59/asm/module_59.s4
-rw-r--r--arm9/modules/60/asm/module_60.s2
-rw-r--r--arm9/modules/61/asm/module_61.s2
-rw-r--r--arm9/modules/63/asm/module_63.s26
-rw-r--r--arm9/modules/64/asm/module_64.s8
-rw-r--r--arm9/modules/66/asm/module_66.s8
-rw-r--r--arm9/modules/67/asm/module_67.s2
-rw-r--r--arm9/modules/68/asm/module_68.s2
-rw-r--r--arm9/modules/69/asm/module_69.s20
-rw-r--r--arm9/modules/71/asm/module_71.s4
-rw-r--r--arm9/modules/73/asm/module_73.s60
-rw-r--r--arm9/modules/74/asm/module_74.s2
-rw-r--r--arm9/modules/75/asm/module_75.s2
-rw-r--r--arm9/modules/76/asm/module_76.s2
-rw-r--r--arm9/modules/77/asm/module_77.s2
-rw-r--r--arm9/modules/78/asm/module_78.s2
-rw-r--r--arm9/modules/79/asm/module_79_arm.s4
-rw-r--r--arm9/modules/80/asm/module_80.s4
-rw-r--r--arm9/modules/81/asm/module_81.s10
-rw-r--r--arm9/modules/82/asm/module_82.s2
-rw-r--r--arm9/modules/83/asm/module_83.s16
-rw-r--r--arm9/modules/84/asm/module_84.s30
-rw-r--r--arm9/modules/85/asm/module_85.s8
-rw-r--r--arm9/modules/86/asm/module_86.s2
-rw-r--r--arm9/src/FUN_02000DE4.c8
63 files changed, 82557 insertions, 82538 deletions
diff --git a/arm9/arm9.lcf b/arm9/arm9.lcf
index 58a1c8cf..bf06adbd 100644
--- a/arm9/arm9.lcf
+++ b/arm9/arm9.lcf
@@ -154,6 +154,8 @@ SECTIONS {
unk_0201137C.o (.text)
unk_02011744.o (.text)
unk_02012CC8.o (.text)
+ unk_02013724.o (.text)
+ unk_020139D8.o (.text)
script.o (.text)
unk_02038C78.o (.text)
scrcmd.o (.text)
diff --git a/arm9/asm/libc.s b/arm9/asm/libc.s
index 0627aa20..d45dbaec 100644
--- a/arm9/asm/libc.s
+++ b/arm9/asm/libc.s
@@ -1463,8 +1463,8 @@ _020DF490:
bne _020DF490
bx lr
- arm_func_start Call_FillMemWithValue
-Call_FillMemWithValue: ; 0x020DF4A4
+ arm_func_start memset
+memset: ; 0x020DF4A4
stmdb sp!, {r4,lr}
mov r4, r0
bl __fill_mem
diff --git a/arm9/asm/scrcmd.s b/arm9/asm/scrcmd.s
index dfda1697..265769e5 100644
--- a/arm9/asm/scrcmd.s
+++ b/arm9/asm/scrcmd.s
@@ -8810,7 +8810,7 @@ FUN_0203DFA8: ; 0x0203DFA8
ldr r0, [r5, #0x0]
bl FUN_020394F0
add r5, r0, #0x0
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r5, #0x0
bl _s32_div_f
strh r1, [r4, #0x0]
@@ -8835,7 +8835,7 @@ FUN_0203DFE0: ; 0x0203DFE0
ldr r0, [r5, #0x0]
bl FUN_020394F0
add r5, r0, #0x0
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r5, #0x0
bl _s32_div_f
strh r1, [r4, #0x0]
@@ -9763,7 +9763,7 @@ FUN_0203E774: ; 0x0203E774
add r0, r7, #0x0
bl FUN_020244A4
add r4, r0, #0x0
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r4, #0x0
bl _s32_div_f
lsl r0, r1, #0x10
@@ -11057,7 +11057,7 @@ _0203F1E0:
mov r0, #0x0
pop {r4-r7, pc}
_0203F1F8:
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r6, #0x0
bl _s32_div_f
mov r4, #0x0
@@ -11483,7 +11483,7 @@ _0203F54C:
lsl r7, r7, #0x2
b _0203F582
_0203F556:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x64
bl _s32_div_f
cmp r1, #0x19
@@ -11491,7 +11491,7 @@ _0203F556:
ldr r7, _0203F5CC ; =0x0000010D
b _0203F582
_0203F568:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x6
bl _s32_div_f
lsl r0, r1, #0x10
@@ -11898,7 +11898,7 @@ FUN_0203F880: ; 0x0203F880
bls _0203F8A2
mov r4, #0x64
_0203F8A2:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x65
bl _s32_div_f
lsl r0, r1, #0x10
@@ -16502,7 +16502,7 @@ _02041DCE:
mov r1, #0x0
mov r2, #0x2
bl FUN_02028810
- bl FUN_0201BA60
+ bl rand_MT
add r2, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
@@ -18699,7 +18699,7 @@ FUN_02042F6C: ; 0x02042F6C
bl FUN_020671BC
add r6, r0, #0x0
bl OS_GetTick
- bl FUN_0201BA10
+ bl rand_ALT
add r1, r0, #0x0
ldr r0, [sp, #0x14]
str r1, [sp, #0x34]
@@ -18713,7 +18713,7 @@ FUN_02042F6C: ; 0x02042F6C
beq _02042FE8
_02042FD0:
ldr r0, [sp, #0x34]
- bl FUN_0201BA10
+ bl rand_ALT
add r1, r0, #0x0
add r0, r6, #0x0
str r1, [sp, #0x34]
@@ -18774,7 +18774,7 @@ _02042FE8:
add r0, r0, r1
str r0, [sp, #0x30]
bne _020430DA
- bl FUN_0201B9EC
+ bl rand_LC
add r6, r0, #0x0
mov r0, #0x1f
and r0, r6
@@ -18801,7 +18801,7 @@ _02042FE8:
mov r1, #0x48
add r2, sp, #0x34
bl FUN_02067830
- bl FUN_0201B9EC
+ bl rand_LC
add r6, r0, #0x0
mov r0, #0x1f
and r0, r6
@@ -20912,7 +20912,7 @@ FUN_02044198: ; 0x02044198
ldr r0, [r5, #0x0]
bl FUN_020394F0
add r5, r0, #0x0
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x64
bl _s32_div_f
lsl r0, r1, #0x10
diff --git a/arm9/asm/unk_02003B98.s b/arm9/asm/unk_02003B98.s
index ff9003d1..8b13d499 100644
--- a/arm9/asm/unk_02003B98.s
+++ b/arm9/asm/unk_02003B98.s
@@ -634,7 +634,7 @@ FUN_02004064: ; 0x02004064
ldr r2, _02004080 ; =0x000BCD60
mov r1, #0x0
add r4, r0, #0x0
- bl Call_FillMemWithValue
+ bl memset
ldr r0, _02004084 ; =0x000BCD1C
mov r1, #0x0
_02004074:
diff --git a/arm9/asm/unk_020040F4.s b/arm9/asm/unk_020040F4.s
index 92efef87..70c2420e 100644
--- a/arm9/asm/unk_020040F4.s
+++ b/arm9/asm/unk_020040F4.s
@@ -1394,7 +1394,7 @@ _02004B80:
_02004B9C:
mov r1, #0x0
add r2, r6, #0x0
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [r7, #0x0]
ldr r1, [r4, #0x0]
lsl r0, r0, #0x8
diff --git a/arm9/asm/unk_02005CFC.s b/arm9/asm/unk_02005CFC.s
index 0dc1c0e6..be1f5c15 100644
--- a/arm9/asm/unk_02005CFC.s
+++ b/arm9/asm/unk_02005CFC.s
@@ -70,7 +70,7 @@ _02005D70:
bl FUN_02005DFC
mov r0, #0xe
bl FUN_02004984
- bl FUN_0201B9EC
+ bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x13
sub r1, r1, r2
diff --git a/arm9/asm/unk_020061E8.s b/arm9/asm/unk_020061E8.s
index c33f29be..1af19f20 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
- bl Call_FillMemWithValue
+ bl memset
b _0200620E
_0200620C:
mov r4, #0x0
diff --git a/arm9/asm/unk_02008DEC.s b/arm9/asm/unk_02008DEC.s
index 0d67adc9..402bb494 100644
--- a/arm9/asm/unk_02008DEC.s
+++ b/arm9/asm/unk_02008DEC.s
@@ -26,7 +26,7 @@ FUN_02008DEC: ; 0x02008DEC
mov r1, #0x0
add r2, r7, #0x0
str r0, [r4, #0x4]
- bl Call_FillMemWithValue
+ bl memset
str r5, [r4, #0x8]
mov r0, #0x0
str r0, [r4, #0xc]
diff --git a/arm9/asm/unk_0200E1D0.s b/arm9/asm/unk_0200E1D0.s
index e89f4c33..d25e4428 100644
--- a/arm9/asm/unk_0200E1D0.s
+++ b/arm9/asm/unk_0200E1D0.s
@@ -857,12 +857,12 @@ _0200E812:
add r0, #0x14
mov r1, #0x0
mov r2, #0x30
- bl Call_FillMemWithValue
+ bl memset
add r0, r4, #0x0
add r0, #0x44
mov r1, #0x0
mov r2, #0x30
- bl Call_FillMemWithValue
+ bl memset
add r2, r4, #0x0
add r2, #0x74
mov r1, #0x18
@@ -876,5 +876,5 @@ _0200E83A:
add r0, r4, #0x0
mov r1, #0x0
mov r2, #0xc0
- bl Call_FillMemWithValue
+ bl memset
pop {r4, pc}
diff --git a/arm9/asm/unk_0200E850.s b/arm9/asm/unk_0200E850.s
index 3c5e5299..32b61453 100644
--- a/arm9/asm/unk_0200E850.s
+++ b/arm9/asm/unk_0200E850.s
@@ -1939,7 +1939,7 @@ FUN_0200F6FC: ; 0x0200F6FC
lsl r2, r2, #0x2
add r5, r0, #0x0
add r7, r3, #0x0
- bl Call_FillMemWithValue
+ bl memset
cmp r4, #0x1
bne _0200F726
mov r0, #0x6
@@ -4248,7 +4248,7 @@ FUN_02010894: ; 0x02010894
lsl r2, r2, #0x8
add r0, r0, r2
mov r1, #0x0
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [r6, #0x10]
sub r4, r0, #0x1
bmi _020108C6
@@ -4350,7 +4350,7 @@ FUN_02010948: ; 0x02010948
str r0, [r5, #0x14]
mov r1, #0x0
mov r2, #0x38
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [r5, #0x10]
add r1, r4, #0x0
str r0, [sp, #0x0]
@@ -4763,7 +4763,7 @@ FUN_02010C7C: ; 0x02010C7C
str r0, [r5, #0x14]
mov r1, #0x0
mov r2, #0x38
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [r5, #0x10]
add r1, r4, #0x0
str r0, [sp, #0x0]
@@ -5108,7 +5108,7 @@ FUN_02010F2C: ; 0x02010F2C
str r0, [r5, #0x14]
mov r1, #0x0
lsl r2, r2, #0x2
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [r5, #0x10]
add r1, r4, #0x0
str r0, [sp, #0x0]
@@ -5200,23 +5200,23 @@ FUN_02010FD0: ; 0x02010FD0
add r0, r5, #0x0
mov r1, #0x1
mov r2, #0xc0
- bl Call_FillMemWithValue
+ bl memset
add r0, r5, #0x0
add r0, #0xc0
mov r1, #0x1
mov r2, #0xc0
- bl Call_FillMemWithValue
+ bl memset
b _02011020
_0201100A:
add r0, r5, #0x0
mov r1, #0x0
mov r2, #0xc0
- bl Call_FillMemWithValue
+ bl memset
add r0, r5, #0x0
add r0, #0xc0
mov r1, #0x0
mov r2, #0xc0
- bl Call_FillMemWithValue
+ bl memset
_02011020:
mov r1, #0xc3
lsl r1, r1, #0x2
@@ -5447,7 +5447,7 @@ FUN_020111AC: ; 0x020111AC
mov r1, #0x0
lsl r2, r2, #0x2
str r0, [r5, #0x14]
- bl Call_FillMemWithValue
+ bl memset
add r1, r4, #0x0
add r1, #0x23
ldrb r1, [r1, #0x0]
diff --git a/arm9/asm/unk_02011744.s b/arm9/asm/unk_02011744.s
index fa1d06fb..18739e2f 100644
--- a/arm9/asm/unk_02011744.s
+++ b/arm9/asm/unk_02011744.s
@@ -57,7 +57,7 @@ _020117A4:
str r1, [r0, #0x64]
ldr r0, [r0, #0x60]
mov r1, #0x0
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [sp, #0x8]
add sp, #0xc
pop {r4-r7, pc}
@@ -2591,7 +2591,7 @@ FUN_02012A00: ; 0x02012A00
ldr r2, _02012A2C ; =0x0000079C
mov r1, #0x0
add r4, r0, #0x0
- bl Call_FillMemWithValue
+ bl memset
mov r2, #0x3
lsl r2, r2, #0x8
add r0, r5, #0x0
@@ -2697,7 +2697,7 @@ _02012ACE:
mov r2, #0x3
ldr r1, [r4, r1]
lsl r2, r2, #0x8
- bl Call_FillMemWithValue
+ bl memset
_02012AF4:
pop {r4, pc}
nop
diff --git a/arm9/asm/unk_02012CC8.s b/arm9/asm/unk_02012CC8.s
index 74f0d331..81a2a18b 100644
--- a/arm9/asm/unk_02012CC8.s
+++ b/arm9/asm/unk_02012CC8.s
@@ -52,7 +52,7 @@ _02012D14:
add r0, r4, #0x0
mov r1, #0x0
mov r2, #0xdc
- bl Call_FillMemWithValue
+ bl memset
add r2, r4, #0x0
ldr r0, [sp, #0x8]
str r7, [r4, #0x18]
@@ -80,7 +80,7 @@ _02012D14:
str r0, [r2, #0x0]
ldr r2, [sp, #0xc]
add r0, r6, #0x0
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [sp, #0xc]
str r6, [r4, #0xc]
str r6, [r4, #0x10]
@@ -1519,81668 +1519,3 @@ FUN_020136F8: ; 0x020136F8
bl FUN_02019548
add sp, #0x10
pop {r4-r6, pc}
-
- thumb_func_start FUN_02013724
-FUN_02013724: ; 0x02013724
- ldr r1, _02013738 ; =0x0000FFFF
- mov r2, #0x0
- strh r1, [r0, #0x0]
-_0201372A:
- add r2, r2, #0x1
- strh r1, [r0, #0x4]
- add r0, r0, #0x2
- cmp r2, #0x2
- blt _0201372A
- bx lr
- nop
-_02013738: .word 0x0000FFFF
-
- thumb_func_start FUN_0201373C
-FUN_0201373C: ; 0x0201373C
- strh r1, [r0, #0x0]
- mov r2, #0x0
- ldr r1, _02013750 ; =0x0000FFFF
- strh r2, [r0, #0x2]
-_02013744:
- add r2, r2, #0x1
- strh r1, [r0, #0x4]
- add r0, r0, #0x2
- cmp r2, #0x2
- blt _02013744
- bx lr
- .balign 4
-_02013750: .word 0x0000FFFF
-
- thumb_func_start FUN_02013754
-FUN_02013754: ; 0x02013754
- push {r4, lr}
- mov r1, #0x4
- add r4, r0, #0x0
- bl FUN_0201373C
- mov r0, #0x5
- strh r0, [r4, #0x2]
- pop {r4, pc}
-
- thumb_func_start FUN_02013764
-FUN_02013764: ; 0x02013764
- push {r4-r6, lr}
- add r6, r1, #0x0
- add r5, r0, #0x0
- cmp r6, #0x4
- blo _02013772
- bl ErrorHandling
-_02013772:
- cmp r6, #0x4
- bhs _020137B8
- mov r0, #0xa
- add r4, r6, #0x0
- mul r4, r0
- ldr r1, _020137BC ; =0x020ED556
- add r0, r5, #0x0
- ldrb r1, [r1, r4]
- bl FUN_0201373C
- ldr r0, _020137C0 ; =0x020ED557
- mov r1, #0x0
- ldrb r0, [r0, r4]
- mvn r1, r1
- strh r0, [r5, #0x2]
- ldr r0, _020137C4 ; =0x020ED558
- ldrsh r0, [r0, r4]
- cmp r0, r1
- beq _020137A2
- ldr r1, _020137C8 ; =0x020ED55A
- ldrh r1, [r1, r4]
- bl FUN_02013A9C
- strh r0, [r5, #0x4]
-_020137A2:
- ldr r0, _020137CC ; =0x020ED55C
- mov r1, #0x0
- ldrsh r0, [r0, r4]
- mvn r1, r1
- cmp r0, r1
- beq _020137B8
- ldr r1, _020137D0 ; =0x020ED55E
- ldrh r1, [r1, r4]
- bl FUN_02013A9C
- strh r0, [r5, #0x6]
-_020137B8:
- pop {r4-r6, pc}
- nop
-_020137BC: .word 0x020ED556
-_020137C0: .word 0x020ED557
-_020137C4: .word 0x020ED558
-_020137C8: .word 0x020ED55A
-_020137CC: .word 0x020ED55C
-_020137D0: .word 0x020ED55E
-
- thumb_func_start FUN_020137D4
-FUN_020137D4: ; 0x020137D4
- push {r3-r7, lr}
- sub sp, #0x8
- str r0, [sp, #0x0]
- add r0, r1, #0x0
- str r1, [sp, #0x4]
- bl FUN_0200AA80
- ldr r5, [sp, #0x0]
- ldr r7, _02013838 ; =0x0000FFFF
- add r6, r0, #0x0
- mov r4, #0x0
-_020137EA:
- ldrh r2, [r5, #0x4]
- cmp r2, r7
- beq _02013800
- add r0, r6, #0x0
- add r1, r4, #0x0
- bl FUN_0200B518
- add r4, r4, #0x1
- add r5, r5, #0x2
- cmp r4, #0x2
- blt _020137EA
-_02013800:
- ldr r2, [sp, #0x0]
- mov r0, #0x1
- ldrh r2, [r2, #0x0]
- mov r1, #0x1a
- lsl r3, r2, #0x1
- ldr r2, _0201383C ; =0x020ED54C
- ldrh r2, [r2, r3]
- ldr r3, [sp, #0x4]
- bl FUN_0200A86C
- add r5, r0, #0x0
- ldr r2, [sp, #0x0]
- ldr r3, [sp, #0x4]
- ldrh r2, [r2, #0x2]
- add r0, r6, #0x0
- add r1, r5, #0x0
- bl FUN_0200A9C4
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl FUN_0200A8B8
- add r0, r6, #0x0
- bl FUN_0200AB18
- add r0, r4, #0x0
- add sp, #0x8
- pop {r3-r7, pc}
- .balign 4
-_02013838: .word 0x0000FFFF
-_0201383C: .word 0x020ED54C
-
- thumb_func_start FUN_02013840
-FUN_02013840: ; 0x02013840
- push {r4, lr}
- add r4, r0, #0x0
- add r3, r1, #0x0
- ldrh r1, [r4, #0x0]
- mov r0, #0x1a
- lsl r2, r1, #0x1
- ldr r1, _02013858 ; =0x020ED54C
- ldrh r1, [r1, r2]
- ldrh r2, [r4, #0x2]
- bl FUN_0200A738
- pop {r4, pc}
- .balign 4
-_02013858: .word 0x020ED54C
-
- thumb_func_start FUN_0201385C
-FUN_0201385C: ; 0x0201385C
- ldrh r1, [r0, #0x0]
- ldr r0, _0201386C ; =0x0000FFFF
- cmp r1, r0
- beq _02013868
- mov r0, #0x1
- bx lr
-_02013868:
- mov r0, #0x0
- bx lr
- .balign 4
-_0201386C: .word 0x0000FFFF
-
- thumb_func_start FUN_02013870
-FUN_02013870: ; 0x02013870
- push {r4, lr}
- add r4, r0, #0x0
- ldrh r0, [r4, #0x0]
- ldrh r1, [r4, #0x2]
- bl FUN_020138A0
- mov r3, #0x0
- cmp r0, #0x0
- bls _02013896
- ldr r1, _0201389C ; =0x0000FFFF
-_02013884:
- ldrh r2, [r4, #0x4]
- cmp r2, r1
- bne _0201388E
- mov r0, #0x0
- pop {r4, pc}
-_0201388E:
- add r3, r3, #0x1
- add r4, r4, #0x2
- cmp r3, r0
- blo _02013884
-_02013896:
- mov r0, #0x1
- pop {r4, pc}
- nop
-_0201389C: .word 0x0000FFFF
-
- thumb_func_start FUN_020138A0
-FUN_020138A0: ; 0x020138A0
- push {r3-r7, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- cmp r5, #0x5
- blo _020138AE
- bl ErrorHandling
-_020138AE:
- add r0, r5, #0x0
- bl FUN_02013974
- cmp r4, r0
- blo _020138BC
- bl ErrorHandling
-_020138BC:
- ldr r1, _02013910 ; =0x020ED54C
- lsl r2, r5, #0x1
- ldrh r1, [r1, r2]
- mov r0, #0x1a
- add r2, r4, #0x0
- mov r3, #0x0
- bl FUN_0200A738
- str r0, [sp, #0x0]
- bl FUN_02021F2C
- add r4, r0, #0x0
- ldrh r1, [r4, #0x0]
- ldr r0, _02013914 ; =0x0000FFFF
- mov r5, #0x0
- cmp r1, r0
- beq _02013904
- add r7, r0, #0x0
- sub r6, r0, #0x1
-_020138E2:
- cmp r1, r6
- bne _020138FC
- add r0, r4, #0x0
- bl FUN_0201B8F8
- cmp r0, #0x0
- beq _020138F2
- add r5, r5, #0x1
-_020138F2:
- add r0, r4, #0x0
- bl FUN_0201B8B8
- add r4, r0, #0x0
- b _020138FE
-_020138FC:
- add r4, r4, #0x2
-_020138FE:
- ldrh r1, [r4, #0x0]
- cmp r1, r7
- bne _020138E2
-_02013904:
- ldr r0, [sp, #0x0]
- bl FUN_02021A20
- add r0, r5, #0x0
- pop {r3-r7, pc}
- nop
-_02013910: .word 0x020ED54C
-_02013914: .word 0x0000FFFF
-
- thumb_func_start FUN_02013918
-FUN_02013918: ; 0x02013918
- lsl r1, r1, #0x1
- add r0, r0, r1
- ldrh r0, [r0, #0x4]
- bx lr
-
- thumb_func_start FUN_02013920
-FUN_02013920: ; 0x02013920
- ldrh r0, [r0, #0x0]
- bx lr
-
- thumb_func_start FUN_02013924
-FUN_02013924: ; 0x02013924
- ldrh r0, [r0, #0x2]
- bx lr
-
- thumb_func_start FUN_02013928
-FUN_02013928: ; 0x02013928
- push {r3-r4}
- ldrh r3, [r0, #0x0]
- ldrh r2, [r1, #0x0]
- cmp r3, r2
- bne _0201393A
- ldrh r3, [r0, #0x2]
- ldrh r2, [r1, #0x2]
- cmp r3, r2
- beq _02013940
-_0201393A:
- mov r0, #0x0
- pop {r3-r4}
- bx lr
-_02013940:
- mov r4, #0x0
-_02013942:
- ldrh r3, [r0, #0x4]
- ldrh r2, [r1, #0x4]
- cmp r3, r2
- beq _02013950
- mov r0, #0x0
- pop {r3-r4}
- bx lr
-_02013950:
- add r4, r4, #0x1
- add r1, r1, #0x2
- add r0, r0, #0x2
- cmp r4, #0x2
- blt _02013942
- mov r0, #0x1
- pop {r3-r4}
- bx lr
-
- thumb_func_start FUN_02013960
-FUN_02013960: ; 0x02013960
- ldrh r2, [r1, #0x0]
- strh r2, [r0, #0x0]
- ldrh r2, [r1, #0x2]
- strh r2, [r0, #0x2]
- ldrh r2, [r1, #0x4]
- strh r2, [r0, #0x4]
- ldrh r1, [r1, #0x6]
- strh r1, [r0, #0x6]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02013974
-FUN_02013974: ; 0x02013974
- cmp r0, #0x5
- bhs _0201397C
- mov r0, #0x14
- bx lr
-_0201397C:
- mov r0, #0x0
- bx lr
-
- thumb_func_start FUN_02013980
-FUN_02013980: ; 0x02013980
- push {r4-r6, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- add r6, r2, #0x0
- cmp r4, #0x5
- blo _02013990
- bl ErrorHandling
-_02013990:
- strh r4, [r5, #0x0]
- strh r6, [r5, #0x2]
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02013998
-FUN_02013998: ; 0x02013998
- push {r4-r6, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- add r6, r2, #0x0
- cmp r4, #0x2
- blo _020139A8
- bl ErrorHandling
-_020139A8:
- lsl r0, r4, #0x1
- add r0, r5, r0
- strh r6, [r0, #0x4]
- pop {r4-r6, pc}
-
- thumb_func_start FUN_020139B0
-FUN_020139B0: ; 0x020139B0
- push {r4, lr}
- add r4, r0, #0x0
- ldrh r0, [r4, #0x0]
- ldrh r1, [r4, #0x2]
- bl FUN_020138A0
- cmp r0, #0x2
- bhs _020139D0
- lsl r1, r0, #0x1
- add r2, r4, r1
- ldr r1, _020139D4 ; =0x0000FFFF
-_020139C6:
- add r0, r0, #0x1
- strh r1, [r2, #0x4]
- add r2, r2, #0x2
- cmp r0, #0x2
- blo _020139C6
-_020139D0:
- pop {r4, pc}
- nop
-_020139D4: .word 0x0000FFFF
-
- thumb_func_start FUN_020139D8
-FUN_020139D8: ; 0x020139D8
- push {r3-r7, lr}
- mov r1, #0x30
- add r6, r0, #0x0
- bl FUN_02016998
- ldr r4, _02013A0C ; =0x020ED5C0
- str r0, [sp, #0x0]
- mov r7, #0x0
- add r5, r0, #0x0
-_020139EA:
- ldr r0, [sp, #0x0]
- mov r1, #0x1a
- str r6, [r0, #0x0]
- ldrh r2, [r4, #0x0]
- mov r0, #0x1
- add r3, r6, #0x0
- bl FUN_0200A86C
- str r0, [r5, #0x4]
- add r7, r7, #0x1
- add r4, r4, #0x2
- add r5, r5, #0x4
- cmp r7, #0xb
- blt _020139EA
- ldr r0, [sp, #0x0]
- pop {r3-r7, pc}
- nop
-_02013A0C: .word 0x020ED5C0
-
- thumb_func_start FUN_02013A10
-FUN_02013A10: ; 0x02013A10
- push {r4-r6, lr}
- add r6, r0, #0x0
- mov r4, #0x0
- add r5, r6, #0x0
-_02013A18:
- ldr r0, [r5, #0x4]
- bl FUN_0200A8B8
- add r4, r4, #0x1
- add r5, r5, #0x4
- cmp r4, #0xb
- blt _02013A18
- add r0, r6, #0x0
- bl FUN_02016A18
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02013A30
-FUN_02013A30: ; 0x02013A30
- push {r3-r5, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- add r4, r2, #0x0
- add r0, r1, #0x0
- add r1, sp, #0x4
- add r2, sp, #0x0
- bl FUN_02013AEC
- ldr r0, [sp, #0x4]
- ldr r1, [sp, #0x0]
- lsl r0, r0, #0x2
- add r0, r5, r0
- ldr r0, [r0, #0x4]
- add r2, r4, #0x0
- bl FUN_0200A8E0
- add sp, #0x8
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02013A58
-FUN_02013A58: ; 0x02013A58
- push {r3-r4, lr}
- sub sp, #0xc
- add r4, r1, #0x0
- ldr r1, _02013A94 ; =0x0000FFFF
- cmp r0, r1
- beq _02013A88
- add r1, sp, #0x8
- add r2, sp, #0x4
- bl FUN_02013AEC
- ldr r0, [sp, #0x8]
- mov r3, #0x0
- lsl r1, r0, #0x1
- ldr r0, _02013A98 ; =0x020ED5C0
- ldrh r0, [r0, r1]
- str r0, [sp, #0x8]
- str r4, [sp, #0x0]
- ldr r1, [sp, #0x8]
- ldr r2, [sp, #0x4]
- mov r0, #0x1a
- bl FUN_0200A648
- add sp, #0xc
- pop {r3-r4, pc}
-_02013A88:
- add r0, r4, #0x0
- bl FUN_02021A4C
- add sp, #0xc
- pop {r3-r4, pc}
- nop
-_02013A94: .word 0x0000FFFF
-_02013A98: .word 0x020ED5C0
-
- thumb_func_start FUN_02013A9C
-FUN_02013A9C: ; 0x02013A9C
- push {r4-r5}
- ldr r4, _02013AE0 ; =0x020ED5C0
- mov r2, #0x0
-_02013AA2:
- ldrh r3, [r4, #0x0]
- cmp r0, r3
- bne _02013AD0
- mov r4, #0x0
- add r3, r4, #0x0
- cmp r2, #0x0
- bls _02013AC6
- ldr r0, _02013AE4 ; =0x020ED5D6
-_02013AB2:
- lsl r5, r4, #0x1
- ldrh r5, [r0, r5]
- add r4, r4, #0x1
- lsl r4, r4, #0x10
- add r3, r3, r5
- lsl r3, r3, #0x10
- lsr r4, r4, #0x10
- lsr r3, r3, #0x10
- cmp r4, r2
- blo _02013AB2
-_02013AC6:
- add r0, r3, r1
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- pop {r4-r5}
- bx lr
-_02013AD0:
- add r2, r2, #0x1
- add r4, r4, #0x2
- cmp r2, #0xb
- blo _02013AA2
- ldr r0, _02013AE8 ; =0x0000FFFF
- pop {r4-r5}
- bx lr
- nop
-_02013AE0: .word 0x020ED5C0
-_02013AE4: .word 0x020ED5D6
-_02013AE8: .word 0x0000FFFF
-
- thumb_func_start FUN_02013AEC
-FUN_02013AEC: ; 0x02013AEC
- push {r3-r6}
- ldr r3, _02013B20 ; =0x00000FFF
- ldr r6, _02013B24 ; =0x020ED5D6
- and r3, r0
- mov r0, #0x0
- add r5, r0, #0x0
-_02013AF8:
- ldrh r4, [r6, #0x0]
- add r0, r0, r4
- cmp r3, r0
- bhs _02013B12
- str r5, [r1, #0x0]
- ldr r1, _02013B24 ; =0x020ED5D6
- lsl r4, r5, #0x1
- ldrh r1, [r1, r4]
- sub r0, r0, r1
- sub r0, r3, r0
- str r0, [r2, #0x0]
- pop {r3-r6}
- bx lr
-_02013B12:
- add r5, r5, #0x1
- add r6, r6, #0x2
- cmp r5, #0xb
- blo _02013AF8
- pop {r3-r6}
- bx lr
- nop
-_02013B20: .word 0x00000FFF
-_02013B24: .word 0x020ED5D6
-
- thumb_func_start FUN_02013B28
-FUN_02013B28: ; 0x02013B28
- mov r0, #0x8
- bx lr
-
- thumb_func_start FUN_02013B2C
-FUN_02013B2C: ; 0x02013B2C
- push {r3, lr}
- mov r2, #0x0
- str r2, [r0, #0x0]
- ldr r3, _02013B54 ; =0x020ED5B4
- str r2, [r0, #0x4]
-_02013B36:
- ldrb r1, [r3, #0x0]
- cmp r1, #0x2
- bne _02013B48
- ldr r1, _02013B58 ; =0x020ED5B5
- lsl r2, r2, #0x1
- ldrb r1, [r1, r2]
- bl FUN_02013C18
- pop {r3, pc}
-_02013B48:
- add r2, r2, #0x1
- add r3, r3, #0x2
- cmp r2, #0x6
- blo _02013B36
- pop {r3, pc}
- nop
-_02013B54: .word 0x020ED5B4
-_02013B58: .word 0x020ED5B5
-
- thumb_func_start FUN_02013B5C
-FUN_02013B5C: ; 0x02013B5C
- ldr r3, _02013B64 ; =FUN_02022610
- mov r1, #0x22
- bx r3
- nop
-_02013B64: .word FUN_02022610
-
- thumb_func_start FUN_02013B68
-FUN_02013B68: ; 0x02013B68
- ldr r0, [r0, #0x4]
- add r2, r0, #0x0
- lsr r2, r1
- mov r0, #0x1
- and r0, r2
- bx lr
-
- thumb_func_start FUN_02013B74
-FUN_02013B74: ; 0x02013B74
- push {r3-r5, lr}
- add r5, r0, #0x0
- mov r2, #0x0
- ldr r3, [r5, #0x4]
- add r4, r2, #0x0
- mov r0, #0x1
-_02013B80:
- add r1, r3, #0x0
- lsr r1, r2
- tst r1, r0
- bne _02013B8A
- add r4, r4, #0x1
-_02013B8A:
- add r2, r2, #0x1
- cmp r2, #0x20
- blo _02013B80
- cmp r4, #0x0
- beq _02013BC4
- bl FUN_0201B9EC
- add r1, r4, #0x0
- bl _u32_div_f
- ldr r4, [r5, #0x4]
- mov r0, #0x0
- mov r2, #0x1
-_02013BA4:
- add r3, r4, #0x0
- lsr r3, r0
- tst r3, r2
- bne _02013BBE
- cmp r1, #0x0
- bne _02013BBC
- mov r1, #0x1
- ldr r2, [r5, #0x4]
- lsl r1, r0
- orr r1, r2
- str r1, [r5, #0x4]
- pop {r3-r5, pc}
-_02013BBC:
- sub r1, r1, #0x1
-_02013BBE:
- add r0, r0, #0x1
- cmp r0, #0x20
- blo _02013BA4
-_02013BC4:
- mov r0, #0x20
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02013BC8
-FUN_02013BC8: ; 0x02013BC8
- ldr r3, [r0, #0x4]
- mov r2, #0x0
- mov r0, #0x1
-_02013BCE:
- add r1, r3, #0x0
- lsr r1, r2
- tst r1, r0
- bne _02013BDA
- mov r0, #0x0
- bx lr
-_02013BDA:
- add r2, r2, #0x1
- cmp r2, #0x20
- blo _02013BCE
- mov r0, #0x1
- bx lr
-
- thumb_func_start FUN_02013BE4
-FUN_02013BE4: ; 0x02013BE4
- push {r3-r4}
- mov r3, #0x0
- ldr r4, _02013C08 ; =0x020ED5D6
- add r2, r3, #0x0
-_02013BEC:
- ldrh r1, [r4, #0x0]
- add r2, r2, #0x1
- add r4, r4, #0x2
- add r1, r3, r1
- lsl r1, r1, #0x10
- lsr r3, r1, #0x10
- cmp r2, #0x9
- blt _02013BEC
- add r0, r3, r0
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- pop {r3-r4}
- bx lr
- nop
-_02013C08: .word 0x020ED5D6
-
- thumb_func_start FUN_02013C0C
-FUN_02013C0C: ; 0x02013C0C
- ldr r0, [r0, #0x0]
- add r2, r0, #0x0
- lsr r2, r1
- mov r0, #0x1
- and r0, r2
- bx lr
-
- thumb_func_start FUN_02013C18
-FUN_02013C18: ; 0x02013C18
- mov r2, #0x1
- ldr r3, [r0, #0x0]
- lsl r2, r1
- add r1, r3, #0x0
- orr r1, r2
- str r1, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02013C28
-FUN_02013C28: ; 0x02013C28
- push {r4-r7}
- mov r3, #0x0
- ldr r5, _02013C64 ; =0x020ED5EC
- add r2, r3, #0x0
-_02013C30:
- ldr r7, [r5, #0x4]
- add r4, r2, #0x0
- cmp r7, #0x0
- ble _02013C54
- ldr r6, [r5, #0x0]
-_02013C3A:
- ldrh r1, [r6, #0x0]
- cmp r0, r1
- bne _02013C4C
- ldr r0, _02013C68 ; =0x020ED5F0
- lsl r1, r3, #0x3
- ldr r0, [r0, r1]
- sub r0, r0, #0x1
- pop {r4-r7}
- bx lr
-_02013C4C:
- add r4, r4, #0x1
- add r6, r6, #0x2
- cmp r4, r7
- blt _02013C3A
-_02013C54:
- add r3, r3, #0x1
- add r5, #0x8
- cmp r3, #0xc
- blo _02013C30
- mov r0, #0x0
- pop {r4-r7}
- bx lr
- nop
-_02013C64: .word 0x020ED5EC
-_02013C68: .word 0x020ED5F0
-
- thumb_func_start FUN_02013C6C
-FUN_02013C6C: ; 0x02013C6C
- push {r3-r7, lr}
- ldr r3, _02013CC8 ; =0x020ED5EC
- add r6, r1, #0x0
- mov r7, #0x0
-_02013C74:
- ldr r5, [r3, #0x4]
- mov r2, #0x0
- cmp r5, #0x0
- ble _02013CBC
- ldr r4, [r3, #0x0]
-_02013C7E:
- ldrh r1, [r4, #0x0]
- cmp r0, r1
- bne _02013CB4
- ldr r2, _02013CCC ; =0x020ED5F0
- lsl r1, r7, #0x3
- ldr r2, [r2, r1]
- mov r0, #0x0
- cmp r2, #0x0
- beq _02013CAC
- ldr r2, _02013CC8 ; =0x020ED5EC
- add r2, r2, r1
- ldr r2, [r2, #0x4]
-_02013C96:
- cmp r6, #0x0
- bne _02013CA4
- ldr r2, _02013CC8 ; =0x020ED5EC
- lsl r0, r0, #0x1
- ldr r1, [r2, r1]
- ldrh r0, [r1, r0]
- pop {r3-r7, pc}
-_02013CA4:
- sub r6, r6, #0x1
- add r0, r0, #0x1
- cmp r2, #0x0
- bne _02013C96
-_02013CAC:
- bl ErrorHandling
- ldr r0, _02013CD0 ; =0x0000FFFF
- pop {r3-r7, pc}
-_02013CB4:
- add r2, r2, #0x1
- add r4, r4, #0x2
- cmp r2, r5
- blt _02013C7E
-_02013CBC:
- add r7, r7, #0x1
- add r3, #0x8
- cmp r7, #0xc
- blo _02013C74
- pop {r3-r7, pc}
- nop
-_02013CC8: .word 0x020ED5EC
-_02013CCC: .word 0x020ED5F0
-_02013CD0: .word 0x0000FFFF
-
- thumb_func_start FUN_02013CD4
-FUN_02013CD4: ; 0x02013CD4
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldr r0, [r5, #0xc]
- mov r1, #0x18
- bl FUN_02016998
- add r4, r0, #0x0
- bne _02013CE8
- bl ErrorHandling
-_02013CE8:
- ldr r0, [r5, #0x0]
- ldr r1, [r5, #0xc]
- bl FUN_02013F68
- str r0, [r4, #0x0]
- ldr r0, [r5, #0x0]
- str r0, [r4, #0x4]
- ldr r0, [r5, #0x4]
- ldr r1, [r5, #0xc]
- bl FUN_02013F98
- str r0, [r4, #0x8]
- ldr r0, [r5, #0x4]
- str r0, [r4, #0xc]
- ldr r0, [r5, #0x8]
- ldr r1, [r5, #0xc]
- bl FUN_02013FC8
- str r0, [r4, #0x10]
- ldr r0, [r5, #0x8]
- str r0, [r4, #0x14]
- add r0, r4, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02013D18
-FUN_02013D18: ; 0x02013D18
- push {r4, lr}
- add r4, r0, #0x0
- bne _02013D22
- bl ErrorHandling
-_02013D22:
- ldr r0, [r4, #0x0]
- cmp r0, #0x0
- bne _02013D2C
- bl ErrorHandling
-_02013D2C:
- ldr r0, [r4, #0x8]
- cmp r0, #0x0
- bne _02013D36
- bl ErrorHandling
-_02013D36:
- ldr r0, [r4, #0x10]
- cmp r0, #0x0
- bne _02013D40
- bl ErrorHandling
-_02013D40:
- ldr r0, [r4, #0x0]
- bl FUN_02016A18
- ldr r0, [r4, #0x8]
- bl FUN_02016A18
- ldr r0, [r4, #0x10]
- bl FUN_02016A18
- add r0, r4, #0x0
- bl FUN_02016A18
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02013D5C
-FUN_02013D5C: ; 0x02013D5C
- push {r4-r6, lr}
- add r5, r0, #0x0
- ldr r0, _02013D90 ; =0x04000444
- mov r6, #0x0
- str r6, [r0, #0x0]
- ldr r0, [r5, #0x4]
- cmp r0, #0x0
- ble _02013D86
- add r4, r6, #0x0
-_02013D6E:
- ldr r0, [r5, #0x0]
- add r0, r0, r4
- ldr r1, [r0, #0x20]
- cmp r1, #0x0
- beq _02013D7C
- bl FUN_020140D8
-_02013D7C:
- ldr r0, [r5, #0x4]
- add r6, r6, #0x1
- add r4, #0x40
- cmp r6, r0
- blt _02013D6E
-_02013D86:
- ldr r0, _02013D94 ; =0x04000448
- mov r1, #0x1
- str r1, [r0, #0x0]
- pop {r4-r6, pc}
- nop
-_02013D90: .word 0x04000444
-_02013D94: .word 0x04000448
-
- thumb_func_start FUN_02013D98
-FUN_02013D98: ; 0x02013D98
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldr r0, [r5, #0x0]
- bl FUN_02014024
- add r4, r0, #0x0
- bne _02013DAA
- bl ErrorHandling
-_02013DAA:
- ldr r0, [r5, #0x4]
- ldr r0, [r0, #0x8]
- cmp r0, #0x0
- beq _02013DB6
- bl ErrorHandling
-_02013DB6:
- ldr r0, [r5, #0x4]
- bl FUN_0201407C
- str r0, [r4, #0x0]
- cmp r0, #0x0
- bne _02013DC6
- bl ErrorHandling
-_02013DC6:
- ldr r0, [r5, #0x4]
- ldr r1, [r4, #0x0]
- add r2, r4, #0x4
- bl FUN_020140A4
- add r0, r4, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02013DD4
-FUN_02013DD4: ; 0x02013DD4
- push {r4, lr}
- ldr r1, _02013DE8 ; =0x021064BC
- add r4, r0, #0x0
- ldr r0, [r4, #0x0]
- ldr r1, [r1, #0x0]
- blx r1
- add r0, r4, #0x0
- bl FUN_02013F50
- pop {r4, pc}
- .balign 4
-_02013DE8: .word 0x021064BC
-
- thumb_func_start FUN_02013DEC
-FUN_02013DEC: ; 0x02013DEC
- push {r4-r6, lr}
- add r5, r0, #0x0
- ldr r0, [r5, #0xc]
- mov r6, #0x0
- cmp r0, #0x0
- ble _02013E12
- add r4, r6, #0x0
-_02013DFA:
- ldr r1, [r5, #0x8]
- ldr r0, [r1, r4]
- cmp r0, #0x0
- beq _02013E08
- add r0, r1, r4
- bl FUN_02013DD4
-_02013E08:
- ldr r0, [r5, #0xc]
- add r6, r6, #0x1
- add r4, #0x28
- cmp r6, r0
- blt _02013DFA
-_02013E12:
- pop {r4-r6, pc}
-
- thumb_func_start FUN_02013E14
-FUN_02013E14: ; 0x02013E14
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldr r0, [r5, #0x0]
- bl FUN_02014050
- add r4, r0, #0x0
- bne _02013E26
- bl ErrorHandling
-_02013E26:
- ldr r0, [r5, #0x8]
- bl FUN_02014090
- str r0, [r4, #0x0]
- cmp r0, #0x0
- bne _02013E36
- bl ErrorHandling
-_02013E36:
- ldr r0, [r5, #0x4]
- ldr r1, [r4, #0x0]
- add r2, r4, #0x4
- bl FUN_020140B4
- add r0, r4, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02013E44
-FUN_02013E44: ; 0x02013E44
- push {r4, lr}
- ldr r1, _02013E58 ; =0x021064C4
- add r4, r0, #0x0
- ldr r0, [r4, #0x0]
- ldr r1, [r1, #0x0]
- blx r1
- add r0, r4, #0x0
- bl FUN_02013F5C
- pop {r4, pc}
- .balign 4
-_02013E58: .word 0x021064C4
-
- thumb_func_start FUN_02013E5C
-FUN_02013E5C: ; 0x02013E5C
- push {r4-r6, lr}
- add r5, r0, #0x0
- ldr r0, [r5, #0x14]
- mov r6, #0x0
- cmp r0, #0x0
- ble _02013E82
- add r4, r6, #0x0
-_02013E6A:
- ldr r1, [r5, #0x10]
- ldr r0, [r1, r4]
- cmp r0, #0x0
- beq _02013E78
- add r0, r1, r4
- bl FUN_02013E44
-_02013E78:
- ldr r0, [r5, #0x14]
- add r6, r6, #0x1
- add r4, #0x18
- cmp r6, r0
- blt _02013E6A
-_02013E82:
- pop {r4-r6, pc}
-
- thumb_func_start FUN_02013E84
-FUN_02013E84: ; 0x02013E84
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldr r0, [r5, #0x0]
- bl FUN_02013FF8
- add r4, r0, #0x0
- bne _02013E96
- bl ErrorHandling
-_02013E96:
- add r0, r4, #0x0
- add r1, r5, #0x0
- bl FUN_02014218
- mov r0, #0x1
- str r0, [r4, #0x1c]
- str r0, [r4, #0x20]
- add r0, r4, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02013EA8
-FUN_02013EA8: ; 0x02013EA8
- ldr r3, _02013EAC ; =FUN_02013F30
- bx r3
- .balign 4
-_02013EAC: .word FUN_02013F30
-
- thumb_func_start FUN_02013EB0
-FUN_02013EB0: ; 0x02013EB0
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- cmp r5, #0x0
- bne _02013EBE
- bl ErrorHandling
-_02013EBE:
- str r4, [r5, #0x20]
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02013EC4
-FUN_02013EC4: ; 0x02013EC4
- strh r1, [r0, #0x0]
- strh r2, [r0, #0x2]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02013ECC
-FUN_02013ECC: ; 0x02013ECC
- ldrh r1, [r0, #0x2]
- ldrh r0, [r0, #0x0]
- lsl r1, r1, #0x10
- orr r0, r1
- bx lr
- .balign 4
-
- thumb_func_start FUN_02013ED8
-FUN_02013ED8: ; 0x02013ED8
- strh r1, [r0, #0x4]
- strh r2, [r0, #0x6]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02013EE0
-FUN_02013EE0: ; 0x02013EE0
- str r1, [r0, #0xc]
- str r2, [r0, #0x10]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02013EE8
-FUN_02013EE8: ; 0x02013EE8
- strh r1, [r0, #0x8]
- strh r2, [r0, #0xa]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02013EF0
-FUN_02013EF0: ; 0x02013EF0
- ldrh r1, [r0, #0xa]
- ldrh r0, [r0, #0x8]
- lsl r1, r1, #0x10
- orr r0, r1
- bx lr
- .balign 4
-
- thumb_func_start FUN_02013EFC
-FUN_02013EFC: ; 0x02013EFC
- str r1, [r0, #0x14]
- bx lr
-
- thumb_func_start FUN_02013F00
-FUN_02013F00: ; 0x02013F00
- ldr r0, [r0, #0x14]
- bx lr
-
- thumb_func_start FUN_02013F04
-FUN_02013F04: ; 0x02013F04
- add r0, #0x3e
- strb r1, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02013F0C
-FUN_02013F0C: ; 0x02013F0C
- strh r1, [r0, #0x3c]
- bx lr
-
- thumb_func_start FUN_02013F10
-FUN_02013F10: ; 0x02013F10
- str r1, [r0, #0x24]
- bx lr
-
- thumb_func_start FUN_02013F14
-FUN_02013F14: ; 0x02013F14
- str r1, [r0, #0x28]
- bx lr
-
- thumb_func_start FUN_02013F18
-FUN_02013F18: ; 0x02013F18
- str r1, [r0, #0x2c]
- bx lr
-
- thumb_func_start FUN_02013F1C
-FUN_02013F1C: ; 0x02013F1C
- str r1, [r0, #0x30]
- bx lr
-
- thumb_func_start FUN_02013F20
-FUN_02013F20: ; 0x02013F20
- cmp r1, #0x0
- bne _02013F28
- str r2, [r0, #0x34]
- bx lr
-_02013F28:
- str r2, [r0, #0x38]
- bx lr
-
- thumb_func_start FUN_02013F2C
-FUN_02013F2C: ; 0x02013F2C
- str r1, [r0, #0x18]
- bx lr
-
- thumb_func_start FUN_02013F30
-FUN_02013F30: ; 0x02013F30
- push {r4, lr}
- add r4, r0, #0x0
- mov r1, #0x0
- mov r2, #0x40
- bl Call_FillMemWithValue
- add r0, r4, #0x0
- mov r1, #0x1f
- add r0, #0x3e
- strb r1, [r0, #0x0]
- ldr r0, _02013F4C ; =0x00007FFF
- strh r0, [r4, #0x3c]
- pop {r4, pc}
- nop
-_02013F4C: .word 0x00007FFF
-
- thumb_func_start FUN_02013F50
-FUN_02013F50: ; 0x02013F50
- ldr r3, _02013F58 ; =FUN_020B1A24
- mov r1, #0x0
- stmia r0!, {r1}
- bx r3
- .balign 4
-_02013F58: .word FUN_020B1A24
-
- thumb_func_start FUN_02013F5C
-FUN_02013F5C: ; 0x02013F5C
- ldr r3, _02013F64 ; =FUN_020B19DC
- mov r1, #0x0
- stmia r0!, {r1}
- bx r3
- .balign 4
-_02013F64: .word FUN_020B19DC
-
- thumb_func_start FUN_02013F68
-FUN_02013F68: ; 0x02013F68
- push {r3-r7, lr}
- add r6, r0, #0x0
- add r0, r1, #0x0
- lsl r1, r6, #0x6
- bl FUN_02016998
- add r7, r0, #0x0
- bne _02013F7C
- bl ErrorHandling
-_02013F7C:
- mov r4, #0x0
- cmp r6, #0x0
- ble _02013F92
- add r5, r7, #0x0
-_02013F84:
- add r0, r5, #0x0
- bl FUN_02013F30
- add r4, r4, #0x1
- add r5, #0x40
- cmp r4, r6
- blt _02013F84
-_02013F92:
- add r0, r7, #0x0
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02013F98
-FUN_02013F98: ; 0x02013F98
- push {r3-r7, lr}
- add r6, r0, #0x0
- add r0, r1, #0x0
- mov r1, #0x28
- mul r1, r6
- bl FUN_02016998
- add r7, r0, #0x0
- bne _02013FAE
- bl ErrorHandling
-_02013FAE:
- mov r4, #0x0
- cmp r6, #0x0
- ble _02013FC4
- add r5, r7, #0x0
-_02013FB6:
- add r0, r5, #0x0
- bl FUN_02013F50
- add r4, r4, #0x1
- add r5, #0x28
- cmp r4, r6
- blt _02013FB6
-_02013FC4:
- add r0, r7, #0x0
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02013FC8
-FUN_02013FC8: ; 0x02013FC8
- push {r3-r7, lr}
- add r6, r0, #0x0
- add r0, r1, #0x0
- mov r1, #0x18
- mul r1, r6
- bl FUN_02016998
- add r7, r0, #0x0
- bne _02013FDE
- bl ErrorHandling
-_02013FDE:
- mov r4, #0x0
- cmp r6, #0x0
- ble _02013FF4
- add r5, r7, #0x0
-_02013FE6:
- add r0, r5, #0x0
- bl FUN_02013F5C
- add r4, r4, #0x1
- add r5, #0x18
- cmp r4, r6
- blt _02013FE6
-_02013FF4:
- add r0, r7, #0x0
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02013FF8
-FUN_02013FF8: ; 0x02013FF8
- push {r3-r4}
- ldr r4, [r0, #0x4]
- mov r1, #0x0
- cmp r4, #0x0
- ble _0201401C
- ldr r3, [r0, #0x0]
- add r2, r3, #0x0
-_02014006:
- ldr r0, [r2, #0x1c]
- cmp r0, #0x0
- bne _02014014
- lsl r0, r1, #0x6
- add r0, r3, r0
- pop {r3-r4}
- bx lr
-_02014014:
- add r1, r1, #0x1
- add r2, #0x40
- cmp r1, r4
- blt _02014006
-_0201401C:
- mov r0, #0x0
- pop {r3-r4}
- bx lr
- .balign 4
-
- thumb_func_start FUN_02014024
-FUN_02014024: ; 0x02014024
- push {r3-r4}
- ldr r4, [r0, #0x4]
- mov r1, #0x0
- cmp r4, #0x0
- ble _0201404A
- ldr r3, [r0, #0x8]
- add r2, r3, #0x0
-_02014032:
- ldr r0, [r2, #0x0]
- cmp r0, #0x0
- bne _02014042
- mov r0, #0x28
- mul r0, r1
- add r0, r3, r0
- pop {r3-r4}
- bx lr
-_02014042:
- add r1, r1, #0x1
- add r2, #0x28
- cmp r1, r4
- blt _02014032
-_0201404A:
- mov r0, #0x0
- pop {r3-r4}
- bx lr
-
- thumb_func_start FUN_02014050
-FUN_02014050: ; 0x02014050
- push {r3-r4}
- ldr r4, [r0, #0x4]
- mov r1, #0x0
- cmp r4, #0x0
- ble _02014076
- ldr r3, [r0, #0x10]
- add r2, r3, #0x0
-_0201405E:
- ldr r0, [r2, #0x0]
- cmp r0, #0x0
- bne _0201406E
- mov r0, #0x18
- mul r0, r1
- add r0, r3, r0
- pop {r3-r4}
- bx lr
-_0201406E:
- add r1, r1, #0x1
- add r2, #0x18
- cmp r1, r4
- blt _0201405E
-_02014076:
- mov r0, #0x0
- pop {r3-r4}
- bx lr
-
- thumb_func_start FUN_0201407C
-FUN_0201407C: ; 0x0201407C
- push {r3, lr}
- ldr r3, _0201408C ; =0x021064B8
- mov r1, #0x0
- ldr r0, [r0, #0x10]
- ldr r3, [r3, #0x0]
- add r2, r1, #0x0
- blx r3
- pop {r3, pc}
- .balign 4
-_0201408C: .word 0x021064B8
-
- thumb_func_start FUN_02014090
-FUN_02014090: ; 0x02014090
- push {r3, lr}
- ldr r3, _020140A0 ; =0x021064C0
- mov r1, #0x0
- ldr r3, [r3, #0x0]
- lsl r0, r0, #0x5
- add r2, r1, #0x0
- blx r3
- pop {r3, pc}
- .balign 4
-_020140A0: .word 0x021064C0
-
- thumb_func_start FUN_020140A4
-FUN_020140A4: ; 0x020140A4
- push {r3, lr}
- lsl r1, r1, #0x10
- add r3, r2, #0x0
- lsr r1, r1, #0xd
- mov r2, #0x0
- bl FUN_020B1528
- pop {r3, pc}
-
- thumb_func_start FUN_020140B4
-FUN_020140B4: ; 0x020140B4
- push {r3-r5, lr}
- add r3, r2, #0x0
- ldr r2, _020140D4 ; =0xFFFF0000
- add r5, r0, #0x0
- and r2, r1
- lsr r2, r2, #0x10
- lsl r1, r1, #0x10
- ldr r4, [r5, #0x8]
- lsl r2, r2, #0x3
- str r2, [r5, #0x8]
- lsr r1, r1, #0xd
- mov r2, #0x0
- bl FUN_020B1240
- str r4, [r5, #0x8]
- pop {r3-r5, pc}
- .balign 4
-_020140D4: .word 0xFFFF0000
-
- thumb_func_start FUN_020140D8
-FUN_020140D8: ; 0x020140D8
- push {r3-r7, lr}
- sub sp, #0x18
- ldr r7, _020141F8 ; =0x04000444
- mov r6, #0x0
- add r5, r0, #0x0
- str r6, [r7, #0x0]
- ldrh r1, [r5, #0x3c]
- ldr r0, _020141FC ; =0x7FFF8000
- orr r0, r1
- str r0, [r7, #0x7c]
- add r0, r7, #0x0
- ldr r1, _02014200 ; =0x00004210
- add r0, #0x80
- str r1, [r0, #0x0]
- ldr r3, [r5, #0x24]
- ldr r4, [r3, #0x8]
- ldr r2, [r3, #0x10]
- ldr r1, [r3, #0x4]
- ldr r0, [r3, #0x0]
- lsl r3, r2, #0x1d
- lsl r2, r1, #0x17
- lsl r1, r0, #0x14
- ldr r0, [r5, #0x28]
- lsl r4, r4, #0x1a
- lsr r0, r0, #0x3
- orr r4, r0
- mov r0, #0x1
- lsl r0, r0, #0x1e
- orr r0, r4
- orr r0, r1
- orr r0, r2
- orr r0, r3
- str r0, [r7, #0x64]
- ldr r0, [r5, #0x24]
- ldr r0, [r0, #0x8]
- cmp r0, #0x2
- bne _02014124
- mov r6, #0x1
-_02014124:
- ldr r0, [r5, #0x30]
- ldr r1, [r5, #0x2c]
- lsl r0, r0, #0x5
- add r1, r1, r0
- mov r0, #0x4
- sub r0, r0, r6
- lsr r1, r0
- ldr r2, _02014204 ; =0x040004AC
- add r0, r5, #0x0
- str r1, [r2, #0x0]
- add r0, #0x3e
- ldrb r0, [r0, #0x0]
- sub r2, #0x8
- lsl r1, r0, #0x10
- mov r0, #0xc0
- orr r0, r1
- str r0, [r2, #0x0]
- ldr r0, [r5, #0x34]
- cmp r0, #0x0
- beq _02014156
- mov r0, #0x8
- ldrsh r0, [r5, r0]
- mov r7, #0x0
- str r0, [sp, #0x14]
- b _0201415E
-_02014156:
- mov r0, #0x8
- ldrsh r7, [r5, r0]
- mov r0, #0x0
- str r0, [sp, #0x14]
-_0201415E:
- ldr r0, [r5, #0x38]
- cmp r0, #0x0
- beq _0201416C
- mov r0, #0xa
- ldrsh r6, [r5, r0]
- mov r4, #0x0
- b _02014172
-_0201416C:
- mov r0, #0xa
- ldrsh r4, [r5, r0]
- mov r6, #0x0
-_02014172:
- ldr r0, [r5, #0x14]
- mov r1, #0x6
- lsl r2, r0, #0xc
- mov r0, #0x2
- ldrsh r0, [r5, r0]
- ldrsh r1, [r5, r1]
- mov r3, #0x4
- ldrsh r3, [r5, r3]
- add r0, r0, r1
- lsl r1, r0, #0xc
- mov r0, #0x0
- ldrsh r0, [r5, r0]
- add r0, r0, r3
- ldr r3, _02014208 ; =0x04000470
- lsl r0, r0, #0xc
- str r0, [r3, #0x0]
- str r1, [r3, #0x0]
- str r2, [r3, #0x0]
- ldr r0, [r5, #0x18]
- ldr r1, _0201420C ; =0x020FFA38
- asr r0, r0, #0x4
- lsl r2, r0, #0x1
- lsl r0, r2, #0x1
- add r2, r2, #0x1
- lsl r2, r2, #0x1
- ldrsh r0, [r1, r0]
- ldrsh r1, [r1, r2]
- bl G3_RotZ
- ldr r2, [r5, #0x10]
- ldr r0, [r5, #0xc]
- ldr r1, _02014210 ; =0x0400046C
- mov r3, #0x8
- str r0, [r1, #0x0]
- str r2, [r1, #0x0]
- lsr r0, r1, #0xe
- str r0, [r1, #0x0]
- mov r2, #0x4
- mov r0, #0x6
- ldrsh r2, [r5, r2]
- ldrsh r0, [r5, r0]
- neg r2, r2
- neg r0, r0
- lsl r2, r2, #0xc
- lsl r0, r0, #0xc
- str r2, [r1, #0x4]
- str r0, [r1, #0x4]
- mov r0, #0x0
- str r0, [r1, #0x4]
- mov r1, #0xa
- ldrsh r1, [r5, r1]
- add r2, r0, #0x0
- str r1, [sp, #0x0]
- ldr r1, [sp, #0x14]
- str r1, [sp, #0x4]
- str r6, [sp, #0x8]
- str r7, [sp, #0xc]
- str r4, [sp, #0x10]
- ldrsh r3, [r5, r3]
- add r1, r0, #0x0
- bl FUN_020B0250
- ldr r0, _02014214 ; =0x04000448
- mov r1, #0x1
- str r1, [r0, #0x0]
- add sp, #0x18
- pop {r3-r7, pc}
- .balign 4
-_020141F8: .word 0x04000444
-_020141FC: .word 0x7FFF8000
-_02014200: .word 0x00004210
-_02014204: .word 0x040004AC
-_02014208: .word 0x04000470
-_0201420C: .word 0x020FFA38
-_02014210: .word 0x0400046C
-_02014214: .word 0x04000448
-
- thumb_func_start FUN_02014218
-FUN_02014218: ; 0x02014218
- push {r3-r7, lr}
- add r5, r1, #0x0
- ldr r1, [r5, #0x4]
- add r7, r0, #0x0
- ldr r2, [r1, #0x10]
- mov r6, #0x8
- mov r0, #0x0
- cmp r2, #0x0
- ble _02014236
-_0201422A:
- ldr r2, [r5, #0x4]
- add r0, r0, #0x1
- ldr r2, [r2, #0x10]
- lsl r6, r6, #0x1
- cmp r0, r2
- blt _0201422A
-_02014236:
- ldr r1, [r1, #0x14]
- mov r4, #0x8
- mov r0, #0x0
- cmp r1, #0x0
- ble _0201424C
-_02014240:
- ldr r1, [r5, #0x4]
- add r0, r0, #0x1
- ldr r1, [r1, #0x14]
- lsl r4, r4, #0x1
- cmp r0, r1
- blt _02014240
-_0201424C:
- mov r1, #0xc
- mov r2, #0xe
- ldrsh r1, [r5, r1]
- ldrsh r2, [r5, r2]
- add r0, r7, #0x0
- bl FUN_02013EC4
- lsr r1, r6, #0x1f
- lsr r2, r4, #0x1f
- add r1, r6, r1
- add r2, r4, r2
- lsl r1, r1, #0xf
- lsl r2, r2, #0xf
- add r0, r7, #0x0
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- bl FUN_02013ED8
- mov r0, #0x1
- lsl r0, r0, #0xc
- str r0, [r7, #0xc]
- str r0, [r7, #0x10]
- add r0, r7, #0x0
- add r1, r6, #0x0
- add r2, r4, #0x0
- bl FUN_02013EE8
- ldr r1, [r5, #0x18]
- add r0, r7, #0x0
- bl FUN_02013EFC
- ldr r1, [r5, #0x14]
- add r0, r7, #0x0
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- bl FUN_02013F04
- ldr r1, [r5, #0x4]
- add r0, r7, #0x0
- add r1, #0x10
- bl FUN_02013F10
- ldr r0, [r5, #0x4]
- mov r1, #0x0
- add r0, r0, #0x4
- bl FUN_020B1A14
- add r1, r0, #0x0
- add r0, r7, #0x0
- bl FUN_02013F14
- ldr r0, [r5, #0x8]
- mov r1, #0x0
- add r0, r0, #0x4
- bl FUN_020B19C4
- add r1, r0, #0x0
- add r0, r7, #0x0
- bl FUN_02013F18
- ldrh r1, [r5, #0x1c]
- add r0, r7, #0x0
- bl FUN_02013F1C
- mov r1, #0x0
- add r0, r7, #0x0
- add r2, r1, #0x0
- bl FUN_02013F20
- add r0, r7, #0x0
- mov r1, #0x1
- mov r2, #0x0
- bl FUN_02013F20
- ldrh r1, [r5, #0x10]
- add r0, r7, #0x0
- bl FUN_02013F2C
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_020142EC
-FUN_020142EC: ; 0x020142EC
- push {r4-r7, lr}
- sub sp, #0xc
- add r5, r0, #0x0
- add r6, r1, #0x0
- add r7, r2, #0x0
- ldr r0, _02014394 ; =FUN_020143DC
- mov r1, #0x50
- mov r2, #0x0
- bl FUN_020061E8
- str r0, [sp, #0x4]
- bl FUN_0201B6C8
- add r4, r0, #0x0
- cmp r5, #0x0
- beq _02014330
- cmp r6, #0x0
- bne _02014320
- add r0, r5, #0x0
- mov r1, #0x0
- bl FUN_020031FC
- str r0, [sp, #0x0]
- ldr r0, _02014398 ; =FUN_020144E0
- str r0, [r4, #0x4]
- b _0201434A
-_02014320:
- add r0, r5, #0x0
- mov r1, #0x1
- bl FUN_020031FC
- str r0, [sp, #0x0]
- ldr r0, _0201439C ; =FUN_020144FC
- str r0, [r4, #0x4]
- b _0201434A
-_02014330:
- cmp r6, #0x0
- bne _02014340
- bl FUN_020222E8
- str r0, [sp, #0x0]
- ldr r0, _020143A0 ; =FUN_020144B0
- str r0, [r4, #0x4]
- b _0201434A
-_02014340:
- bl FUN_020222F8
- str r0, [sp, #0x0]
- ldr r0, _020143A4 ; =FUN_020144C8
- str r0, [r4, #0x4]
-_0201434A:
- ldr r1, [sp, #0x0]
- lsl r0, r7, #0x5
- str r0, [sp, #0x8]
- add r0, r1, r0
- add r1, r4, #0x0
- add r1, #0xc
- mov r2, #0x20
- bl MIi_CpuCopy16
- ldr r1, [sp, #0x0]
- ldr r0, [sp, #0x8]
- mov r2, #0x20
- add r0, r1, r0
- add r1, r4, #0x0
- add r1, #0x2c
- bl MIi_CpuCopy16
- ldr r0, [sp, #0x4]
- mov r1, #0x1
- str r0, [r4, #0x0]
- add r0, r4, #0x0
- str r5, [r4, #0x8]
- add r0, #0x4c
- strb r6, [r0, #0x0]
- add r0, r4, #0x0
- add r0, #0x4d
- strb r7, [r0, #0x0]
- add r0, r4, #0x0
- add r0, #0x4e
- strb r1, [r0, #0x0]
- add r0, r4, #0x0
- mov r1, #0x0
- add r0, #0x4f
- strb r1, [r0, #0x0]
- add r0, r4, #0x0
- add sp, #0xc
- pop {r4-r7, pc}
- .balign 4
-_02014394: .word FUN_020143DC
-_02014398: .word FUN_020144E0
-_0201439C: .word FUN_020144FC
-_020143A0: .word FUN_020144B0
-_020143A4: .word FUN_020144C8
-
- thumb_func_start FUN_020143A8
-FUN_020143A8: ; 0x020143A8
- cmp r1, #0x0
- beq _020143B6
- cmp r1, #0x1
- beq _020143BE
- cmp r1, #0x2
- beq _020143C6
- bx lr
-_020143B6:
- mov r1, #0x0
- add r0, #0x4e
- strb r1, [r0, #0x0]
- bx lr
-_020143BE:
- mov r1, #0x2
- add r0, #0x4e
- strb r1, [r0, #0x0]
- bx lr
-_020143C6:
- mov r1, #0x3
- add r0, #0x4e
- strb r1, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_020143D0
-FUN_020143D0: ; 0x020143D0
- ldr r3, _020143D8 ; =FUN_0200621C
- ldr r0, [r0, #0x0]
- bx r3
- nop
-_020143D8: .word FUN_0200621C
-
- thumb_func_start FUN_020143DC
-FUN_020143DC: ; 0x020143DC
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x4e
- ldrb r0, [r0, #0x0]
- cmp r0, #0x3
- bhi _02014452
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_020143F8: ; jump table (using 16-bit offset)
- .short _02014400 - _020143F8 - 2; case 0
- .short _02014410 - _020143F8 - 2; case 1
- .short _02014452 - _020143F8 - 2; case 2
- .short _02014444 - _020143F8 - 2; case 3
-_02014400:
- add r0, r4, #0x0
- mov r1, #0x0
- add r0, #0x4f
- strb r1, [r0, #0x0]
- mov r0, #0x1
- add r4, #0x4e
- strb r0, [r4, #0x0]
- pop {r3-r5, pc}
-_02014410:
- add r0, r4, #0x0
- bl FUN_02014454
- cmp r0, #0x1
- bne _02014424
- add r1, r4, #0x0
- ldr r2, [r4, #0x4]
- add r0, r4, #0x0
- add r1, #0x2c
- blx r2
-_02014424:
- add r0, r4, #0x0
- add r0, #0x4f
- ldrb r0, [r0, #0x0]
- add r1, r0, #0x1
- add r0, r4, #0x0
- add r0, #0x4f
- strb r1, [r0, #0x0]
- add r0, r4, #0x0
- add r0, #0x4f
- ldrb r0, [r0, #0x0]
- cmp r0, #0x20
- bne _02014452
- mov r0, #0x0
- add r4, #0x4f
- strb r0, [r4, #0x0]
- pop {r3-r5, pc}
-_02014444:
- ldr r2, [r4, #0x4]
- add r0, r4, #0x0
- add r1, #0xc
- blx r2
- add r0, r5, #0x0
- bl FUN_0200621C
-_02014452:
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02014454
-FUN_02014454: ; 0x02014454
- push {r4-r5}
- add r1, r0, #0x0
- add r1, #0x4f
- ldrb r1, [r1, #0x0]
- cmp r1, #0x0
- bne _02014482
- mov r1, #0x1e
- mov r4, #0x0
- mov r3, #0x1
- lsl r1, r1, #0xa
-_02014468:
- add r2, r3, #0x0
- lsl r2, r4
- tst r2, r1
- beq _02014474
- ldrh r2, [r0, #0xc]
- strh r2, [r0, #0x2c]
-_02014474:
- add r4, r4, #0x1
- add r0, r0, #0x2
- cmp r4, #0x10
- blo _02014468
- mov r0, #0x1
- pop {r4-r5}
- bx lr
-_02014482:
- cmp r1, #0x18
- bne _020144AA
- mov r1, #0x1e
- mov r5, #0x0
- add r4, r0, #0x0
- mov r3, #0x1
- lsl r1, r1, #0xa
-_02014490:
- add r2, r3, #0x0
- lsl r2, r5
- tst r2, r1
- beq _0201449C
- ldrh r2, [r0, #0x2a]
- strh r2, [r4, #0x2c]
-_0201449C:
- add r5, r5, #0x1
- add r4, r4, #0x2
- cmp r5, #0x10
- blo _02014490
- mov r0, #0x1
- pop {r4-r5}
- bx lr
-_020144AA:
- mov r0, #0x0
- pop {r4-r5}
- bx lr
-
- thumb_func_start FUN_020144B0
-FUN_020144B0: ; 0x020144B0
- push {r3, lr}
- add r3, r0, #0x0
- add r3, #0x4d
- ldrb r3, [r3, #0x0]
- mov r0, #0x0
- mov r2, #0x20
- lsl r3, r3, #0x15
- lsr r3, r3, #0x10
- bl FUN_02017FB4
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_020144C8
-FUN_020144C8: ; 0x020144C8
- push {r3, lr}
- add r3, r0, #0x0
- add r3, #0x4d
- ldrb r3, [r3, #0x0]
- mov r0, #0x4
- mov r2, #0x20
- lsl r3, r3, #0x15
- lsr r3, r3, #0x10
- bl FUN_02017FB4
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_020144E0
-FUN_020144E0: ; 0x020144E0
- push {r3, lr}
- add r3, r0, #0x0
- mov r0, #0x20
- str r0, [sp, #0x0]
- ldr r0, [r3, #0x8]
- add r3, #0x4d
- ldrb r3, [r3, #0x0]
- mov r2, #0x0
- lsl r3, r3, #0x14
- lsr r3, r3, #0x10
- bl FUN_02003054
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_020144FC
-FUN_020144FC: ; 0x020144FC
- push {r3, lr}
- add r3, r0, #0x0
- mov r0, #0x20
- str r0, [sp, #0x0]
- ldr r0, [r3, #0x8]
- add r3, #0x4d
- ldrb r3, [r3, #0x0]
- mov r2, #0x1
- lsl r3, r3, #0x14
- lsr r3, r3, #0x10
- bl FUN_02003054
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02014518
-FUN_02014518: ; 0x02014518
- push {r3-r7, lr}
- mov r1, #0x78
- add r7, r0, #0x0
- bl FUN_02016998
- mov r1, #0x0
- mov r2, #0x78
- add r6, r0, #0x0
- bl MI_CpuFill8
- ldr r2, _02014560 ; =0x0000019E
- mov r0, #0x0
- mov r1, #0x1a
- add r3, r7, #0x0
- bl FUN_0200A86C
- str r0, [r6, #0x0]
- mov r4, #0x0
- add r5, r6, #0x0
-_0201453E:
- mov r0, #0x16
- add r1, r7, #0x0
- bl FUN_020219F4
- str r0, [r5, #0x4]
- ldr r0, [r6, #0x0]
- ldr r2, [r5, #0x4]
- add r1, r4, #0x0
- bl FUN_0200A8E0
- add r4, r4, #0x1
- add r5, r5, #0x4
- cmp r4, #0x1d
- blt _0201453E
- add r0, r6, #0x0
- pop {r3-r7, pc}
- nop
-_02014560: .word 0x0000019E
-
- thumb_func_start FUN_02014564
-FUN_02014564: ; 0x02014564
- push {r4-r6, lr}
- add r6, r0, #0x0
- add r5, r6, #0x0
- mov r4, #0x1c
- add r5, #0x70
-_0201456E:
- ldr r0, [r5, #0x4]
- bl FUN_02021A20
- sub r5, r5, #0x4
- sub r4, r4, #0x1
- bpl _0201456E
- ldr r0, [r6, #0x0]
- bl FUN_0200A8B8
- add r0, r6, #0x0
- bl FUN_02016A18
- pop {r4-r6, pc}
-
- thumb_func_start FUN_02014588
-FUN_02014588: ; 0x02014588
- lsl r1, r1, #0x2
- add r0, r0, r1
- ldr r0, [r0, #0x4]
- bx lr
-
- thumb_func_start FUN_02014590
-FUN_02014590: ; 0x02014590
- push {r3-r5, lr}
- add r5, r0, #0x0
- mov r1, #0x9c
- bl FUN_02016998
- add r1, r5, #0x0
- add r4, r0, #0x0
- bl FUN_020146F0
- add r0, r4, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_020145A8
-FUN_020145A8: ; 0x020145A8
- push {r4, lr}
- add r4, r0, #0x0
- add r1, r4, #0x0
- add r1, #0x9b
- ldrb r1, [r1, #0x0]
- lsl r1, r1, #0x1c
- lsr r1, r1, #0x1c
- cmp r1, #0x1
- bne _020145BE
- bl FUN_020146C4
-_020145BE:
- add r0, r4, #0x0
- bl FUN_02016A18
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_020145C8
-FUN_020145C8: ; 0x020145C8
- push {r3-r5, lr}
- add r4, r1, #0x0
- ldr r2, [r4, #0x0]
- add r5, r0, #0x0
- str r2, [r5, #0x7c]
- add r2, r5, #0x0
- ldr r3, [r4, #0x4]
- add r2, #0x80
- str r3, [r2, #0x0]
- add r2, r5, #0x0
- ldrb r3, [r4, #0x10]
- add r2, #0x98
- strb r3, [r2, #0x0]
- add r2, r5, #0x0
- ldrb r3, [r4, #0x11]
- add r2, #0x99
- strb r3, [r2, #0x0]
- bl FUN_02014730
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02014754
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02014784
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02014814
- add r0, r5, #0x0
- add r0, #0x9b
- ldrb r1, [r0, #0x0]
- mov r0, #0xf
- bic r1, r0
- mov r0, #0x1
- orr r1, r0
- add r0, r5, #0x0
- add r0, #0x9b
- strb r1, [r0, #0x0]
- add r0, r5, #0x0
- add r0, #0x9b
- ldrb r1, [r0, #0x0]
- mov r0, #0xf0
- add r5, #0x9b
- bic r1, r0
- mov r0, #0x80
- orr r0, r1
- strb r0, [r5, #0x0]
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02014630
-FUN_02014630: ; 0x02014630
- push {r4, lr}
- add r4, r0, #0x0
- add r1, r4, #0x0
- add r1, #0x9b
- ldrb r2, [r1, #0x0]
- mov r1, #0xf0
- bic r2, r1
- mov r1, #0x80
- orr r2, r1
- add r1, r4, #0x0
- add r1, #0x9b
- strb r2, [r1, #0x0]
- bl FUN_0201466C
- cmp r0, #0x0
- bne _0201466A
- add r1, r4, #0x0
- add r1, #0x9b
- ldrb r1, [r1, #0x0]
- lsl r1, r1, #0x18
- lsr r1, r1, #0x1c
- bne _0201466A
- add r4, #0x9a
- ldrb r0, [r4, #0x0]
- cmp r0, #0x0
- bne _02014668
- mov r0, #0x3
- pop {r4, pc}
-_02014668:
- mov r0, #0x4
-_0201466A:
- pop {r4, pc}
-
- thumb_func_start FUN_0201466C
-FUN_0201466C: ; 0x0201466C
- push {r4, lr}
- add r4, r0, #0x0
- add r0, #0x9b
- ldrb r0, [r0, #0x0]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1c
- cmp r0, #0x1
- beq _02014680
- bl ErrorHandling
-_02014680:
- add r0, r4, #0x0
- add r0, #0x9a
- ldrb r0, [r0, #0x0]
- cmp r0, #0x3
- bne _02014690
- ldr r0, [r4, #0x0]
- bl FUN_02022144
-_02014690:
- add r1, r4, #0x0
- add r1, #0x9a
- ldrb r2, [r1, #0x0]
- mov r0, #0x0
- cmp r2, #0x3
- beq _020146AA
- add r1, r4, #0x0
- mov r0, #0x38
- add r1, #0xc
- mul r0, r2
- add r0, r1, r0
- bl FUN_02014930
-_020146AA:
- cmp r0, #0x1
- bne _020146BE
- add r4, #0x9a
- ldrb r0, [r4, #0x0]
- cmp r0, #0x0
- bne _020146BA
- mov r0, #0x1
- pop {r4, pc}
-_020146BA:
- mov r0, #0x2
- pop {r4, pc}
-_020146BE:
- mov r0, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_020146C4
-FUN_020146C4: ; 0x020146C4
- push {r4-r6, lr}
- add r6, r0, #0x0
- ldr r0, [r6, #0x0]
- bl FUN_0202212C
- add r5, r6, #0x0
- mov r4, #0x0
- add r5, #0xc
-_020146D4:
- add r0, r5, #0x0
- bl FUN_02014970
- add r4, r4, #0x1
- add r5, #0x38
- cmp r4, #0x2
- blt _020146D4
- add r0, r6, #0x0
- add r6, #0x84
- ldr r1, [r6, #0x0]
- bl FUN_020146F0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_020146F0
-FUN_020146F0: ; 0x020146F0
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- mov r1, #0x0
- mov r2, #0x9c
- bl Call_FillMemWithValue
- add r0, r5, #0x0
- add r0, #0x9b
- ldrb r1, [r0, #0x0]
- mov r0, #0xf
- bic r1, r0
- add r0, r5, #0x0
- add r0, #0x9b
- strb r1, [r0, #0x0]
- add r0, r5, #0x0
- add r0, #0x84
- str r4, [r0, #0x0]
- add r0, r5, #0x0
- mov r1, #0x3
- add r0, #0x9a
- strb r1, [r0, #0x0]
- add r0, r5, #0x0
- add r0, #0x9b
- ldrb r1, [r0, #0x0]
- mov r0, #0xf0
- add r5, #0x9b
- bic r1, r0
- mov r0, #0x80
- orr r0, r1
- strb r0, [r5, #0x0]
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02014730
-FUN_02014730: ; 0x02014730
- push {r3, lr}
- sub sp, #0x8
- add r3, r0, #0x0
- ldr r0, [r1, #0x8]
- mov r1, #0x1
- str r0, [sp, #0x0]
- add r0, r3, #0x0
- add r0, #0x84
- ldr r0, [r0, #0x0]
- str r0, [sp, #0x4]
- ldr r2, [r3, #0x7c]
- add r3, #0x80
- ldr r3, [r3, #0x0]
- mov r0, #0x54
- bl FUN_02014A3C
- add sp, #0x8
- pop {r3, pc}
-
- thumb_func_start FUN_02014754
-FUN_02014754: ; 0x02014754
- push {r3, lr}
- sub sp, #0x8
- add r3, r1, #0x0
- add r1, r0, #0x0
- add r1, #0x80
- ldr r1, [r1, #0x0]
- cmp r1, #0x4
- bhs _02014768
- mov r2, #0x0
- b _0201476A
-_02014768:
- mov r2, #0x4
-_0201476A:
- mov r1, #0x40
- str r1, [sp, #0x0]
- add r0, #0x84
- ldr r0, [r0, #0x0]
- mov r1, #0x0
- str r0, [sp, #0x4]
- ldr r3, [r3, #0xc]
- mov r0, #0x54
- lsl r3, r3, #0x5
- bl FUN_02014A8C
- add sp, #0x8
- pop {r3, pc}
-
- thumb_func_start FUN_02014784
-FUN_02014784: ; 0x02014784
- push {r3-r7, lr}
- sub sp, #0x30
- add r7, r0, #0x0
- mov r3, #0x0
- add r4, r7, #0x0
-_0201478E:
- add r0, r4, #0x0
- add r3, r3, #0x1
- lsl r2, r3, #0xc
- add r0, #0x88
- add r4, r4, #0x4
- str r2, [r0, #0x0]
- cmp r3, #0x4
- blt _0201478E
- ldr r0, [r7, #0x7c]
- mov r5, #0x0
- str r0, [sp, #0x0]
- add r0, r7, #0x0
- add r0, #0x80
- ldr r0, [r0, #0x0]
- add r4, r7, #0x0
- str r0, [sp, #0x4]
- mov r0, #0x54
- str r0, [sp, #0x8]
- ldr r0, [r1, #0x8]
- add r6, r5, #0x0
- str r0, [sp, #0x1c]
- ldr r0, [r1, #0xc]
- add r4, #0xc
- str r0, [sp, #0x20]
- add r0, r7, #0x0
- add r0, #0x88
- str r0, [sp, #0x24]
- mov r0, #0x4
- str r0, [sp, #0x28]
- add r0, r7, #0x0
- add r0, #0x98
- ldrb r1, [r0, #0x0]
- add r0, sp, #0x20
- strb r1, [r0, #0xc]
-_020147D2:
- mov r1, #0x0
- mov r2, #0x2
- add r3, sp, #0x0
-_020147D8:
- add r0, r5, r2
- str r0, [r3, #0xc]
- add r1, r1, #0x1
- add r2, r2, #0x2
- add r3, r3, #0x4
- cmp r1, #0x4
- blt _020147D8
- add r0, r7, #0x0
- add r0, #0x99
- ldrb r0, [r0, #0x0]
- add r2, r7, #0x0
- add r2, #0x84
- add r1, r0, r6
- add r0, sp, #0x20
- strb r1, [r0, #0xd]
- ldr r0, [sp, #0x20]
- add r1, sp, #0x0
- add r0, r0, r5
- str r0, [sp, #0x20]
- ldr r2, [r2, #0x0]
- add r0, r4, #0x0
- bl FUN_020148A8
- add r5, r5, #0x1
- add r6, r6, #0x4
- add r4, #0x38
- cmp r5, #0x2
- blt _020147D2
- add sp, #0x30
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02014814
-FUN_02014814: ; 0x02014814
- push {r3-r4, lr}
- sub sp, #0x4
- add r4, r0, #0x0
- mov r0, #0x0
- add r1, r0, #0x0
- add r2, r4, #0x0
-_02014820:
- add r3, r4, #0x0
- add r3, #0x99
- ldrb r3, [r3, #0x0]
- add r0, r0, #0x1
- lsl r3, r3, #0x3
- add r3, r3, r1
- strb r3, [r2, #0x4]
- add r3, r4, #0x0
- add r3, #0x99
- ldrb r3, [r3, #0x0]
- lsl r3, r3, #0x3
- add r3, r3, r1
- add r3, #0x20
- strb r3, [r2, #0x5]
- add r3, r4, #0x0
- add r3, #0x98
- ldrb r3, [r3, #0x0]
- add r1, #0x20
- lsl r3, r3, #0x3
- strb r3, [r2, #0x6]
- add r3, r4, #0x0
- add r3, #0x98
- ldrb r3, [r3, #0x0]
- lsl r3, r3, #0x3
- add r3, #0x30
- strb r3, [r2, #0x7]
- add r2, r2, #0x4
- cmp r0, #0x2
- blt _02014820
- add r0, r4, #0x0
- add r0, #0x84
- ldr r0, [r0, #0x0]
- ldr r2, _02014874 ; =FUN_02014878
- str r0, [sp, #0x0]
- add r0, r4, #0x4
- mov r1, #0x2
- add r3, r4, #0x0
- bl FUN_020220C4
- str r0, [r4, #0x0]
- add sp, #0x4
- pop {r3-r4, pc}
- .balign 4
-_02014874: .word FUN_02014878
-
- thumb_func_start FUN_02014878
-FUN_02014878: ; 0x02014878
- push {r4, lr}
- add r3, r2, #0x0
- add r3, #0x9b
- ldrb r3, [r3, #0x0]
- mov r4, #0xf0
- bic r3, r4
- lsl r4, r1, #0x18
- lsr r4, r4, #0x18
- lsl r4, r4, #0x1c
- lsr r4, r4, #0x18
- orr r4, r3
- add r3, r2, #0x0
- add r3, #0x9b
- strb r4, [r3, #0x0]
- cmp r1, #0x0
- bne _020148A2
- add r2, #0x9a
- strb r0, [r2, #0x0]
- ldr r0, _020148A4 ; =0x000005E4
- bl FUN_020054C8
-_020148A2:
- pop {r4, pc}
- .balign 4
-_020148A4: .word 0x000005E4
-
- thumb_func_start FUN_020148A8
-FUN_020148A8: ; 0x020148A8
- push {r3-r7, lr}
- sub sp, #0x10
- add r5, r1, #0x0
- str r2, [sp, #0x8]
- str r0, [sp, #0x4]
- ldr r1, [r5, #0x24]
- ldr r2, [r5, #0x28]
- add r0, #0x28
- bl FUN_020149FC
- ldr r1, [r5, #0x0]
- ldr r0, [sp, #0x4]
- ldr r6, [sp, #0x4]
- str r1, [r0, #0x0]
- ldr r1, [r5, #0x4]
- ldr r4, [sp, #0x4]
- str r1, [r0, #0x4]
- add r0, r5, #0x0
- add r0, #0x2c
- ldrb r1, [r0, #0x0]
- ldr r0, [sp, #0x4]
- add r6, #0x18
- add r0, #0x34
- strb r1, [r0, #0x0]
- add r0, r5, #0x0
- add r0, #0x2d
- ldrb r1, [r0, #0x0]
- ldr r0, [sp, #0x4]
- add r7, r5, #0x0
- add r0, #0x35
- strb r1, [r0, #0x0]
- mov r0, #0x0
- str r0, [sp, #0xc]
-_020148EA:
- ldr r0, [sp, #0x8]
- mov r2, #0x1
- str r0, [sp, #0x0]
- ldr r0, [r5, #0x8]
- ldr r1, [r7, #0xc]
- add r3, r6, #0x0
- bl FUN_02006BDC
- str r0, [r4, #0x8]
- ldr r0, [r4, #0x18]
- ldr r1, [r5, #0x1c]
- bl FUN_02014BA4
- ldr r0, [r4, #0x18]
- ldr r1, [r5, #0x20]
- bl FUN_02014BC4
- ldr r0, [sp, #0xc]
- add r6, r6, #0x4
- add r0, r0, #0x1
- add r7, r7, #0x4
- add r4, r4, #0x4
- str r0, [sp, #0xc]
- cmp r0, #0x4
- blt _020148EA
- ldr r0, [sp, #0x4]
- bl FUN_020149D0
- ldr r0, [sp, #0x4]
- mov r1, #0x0
- add r0, #0x36
- str r0, [sp, #0x4]
- strb r1, [r0, #0x0]
- add sp, #0x10
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02014930
-FUN_02014930: ; 0x02014930
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r0, #0x28
- bl FUN_02014A10
- add r4, r0, #0x0
- add r0, r5, #0x0
- add r0, #0x36
- ldrb r0, [r0, #0x0]
- cmp r0, r4
- beq _02014952
- add r0, r5, #0x0
- bl FUN_020149D0
- add r0, r5, #0x0
- add r0, #0x36
- strb r4, [r0, #0x0]
-_02014952:
- ldr r0, [r5, #0x2c]
- sub r0, r0, #0x1
- cmp r4, r0
- bne _0201495E
- mov r0, #0x1
- pop {r3-r5, pc}
-_0201495E:
- add r5, #0x28
- mov r1, #0x1
- add r0, r5, #0x0
- lsl r1, r1, #0xc
- bl FUN_02014A08
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02014970
-FUN_02014970: ; 0x02014970
- push {r4-r6, lr}
- sub sp, #0x10
- add r6, r0, #0x0
- add r0, #0x35
- ldrb r0, [r0, #0x0]
- ldr r1, [r6, #0x18]
- add r3, r6, #0x0
- str r0, [sp, #0x0]
- ldrh r0, [r1, #0x0]
- mov r2, #0x0
- add r3, #0x34
- lsl r0, r0, #0x15
- lsr r0, r0, #0x18
- str r0, [sp, #0x4]
- ldrh r0, [r1, #0x2]
- lsl r0, r0, #0x15
- lsr r0, r0, #0x18
- str r0, [sp, #0x8]
- str r2, [sp, #0xc]
- ldr r1, [r6, #0x4]
- ldrb r3, [r3, #0x0]
- lsl r1, r1, #0x18
- ldr r0, [r6, #0x0]
- lsr r1, r1, #0x18
- bl FUN_02018540
- ldr r1, [r6, #0x4]
- ldr r0, [r6, #0x0]
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- bl FUN_0201AC68
- mov r4, #0x0
- add r5, r6, #0x0
-_020149B4:
- ldr r0, [r5, #0x8]
- bl FUN_02016A18
- add r4, r4, #0x1
- add r5, r5, #0x4
- cmp r4, #0x4
- blt _020149B4
- add r0, r6, #0x0
- mov r1, #0x0
- mov r2, #0x38
- bl Call_FillMemWithValue
- add sp, #0x10
- pop {r4-r6, pc}
-
- thumb_func_start FUN_020149D0
-FUN_020149D0: ; 0x020149D0
- push {r3-r4, lr}
- sub sp, #0x4
- add r4, r0, #0x0
- add r0, #0x28
- bl FUN_02014A10
- add r2, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x35
- ldrb r0, [r0, #0x0]
- lsl r2, r2, #0x2
- add r2, r4, r2
- str r0, [sp, #0x0]
- ldr r0, [r4, #0x0]
- ldr r1, [r4, #0x4]
- add r4, #0x34
- ldrb r3, [r4, #0x0]
- ldr r2, [r2, #0x18]
- bl FUN_02014B58
- add sp, #0x4
- pop {r3-r4, pc}
-
- thumb_func_start FUN_020149FC
-FUN_020149FC: ; 0x020149FC
- str r1, [r0, #0x0]
- str r2, [r0, #0x4]
- mov r1, #0x0
- str r1, [r0, #0x8]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02014A08
-FUN_02014A08: ; 0x02014A08
- ldr r2, [r0, #0x8]
- add r1, r2, r1
- str r1, [r0, #0x8]
- bx lr
-
- thumb_func_start FUN_02014A10
-FUN_02014A10: ; 0x02014A10
- push {r4-r5}
- ldr r5, [r0, #0x4]
- mov r2, #0x0
- cmp r5, #0x0
- bls _02014A34
- ldr r3, [r0, #0x0]
- ldr r4, [r0, #0x8]
-_02014A1E:
- ldr r1, [r3, #0x0]
- cmp r1, r4
- blt _02014A2A
- add r0, r2, #0x0
- pop {r4-r5}
- bx lr
-_02014A2A:
- ldr r1, [r0, #0x4]
- add r2, r2, #0x1
- add r3, r3, #0x4
- cmp r2, r1
- blo _02014A1E
-_02014A34:
- sub r0, r5, #0x1
- pop {r4-r5}
- bx lr
- .balign 4
-
- thumb_func_start FUN_02014A3C
-FUN_02014A3C: ; 0x02014A3C
- push {r3-r7, lr}
- sub sp, #0x8
- add r7, r0, #0x0
- str r1, [sp, #0x4]
- ldr r0, [sp, #0x24]
- mov r1, #0x14
- add r5, r2, #0x0
- add r6, r3, #0x0
- bl FUN_02016998
- add r4, r0, #0x0
- add r2, r4, #0x0
- mov r1, #0x14
- mov r0, #0x0
-_02014A58:
- strb r0, [r2, #0x0]
- add r2, r2, #0x1
- sub r1, r1, #0x1
- bne _02014A58
- ldr r0, [sp, #0x24]
- ldr r1, [sp, #0x4]
- str r0, [sp, #0x0]
- add r0, r7, #0x0
- mov r2, #0x1
- add r3, r4, #0x4
- bl FUN_02006BB0
- str r0, [r4, #0x8]
- str r5, [r4, #0x0]
- ldr r0, [sp, #0x20]
- str r6, [r4, #0xc]
- str r0, [r4, #0x10]
- ldr r0, _02014A88 ; =FUN_02014AD4
- add r1, r4, #0x0
- mov r2, #0x80
- bl FUN_0200CA98
- add sp, #0x8
- pop {r3-r7, pc}
- .balign 4
-_02014A88: .word FUN_02014AD4
-
- thumb_func_start FUN_02014A8C
-FUN_02014A8C: ; 0x02014A8C
- push {r3-r7, lr}
- add r7, r0, #0x0
- str r1, [sp, #0x0]
- ldr r0, [sp, #0x1c]
- mov r1, #0x14
- add r5, r2, #0x0
- add r6, r3, #0x0
- bl FUN_02016998
- add r4, r0, #0x0
- add r2, r4, #0x0
- mov r1, #0x14
- mov r0, #0x0
-_02014AA6:
- strb r0, [r2, #0x0]
- add r2, r2, #0x1
- sub r1, r1, #0x1
- bne _02014AA6
- ldr r1, [sp, #0x0]
- ldr r3, [sp, #0x1c]
- add r0, r7, #0x0
- add r2, r4, #0x0
- bl FUN_02006C08
- str r0, [r4, #0x4]
- str r5, [r4, #0x8]
- ldr r0, [sp, #0x18]
- str r6, [r4, #0xc]
- str r0, [r4, #0x10]
- ldr r0, _02014AD0 ; =FUN_02014B10
- add r1, r4, #0x0
- mov r2, #0x80
- bl FUN_0200CA98
- pop {r3-r7, pc}
- .balign 4
-_02014AD0: .word FUN_02014B10
-
- thumb_func_start FUN_02014AD4
-FUN_02014AD4: ; 0x02014AD4
- push {r3-r5, lr}
- add r4, r1, #0x0
- ldr r1, [r4, #0x4]
- add r5, r0, #0x0
- ldr r0, [r1, #0x14]
- ldr r1, [r1, #0x10]
- bl DC_FlushRange
- ldr r3, [r4, #0x4]
- ldr r0, [r4, #0x10]
- str r0, [sp, #0x0]
- ldr r1, [r4, #0xc]
- ldr r2, [r3, #0x14]
- lsl r1, r1, #0x18
- ldr r0, [r4, #0x0]
- ldr r3, [r3, #0x10]
- lsr r1, r1, #0x18
- bl FUN_02017E14
- add r0, r5, #0x0
- bl FUN_0200CAB4
- ldr r0, [r4, #0x8]
- bl FUN_02016A18
- add r0, r4, #0x0
- bl FUN_02016A18
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02014B10
-FUN_02014B10: ; 0x02014B10
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- ldr r0, [r4, #0x0]
- ldr r1, [r4, #0x10]
- ldr r0, [r0, #0xc]
- bl DC_FlushRange
- ldr r0, [r4, #0x8]
- cmp r0, #0x0
- bne _02014B34
- ldr r0, [r4, #0x0]
- ldr r1, [r4, #0xc]
- ldr r0, [r0, #0xc]
- ldr r2, [r4, #0x10]
- bl GX_LoadBGPltt
- b _02014B44
-_02014B34:
- cmp r0, #0x4
- bne _02014B44
- ldr r0, [r4, #0x0]
- ldr r1, [r4, #0xc]
- ldr r0, [r0, #0xc]
- ldr r2, [r4, #0x10]
- bl GXS_LoadBGPltt
-_02014B44:
- add r0, r5, #0x0
- bl FUN_0200CAB4
- ldr r0, [r4, #0x4]
- bl FUN_02016A18
- add r0, r4, #0x0
- bl FUN_02016A18
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02014B58
-FUN_02014B58: ; 0x02014B58
- push {r3-r6, lr}
- sub sp, #0x1c
- add r4, r1, #0x0
- add r1, r2, #0x0
- add r2, r3, #0x0
- ldrh r6, [r1, #0x0]
- ldrh r3, [r1, #0x2]
- lsl r2, r2, #0x18
- lsl r6, r6, #0x15
- lsr r6, r6, #0x18
- lsl r3, r3, #0x15
- str r6, [sp, #0x0]
- lsr r3, r3, #0x18
- str r3, [sp, #0x4]
- add r1, #0xc
- str r1, [sp, #0x8]
- mov r1, #0x0
- str r1, [sp, #0xc]
- str r1, [sp, #0x10]
- str r6, [sp, #0x14]
- str r3, [sp, #0x18]
- ldr r3, [sp, #0x30]
- lsl r1, r4, #0x18
- lsl r3, r3, #0x18
- lsr r1, r1, #0x18
- lsr r2, r2, #0x18
- lsr r3, r3, #0x18
- add r5, r0, #0x0
- bl FUN_02018170
- lsl r1, r4, #0x18
- add r0, r5, #0x0
- lsr r1, r1, #0x18
- bl FUN_0201AC68
- add sp, #0x1c
- pop {r3-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02014BA4
-FUN_02014BA4: ; 0x02014BA4
- push {r3-r4}
- ldr r2, [r0, #0x8]
- add r0, #0xc
- lsr r4, r2, #0x1
- mov r3, #0x0
- cmp r4, #0x0
- ble _02014BC0
-_02014BB2:
- ldrh r2, [r0, #0x0]
- add r3, r3, #0x1
- add r2, r2, r1
- strh r2, [r0, #0x0]
- add r0, r0, #0x2
- cmp r3, r4
- blt _02014BB2
-_02014BC0:
- pop {r3-r4}
- bx lr
-
- thumb_func_start FUN_02014BC4
-FUN_02014BC4: ; 0x02014BC4
- push {r4-r5}
- ldr r2, [r0, #0x8]
- add r0, #0xc
- lsr r3, r2, #0x1
- mov r2, #0x0
- cmp r3, #0x0
- ble _02014BEA
- ldr r4, _02014BF0 ; =0x00000FFF
- lsl r1, r1, #0xc
-_02014BD6:
- ldrh r5, [r0, #0x0]
- add r2, r2, #0x1
- and r5, r4
- strh r5, [r0, #0x0]
- ldrh r5, [r0, #0x0]
- orr r5, r1
- strh r5, [r0, #0x0]
- add r0, r0, #0x2
- cmp r2, r3
- blt _02014BD6
-_02014BEA:
- pop {r4-r5}
- bx lr
- nop
-_02014BF0: .word 0x00000FFF
-
- thumb_func_start FUN_02014BF4
-FUN_02014BF4: ; 0x02014BF4
- push {r3-r7, lr}
- add r7, r1, #0x0
- mov r1, #0xc
- add r5, r0, #0x0
- add r6, r2, #0x0
- bl FUN_02016998
- add r4, r0, #0x0
- strb r6, [r4, #0x8]
- mov r0, #0x1d
- strb r7, [r4, #0x9]
- lsl r0, r0, #0x4
- add r6, r7, #0x0
- mul r6, r0
- add r0, r5, #0x0
- add r1, r6, #0x0
- str r5, [r4, #0x4]
- bl FUN_02016998
- mov r1, #0x0
- add r2, r6, #0x0
- str r0, [r4, #0x0]
- bl MI_CpuFill8
- add r0, r4, #0x0
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02014C28
-FUN_02014C28: ; 0x02014C28
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, [r4, #0x0]
- bl FUN_02016A18
- add r0, r4, #0x0
- bl FUN_02016A18
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02014C3C
-FUN_02014C3C: ; 0x02014C3C
- push {r4, lr}
- add r4, r0, #0x0
- cmp r4, #0x19
- blo _02014C48
- bl ErrorHandling
-_02014C48:
- ldr r0, _02014C50 ; =0x020ED64C
- ldrb r0, [r0, r4]
- pop {r4, pc}
- nop
-_02014C50: .word 0x020ED64C
-
- thumb_func_start FUN_02014C54
-FUN_02014C54: ; 0x02014C54
- push {r4-r7, lr}
- sub sp, #0xc
- add r5, r0, #0x0
- str r3, [sp, #0x4]
- add r0, r2, #0x0
- ldrh r6, [r0, #0x0]
- ldrh r0, [r0, #0x2]
- add r7, r1, #0x0
- ldrb r1, [r5, #0x9]
- str r0, [sp, #0x8]
- ldr r0, [sp, #0x4]
- str r2, [sp, #0x0]
- cmp r0, r1
- blo _02014C74
- bl ErrorHandling
-_02014C74:
- ldr r0, [sp, #0x4]
- mov r1, #0x1d
- add r4, r0, #0x0
- lsl r1, r1, #0x4
- ldr r0, [r5, #0x0]
- mul r4, r1
- add r0, r0, r4
- ldr r0, [r0, #0x10]
- cmp r0, #0x0
- beq _02014C8C
- bl ErrorHandling
-_02014C8C:
- ldr r0, [r5, #0x0]
- mov r2, #0x1d
- add r0, r0, r4
- mov r1, #0x0
- lsl r2, r2, #0x4
- bl MI_CpuFill8
- ldr r0, [r5, #0x0]
- mov r1, #0x1
- add r0, r0, r4
- str r1, [r0, #0x10]
- ldr r0, [r5, #0x0]
- cmp r6, #0x86
- str r7, [r0, r4]
- blt _02014CAE
- mov r6, #0x0
- str r6, [sp, #0x8]
-_02014CAE:
- ldr r0, [r5, #0x0]
- add r0, r0, r4
- str r6, [r0, #0x14]
- ldrb r0, [r5, #0x8]
- cmp r0, #0x0
- beq _02014CC0
- ldr r0, [sp, #0x0]
- ldrb r2, [r0, #0x4]
- b _02014CC2
-_02014CC0:
- mov r2, #0x0
-_02014CC2:
- ldr r0, [r5, #0x0]
- add r1, r0, r4
- mov r0, #0x73
- lsl r0, r0, #0x2
- strb r2, [r1, r0]
- ldr r1, [r5, #0x0]
- ldr r2, [r5, #0x4]
- add r1, r1, r4
- ldr r1, [r1, #0x14]
- mov r0, #0x5e
- bl FUN_02006528
- ldr r1, [r5, #0x0]
- mov r2, #0x0
- add r1, r1, r4
- str r0, [r1, #0x8]
- ldr r0, [r5, #0x0]
- mov r6, #0x1c
- add r1, r0, r4
- ldr r0, [r1, #0x8]
- str r0, [r1, #0xc]
- ldr r0, [r5, #0x0]
- add r0, r0, r4
- str r2, [r0, #0x1c]
- ldr r0, [r5, #0x0]
- add r0, r0, r4
- str r2, [r0, #0x20]
- ldr r0, [r5, #0x0]
- add r1, r0, r4
- ldr r0, _02014D74 ; =0x000001CD
- strb r2, [r1, r0]
- ldr r1, [r5, #0x0]
- add r3, r1, r4
- add r1, r0, #0x1
- strb r6, [r3, r1]
- ldr r1, [r5, #0x0]
- add r0, r0, #0x2
- add r1, r1, r4
- strb r2, [r1, r0]
- ldr r1, [r5, #0x0]
- ldr r0, _02014D78 ; =FUN_02014DD8
- add r1, r1, r4
- bl FUN_0200CA44
- ldr r1, [r5, #0x0]
- add r1, r1, r4
- str r0, [r1, #0x4]
- ldr r0, [r5, #0x0]
- add r1, r0, r4
- ldr r0, [sp, #0x8]
- str r0, [r1, #0x54]
- add r0, r7, #0x0
- mov r1, #0x0
- bl FUN_0200782C
- ldr r1, [r5, #0x0]
- add r1, r1, r4
- str r0, [r1, #0x58]
- add r0, r7, #0x0
- mov r1, #0x1
- bl FUN_0200782C
- ldr r1, [r5, #0x0]
- add r1, r1, r4
- str r0, [r1, #0x5c]
- ldr r1, [r5, #0x0]
- mov r0, #0x0
- add r1, r1, r4
- str r0, [r1, #0x60]
- ldr r1, [r5, #0x0]
- add r1, r1, r4
- str r0, [r1, #0x64]
- ldr r1, [r5, #0x0]
- add r1, r1, r4
- str r0, [r1, #0x68]
- ldr r1, [r5, #0x0]
- add r1, r1, r4
- str r0, [r1, #0x6c]
- ldr r1, [r5, #0x0]
- add r1, r1, r4
- str r0, [r1, #0x70]
- ldr r1, [r5, #0x0]
- add r1, r1, r4
- str r0, [r1, #0x74]
- ldr r1, [r5, #0x0]
- add r1, r1, r4
- str r0, [r1, #0x78]
- add sp, #0xc
- pop {r4-r7, pc}
- .balign 4
-_02014D74: .word 0x000001CD
-_02014D78: .word FUN_02014DD8
-
- thumb_func_start FUN_02014D7C
-FUN_02014D7C: ; 0x02014D7C
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldrb r0, [r5, #0x9]
- add r4, r1, #0x0
- cmp r4, r0
- blo _02014D8C
- bl ErrorHandling
-_02014D8C:
- mov r0, #0x1d
- lsl r0, r0, #0x4
- ldr r1, [r5, #0x0]
- mul r0, r4
- add r0, r1, r0
- ldr r0, [r0, #0x20]
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02014D9C
-FUN_02014D9C: ; 0x02014D9C
- push {r3-r5, lr}
- add r5, r0, #0x0
- mov r0, #0x1d
- lsl r0, r0, #0x4
- add r4, r1, #0x0
- mul r4, r0
- ldr r0, [r5, #0x0]
- add r0, r0, r4
- ldr r0, [r0, #0x4]
- cmp r0, #0x0
- beq _02014DD6
- bl FUN_0200CAB4
- ldr r1, [r5, #0x0]
- mov r0, #0x0
- add r1, r1, r4
- str r0, [r1, #0x4]
- ldr r1, [r5, #0x0]
- mov r2, #0x1
- add r1, r1, r4
- str r2, [r1, #0x20]
- ldr r1, [r5, #0x0]
- add r1, r1, r4
- str r0, [r1, #0x10]
- ldr r0, [r5, #0x0]
- add r0, r0, r4
- ldr r0, [r0, #0x8]
- bl FUN_02016A18
-_02014DD6:
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02014DD8
-FUN_02014DD8: ; 0x02014DD8
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- ldr r0, [r4, #0x54]
- cmp r0, #0x0
- bne _02014DEC
- add r0, r4, #0x0
- bl FUN_02014E10
- b _02014DF0
-_02014DEC:
- sub r0, r0, #0x1
- str r0, [r4, #0x54]
-_02014DF0:
- ldr r0, [r4, #0x1c]
- cmp r0, #0x0
- beq _02014E0E
- mov r0, #0x1
- str r0, [r4, #0x20]
- mov r0, #0x0
- str r0, [r4, #0x10]
- add r0, r5, #0x0
- bl FUN_0200CAB4
- mov r0, #0x0
- str r0, [r4, #0x4]
- ldr r0, [r4, #0x8]
- bl FUN_02016A18
-_02014E0E:
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02014E10
-FUN_02014E10: ; 0x02014E10
- push {r3-r7, lr}
- add r5, r0, #0x0
- mov r6, #0x0
- str r6, [r5, #0x18]
- add r7, r5, #0x0
- str r6, [r5, #0x44]
- add r4, r6, #0x0
- add r7, #0x7c
-_02014E20:
- mov r0, #0x54
- add r1, r4, #0x0
- mul r1, r0
- add r0, r7, r1
- ldr r1, [r7, r1]
- cmp r1, #0x0
- beq _02014E4E
- add r1, r0, #0x0
- add r1, #0x2d
- ldrb r1, [r1, #0x0]
- cmp r1, #0x0
- bne _02014E40
- ldr r2, [r0, #0x50]
- add r1, r5, #0x0
- blx r2
- b _02014E54
-_02014E40:
- add r1, r0, #0x0
- add r1, #0x2d
- ldrb r1, [r1, #0x0]
- add r0, #0x2d
- sub r1, r1, #0x1
- strb r1, [r0, #0x0]
- b _02014E54
-_02014E4E:
- add r0, r6, #0x1
- lsl r0, r0, #0x18
- lsr r6, r0, #0x18
-_02014E54:
- add r0, r4, #0x1
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
- cmp r4, #0x4
- blo _02014E20
- cmp r6, #0x4
- bne _02014E68
- ldr r0, _02014EFC ; =0x000001CD
- mov r1, #0x0
- strb r1, [r5, r0]
-_02014E68:
- ldr r0, _02014EFC ; =0x000001CD
- ldrb r1, [r5, r0]
- cmp r1, #0x0
- beq _02014E7E
- add r0, r5, #0x0
- bl FUN_020156E8
- add r0, r5, #0x0
- bl FUN_02015730
- pop {r3-r7, pc}
-_02014E7E:
- add r0, r0, #0x2
- ldrb r0, [r5, r0]
- cmp r0, #0x0
- beq _02014E96
- ldr r0, [r5, #0x0]
- bl FUN_02007F20
- cmp r0, #0x0
- bne _02014EF8
- ldr r0, _02014F00 ; =0x000001CF
- mov r1, #0x0
- strb r1, [r5, r0]
-_02014E96:
- add r6, r5, #0x0
- add r4, r5, #0x0
- ldr r7, _02014F04 ; =0x020ED6A4
- add r6, #0xc
- add r4, #0x44
-_02014EA0:
- ldr r0, [r4, #0x0]
- add r0, r0, #0x1
- str r0, [r4, #0x0]
- ldr r0, [r5, #0xc]
- ldr r0, [r0, #0x0]
- cmp r0, #0x22
- blo _02014EB2
- bl ErrorHandling
-_02014EB2:
- ldr r1, [r5, #0xc]
- add r0, r5, #0x0
- ldr r1, [r1, #0x0]
- lsl r1, r1, #0x2
- ldr r1, [r7, r1]
- blx r1
- ldr r0, [r5, #0x1c]
- cmp r0, #0x0
- bne _02014EF8
- ldr r0, [r6, #0x0]
- add r0, r0, #0x4
- str r0, [r6, #0x0]
- ldr r0, [r5, #0x18]
- cmp r0, #0x0
- bne _02014EF8
- ldr r0, _02014EFC ; =0x000001CD
- ldrb r0, [r5, r0]
- cmp r0, #0x0
- beq _02014EE6
- add r0, r5, #0x0
- bl FUN_020156E8
- add r0, r5, #0x0
- bl FUN_02015730
- pop {r3-r7, pc}
-_02014EE6:
- mov r0, #0x1
- ldr r1, [r5, #0x44]
- lsl r0, r0, #0x8
- cmp r1, r0
- blt _02014EA0
- bl ErrorHandling
- mov r0, #0x1
- str r0, [r5, #0x1c]
-_02014EF8:
- pop {r3-r7, pc}
- nop
-_02014EFC: .word 0x000001CD
-_02014F00: .word 0x000001CF
-_02014F04: .word 0x020ED6A4
-
- thumb_func_start FUN_02014F08
-FUN_02014F08: ; 0x02014F08
- push {r4, lr}
- lsl r1, r1, #0x2
- ldr r4, [r0, r1]
- cmp r2, #0x1
- beq _02014F16
- bl ErrorHandling
-_02014F16:
- add r0, r4, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02014F1C
-FUN_02014F1C: ; 0x02014F1C
- ldr r3, _02014F24 ; =FUN_02014F08
- add r2, r1, #0x0
- mov r1, #0x0
- bx r3
- .balign 4
-_02014F24: .word FUN_02014F08
-
- thumb_func_start FUN_02014F28
-FUN_02014F28: ; 0x02014F28
- ldr r3, _02014F30 ; =FUN_02014F1C
- mov r1, #0x1
- bx r3
- nop
-_02014F30: .word FUN_02014F1C
-
- thumb_func_start FUN_02014F34
-FUN_02014F34: ; 0x02014F34
- push {r3-r5, lr}
- add r5, r1, #0x0
- mov r3, #0x0
- add r0, #0x7c
- mov r2, #0x54
-_02014F3E:
- add r1, r3, #0x0
- mul r1, r2
- add r4, r0, r1
- ldr r1, [r0, r1]
- cmp r1, #0x0
- bne _02014F68
- add r0, r4, #0x0
- mov r1, #0x0
- mov r2, #0x54
- bl MI_CpuFill8
- mov r0, #0x1
- str r0, [r4, #0x0]
- mov r0, #0xc
- add r1, r5, #0x0
- mul r1, r0
- ldr r0, _02014F7C ; =0x020ED668
- ldr r0, [r0, r1]
- str r0, [r4, #0x50]
- add r0, r4, #0x0
- pop {r3-r5, pc}
-_02014F68:
- add r1, r3, #0x1
- lsl r1, r1, #0x18
- lsr r3, r1, #0x18
- cmp r3, #0x4
- blo _02014F3E
- bl ErrorHandling
- mov r0, #0x0
- pop {r3-r5, pc}
- nop
-_02014F7C: .word 0x020ED668
-
- thumb_func_start FUN_02014F80
-FUN_02014F80: ; 0x02014F80
- push {r4, lr}
- add r4, r1, #0x0
- ldr r1, [r0, #0xc]
- add r1, r1, #0x4
- str r1, [r0, #0xc]
- add r0, r1, #0x0
- bl FUN_02014F28
- str r0, [r4, #0x0]
- pop {r4, pc}
-
- thumb_func_start FUN_02014F94
-FUN_02014F94: ; 0x02014F94
- push {r4, lr}
- add r4, r1, #0x0
- ldr r1, [r0, #0xc]
- add r1, r1, #0x4
- str r1, [r0, #0xc]
- add r0, r1, #0x0
- bl FUN_02014F28
- strb r0, [r4, #0x0]
- pop {r4, pc}
-
- thumb_func_start FUN_02014FA8
-FUN_02014FA8: ; 0x02014FA8
- push {r4, lr}
- add r4, r1, #0x0
- ldr r1, [r0, #0xc]
- add r1, r1, #0x4
- str r1, [r0, #0xc]
- add r0, r1, #0x0
- bl FUN_02014F28
- strb r0, [r4, #0x0]
- ldrb r0, [r4, #0x0]
- cmp r0, #0x8
- blo _02014FC4
- bl ErrorHandling
-_02014FC4:
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02014FC8
-FUN_02014FC8: ; 0x02014FC8
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r2, #0x0
- bl FUN_02014FA8
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02014FA8
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02014FDC
-FUN_02014FDC: ; 0x02014FDC
- push {r3-r6, lr}
- sub sp, #0x4
- add r5, r0, #0x0
- add r4, r2, #0x0
- add r6, r3, #0x0
- bl FUN_02014FA8
- add r0, r5, #0x0
- add r1, sp, #0x0
- bl FUN_02014F94
- add r0, sp, #0x0
- ldrb r0, [r0, #0x0]
- cmp r0, #0x12
- bne _0201501C
- add r1, sp, #0x0
- add r0, r5, #0x0
- add r1, #0x2
- bl FUN_02014FA8
- add r0, sp, #0x0
- ldrb r0, [r0, #0x2]
- add r1, r6, #0x0
- lsl r0, r0, #0x2
- add r0, r5, r0
- ldr r0, [r0, #0x24]
- str r0, [r4, #0x0]
- add r0, r5, #0x0
- bl FUN_02014F80
- add sp, #0x4
- pop {r3-r6, pc}
-_0201501C:
- cmp r0, #0x13
- bne _02015048
- add r1, sp, #0x0
- add r2, sp, #0x0
- add r0, r5, #0x0
- add r1, #0x2
- add r2, #0x1
- bl FUN_02014FC8
- add r0, sp, #0x0
- ldrb r1, [r0, #0x2]
- add sp, #0x4
- lsl r1, r1, #0x2
- add r1, r5, r1
- ldr r1, [r1, #0x24]
- str r1, [r4, #0x0]
- ldrb r0, [r0, #0x1]
- lsl r0, r0, #0x2
- add r0, r5, r0
- ldr r0, [r0, #0x24]
- str r0, [r6, #0x0]
- pop {r3-r6, pc}
-_02015048:
- bl ErrorHandling
- add sp, #0x4
- pop {r3-r6, pc}
-
- thumb_func_start FUN_02015050
-FUN_02015050: ; 0x02015050
- push {r3-r6, lr}
- sub sp, #0x4
- add r5, r0, #0x0
- add r4, r2, #0x0
- add r6, r3, #0x0
- bl FUN_02014FA8
- add r1, sp, #0x0
- add r0, r5, #0x0
- add r1, #0x1
- bl FUN_02014F94
- add r0, r5, #0x0
- add r1, sp, #0x0
- bl FUN_02014F94
- add r0, sp, #0x0
- ldrb r0, [r0, #0x1]
- cmp r0, #0x12
- bne _02015082
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02014F80
- b _020150A2
-_02015082:
- cmp r0, #0x13
- bne _0201509E
- add r1, sp, #0x0
- add r0, r5, #0x0
- add r1, #0x3
- bl FUN_02014FA8
- add r0, sp, #0x0
- ldrb r0, [r0, #0x3]
- lsl r0, r0, #0x2
- add r0, r5, r0
- ldr r0, [r0, #0x24]
- str r0, [r4, #0x0]
- b _020150A2
-_0201509E:
- bl ErrorHandling
-_020150A2:
- add r0, sp, #0x0
- ldrb r0, [r0, #0x0]
- cmp r0, #0x12
- bne _020150B6
- add r0, r5, #0x0
- add r1, r6, #0x0
- bl FUN_02014F80
- add sp, #0x4
- pop {r3-r6, pc}
-_020150B6:
- cmp r0, #0x13
- bne _020150D4
- add r1, sp, #0x0
- add r0, r5, #0x0
- add r1, #0x2
- bl FUN_02014FA8
- add r0, sp, #0x0
- ldrb r0, [r0, #0x2]
- add sp, #0x4
- lsl r0, r0, #0x2
- add r0, r5, r0
- ldr r0, [r0, #0x24]
- str r0, [r6, #0x0]
- pop {r3-r6, pc}
-_020150D4:
- bl ErrorHandling
- add sp, #0x4
- pop {r3-r6, pc}
-
- thumb_func_start FUN_020150DC
-FUN_020150DC: ; 0x020150DC
- push {r3-r7, lr}
- sub sp, #0x8
- add r4, r2, #0x0
- add r2, sp, #0x0
- add r2, #0x3
- add r5, r0, #0x0
- add r6, r3, #0x0
- bl FUN_02014FC8
- add r0, sp, #0x0
- ldrb r0, [r0, #0x3]
- add r1, sp, #0x0
- lsl r0, r0, #0x2
- add r0, r5, r0
- ldr r7, [r0, #0x24]
- add r0, r5, #0x0
- bl FUN_02014F94
- add r0, sp, #0x0
- ldrb r0, [r0, #0x0]
- cmp r0, #0x14
- bne _02015112
- add r0, r5, #0x0
- add r1, r6, #0x0
- bl FUN_02014F80
- b _02015132
-_02015112:
- cmp r0, #0x15
- bne _0201512E
- add r1, sp, #0x0
- add r0, r5, #0x0
- add r1, #0x2
- bl FUN_02014FA8
- add r0, sp, #0x0
- ldrb r0, [r0, #0x2]
- lsl r0, r0, #0x2
- add r0, r5, r0
- ldr r0, [r0, #0x24]
- str r0, [r6, #0x0]
- b _02015132
-_0201512E:
- bl ErrorHandling
-_02015132:
- add r0, r5, #0x0
- add r1, sp, #0x0
- bl FUN_02014F94
- add r0, sp, #0x0
- ldrb r0, [r0, #0x0]
- cmp r0, #0x14
- bne _0201514C
- add r0, r5, #0x0
- add r1, sp, #0x4
- bl FUN_02014F80
- b _0201516C
-_0201514C:
- cmp r0, #0x15
- bne _02015168
- add r1, sp, #0x0
- add r0, r5, #0x0
- add r1, #0x1
- bl FUN_02014FA8
- add r0, sp, #0x0
- ldrb r0, [r0, #0x1]
- lsl r0, r0, #0x2
- add r0, r5, r0
- ldr r0, [r0, #0x24]
- str r0, [sp, #0x4]
- b _0201516C
-_02015168:
- bl ErrorHandling
-_0201516C:
- ldr r0, [sp, #0x4]
- add r0, r7, r0
- lsr r2, r0, #0x1f
- lsl r1, r0, #0x10
- sub r1, r1, r2
- mov r0, #0x10
- ror r1, r0
- add r0, r2, r1
- str r0, [r4, #0x0]
- add sp, #0x8
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02015184
-FUN_02015184: ; 0x02015184
- ldr r2, [r0, #0x0]
- ldr r0, [r1, #0x0]
- sub r0, r2, r0
- bpl _02015190
- mov r0, #0xf
- bx lr
-_02015190:
- cmp r0, #0x0
- ble _02015198
- mov r0, #0x10
- bx lr
-_02015198:
- mov r0, #0x11
- bx lr
-
- thumb_func_start FUN_0201519C
-FUN_0201519C: ; 0x0201519C
- add r2, r0, #0x0
- ldr r0, [r2, #0x0]
- ldr r2, [r2, #0x74]
- mov r1, #0x1
- neg r3, r2
- asr r2, r3, #0x2
- lsr r2, r2, #0x1d
- add r2, r3, r2
- ldr r3, _020151B4 ; =FUN_020079E0
- asr r2, r2, #0x3
- bx r3
- nop
-_020151B4: .word FUN_020079E0
-
- thumb_func_start FUN_020151B8
-FUN_020151B8: ; 0x020151B8
- push {r4, lr}
- add r4, r0, #0x0
- bl FUN_020151D0
- mov r0, #0x1
- str r0, [r4, #0x18]
- str r0, [r4, #0x1c]
- pop {r4, pc}
-
- thumb_func_start FUN_020151C8
-FUN_020151C8: ; 0x020151C8
- mov r1, #0x1
- str r1, [r0, #0x18]
- bx lr
- .balign 4
-
- thumb_func_start FUN_020151D0
-FUN_020151D0: ; 0x020151D0
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, [r4, #0x0]
- ldr r2, [r4, #0x58]
- mov r1, #0x0
- bl FUN_02007558
- ldr r0, [r4, #0x0]
- ldr r2, [r4, #0x5c]
- mov r1, #0x1
- bl FUN_02007558
- ldr r0, [r4, #0x0]
- mov r1, #0x9
- mov r2, #0x0
- bl FUN_02007558
- ldr r0, [r4, #0x0]
- mov r1, #0xa
- mov r2, #0x0
- bl FUN_02007558
- mov r1, #0xc
- add r2, r1, #0x0
- ldr r0, [r4, #0x0]
- add r2, #0xf4
- bl FUN_02007558
- mov r1, #0xd
- add r2, r1, #0x0
- ldr r0, [r4, #0x0]
- add r2, #0xf3
- bl FUN_02007558
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02015218
-FUN_02015218: ; 0x02015218
- push {r3-r4, lr}
- sub sp, #0x4
- add r1, sp, #0x0
- add r1, #0x1
- add r2, sp, #0x0
- add r4, r0, #0x0
- bl FUN_02014FC8
- add r0, sp, #0x0
- ldrb r1, [r0, #0x0]
- ldrb r0, [r0, #0x1]
- lsl r1, r1, #0x2
- add r1, r4, r1
- lsl r0, r0, #0x2
- ldr r1, [r1, #0x24]
- add r0, r4, r0
- str r1, [r0, #0x24]
- add sp, #0x4
- pop {r3-r4, pc}
- .balign 4
-
- thumb_func_start FUN_02015240
-FUN_02015240: ; 0x02015240
- push {r3-r4, lr}
- sub sp, #0xc
- add r1, sp, #0x0
- add r2, sp, #0x8
- add r3, sp, #0x4
- add r4, r0, #0x0
- bl FUN_02014FDC
- ldr r1, [sp, #0x8]
- ldr r0, [sp, #0x4]
- add r1, r1, r0
- add r0, sp, #0x0
- ldrb r0, [r0, #0x0]
- lsl r0, r0, #0x2
- add r0, r4, r0
- str r1, [r0, #0x24]
- add sp, #0xc
- pop {r3-r4, pc}
-
- thumb_func_start FUN_02015264
-FUN_02015264: ; 0x02015264
- push {r3-r4, lr}
- sub sp, #0xc
- add r1, sp, #0x0
- add r2, sp, #0x8
- add r3, sp, #0x4
- add r4, r0, #0x0
- bl FUN_02014FDC
- ldr r1, [sp, #0x8]
- ldr r0, [sp, #0x4]
- add r2, r1, #0x0
- mul r2, r0
- add r0, sp, #0x0
- ldrb r0, [r0, #0x0]
- lsl r0, r0, #0x2
- add r0, r4, r0
- str r2, [r0, #0x24]
- add sp, #0xc
- pop {r3-r4, pc}
- .balign 4
-
- thumb_func_start FUN_0201528C
-FUN_0201528C: ; 0x0201528C
- push {r3-r4, lr}
- sub sp, #0xc
- add r1, sp, #0x0
- add r2, sp, #0x8
- add r3, sp, #0x4
- add r4, r0, #0x0
- bl FUN_02015050
- ldr r1, [sp, #0x8]
- ldr r0, [sp, #0x4]
- sub r1, r1, r0
- add r0, sp, #0x0
- ldrb r0, [r0, #0x0]
- lsl r0, r0, #0x2
- add r0, r4, r0
- str r1, [r0, #0x24]
- add sp, #0xc
- pop {r3-r4, pc}
-
- thumb_func_start FUN_020152B0
-FUN_020152B0: ; 0x020152B0
- push {r3-r4, lr}
- sub sp, #0xc
- add r1, sp, #0x0
- add r2, sp, #0x8
- add r3, sp, #0x4
- add r4, r0, #0x0
- bl FUN_02015050
- ldr r0, [sp, #0x8]
- ldr r1, [sp, #0x4]
- bl _s32_div_f
- add r1, sp, #0x0
- ldrb r1, [r1, #0x0]
- lsl r1, r1, #0x2
- add r1, r4, r1
- str r0, [r1, #0x24]
- add sp, #0xc
- pop {r3-r4, pc}
- .balign 4
-
- thumb_func_start FUN_020152D8
-FUN_020152D8: ; 0x020152D8
- push {r3-r4, lr}
- sub sp, #0xc
- add r1, sp, #0x0
- add r2, sp, #0x8
- add r3, sp, #0x4
- add r4, r0, #0x0
- bl FUN_02015050
- ldr r0, [sp, #0x8]
- ldr r1, [sp, #0x4]
- bl _s32_div_f
- add r0, sp, #0x0
- ldrb r0, [r0, #0x0]
- lsl r0, r0, #0x2
- add r0, r4, r0
- str r1, [r0, #0x24]
- add sp, #0xc
- pop {r3-r4, pc}
- .balign 4
-
- thumb_func_start FUN_02015300
-FUN_02015300: ; 0x02015300
- push {r3-r5, lr}
- sub sp, #0x10
- add r1, sp, #0x0
- add r5, r0, #0x0
- bl FUN_02014F94
- add r0, sp, #0x0
- ldrb r0, [r0, #0x0]
- cmp r0, #0x14
- bne _02015334
- add r1, sp, #0x0
- add r0, r5, #0x0
- add r1, #0x3
- bl FUN_02014FA8
- add r0, sp, #0x0
- ldrb r0, [r0, #0x3]
- add r1, sp, #0x8
- lsl r0, r0, #0x2
- add r0, r5, r0
- ldr r0, [r0, #0x24]
- str r0, [sp, #0xc]
- add r0, r5, #0x0
- bl FUN_02014F80
- b _02015362
-_02015334:
- cmp r0, #0x15
- bne _0201535E
- add r1, sp, #0x0
- add r2, sp, #0x0
- add r0, r5, #0x0
- add r1, #0x3
- add r2, #0x2
- bl FUN_02014FC8
- add r0, sp, #0x0
- ldrb r1, [r0, #0x3]
- lsl r1, r1, #0x2
- add r1, r5, r1
- ldr r1, [r1, #0x24]
- str r1, [sp, #0xc]
- ldrb r0, [r0, #0x2]
- lsl r0, r0, #0x2
- add r0, r5, r0
- ldr r0, [r0, #0x24]
- str r0, [sp, #0x8]
- b _02015362
-_0201535E:
- bl ErrorHandling
-_02015362:
- add r1, sp, #0x0
- add r0, r5, #0x0
- add r1, #0x1
- bl FUN_02014F94
- add r0, sp, #0x0
- ldrb r0, [r0, #0x1]
- cmp r0, #0x11
- bls _02015378
- bl ErrorHandling
-_02015378:
- add r0, sp, #0xc
- add r1, sp, #0x8
- bl FUN_02015184
- add r4, r0, #0x0
- add r0, r5, #0x0
- add r1, sp, #0x0
- bl FUN_02014F94
- add r0, sp, #0x0
- ldrb r0, [r0, #0x0]
- cmp r0, #0x14
- bne _020153A6
- add r1, sp, #0x0
- add r0, r5, #0x0
- add r1, #0x3
- bl FUN_02014FA8
- add r0, r5, #0x0
- add r1, sp, #0x4
- bl FUN_02014F80
- b _020153CA
-_020153A6:
- cmp r0, #0x15
- bne _020153C6
- add r1, sp, #0x0
- add r2, sp, #0x0
- add r0, r5, #0x0
- add r1, #0x3
- add r2, #0x2
- bl FUN_02014FC8
- add r0, sp, #0x0
- ldrb r0, [r0, #0x2]
- lsl r0, r0, #0x2
- add r0, r5, r0
- ldr r0, [r0, #0x24]
- str r0, [sp, #0x4]
- b _020153CA
-_020153C6:
- bl ErrorHandling
-_020153CA:
- add r0, sp, #0x0
- ldrb r1, [r0, #0x1]
- cmp r1, r4
- bne _020153DC
- ldrb r0, [r0, #0x3]
- ldr r1, [sp, #0x4]
- lsl r0, r0, #0x2
- add r0, r5, r0
- str r1, [r0, #0x24]
-_020153DC:
- add sp, #0x10
- pop {r3-r5, pc}
-
- thumb_func_start FUN_020153E0
-FUN_020153E0: ; 0x020153E0
- push {r3-r4, lr}
- sub sp, #0x4
- add r4, r0, #0x0
- add r1, sp, #0x0
- bl FUN_02014FA8
- ldr r0, [r4, #0xc]
- add r0, r0, #0x4
- str r0, [r4, #0xc]
- bl FUN_02014F28
- add r1, sp, #0x0
- ldrb r1, [r1, #0x0]
- lsl r1, r1, #0x2
- add r1, r4, r1
- str r0, [r1, #0x24]
- add sp, #0x4
- pop {r3-r4, pc}
-
- thumb_func_start FUN_02015404
-FUN_02015404: ; 0x02015404
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, [r4, #0x50]
- cmp r0, #0x0
- beq _02015412
- bl ErrorHandling
-_02015412:
- ldr r0, [r4, #0xc]
- add r0, r0, #0x4
- str r0, [r4, #0xc]
- str r0, [r4, #0x50]
- ldr r0, [r4, #0xc]
- bl FUN_02014F28
- str r0, [r4, #0x48]
- mov r0, #0x0
- str r0, [r4, #0x4c]
- pop {r4, pc}
-
- thumb_func_start FUN_02015428
-FUN_02015428: ; 0x02015428
- ldr r1, [r0, #0x4c]
- add r2, r1, #0x1
- str r2, [r0, #0x4c]
- ldr r1, [r0, #0x48]
- cmp r2, r1
- blt _0201543E
- mov r1, #0x0
- str r1, [r0, #0x50]
- str r1, [r0, #0x4c]
- str r1, [r0, #0x48]
- bx lr
-_0201543E:
- ldr r1, [r0, #0x50]
- str r1, [r0, #0xc]
- bx lr
-
- thumb_func_start FUN_02015444
-FUN_02015444: ; 0x02015444
- push {r4, lr}
- sub sp, #0x8
- add r4, r0, #0x0
- add r1, sp, #0x4
- bl FUN_02014F80
- add r0, r4, #0x0
- add r1, sp, #0x0
- bl FUN_02014FA8
- add r2, sp, #0x0
- ldrb r2, [r2, #0x0]
- ldr r0, [r4, #0x0]
- ldr r1, [sp, #0x4]
- lsl r2, r2, #0x2
- add r2, r4, r2
- ldr r2, [r2, #0x24]
- bl FUN_02007558
- add sp, #0x8
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02015470
-FUN_02015470: ; 0x02015470
- push {r4, lr}
- sub sp, #0x8
- add r4, r0, #0x0
- add r1, sp, #0x4
- bl FUN_02014F80
- add r0, r4, #0x0
- add r1, sp, #0x0
- bl FUN_02014FA8
- add r2, sp, #0x0
- ldrb r2, [r2, #0x0]
- ldr r0, [r4, #0x0]
- ldr r1, [sp, #0x4]
- lsl r2, r2, #0x2
- add r2, r4, r2
- ldr r2, [r2, #0x24]
- bl FUN_020079E0
- add sp, #0x8
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0201549C
-FUN_0201549C: ; 0x0201549C
- push {r3-r4, lr}
- sub sp, #0xc
- add r1, sp, #0x8
- add r4, r0, #0x0
- bl FUN_02014F80
- add r1, sp, #0x0
- add r0, r4, #0x0
- add r1, #0x1
- bl FUN_02014F94
- add r0, sp, #0x0
- ldrb r0, [r0, #0x1]
- cmp r0, #0x14
- bne _020154C4
- add r0, r4, #0x0
- add r1, sp, #0x4
- bl FUN_02014F80
- b _020154E4
-_020154C4:
- cmp r0, #0x15
- bne _020154E0
- add r1, sp, #0x0
- add r0, r4, #0x0
- add r1, #0x2
- bl FUN_02014FA8
- add r0, sp, #0x0
- ldrb r0, [r0, #0x2]
- lsl r0, r0, #0x2
- add r0, r4, r0
- ldr r0, [r0, #0x24]
- str r0, [sp, #0x4]
- b _020154E4
-_020154E0:
- bl ErrorHandling
-_020154E4:
- add r0, r4, #0x0
- add r1, sp, #0x0
- bl FUN_02014F94
- add r0, sp, #0x0
- ldrb r0, [r0, #0x0]
- cmp r0, #0x16
- bne _02015502
- ldr r0, [r4, #0x0]
- ldr r1, [sp, #0x8]
- ldr r2, [sp, #0x4]
- bl FUN_02007558
- add sp, #0xc
- pop {r3-r4, pc}
-_02015502:
- cmp r0, #0x17
- bne _02015514
- ldr r0, [r4, #0x0]
- ldr r1, [sp, #0x8]
- ldr r2, [sp, #0x4]
- bl FUN_020079E0
- add sp, #0xc
- pop {r3-r4, pc}
-_02015514:
- bl ErrorHandling
- add sp, #0xc
- pop {r3-r4, pc}
-
- thumb_func_start FUN_0201551C
-FUN_0201551C: ; 0x0201551C
- push {r3-r4, lr}
- sub sp, #0xc
- add r1, sp, #0x0
- add r2, sp, #0x8
- add r3, sp, #0x4
- add r4, r0, #0x0
- bl FUN_020150DC
- ldr r0, [sp, #0x8]
- ldr r2, [sp, #0x4]
- asr r0, r0, #0x4
- lsl r1, r0, #0x2
- ldr r0, _0201554C ; =0x020FFA38
- ldrsh r0, [r0, r1]
- mul r0, r2
- asr r1, r0, #0xc
- add r0, sp, #0x0
- ldrb r0, [r0, #0x0]
- lsl r0, r0, #0x2
- add r0, r4, r0
- str r1, [r0, #0x24]
- add sp, #0xc
- pop {r3-r4, pc}
- nop
-_0201554C: .word 0x020FFA38
-
- thumb_func_start FUN_02015550
-FUN_02015550: ; 0x02015550
- push {r3-r4, lr}
- sub sp, #0xc
- add r1, sp, #0x0
- add r2, sp, #0x8
- add r3, sp, #0x4
- add r4, r0, #0x0
- bl FUN_020150DC
- ldr r1, [sp, #0x8]
- ldr r0, [sp, #0x4]
- asr r1, r1, #0x4
- lsl r1, r1, #0x1
- add r1, r1, #0x1
- lsl r2, r1, #0x1
- ldr r1, _02015584 ; =0x020FFA38
- ldrsh r1, [r1, r2]
- mul r1, r0
- add r0, sp, #0x0
- ldrb r0, [r0, #0x0]
- asr r1, r1, #0xc
- lsl r0, r0, #0x2
- add r0, r4, r0
- str r1, [r0, #0x24]
- add sp, #0xc
- pop {r3-r4, pc}
- nop
-_02015584: .word 0x020FFA38
-
- thumb_func_start FUN_02015588
-FUN_02015588: ; 0x02015588
- push {r3-r4, lr}
- sub sp, #0x4
- add r1, sp, #0x0
- add r4, r0, #0x0
- add r1, #0x1
- bl FUN_02014FA8
- add r0, r4, #0x0
- add r1, sp, #0x0
- bl FUN_02014F94
- add r0, sp, #0x0
- ldrb r1, [r0, #0x0]
- cmp r1, #0x8
- bne _020155B4
- ldrb r0, [r0, #0x1]
- add sp, #0x4
- lsl r0, r0, #0x2
- add r0, r4, r0
- ldr r0, [r0, #0x24]
- str r0, [r4, #0x60]
- pop {r3-r4, pc}
-_020155B4:
- cmp r1, #0x9
- bne _020155C6
- ldrb r0, [r0, #0x1]
- add sp, #0x4
- lsl r0, r0, #0x2
- add r0, r4, r0
- ldr r0, [r0, #0x24]
- str r0, [r4, #0x64]
- pop {r3-r4, pc}
-_020155C6:
- bl ErrorHandling
- add sp, #0x4
- pop {r3-r4, pc}
- .balign 4
-
- thumb_func_start FUN_020155D0
-FUN_020155D0: ; 0x020155D0
- push {r3-r4, lr}
- sub sp, #0x4
- add r1, sp, #0x0
- add r4, r0, #0x0
- add r1, #0x1
- bl FUN_02014FA8
- add r0, r4, #0x0
- add r1, sp, #0x0
- bl FUN_02014F94
- add r0, sp, #0x0
- ldrb r1, [r0, #0x0]
- cmp r1, #0x8
- bne _02015600
- ldrb r0, [r0, #0x1]
- ldr r1, [r4, #0x60]
- add sp, #0x4
- lsl r0, r0, #0x2
- add r0, r4, r0
- ldr r0, [r0, #0x24]
- add r0, r1, r0
- str r0, [r4, #0x60]
- pop {r3-r4, pc}
-_02015600:
- cmp r1, #0x9
- bne _02015616
- ldrb r0, [r0, #0x1]
- ldr r1, [r4, #0x64]
- add sp, #0x4
- lsl r0, r0, #0x2
- add r0, r4, r0
- ldr r0, [r0, #0x24]
- add r0, r1, r0
- str r0, [r4, #0x64]
- pop {r3-r4, pc}
-_02015616:
- bl ErrorHandling
- add sp, #0x4
- pop {r3-r4, pc}
- .balign 4
-
- thumb_func_start FUN_02015620
-FUN_02015620: ; 0x02015620
- push {r3-r5, lr}
- sub sp, #0x8
- add r1, sp, #0x0
- add r1, #0x3
- add r5, r0, #0x0
- bl FUN_02014F94
- add r0, sp, #0x0
- ldrb r0, [r0, #0x3]
- cmp r0, #0x8
- bne _0201563C
- add r4, r5, #0x0
- add r4, #0x60
- b _0201567C
-_0201563C:
- cmp r0, #0x9
- bne _02015646
- add r4, r5, #0x0
- add r4, #0x64
- b _0201567C
-_02015646:
- cmp r0, #0xa
- bne _02015650
- add r4, r5, #0x0
- add r4, #0x68
- b _0201567C
-_02015650:
- cmp r0, #0xb
- bne _0201565A
- add r4, r5, #0x0
- add r4, #0x6c
- b _0201567C
-_0201565A:
- cmp r0, #0xc
- bne _02015664
- add r4, r5, #0x0
- add r4, #0x70
- b _0201567C
-_02015664:
- cmp r0, #0xd
- bne _0201566E
- add r4, r5, #0x0
- add r4, #0x74
- b _0201567C
-_0201566E:
- cmp r0, #0xe
- bne _02015678
- add r4, r5, #0x0
- add r4, #0x78
- b _0201567C
-_02015678:
- bl ErrorHandling
-_0201567C:
- add r1, sp, #0x0
- add r0, r5, #0x0
- add r1, #0x1
- bl FUN_02014F94
- add r0, sp, #0x0
- ldrb r0, [r0, #0x1]
- cmp r0, #0x14
- bne _02015698
- add r0, r5, #0x0
- add r1, sp, #0x4
- bl FUN_02014F80
- b _020156B8
-_02015698:
- cmp r0, #0x15
- bne _020156B4
- add r1, sp, #0x0
- add r0, r5, #0x0
- add r1, #0x2
- bl FUN_02014FA8
- add r0, sp, #0x0
- ldrb r0, [r0, #0x2]
- lsl r0, r0, #0x2
- add r0, r5, r0
- ldr r0, [r0, #0x24]
- str r0, [sp, #0x4]
- b _020156B8
-_020156B4:
- bl ErrorHandling
-_020156B8:
- add r0, r5, #0x0
- add r1, sp, #0x0
- bl FUN_02014F94
- add r0, sp, #0x0
- ldrb r0, [r0, #0x0]
- cmp r0, #0x16
- bne _020156D0
- ldr r0, [sp, #0x4]
- add sp, #0x8
- str r0, [r4, #0x0]
- pop {r3-r5, pc}
-_020156D0:
- cmp r0, #0x17
- bne _020156E0
- ldr r0, [sp, #0x4]
- ldr r1, [r4, #0x0]
- add sp, #0x8
- add r0, r1, r0
- str r0, [r4, #0x0]
- pop {r3-r5, pc}
-_020156E0:
- bl ErrorHandling
- add sp, #0x8
- pop {r3-r5, pc}
-
- thumb_func_start FUN_020156E8
-FUN_020156E8: ; 0x020156E8
- push {r3-r5, lr}
- add r4, r0, #0x0
- mov r0, #0x73
- lsl r0, r0, #0x2
- ldrb r0, [r4, r0]
- cmp r0, #0x0
- ldr r0, [r4, #0x0]
- beq _0201570A
- ldr r3, [r4, #0x60]
- ldr r2, [r4, #0x68]
- ldr r5, [r4, #0x58]
- add r2, r3, r2
- mov r1, #0x0
- sub r2, r5, r2
- bl FUN_02007558
- b _0201571A
-_0201570A:
- ldr r3, [r4, #0x58]
- ldr r2, [r4, #0x60]
- ldr r5, [r4, #0x68]
- add r2, r3, r2
- mov r1, #0x0
- add r2, r5, r2
- bl FUN_02007558
-_0201571A:
- ldr r3, [r4, #0x5c]
- ldr r2, [r4, #0x64]
- ldr r5, [r4, #0x6c]
- add r2, r3, r2
- ldr r0, [r4, #0x0]
- mov r1, #0x1
- add r2, r5, r2
- bl FUN_02007558
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02015730
-FUN_02015730: ; 0x02015730
- push {r4, lr}
- add r4, r0, #0x0
- mov r1, #0xc
- add r2, r1, #0x0
- ldr r3, [r4, #0x70]
- add r2, #0xf4
- ldr r0, [r4, #0x0]
- add r2, r3, r2
- bl FUN_02007558
- mov r1, #0xd
- add r2, r1, #0x0
- ldr r3, [r4, #0x74]
- add r2, #0xf3
- ldr r0, [r4, #0x0]
- add r2, r3, r2
- bl FUN_02007558
- ldr r2, [r4, #0x78]
- ldr r0, [r4, #0x0]
- lsl r2, r2, #0x10
- mov r1, #0x9
- lsr r2, r2, #0x10
- bl FUN_02007558
- ldr r0, _02015794 ; =0x000001CE
- ldrb r0, [r4, r0]
- cmp r0, #0x1b
- bne _02015778
- ldr r0, [r4, #0x74]
- cmp r0, #0x0
- bge _02015792
- add r0, r4, #0x0
- bl FUN_0201519C
- pop {r4, pc}
-_02015778:
- cmp r0, #0x1d
- bne _0201578A
- ldr r0, [r4, #0x74]
- cmp r0, #0x0
- beq _02015792
- add r0, r4, #0x0
- bl FUN_0201519C
- pop {r4, pc}
-_0201578A:
- cmp r0, #0x1c
- beq _02015792
- bl ErrorHandling
-_02015792:
- pop {r4, pc}
- .balign 4
-_02015794: .word 0x000001CE
-
- thumb_func_start FUN_02015798
-FUN_02015798: ; 0x02015798
- push {r3-r4, lr}
- sub sp, #0x4
- add r4, r0, #0x0
- add r1, sp, #0x0
- bl FUN_02014FA8
- ldr r0, [r4, #0xc]
- add r0, r0, #0x4
- str r0, [r4, #0xc]
- bl FUN_02014F28
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- cmp r0, #0x8
- beq _020157BA
- cmp r0, #0xa
- bne _020157CA
-_020157BA:
- add r0, sp, #0x0
- ldrb r0, [r0, #0x0]
- add sp, #0x4
- lsl r0, r0, #0x2
- add r0, r4, r0
- ldr r0, [r0, #0x24]
- str r0, [r4, #0x68]
- pop {r3-r4, pc}
-_020157CA:
- cmp r0, #0x9
- beq _020157D2
- cmp r0, #0xb
- bne _020157E2
-_020157D2:
- add r0, sp, #0x0
- ldrb r0, [r0, #0x0]
- add sp, #0x4
- lsl r0, r0, #0x2
- add r0, r4, r0
- ldr r0, [r0, #0x24]
- str r0, [r4, #0x6c]
- pop {r3-r4, pc}
-_020157E2:
- bl ErrorHandling
- add sp, #0x4
- pop {r3-r4, pc}
- .balign 4
-
- thumb_func_start FUN_020157EC
-FUN_020157EC: ; 0x020157EC
- push {r4, lr}
- add r4, r0, #0x0
- add r1, r4, #0x0
- add r1, #0x54
- bl FUN_02014F80
- mov r0, #0x1
- str r0, [r4, #0x18]
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02015800
-FUN_02015800: ; 0x02015800
- push {r3-r4, lr}
- sub sp, #0xc
- add r1, sp, #0x4
- add r1, #0x2
- add r4, r0, #0x0
- bl FUN_02014F94
- add r1, sp, #0x4
- add r0, r4, #0x0
- add r1, #0x1
- bl FUN_02014F94
- add r0, r4, #0x0
- add r1, sp, #0x4
- bl FUN_02014F94
- add r0, r4, #0x0
- add r1, sp, #0x8
- bl FUN_02014F80
- ldr r0, [sp, #0x8]
- add r3, sp, #0x4
- str r0, [sp, #0x0]
- ldrb r1, [r3, #0x2]
- ldrb r2, [r3, #0x1]
- ldrb r3, [r3, #0x0]
- ldr r0, [r4, #0x0]
- bl FUN_02007E68
- add sp, #0xc
- pop {r3-r4, pc}
- .balign 4
-
- thumb_func_start FUN_02015840
-FUN_02015840: ; 0x02015840
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, [r4, #0x0]
- bl FUN_02007F20
- cmp r0, #0x0
- beq _02015856
- ldr r0, _02015858 ; =0x000001CF
- mov r1, #0x1
- strb r1, [r4, r0]
- str r1, [r4, #0x18]
-_02015856:
- pop {r4, pc}
- .balign 4
-_02015858: .word 0x000001CF
-
- thumb_func_start FUN_0201585C
-FUN_0201585C: ; 0x0201585C
- ldr r1, _02015864 ; =0x000001CD
- mov r2, #0x1
- strb r2, [r0, r1]
- bx lr
- .balign 4
-_02015864: .word 0x000001CD
-
- thumb_func_start FUN_02015868
-FUN_02015868: ; 0x02015868
- push {r4, lr}
- ldr r1, _0201589C ; =0x000001CE
- add r4, r0, #0x0
- add r1, r4, r1
- bl FUN_02014F94
- ldr r0, _0201589C ; =0x000001CE
- mov r1, #0x1
- ldrb r0, [r4, r0]
- add r2, r1, #0x0
- cmp r0, #0x1b
- beq _02015886
- cmp r0, #0x1d
- beq _02015886
- mov r2, #0x0
-_02015886:
- cmp r2, #0x0
- bne _02015890
- cmp r0, #0x1c
- beq _02015890
- mov r1, #0x0
-_02015890:
- cmp r1, #0x0
- bne _02015898
- bl ErrorHandling
-_02015898:
- pop {r4, pc}
- nop
-_0201589C: .word 0x000001CE
-
- thumb_func_start FUN_020158A0
-FUN_020158A0: ; 0x020158A0
- ldr r3, _020158A8 ; =FUN_0201598C
- mov r1, #0x0
- bx r3
- nop
-_020158A8: .word FUN_0201598C
-
- thumb_func_start FUN_020158AC
-FUN_020158AC: ; 0x020158AC
- ldr r3, _020158B4 ; =FUN_0201598C
- mov r1, #0x1
- bx r3
- nop
-_020158B4: .word FUN_0201598C
-
- thumb_func_start FUN_020158B8
-FUN_020158B8: ; 0x020158B8
- ldr r3, _020158C0 ; =FUN_0201598C
- mov r1, #0x2
- bx r3
- nop
-_020158C0: .word FUN_0201598C
-
- thumb_func_start FUN_020158C4
-FUN_020158C4: ; 0x020158C4
- ldr r3, _020158CC ; =FUN_0201598C
- mov r1, #0x3
- bx r3
- nop
-_020158CC: .word FUN_0201598C
-
- thumb_func_start FUN_020158D0
-FUN_020158D0: ; 0x020158D0
- ldr r3, _020158D8 ; =FUN_0201598C
- mov r1, #0x4
- bx r3
- nop
-_020158D8: .word FUN_0201598C
-
- thumb_func_start FUN_020158DC
-FUN_020158DC: ; 0x020158DC
- push {r3, lr}
- cmp r0, #0x18
- bne _020158E8
- ldr r0, [r2, #0x0]
- str r0, [r3, #0x0]
- pop {r3, pc}
-_020158E8:
- cmp r0, #0x19
- bne _020158F6
- ldr r1, [r1, #0x0]
- ldr r0, [r2, #0x0]
- add r0, r1, r0
- str r0, [r3, #0x0]
- pop {r3, pc}
-_020158F6:
- cmp r0, #0x1a
- bne _02015904
- ldr r1, [r3, #0x0]
- ldr r0, [r2, #0x0]
- add r0, r1, r0
- str r0, [r3, #0x0]
- pop {r3, pc}
-_02015904:
- bl ErrorHandling
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_0201590C
-FUN_0201590C: ; 0x0201590C
- push {r3, lr}
- sub r0, #0x23
- cmp r0, #0x4
- bhi _02015984
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02015920: ; jump table (using 16-bit offset)
- .short _0201592A - _02015920 - 2; case 0
- .short _0201593C - _02015920 - 2; case 1
- .short _0201594E - _02015920 - 2; case 2
- .short _02015960 - _02015920 - 2; case 3
- .short _02015972 - _02015920 - 2; case 4
-_0201592A:
- add r0, r1, #0x0
- add r0, #0x3c
- str r0, [r1, #0x24]
- add r0, r2, #0x0
- add r0, #0x68
- str r0, [r1, #0x28]
- ldr r0, [r2, #0x68]
- str r0, [r1, #0x30]
- pop {r3, pc}
-_0201593C:
- add r0, r1, #0x0
- add r0, #0x40
- str r0, [r1, #0x24]
- add r0, r2, #0x0
- add r0, #0x6c
- str r0, [r1, #0x28]
- ldr r0, [r2, #0x6c]
- str r0, [r1, #0x30]
- pop {r3, pc}
-_0201594E:
- add r0, r1, #0x0
- add r0, #0x44
- str r0, [r1, #0x24]
- add r0, r2, #0x0
- add r0, #0x70
- str r0, [r1, #0x28]
- ldr r0, [r2, #0x70]
- str r0, [r1, #0x30]
- pop {r3, pc}
-_02015960:
- add r0, r1, #0x0
- add r0, #0x48
- str r0, [r1, #0x24]
- add r0, r2, #0x0
- add r0, #0x74
- str r0, [r1, #0x28]
- ldr r0, [r2, #0x74]
- str r0, [r1, #0x30]
- pop {r3, pc}
-_02015972:
- add r0, r1, #0x0
- add r0, #0x4c
- str r0, [r1, #0x24]
- add r0, r2, #0x0
- add r0, #0x78
- str r0, [r1, #0x28]
- ldr r0, [r2, #0x78]
- str r0, [r1, #0x30]
- pop {r3, pc}
-_02015984:
- bl ErrorHandling
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_0201598C
-FUN_0201598C: ; 0x0201598C
- push {r3-r7, lr}
- sub sp, #0x8
- add r6, r1, #0x0
- lsl r1, r6, #0x18
- lsr r1, r1, #0x18
- add r5, r0, #0x0
- bl FUN_02014F34
- str r0, [sp, #0x4]
- ldr r1, [sp, #0x4]
- add r0, r5, #0x0
- add r1, #0x2c
- bl FUN_02014F94
- ldr r1, [sp, #0x4]
- add r0, r5, #0x0
- add r1, #0x2d
- bl FUN_02014F94
- mov r0, #0xc
- mul r0, r6
- ldr r1, _02015A28 ; =0x020ED66C
- str r0, [sp, #0x0]
- ldr r0, [r1, r0]
- mov r4, #0x0
- cmp r0, #0x0
- ble _020159E2
- ldr r1, _02015A2C ; =0x020ED668
- ldr r0, [sp, #0x0]
- add r6, r1, r0
- ldr r0, [sp, #0x4]
- add r7, r0, #0x4
-_020159CC:
- lsl r1, r4, #0x2
- add r0, r5, #0x0
- add r1, r7, r1
- bl FUN_02014F80
- add r0, r4, #0x1
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
- ldr r0, [r6, #0x4]
- cmp r4, r0
- blt _020159CC
-_020159E2:
- ldr r1, _02015A30 ; =0x020ED670
- ldr r0, [sp, #0x0]
- add r2, r5, #0x0
- ldr r0, [r1, r0]
- lsl r1, r0, #0x2
- ldr r0, [sp, #0x4]
- add r0, r0, r1
- ldr r0, [r0, #0x4]
- ldr r1, [sp, #0x4]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bl FUN_0201590C
- ldr r0, [sp, #0x4]
- add r0, #0x2d
- ldrb r0, [r0, #0x0]
- cmp r0, #0x0
- bne _02015A14
- ldr r0, [sp, #0x4]
- add r1, r5, #0x0
- add r2, r0, #0x0
- ldr r2, [r2, #0x50]
- blx r2
- add sp, #0x8
- pop {r3-r7, pc}
-_02015A14:
- ldr r0, [sp, #0x4]
- add r0, #0x2d
- ldrb r0, [r0, #0x0]
- sub r1, r0, #0x1
- ldr r0, [sp, #0x4]
- add r0, #0x2d
- str r0, [sp, #0x4]
- strb r1, [r0, #0x0]
- add sp, #0x8
- pop {r3-r7, pc}
- .balign 4
-_02015A28: .word 0x020ED66C
-_02015A2C: .word 0x020ED668
-_02015A30: .word 0x020ED670
-
- thumb_func_start FUN_02015A34
-FUN_02015A34: ; 0x02015A34
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, [r4, #0x1c]
- ldr r1, [r4, #0x10]
- add r0, r0, #0x1
- ldr r2, [r4, #0x14]
- mul r0, r1
- add r0, r2, r0
- lsl r0, r0, #0x10
- lsr r1, r0, #0x10
- ldr r0, [r4, #0x4]
- sub r0, #0x1e
- cmp r0, #0x3
- bhi _02015AC0
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02015A5C: ; jump table (using 16-bit offset)
- .short _02015A64 - _02015A5C - 2; case 0
- .short _02015A78 - _02015A5C - 2; case 1
- .short _02015A90 - _02015A5C - 2; case 2
- .short _02015AA6 - _02015A5C - 2; case 3
-_02015A64:
- asr r0, r1, #0x4
- lsl r1, r0, #0x2
- ldr r0, _02015AE8 ; =0x020FFA38
- ldr r2, [r4, #0xc]
- ldrsh r0, [r0, r1]
- mul r0, r2
- asr r1, r0, #0xc
- ldr r0, [r4, #0x24]
- str r1, [r0, #0x0]
- b _02015AC4
-_02015A78:
- asr r1, r1, #0x4
- lsl r1, r1, #0x1
- add r1, r1, #0x1
- lsl r2, r1, #0x1
- ldr r1, _02015AE8 ; =0x020FFA38
- ldr r0, [r4, #0xc]
- ldrsh r1, [r1, r2]
- mul r1, r0
- ldr r0, [r4, #0x24]
- asr r1, r1, #0xc
- str r1, [r0, #0x0]
- b _02015AC4
-_02015A90:
- asr r0, r1, #0x4
- lsl r1, r0, #0x2
- ldr r0, _02015AE8 ; =0x020FFA38
- ldr r2, [r4, #0xc]
- ldrsh r0, [r0, r1]
- mul r0, r2
- asr r0, r0, #0xc
- neg r1, r0
- ldr r0, [r4, #0x24]
- str r1, [r0, #0x0]
- b _02015AC4
-_02015AA6:
- asr r1, r1, #0x4
- lsl r1, r1, #0x1
- add r1, r1, #0x1
- lsl r2, r1, #0x1
- ldr r1, _02015AE8 ; =0x020FFA38
- ldr r0, [r4, #0xc]
- ldrsh r1, [r1, r2]
- mul r1, r0
- asr r0, r1, #0xc
- neg r1, r0
- ldr r0, [r4, #0x24]
- str r1, [r0, #0x0]
- b _02015AC4
-_02015AC0:
- bl ErrorHandling
-_02015AC4:
- add r0, r4, #0x0
- add r0, #0x2c
- ldrb r0, [r0, #0x0]
- add r1, r4, #0x0
- ldr r2, [r4, #0x24]
- ldr r3, [r4, #0x28]
- add r1, #0x30
- bl FUN_020158DC
- ldr r0, [r4, #0x1c]
- add r1, r0, #0x1
- str r1, [r4, #0x1c]
- ldr r0, [r4, #0x18]
- cmp r1, r0
- blt _02015AE6
- mov r0, #0x0
- str r0, [r4, #0x0]
-_02015AE6:
- pop {r4, pc}
- .balign 4
-_02015AE8: .word 0x020FFA38
-
- thumb_func_start FUN_02015AEC
-FUN_02015AEC: ; 0x02015AEC
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, [r4, #0x1c]
- ldr r1, [r4, #0x10]
- add r0, r0, #0x1
- mul r0, r1
- ldr r1, [r4, #0x18]
- bl _s32_div_f
- ldr r1, [r4, #0x14]
- add r0, r1, r0
- lsl r0, r0, #0x10
- lsr r1, r0, #0x10
- ldr r0, [r4, #0x4]
- sub r0, #0x1e
- cmp r0, #0x3
- bhi _02015B7E
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02015B1A: ; jump table (using 16-bit offset)
- .short _02015B22 - _02015B1A - 2; case 0
- .short _02015B36 - _02015B1A - 2; case 1
- .short _02015B4E - _02015B1A - 2; case 2
- .short _02015B64 - _02015B1A - 2; case 3
-_02015B22:
- asr r0, r1, #0x4
- lsl r1, r0, #0x2
- ldr r0, _02015BA8 ; =0x020FFA38
- ldr r2, [r4, #0xc]
- ldrsh r0, [r0, r1]
- mul r0, r2
- asr r1, r0, #0xc
- ldr r0, [r4, #0x24]
- str r1, [r0, #0x0]
- b _02015B82
-_02015B36:
- asr r1, r1, #0x4
- lsl r1, r1, #0x1
- add r1, r1, #0x1
- lsl r2, r1, #0x1
- ldr r1, _02015BA8 ; =0x020FFA38
- ldr r0, [r4, #0xc]
- ldrsh r1, [r1, r2]
- mul r1, r0
- ldr r0, [r4, #0x24]
- asr r1, r1, #0xc
- str r1, [r0, #0x0]
- b _02015B82
-_02015B4E:
- asr r0, r1, #0x4
- lsl r1, r0, #0x2
- ldr r0, _02015BA8 ; =0x020FFA38
- ldr r2, [r4, #0xc]
- ldrsh r0, [r0, r1]
- mul r0, r2
- asr r0, r0, #0xc
- neg r1, r0
- ldr r0, [r4, #0x24]
- str r1, [r0, #0x0]
- b _02015B82
-_02015B64:
- asr r1, r1, #0x4
- lsl r1, r1, #0x1
- add r1, r1, #0x1
- lsl r2, r1, #0x1
- ldr r1, _02015BA8 ; =0x020FFA38
- ldr r0, [r4, #0xc]
- ldrsh r1, [r1, r2]
- mul r1, r0
- asr r0, r1, #0xc
- neg r1, r0
- ldr r0, [r4, #0x24]
- str r1, [r0, #0x0]
- b _02015B82
-_02015B7E:
- bl ErrorHandling
-_02015B82:
- add r0, r4, #0x0
- add r0, #0x2c
- ldrb r0, [r0, #0x0]
- add r1, r4, #0x0
- ldr r2, [r4, #0x24]
- ldr r3, [r4, #0x28]
- add r1, #0x30
- bl FUN_020158DC
- ldr r0, [r4, #0x1c]
- add r1, r0, #0x1
- str r1, [r4, #0x1c]
- ldr r0, [r4, #0x18]
- cmp r1, r0
- blt _02015BA4
- mov r0, #0x0
- str r0, [r4, #0x0]
-_02015BA4:
- pop {r4, pc}
- nop
-_02015BA8: .word 0x020FFA38
-
- thumb_func_start FUN_02015BAC
-FUN_02015BAC: ; 0x02015BAC
- push {r3-r5, lr}
- add r4, r0, #0x0
- ldr r1, [r4, #0x24]
- ldr r3, [r4, #0xc]
- ldr r2, [r4, #0x14]
- ldr r5, [r4, #0x8]
- mul r2, r3
- ldr r0, [r1, #0x0]
- add r2, r5, r2
- add r0, r0, r2
- str r0, [r1, #0x0]
- add r0, r4, #0x0
- add r0, #0x2c
- add r1, r4, #0x0
- ldrb r0, [r0, #0x0]
- ldr r2, [r4, #0x24]
- ldr r3, [r4, #0x28]
- add r1, #0x30
- bl FUN_020158DC
- ldr r0, [r4, #0x14]
- add r1, r0, #0x1
- str r1, [r4, #0x14]
- ldr r0, [r4, #0x10]
- cmp r1, r0
- blt _02015BE4
- mov r0, #0x0
- str r0, [r4, #0x0]
-_02015BE4:
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02015BE8
-FUN_02015BE8: ; 0x02015BE8
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, [r4, #0x10]
- add r1, r0, #0x1
- ldr r0, [r4, #0x8]
- mul r0, r1
- ldr r1, [r4, #0xc]
- bl _s32_div_f
- ldr r1, [r4, #0x24]
- str r0, [r1, #0x0]
- add r0, r4, #0x0
- add r0, #0x2c
- add r1, r4, #0x0
- ldrb r0, [r0, #0x0]
- ldr r2, [r4, #0x24]
- ldr r3, [r4, #0x28]
- add r1, #0x30
- bl FUN_020158DC
- ldr r0, [r4, #0x10]
- add r1, r0, #0x1
- str r1, [r4, #0x10]
- ldr r0, [r4, #0xc]
- cmp r1, r0
- blt _02015C20
- mov r0, #0x0
- str r0, [r4, #0x0]
-_02015C20:
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02015C24
-FUN_02015C24: ; 0x02015C24
- push {r4, lr}
- add r4, r0, #0x0
- ldr r1, [r4, #0xc]
- ldr r0, [r4, #0x14]
- ldr r2, [r4, #0x8]
- mul r0, r1
- ldr r1, [r4, #0x24]
- add r2, r2, r0
- ldr r0, [r1, #0x0]
- add r0, r0, r2
- str r0, [r1, #0x0]
- add r0, r4, #0x0
- add r0, #0x2c
- ldrb r0, [r0, #0x0]
- cmp r0, #0x18
- beq _02015C48
- cmp r0, #0x1a
- bne _02015C6E
-_02015C48:
- cmp r2, #0x0
- ldr r2, [r4, #0x10]
- bge _02015C5E
- ldr r1, [r4, #0x24]
- ldr r0, [r1, #0x0]
- cmp r0, r2
- bgt _02015CA4
- str r2, [r1, #0x0]
- mov r0, #0x0
- str r0, [r4, #0x0]
- b _02015CA4
-_02015C5E:
- ldr r1, [r4, #0x24]
- ldr r0, [r1, #0x0]
- cmp r0, r2
- blt _02015CA4
- str r2, [r1, #0x0]
- mov r0, #0x0
- str r0, [r4, #0x0]
- b _02015CA4
-_02015C6E:
- cmp r0, #0x19
- bne _02015CA0
- ldr r1, [r4, #0x24]
- ldr r3, [r4, #0x30]
- ldr r0, [r1, #0x0]
- add r3, r3, r0
- cmp r2, #0x0
- ldr r2, [r4, #0x10]
- bge _02015C90
- cmp r3, r2
- bgt _02015CA4
- sub r2, r2, r3
- add r0, r0, r2
- str r0, [r1, #0x0]
- mov r0, #0x0
- str r0, [r4, #0x0]
- b _02015CA4
-_02015C90:
- cmp r3, r2
- blt _02015CA4
- sub r2, r3, r2
- sub r0, r0, r2
- str r0, [r1, #0x0]
- mov r0, #0x0
- str r0, [r4, #0x0]
- b _02015CA4
-_02015CA0:
- bl ErrorHandling
-_02015CA4:
- add r0, r4, #0x0
- add r0, #0x2c
- ldrb r0, [r0, #0x0]
- add r1, r4, #0x0
- ldr r2, [r4, #0x24]
- ldr r3, [r4, #0x28]
- add r1, #0x30
- bl FUN_020158DC
- ldr r0, [r4, #0x14]
- add r0, r0, #0x1
- str r0, [r4, #0x14]
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02015CC0
-FUN_02015CC0: ; 0x02015CC0
- ldr r3, _02015CDC ; =0x020ED72C
- mov r2, #0x0
-_02015CC4:
- ldrh r1, [r3, #0x2]
- cmp r0, r1
- bhs _02015CCE
- add r0, r2, #0x0
- bx lr
-_02015CCE:
- add r2, r2, #0x1
- add r3, r3, #0x2
- cmp r2, #0x2
- blt _02015CC4
- add r0, r2, #0x0
- bx lr
- nop
-_02015CDC: .word 0x020ED72C
-
- thumb_func_start FUN_02015CE0
-FUN_02015CE0: ; 0x02015CE0
- push {r4, lr}
- add r4, r0, #0x0
- bl FUN_02015CC0
- lsl r1, r0, #0x1
- ldr r0, _02015CF4 ; =0x020ED72C
- ldrh r0, [r0, r1]
- sub r0, r4, r0
- pop {r4, pc}
- nop
-_02015CF4: .word 0x020ED72C
-
- thumb_func_start FUN_02015CF8
-FUN_02015CF8: ; 0x02015CF8
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- cmp r5, #0x3
- blt _02015D06
- bl ErrorHandling
-_02015D06:
- ldr r0, _02015D10 ; =0x020ED72C
- lsl r1, r5, #0x1
- ldrh r0, [r0, r1]
- add r0, r4, r0
- pop {r3-r5, pc}
- .balign 4
-_02015D10: .word 0x020ED72C
-
- thumb_func_start FUN_02015D14
-FUN_02015D14: ; 0x02015D14
- cmp r0, #0x7
- bhi _02015D34
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02015D24: ; jump table (using 16-bit offset)
- .short _02015D34 - _02015D24 - 2; case 0
- .short _02015D34 - _02015D24 - 2; case 1
- .short _02015D38 - _02015D24 - 2; case 2
- .short _02015D3E - _02015D24 - 2; case 3
- .short _02015D38 - _02015D24 - 2; case 4
- .short _02015D42 - _02015D24 - 2; case 5
- .short _02015D34 - _02015D24 - 2; case 6
- .short _02015D38 - _02015D24 - 2; case 7
-_02015D34:
- mov r0, #0xea
- bx lr
-_02015D38:
- mov r0, #0x6d
- lsl r0, r0, #0x2
- bx lr
-_02015D3E:
- ldr r0, _02015D48 ; =0x000001B7
- bx lr
-_02015D42:
- ldr r0, _02015D4C ; =0x000001B6
- bx lr
- nop
-_02015D48: .word 0x000001B7
-_02015D4C: .word 0x000001B6
-
- thumb_func_start FUN_02015D50
-FUN_02015D50: ; 0x02015D50
- cmp r0, #0x7
- bhi _02015D70
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02015D60: ; jump table (using 16-bit offset)
- .short _02015D70 - _02015D60 - 2; case 0
- .short _02015D70 - _02015D60 - 2; case 1
- .short _02015D74 - _02015D60 - 2; case 2
- .short _02015D78 - _02015D60 - 2; case 3
- .short _02015D74 - _02015D60 - 2; case 4
- .short _02015D7E - _02015D60 - 2; case 5
- .short _02015D70 - _02015D60 - 2; case 6
- .short _02015D74 - _02015D60 - 2; case 7
-_02015D70:
- mov r0, #0xeb
- bx lr
-_02015D74:
- ldr r0, _02015D84 ; =0x000001B5
- bx lr
-_02015D78:
- mov r0, #0x6e
- lsl r0, r0, #0x2
- bx lr
-_02015D7E:
- mov r0, #0x6d
- lsl r0, r0, #0x2
- bx lr
- .balign 4
-_02015D84: .word 0x000001B5
-
- thumb_func_start FUN_02015D88
-FUN_02015D88: ; 0x02015D88
- push {r3-r7, lr}
- sub sp, #0x10
- add r6, r3, #0x0
- str r0, [sp, #0x0]
- str r1, [sp, #0x4]
- str r2, [sp, #0x8]
- cmp r6, #0x1
- beq _02015D9C
- mov r2, #0x1
- b _02015D9E
-_02015D9C:
- mov r2, #0x0
-_02015D9E:
- ldr r0, [sp, #0x8]
- mov r4, #0x0
- sub r0, r0, #0x1
- str r0, [sp, #0xc]
- beq _02015E18
- ldr r1, _02015E28 ; =0x020ED734
- lsl r0, r2, #0x1
- ldr r5, [sp, #0x4]
- add r7, r1, r0
-_02015DB0:
- ldr r0, [sp, #0x0]
- ldrb r0, [r0, r4]
- cmp r0, #0xff
- beq _02015E18
- cmp r0, #0xf7
- blo _02015DEA
- ldr r0, [sp, #0x8]
- sub r3, r0, #0x1
- cmp r3, #0xa
- blo _02015DC6
- mov r3, #0xa
-_02015DC6:
- mov r1, #0x0
- cmp r3, #0x0
- ble _02015DDC
- mov r0, #0x6b
- ldr r2, [sp, #0x4]
- lsl r0, r0, #0x2
-_02015DD2:
- add r1, r1, #0x1
- strh r0, [r2, #0x0]
- add r2, r2, #0x2
- cmp r1, r3
- blt _02015DD2
-_02015DDC:
- ldr r0, [sp, #0x4]
- ldr r2, _02015E2C ; =0x0000FFFF
- lsl r1, r1, #0x1
- strh r2, [r0, r1]
- add sp, #0x10
- mov r0, #0x0
- pop {r3-r7, pc}
-_02015DEA:
- lsl r0, r0, #0x2
- ldrh r0, [r7, r0]
- cmp r0, #0xea
- beq _02015DF8
- cmp r0, #0xeb
- beq _02015E02
- b _02015E0C
-_02015DF8:
- add r0, r6, #0x0
- bl FUN_02015D14
- strh r0, [r5, #0x0]
- b _02015E0E
-_02015E02:
- add r0, r6, #0x0
- bl FUN_02015D50
- strh r0, [r5, #0x0]
- b _02015E0E
-_02015E0C:
- strh r0, [r5, #0x0]
-_02015E0E:
- ldr r0, [sp, #0xc]
- add r4, r4, #0x1
- add r5, r5, #0x2
- cmp r4, r0
- blo _02015DB0
-_02015E18:
- ldr r2, _02015E2C ; =0x0000FFFF
- ldr r0, [sp, #0x4]
- lsl r1, r4, #0x1
- strh r2, [r0, r1]
- mov r0, #0x1
- add sp, #0x10
- pop {r3-r7, pc}
- nop
-_02015E28: .word 0x020ED734
-_02015E2C: .word 0x0000FFFF
-
- thumb_func_start FUN_02015E30
-FUN_02015E30: ; 0x02015E30
- ldr r0, _02015E38 ; =0x021C4898
- mov r1, #0x0
- str r1, [r0, #0x0]
- bx lr
- .balign 4
-_02015E38: .word 0x021C4898
-
- thumb_func_start FUN_02015E3C
-FUN_02015E3C: ; 0x02015E3C
- push {r3, lr}
- ldr r1, _02015E5C ; =0x021C4898
- mov r2, #0x1
- str r2, [r1, #0x0]
- mov r2, #0x0
- str r2, [r1, #0x10]
- str r2, [r1, #0x14]
- str r2, [r1, #0x8]
- str r2, [r1, #0xc]
- str r0, [r1, #0x4]
- bl FUN_02020BF4
- ldr r2, _02015E5C ; =0x021C4898
- str r0, [r2, #0x18]
- str r1, [r2, #0x1c]
- pop {r3, pc}
- .balign 4
-_02015E5C: .word 0x021C4898
-
- thumb_func_start FUN_02015E60
-FUN_02015E60: ; 0x02015E60
- push {r3-r5, lr}
- ldr r0, _02015E9C ; =0x021C4898
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _02015E9A
- bl FUN_02020BF4
- ldr r2, _02015E9C ; =0x021C4898
- ldr r3, [r2, #0x18]
- ldr r2, [r2, #0x1c]
- sub r0, r0, r3
- sbc r1, r2
- bl FUN_02020C14
- add r5, r1, #0x0
- ldr r1, _02015E9C ; =0x021C4898
- add r4, r0, #0x0
- ldr r3, [r1, #0x8]
- ldr r2, [r1, #0xc]
- sub r0, r3, r4
- sbc r2, r5
- bhs _02015E9A
- ldr r0, [r1, #0x4]
- sub r1, r4, r3
- bl FUN_02029E54
- ldr r0, _02015E9C ; =0x021C4898
- str r4, [r0, #0x8]
- str r5, [r0, #0xc]
-_02015E9A:
- pop {r3-r5, pc}
- .balign 4
-_02015E9C: .word 0x021C4898
-
- thumb_func_start FUN_02015EA0
-FUN_02015EA0: ; 0x02015EA0
- push {r3, lr}
- ldr r3, _02015EC8 ; =0x027E0000
- ldr r1, _02015ECC ; =0x00003FF8
- mov r0, #0x1
- ldr r2, [r3, r1]
- orr r0, r2
- str r0, [r3, r1]
- mov r0, #0x3
- bl MI_WaitDma
- ldr r0, _02015ED0 ; =0x021C48B8
- ldr r0, [r0, #0x1c]
- bl FUN_0201B5CC
- ldr r0, _02015ED0 ; =0x021C48B8
- ldr r1, [r0, #0x30]
- add r1, r1, #0x1
- str r1, [r0, #0x30]
- pop {r3, pc}
- nop
-_02015EC8: .word 0x027E0000
-_02015ECC: .word 0x00003FF8
-_02015ED0: .word 0x021C48B8
-
- thumb_func_start FUN_02015ED4
-FUN_02015ED4: ; 0x02015ED4
- ldr r3, _02015EE8 ; =0x027E0000
- ldr r1, _02015EEC ; =0x00003FF8
- mov r0, #0x1
- ldr r2, [r3, r1]
- orr r0, r2
- str r0, [r3, r1]
- ldr r3, _02015EF0 ; =MI_WaitDma
- mov r0, #0x3
- bx r3
- nop
-_02015EE8: .word 0x027E0000
-_02015EEC: .word 0x00003FF8
-_02015EF0: .word MI_WaitDma
-
- thumb_func_start FUN_02015EF4
-FUN_02015EF4: ; 0x02015EF4
- push {r3, lr}
- mov r0, #0x1
- bl OS_DisableIrqMask
- ldr r1, _02015F0C ; =FUN_02015ED4
- mov r0, #0x1
- bl OS_SetIrqFunction
- mov r0, #0x1
- bl OS_EnableIrqMask
- pop {r3, pc}
- .balign 4
-_02015F0C: .word FUN_02015ED4
-
- thumb_func_start FUN_02015F10
-FUN_02015F10: ; 0x02015F10
- ldr r2, _02015F18 ; =0x021C48B8
- str r0, [r2, #0x0]
- str r1, [r2, #0x4]
- bx lr
- .balign 4
-_02015F18: .word 0x021C48B8
-
- thumb_func_start FUN_02015F1C
-FUN_02015F1C: ; 0x02015F1C
- push {r3, lr}
- mov r0, #0x0
- bl FUN_02015F80
- ldr r0, _02015F30 ; =0x021C48B8
- mov r1, #0x0
- str r1, [r0, #0x8]
- str r1, [r0, #0xc]
- pop {r3, pc}
- nop
-_02015F30: .word 0x021C48B8
-
- thumb_func_start FUN_02015F34
-FUN_02015F34: ; 0x02015F34
- push {r3, lr}
- cmp r0, #0x0
- bne _02015F4C
- mov r0, #0x0
- bl FUN_02015F80
- ldr r0, _02015F68 ; =0x021C48B8
- mov r1, #0x0
- str r1, [r0, #0x8]
- str r1, [r0, #0xc]
- mov r0, #0x1
- pop {r3, pc}
-_02015F4C:
- ldr r2, _02015F68 ; =0x021C48B8
- ldr r3, [r2, #0x8]
- cmp r3, #0x0
- bne _02015F62
- str r1, [r2, #0xc]
- str r0, [r2, #0x8]
- mov r0, #0x1
- bl FUN_02015F80
- mov r0, #0x1
- pop {r3, pc}
-_02015F62:
- mov r0, #0x0
- pop {r3, pc}
- nop
-_02015F68: .word 0x021C48B8
-
- thumb_func_start FUN_02015F6C
-FUN_02015F6C: ; 0x02015F6C
- push {r3, lr}
- ldr r0, _02015F7C ; =0x021C48B8
- ldr r1, [r0, #0x8]
- cmp r1, #0x0
- beq _02015F7A
- ldr r0, [r0, #0xc]
- blx r1
-_02015F7A:
- pop {r3, pc}
- .balign 4
-_02015F7C: .word 0x021C48B8
-
- thumb_func_start FUN_02015F80
-FUN_02015F80: ; 0x02015F80
- push {r3, lr}
- ldr r2, _02015FC0 ; =0x04000208
- ldrh r1, [r2, #0x0]
- mov r1, #0x0
- strh r1, [r2, #0x0]
- cmp r0, #0x0
- bne _02015F9E
- ldr r0, [r2, #0x8]
- mov r0, #0x2
- bl OS_DisableIrqMask
- mov r0, #0x0
- bl GX_HBlankIntr
- b _02015FB4
-_02015F9E:
- ldr r0, [r2, #0x8]
- ldr r1, _02015FC4 ; =FUN_02015F6C
- mov r0, #0x2
- bl OS_SetIrqFunction
- mov r0, #0x2
- bl OS_EnableIrqMask
- mov r0, #0x1
- bl GX_HBlankIntr
-_02015FB4:
- ldr r1, _02015FC0 ; =0x04000208
- ldrh r0, [r1, #0x0]
- mov r0, #0x1
- strh r0, [r1, #0x0]
- pop {r3, pc}
- nop
-_02015FC0: .word 0x04000208
-_02015FC4: .word FUN_02015F6C
-
- thumb_func_start FUN_02015FC8
-FUN_02015FC8: ; 0x02015FC8
- push {r3, lr}
- sub sp, #0x30
- add r0, sp, #0x10
- bl OS_GetLowEntropyData
- add r0, sp, #0x0
- add r1, sp, #0x10
- mov r2, #0x20
- bl MATH_CalcMD5
- mov r3, #0x0
- add r1, r3, #0x0
- add r2, sp, #0x0
-_02015FE2:
- ldrb r0, [r2, #0x0]
- add r1, r1, #0x1
- add r2, r2, #0x1
- add r3, r3, r0
- cmp r1, #0x10
- blo _02015FE2
- lsl r0, r3, #0x18
- lsr r3, r0, #0x18
- mov r0, #0x3
- tst r0, r3
- beq _02016002
- mov r0, #0x3
-_02015FFA:
- add r3, r3, #0x1
- add r1, r3, #0x0
- tst r1, r0
- bne _02015FFA
-_02016002:
- ldr r0, _02016010 ; =0x020EDB10
- mov r1, #0x4
- mov r2, #0x5c
- bl FUN_020166C8
- add sp, #0x30
- pop {r3, pc}
- .balign 4
-_02016010: .word 0x020EDB10
-
- thumb_func_start InitSystemForTheGame
-InitSystemForTheGame: ; 0x02016014
- push {r3-r5, lr}
- bl OS_Init
- bl FX_Init
- ldr r2, _02016124 ; =0x04000304
- ldr r0, _02016128 ; =0xFFFFFDF1
- ldrh r1, [r2, #0x0]
- and r1, r0
- ldr r0, _0201612C ; =0x0000020E
- orr r0, r1
- strh r0, [r2, #0x0]
- bl GX_Init
- bl OS_InitTick
- bl FUN_02015FC8
- mov r0, #0xa0
- bl FUN_0201B578
- add r1, r0, #0x0
- mov r0, #0x0
- mov r2, #0x4
- bl OS_AllocFromArenaLo
- add r1, r0, #0x0
- mov r0, #0xa0
- bl FUN_0201B580
- ldr r1, _02016130 ; =0x021C48B8
- str r0, [r1, #0x18]
- mov r0, #0x10
- bl FUN_0201B578
- add r1, r0, #0x0
- mov r0, #0x0
- mov r2, #0x4
- bl OS_AllocFromArenaLo
- add r1, r0, #0x0
- mov r0, #0x10
- bl FUN_0201B580
- ldr r1, _02016130 ; =0x021C48B8
- str r0, [r1, #0x1c]
- mov r0, #0x20
- bl FUN_0201B578
- add r1, r0, #0x0
- mov r0, #0x0
- mov r2, #0x4
- bl OS_AllocFromArenaLo
- add r1, r0, #0x0
- mov r0, #0x20
- bl FUN_0201B580
- ldr r1, _02016130 ; =0x021C48B8
- str r0, [r1, #0x20]
- mov r0, #0x4
- bl FUN_0201B578
- add r1, r0, #0x0
- mov r0, #0x0
- mov r2, #0x4
- bl OS_AllocFromArenaLo
- add r1, r0, #0x0
- mov r0, #0x4
- bl FUN_0201B580
- ldr r1, _02016130 ; =0x021C48B8
- str r0, [r1, #0x24]
- bl GX_DispOff
- ldr r2, _02016134 ; =0x04001000
- ldr r0, _02016138 ; =0xFFFEFFFF
- ldr r1, [r2, #0x0]
- and r0, r1
- str r0, [r2, #0x0]
- ldr r2, _02016124 ; =0x04000304
- ldrh r1, [r2, #0x0]
- lsr r0, r2, #0xb
- orr r0, r1
- strh r0, [r2, #0x0]
- ldr r1, _0201613C ; =FUN_02015EA0
- mov r0, #0x1
- bl OS_SetIrqFunction
- mov r0, #0x1
- bl OS_EnableIrqMask
- mov r0, #0x1
- lsl r0, r0, #0x12
- bl OS_EnableIrqMask
- ldr r1, _02016140 ; =0x04000208
- ldrh r0, [r1, #0x0]
- mov r0, #0x1
- strh r0, [r1, #0x0]
- bl GX_VBlankIntr
- mov r0, #0x1
- bl FS_Init
- bl FUN_02022450
- mov r0, #0x0
- add r1, r0, #0x0
- bl FS_TryLoadTable
- add r4, r0, #0x0
- mov r0, #0x0
- add r1, r4, #0x0
- mov r2, #0x4
- bl OS_AllocFromArenaLo
- add r5, r0, #0x0
- bne _02016108
- bl ErrorHandling
-_02016108:
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FS_TryLoadTable
- ldr r0, _02016130 ; =0x021C48B8
- mov r1, #0x0
- str r1, [r0, #0x0]
- str r1, [r0, #0x8]
- str r1, [r0, #0x10]
- str r1, [r0, #0x14]
- str r1, [r0, #0x2c]
- ldr r0, _02016144 ; =0x021C4918
- strb r1, [r0, #0x5]
- pop {r3-r5, pc}
- .balign 4
-_02016124: .word 0x04000304
-_02016128: .word 0xFFFFFDF1
-_0201612C: .word 0x0000020E
-_02016130: .word 0x021C48B8
-_02016134: .word 0x04001000
-_02016138: .word 0xFFFEFFFF
-_0201613C: .word FUN_02015EA0
-_02016140: .word 0x04000208
-_02016144: .word 0x021C4918
-
- thumb_func_start InitGraphicMemory
-InitGraphicMemory: ; 0x02016148
- push {r3, lr}
- ldr r0, _02016198 ; =0x000001FF
- bl GX_SetBankForLCDC
- mov r1, #0x1a
- mov r2, #0x29
- mov r0, #0x0
- lsl r1, r1, #0x16
- lsl r2, r2, #0xe
- bl MIi_CpuClearFast
- bl GX_DisableBankForLCDC
- mov r1, #0x7
- mov r2, #0x1
- mov r0, #0xc0
- lsl r1, r1, #0x18
- lsl r2, r2, #0xa
- bl MIi_CpuClearFast
- mov r2, #0x1
- ldr r1, _0201619C ; =0x07000400
- mov r0, #0xc0
- lsl r2, r2, #0xa
- bl MIi_CpuClearFast
- mov r1, #0x5
- mov r2, #0x1
- mov r0, #0x0
- lsl r1, r1, #0x18
- lsl r2, r2, #0xa
- bl MIi_CpuClearFast
- mov r2, #0x1
- ldr r1, _020161A0 ; =0x05000400
- mov r0, #0x0
- lsl r2, r2, #0xa
- bl MIi_CpuClearFast
- pop {r3, pc}
- .balign 4
-_02016198: .word 0x000001FF
-_0201619C: .word 0x07000400
-_020161A0: .word 0x05000400
-
- thumb_func_start FUN_020161A4
-FUN_020161A4: ; 0x020161A4
- push {r4-r6, lr}
- sub sp, #0x48
- add r6, r0, #0x0
- add r4, r1, #0x0
- add r0, sp, #0x0
- bl FS_InitFile
- add r0, sp, #0x0
- add r1, r4, #0x0
- bl FS_OpenFile
- cmp r0, #0x0
- beq _020161F0
- ldr r1, [sp, #0x28]
- ldr r0, [sp, #0x24]
- sub r5, r1, r0
- add r0, r6, #0x0
- add r1, r5, #0x0
- bl FUN_02016998
- add r4, r0, #0x0
- beq _020161E8
- add r0, sp, #0x0
- add r1, r4, #0x0
- add r2, r5, #0x0
- bl FS_ReadFile
- cmp r5, r0
- beq _020161E8
- add r0, r6, #0x0
- add r1, r4, #0x0
- bl FUN_02016A8C
- mov r4, #0x0
-_020161E8:
- add r0, sp, #0x0
- bl FS_CloseFile
- b _020161F2
-_020161F0:
- mov r4, #0x0
-_020161F2:
- add r0, r4, #0x0
- add sp, #0x48
- pop {r4-r6, pc}
-
- thumb_func_start FUN_020161F8
-FUN_020161F8: ; 0x020161F8
- push {r3-r5, lr}
- sub sp, #0x48
- add r5, r0, #0x0
- add r0, sp, #0x0
- add r4, r1, #0x0
- bl FS_InitFile
- add r0, sp, #0x0
- add r1, r5, #0x0
- bl FS_OpenFile
- cmp r0, #0x0
- beq _0201622A
- ldr r1, [sp, #0x28]
- ldr r0, [sp, #0x24]
- sub r2, r1, r0
- ldr r1, [r4, #0x0]
- cmp r1, #0x0
- beq _02016224
- add r0, sp, #0x0
- bl FS_ReadFile
-_02016224:
- add r0, sp, #0x0
- bl FS_CloseFile
-_0201622A:
- add sp, #0x48
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02016230
-FUN_02016230: ; 0x02016230
- push {r3-r7, lr}
- sub sp, #0x8
- str r0, [sp, #0x0]
- bl strlen
- lsl r0, r0, #0x10
- lsr r3, r0, #0x10
- lsr r2, r3, #0x1f
- lsl r1, r3, #0x1e
- sub r1, r1, r2
- mov r0, #0x1e
- ror r1, r0
- add r0, r2, r1
- beq _02016258
- lsr r0, r3, #0x2
- add r0, r0, #0x1
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x4]
- b _0201625E
-_02016258:
- lsl r0, r3, #0xe
- lsr r0, r0, #0x10
- str r0, [sp, #0x4]
-_0201625E:
- ldr r0, [sp, #0x4]
- mov r7, #0x0
- mov r12, r7
- cmp r0, #0x0
- ble _0201629A
- add r6, r7, #0x0
- add r4, r7, #0x0
-_0201626C:
- ldr r2, [sp, #0x0]
- mov r1, #0x0
- add r0, r1, #0x0
- add r2, r2, r6
- add r3, r1, #0x0
-_02016276:
- ldrsb r5, [r2, r4]
- cmp r5, #0x0
- beq _0201628A
- lsl r5, r3
- add r0, r0, #0x1
- orr r1, r5
- add r2, r2, #0x1
- add r3, #0x8
- cmp r0, #0x4
- blt _02016276
-_0201628A:
- mov r0, r12
- eor r7, r1
- add r1, r0, #0x1
- ldr r0, [sp, #0x4]
- add r6, r6, #0x4
- mov r12, r1
- cmp r1, r0
- blt _0201626C
-_0201629A:
- add r0, r7, #0x0
- add sp, #0x8
- pop {r3-r7, pc}
-
- thumb_func_start FUN_020162A0
-FUN_020162A0: ; 0x020162A0
- ldr r3, _020162C4 ; =0x021C4928
- mov r2, #0x0
-_020162A4:
- ldr r1, [r3, #0x4]
- cmp r0, r1
- bne _020162B4
- ldr r1, [r3, #0x0]
- cmp r1, #0x0
- beq _020162B4
- add r0, r2, #0x0
- bx lr
-_020162B4:
- add r2, r2, #0x1
- add r3, #0x8
- cmp r2, #0x80
- blt _020162A4
- mov r0, #0x0
- mvn r0, r0
- bx lr
- nop
-_020162C4: .word 0x021C4928
-
- thumb_func_start FUN_020162C8
-FUN_020162C8: ; 0x020162C8
- push {r3-r4}
- ldr r3, _020162F4 ; =0x021C4928
- mov r4, #0x0
-_020162CE:
- ldr r2, [r3, #0x0]
- cmp r2, #0x0
- bne _020162E4
- ldr r2, _020162F4 ; =0x021C4928
- lsl r3, r4, #0x3
- str r0, [r2, r3]
- ldr r0, _020162F8 ; =0x021C492C
- str r1, [r0, r3]
- add r0, r4, #0x0
- pop {r3-r4}
- bx lr
-_020162E4:
- add r4, r4, #0x1
- add r3, #0x8
- cmp r4, #0x80
- blt _020162CE
- mov r0, #0x0
- mvn r0, r0
- pop {r3-r4}
- bx lr
- .balign 4
-_020162F4: .word 0x021C4928
-_020162F8: .word 0x021C492C
-
- thumb_func_start FUN_020162FC
-FUN_020162FC: ; 0x020162FC
- push {r3-r7, lr}
- mov r6, #0x0
- ldr r5, _02016320 ; =0x021C4D20
- mov r4, #0x7f
- sub r7, r6, #0x1
-_02016306:
- ldr r0, [r5, #0x0]
- cmp r0, #0x0
- beq _02016314
- bl FUN_02016A18
- str r6, [r5, #0x0]
- str r6, [r5, #0x4]
-_02016314:
- sub r4, r4, #0x1
- sub r5, #0x8
- cmp r4, r7
- bgt _02016306
- pop {r3-r7, pc}
- nop
-_02016320: .word 0x021C4D20
-
- thumb_func_start FUN_02016324
-FUN_02016324: ; 0x02016324
- push {r3-r7, lr}
- sub sp, #0x68
- add r2, r0, #0x0
- mov r5, #0x0
- ldrsb r0, [r2, r5]
- add r4, r1, #0x0
- cmp r0, #0x21
- add r0, sp, #0x0
- bne _02016340
- add r1, r2, #0x1
- bl strcpy
- mov r5, #0x1
- b _02016346
-_02016340:
- add r1, r2, #0x0
- bl strcpy
-_02016346:
- add r0, sp, #0x0
- bl FUN_02016230
- add r7, r0, #0x0
- bl FUN_020162A0
- cmp r0, #0x0
- blt _02016362
- cmp r5, #0x0
- bne _02016362
- lsl r1, r0, #0x3
- ldr r0, _020163B8 ; =0x021C4928
- ldr r4, [r0, r1]
- b _020163B2
-_02016362:
- add r0, sp, #0x20
- bl FS_InitFile
- add r0, sp, #0x20
- add r1, sp, #0x0
- bl FS_OpenFile
- cmp r0, #0x0
- beq _020163B0
- ldr r1, [sp, #0x48]
- ldr r0, [sp, #0x44]
- sub r6, r1, r0
- add r0, r4, #0x0
- add r1, r6, #0x0
- bl FUN_02016998
- add r4, r0, #0x0
- beq _0201639C
- add r0, sp, #0x20
- add r1, r4, #0x0
- add r2, r6, #0x0
- bl FS_ReadFile
- cmp r6, r0
- beq _0201639C
- add r0, r4, #0x0
- bl FUN_02016A18
- mov r4, #0x0
-_0201639C:
- add r0, sp, #0x20
- bl FS_CloseFile
- cmp r5, #0x0
- bne _020163B2
- add r0, r4, #0x0
- add r1, r7, #0x0
- bl FUN_020162C8
- b _020163B2
-_020163B0:
- mov r4, #0x0
-_020163B2:
- add r0, r4, #0x0
- add sp, #0x68
- pop {r3-r7, pc}
- .balign 4
-_020163B8: .word 0x021C4928
-
- thumb_func_start FUN_020163BC
-FUN_020163BC: ; 0x020163BC
- push {r3, lr}
- sub sp, #0x8
- ldr r0, _0201641C ; =0x021C48B8
- mov r2, #0x0
- str r2, [r0, #0x34]
- str r2, [r0, #0x38]
- str r2, [r0, #0x3c]
- str r2, [r0, #0x40]
- str r2, [r0, #0x44]
- str r2, [r0, #0x48]
- str r2, [r0, #0x4c]
- str r2, [r0, #0x50]
- mov r1, #0x8
- str r1, [r0, #0x54]
- mov r1, #0xf
- str r1, [r0, #0x58]
- ldr r0, _02016420 ; =0x021C48F8
- strh r2, [r0, #0x1c]
- strh r2, [r0, #0x1e]
- strh r2, [r0, #0x20]
- strh r2, [r0, #0x22]
- ldr r0, _02016424 ; =0x021C4918
- strb r2, [r0, #0x4]
- bl TP_Init
- add r0, sp, #0x0
- bl TP_GetUserInfo
- cmp r0, #0x1
- add r0, sp, #0x0
- bne _02016402
- bl TP_SetCalibrateParam
- add sp, #0x8
- pop {r3, pc}
-_02016402:
- ldr r1, _02016428 ; =0x000002AE
- strh r1, [r0, #0x0]
- ldr r1, _0201642C ; =0x0000058C
- strh r1, [r0, #0x2]
- ldr r1, _02016430 ; =0x00000E25
- strh r1, [r0, #0x4]
- ldr r1, _02016434 ; =0x00001208
- strh r1, [r0, #0x6]
- add r0, sp, #0x0
- bl TP_SetCalibrateParam
- add sp, #0x8
- pop {r3, pc}
- .balign 4
-_0201641C: .word 0x021C48B8
-_02016420: .word 0x021C48F8
-_02016424: .word 0x021C4918
-_02016428: .word 0x000002AE
-_0201642C: .word 0x0000058C
-_02016430: .word 0x00000E25
-_02016434: .word 0x00001208
-
- thumb_func_start FUN_02016438
-FUN_02016438: ; 0x02016438
- ldr r1, _02016440 ; =0x021C4918
- strb r0, [r1, #0x6]
- bx lr
- nop
-_02016440: .word 0x021C4918
-
- thumb_func_start FUN_02016444
-FUN_02016444: ; 0x02016444
- ldr r1, _02016450 ; =0x021C4918
- ldrb r2, [r1, #0x7]
- orr r0, r2
- strb r0, [r1, #0x7]
- bx lr
- nop
-_02016450: .word 0x021C4918
-
- thumb_func_start FUN_02016454
-FUN_02016454: ; 0x02016454
- ldr r1, _02016460 ; =0x021C4918
- mvn r0, r0
- ldrb r2, [r1, #0x7]
- and r0, r2
- strb r0, [r1, #0x7]
- bx lr
- .balign 4
-_02016460: .word 0x021C4918
-
- thumb_func_start FUN_02016464
-FUN_02016464: ; 0x02016464
- push {r4, lr}
- sub sp, #0x10
- ldr r2, _02016550 ; =0x027FFFA8
- mov r0, #0x2
- ldrh r1, [r2, #0x0]
- lsl r0, r0, #0xe
- and r0, r1
- asr r0, r0, #0xf
- beq _0201648A
- ldr r0, _02016554 ; =0x021C48B8
- mov r1, #0x0
- str r1, [r0, #0x48]
- str r1, [r0, #0x44]
- str r1, [r0, #0x4c]
- ldr r0, _02016558 ; =0x021C48F8
- add sp, #0x10
- strh r1, [r0, #0x20]
- strh r1, [r0, #0x22]
- pop {r4, pc}
-_0201648A:
- ldr r0, _0201655C ; =0x04000130
- ldrh r1, [r0, #0x0]
- ldrh r0, [r2, #0x0]
- orr r1, r0
- ldr r0, _02016560 ; =0x00002FFF
- eor r1, r0
- and r0, r1
- ldr r1, _02016554 ; =0x021C48B8
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- ldr r2, [r1, #0x38]
- add r3, r0, #0x0
- eor r3, r2
- and r3, r0
- str r3, [r1, #0x3c]
- str r3, [r1, #0x40]
- cmp r0, #0x0
- beq _020164C2
- cmp r2, r0
- bne _020164C2
- ldr r2, [r1, #0x50]
- sub r2, r2, #0x1
- str r2, [r1, #0x50]
- bne _020164C8
- str r0, [r1, #0x40]
- ldr r2, [r1, #0x54]
- str r2, [r1, #0x50]
- b _020164C8
-_020164C2:
- ldr r1, _02016554 ; =0x021C48B8
- ldr r2, [r1, #0x58]
- str r2, [r1, #0x50]
-_020164C8:
- ldr r1, _02016554 ; =0x021C48B8
- str r0, [r1, #0x38]
- ldr r2, [r1, #0x3c]
- str r2, [r1, #0x48]
- str r0, [r1, #0x44]
- ldr r0, [r1, #0x40]
- str r0, [r1, #0x4c]
- bl FUN_02016568
- ldr r0, _02016564 ; =0x021C4918
- ldrb r0, [r0, #0x4]
- cmp r0, #0x0
- bne _020164F4
- add r4, sp, #0x8
-_020164E4:
- bl TP_RequestSamplingAsync
- add r0, r4, #0x0
- bl TP_WaitRawResult
- cmp r0, #0x0
- bne _020164E4
- b _020164FA
-_020164F4:
- add r0, sp, #0x8
- bl TP_GetLatestRawPointInAuto
-_020164FA:
- add r0, sp, #0x0
- add r1, sp, #0x8
- bl TP_GetCalibratedPoint
- add r1, sp, #0x0
- ldrh r3, [r1, #0x6]
- cmp r3, #0x0
- bne _02016516
- ldrh r2, [r1, #0x0]
- ldr r0, _02016558 ; =0x021C48F8
- strh r2, [r0, #0x1c]
- ldrh r1, [r1, #0x2]
- strh r1, [r0, #0x1e]
- b _0201653A
-_02016516:
- ldr r0, _02016558 ; =0x021C48F8
- ldrh r2, [r0, #0x22]
- cmp r2, #0x0
- beq _02016536
- cmp r3, #0x1
- beq _0201652A
- cmp r3, #0x2
- beq _02016530
- cmp r3, #0x3
- b _0201653A
-_0201652A:
- ldrh r1, [r1, #0x2]
- strh r1, [r0, #0x1e]
- b _0201653A
-_02016530:
- ldrh r1, [r1, #0x0]
- strh r1, [r0, #0x1c]
- b _0201653A
-_02016536:
- mov r0, #0x0
- strh r0, [r1, #0x4]
-_0201653A:
- add r0, sp, #0x0
- ldrh r2, [r0, #0x4]
- ldr r0, _02016558 ; =0x021C48F8
- ldrh r1, [r0, #0x22]
- eor r1, r2
- and r1, r2
- strh r1, [r0, #0x20]
- strh r2, [r0, #0x22]
- add sp, #0x10
- pop {r4, pc}
- nop
-_02016550: .word 0x027FFFA8
-_02016554: .word 0x021C48B8
-_02016558: .word 0x021C48F8
-_0201655C: .word 0x04000130
-_02016560: .word 0x00002FFF
-_02016564: .word 0x021C4918
-
- thumb_func_start FUN_02016568
-FUN_02016568: ; 0x02016568
- ldr r0, _02016690 ; =0x021C48B8
- ldr r1, [r0, #0x34]
- cmp r1, #0x3
- bls _02016572
- b _0201668C
-_02016572:
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #0x6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0201657E: ; jump table (using 16-bit offset)
- .short _0201668C - _0201657E - 2; case 0
- .short _02016586 - _0201657E - 2; case 1
- .short _020165BC - _0201657E - 2; case 2
- .short _02016642 - _0201657E - 2; case 3
-_02016586:
- ldr r2, [r0, #0x48]
- mov r1, #0x8
- add r3, r2, #0x0
- tst r3, r1
- beq _02016596
- lsl r1, r1, #0x7
- orr r1, r2
- str r1, [r0, #0x48]
-_02016596:
- ldr r1, _02016690 ; =0x021C48B8
- mov r0, #0x8
- ldr r2, [r1, #0x44]
- add r3, r2, #0x0
- tst r3, r0
- beq _020165A8
- lsl r0, r0, #0x7
- orr r0, r2
- str r0, [r1, #0x44]
-_020165A8:
- ldr r1, _02016690 ; =0x021C48B8
- mov r0, #0x8
- ldr r2, [r1, #0x4c]
- add r3, r2, #0x0
- tst r3, r0
- beq _0201668C
- lsl r0, r0, #0x7
- orr r0, r2
- str r0, [r1, #0x4c]
- bx lr
-_020165BC:
- ldr r3, [r0, #0x48]
- mov r0, #0x1
- lsl r0, r0, #0xa
- add r2, r3, #0x0
- mov r1, #0x0
- tst r2, r0
- beq _020165CE
- lsl r0, r0, #0x1
- orr r1, r0
-_020165CE:
- mov r0, #0x2
- lsl r0, r0, #0xa
- add r2, r3, #0x0
- tst r2, r0
- beq _020165DC
- lsr r0, r0, #0x1
- orr r1, r0
-_020165DC:
- ldr r2, _02016690 ; =0x021C48B8
- ldr r0, _02016694 ; =0x0000F3FF
- ldr r3, [r2, #0x48]
- and r0, r3
- orr r0, r1
- str r0, [r2, #0x48]
- ldr r3, [r2, #0x44]
- mov r1, #0x1
- lsl r1, r1, #0xa
- add r2, r3, #0x0
- mov r0, #0x0
- tst r2, r1
- beq _020165FA
- lsl r1, r1, #0x1
- orr r0, r1
-_020165FA:
- mov r1, #0x2
- lsl r1, r1, #0xa
- add r2, r3, #0x0
- tst r2, r1
- beq _02016608
- lsr r1, r1, #0x1
- orr r0, r1
-_02016608:
- ldr r2, _02016690 ; =0x021C48B8
- ldr r1, _02016694 ; =0x0000F3FF
- ldr r3, [r2, #0x44]
- and r1, r3
- orr r0, r1
- str r0, [r2, #0x44]
- ldr r3, [r2, #0x4c]
- mov r1, #0x1
- lsl r1, r1, #0xa
- add r2, r3, #0x0
- mov r0, #0x0
- tst r2, r1
- beq _02016626
- lsl r1, r1, #0x1
- orr r0, r1
-_02016626:
- mov r1, #0x2
- lsl r1, r1, #0xa
- add r2, r3, #0x0
- tst r2, r1
- beq _02016634
- lsr r1, r1, #0x1
- orr r0, r1
-_02016634:
- ldr r2, _02016690 ; =0x021C48B8
- ldr r1, _02016694 ; =0x0000F3FF
- ldr r3, [r2, #0x4c]
- and r1, r3
- orr r0, r1
- str r0, [r2, #0x4c]
- bx lr
-_02016642:
- mov r1, #0x2
- ldr r2, [r0, #0x48]
- lsl r1, r1, #0x8
- tst r1, r2
- beq _02016652
- mov r1, #0x1
- orr r1, r2
- str r1, [r0, #0x48]
-_02016652:
- ldr r1, _02016690 ; =0x021C48B8
- mov r0, #0x2
- ldr r2, [r1, #0x44]
- lsl r0, r0, #0x8
- tst r0, r2
- beq _02016664
- mov r0, #0x1
- orr r0, r2
- str r0, [r1, #0x44]
-_02016664:
- ldr r1, _02016690 ; =0x021C48B8
- mov r0, #0x2
- ldr r2, [r1, #0x4c]
- lsl r0, r0, #0x8
- tst r0, r2
- beq _02016676
- mov r0, #0x1
- orr r0, r2
- str r0, [r1, #0x4c]
-_02016676:
- ldr r1, _02016690 ; =0x021C48B8
- ldr r0, _02016698 ; =0x0000FCFF
- ldr r2, [r1, #0x48]
- and r2, r0
- str r2, [r1, #0x48]
- ldr r2, [r1, #0x44]
- and r2, r0
- str r2, [r1, #0x44]
- ldr r2, [r1, #0x4c]
- and r0, r2
- str r0, [r1, #0x4c]
-_0201668C:
- bx lr
- nop
-_02016690: .word 0x021C48B8
-_02016694: .word 0x0000F3FF
-_02016698: .word 0x0000FCFF
-
- thumb_func_start FUN_0201669C
-FUN_0201669C: ; 0x0201669C
- ldr r2, _020166A4 ; =0x021C48B8
- str r0, [r2, #0x54]
- str r1, [r2, #0x58]
- bx lr
- .balign 4
-_020166A4: .word 0x021C48B8
-
- thumb_func_start FUN_020166A8
-FUN_020166A8: ; 0x020166A8
- ldr r1, _020166B4 ; =0x021C4918
- ldrb r2, [r1, #0x8]
- orr r0, r2
- strb r0, [r1, #0x8]
- bx lr
- nop
-_020166B4: .word 0x021C4918
-
- thumb_func_start FUN_020166B8
-FUN_020166B8: ; 0x020166B8
- ldr r1, _020166C4 ; =0x021C4918
- mvn r0, r0
- ldrb r2, [r1, #0x8]
- and r0, r2
- strb r0, [r1, #0x8]
- bx lr
- .balign 4
-_020166C4: .word 0x021C4918
-
- thumb_func_start FUN_020166C8
-FUN_020166C8: ; 0x020166C8
- push {r3-r7, lr}
- sub sp, #0x8
- add r4, r1, #0x0
- add r5, r0, #0x0
- add r0, r4, #0x0
- str r0, [sp, #0x4]
- add r0, #0x18
- add r6, r2, #0x0
- str r0, [sp, #0x4]
- cmp r6, r0
- bhs _020166E0
- add r6, r0, #0x0
-_020166E0:
- cmp r3, #0x0
- beq _020166FE
- mov r0, #0x3
- tst r0, r3
- beq _020166F4
- mov r0, #0x3
-_020166EC:
- add r3, r3, #0x1
- add r1, r3, #0x0
- tst r1, r0
- bne _020166EC
-_020166F4:
- mov r0, #0x0
- add r1, r3, #0x0
- mov r2, #0x4
- bl OS_AllocFromArenaLo
-_020166FE:
- ldr r1, [sp, #0x4]
- lsl r7, r6, #0x1
- lsl r2, r1, #0x1
- add r1, r1, r2
- add r1, r1, #0x1
- lsl r1, r1, #0x2
- add r1, r7, r1
- mov r0, #0x0
- add r1, r6, r1
- mov r2, #0x4
- bl OS_AllocFromArenaLo
- ldr r1, _020167F0 ; =0x021C4D28
- str r0, [r1, #0x0]
- ldr r1, [sp, #0x4]
- add r1, r1, #0x1
- lsl r1, r1, #0x2
- add r1, r0, r1
- ldr r0, _020167F0 ; =0x021C4D28
- str r1, [r0, #0x4]
- ldr r0, [sp, #0x4]
- lsl r0, r0, #0x2
- add r2, r1, r0
- ldr r1, _020167F0 ; =0x021C4D28
- str r2, [r1, #0x8]
- add r1, r2, r0
- ldr r0, _020167F0 ; =0x021C4D28
- str r1, [r0, #0xc]
- add r1, r1, r7
- str r1, [r0, #0x10]
- strh r6, [r0, #0x14]
- strh r4, [r0, #0x16]
- ldr r0, [sp, #0x4]
- mov r7, #0x0
- lsl r0, r0, #0x10
- lsr r1, r0, #0x10
- ldr r0, _020167F0 ; =0x021C4D28
- cmp r4, #0x0
- strh r1, [r0, #0x1a]
- strh r1, [r0, #0x18]
- bls _020167A0
- str r7, [sp, #0x0]
-_02016752:
- ldr r0, [r5, #0x4]
- cmp r0, #0x0
- beq _0201675C
- cmp r0, #0x2
- beq _02016768
-_0201675C:
- ldr r1, [r5, #0x0]
- mov r0, #0x0
- mov r2, #0x4
- bl OS_AllocFromArenaLo
- b _02016772
-_02016768:
- ldr r1, [r5, #0x0]
- mov r0, #0x2
- mov r2, #0x4
- bl OS_AllocFromArenaHi
-_02016772:
- cmp r0, #0x0
- beq _0201678E
- ldr r1, [r5, #0x0]
- mov r2, #0x0
- bl tempName_NNS_FndCreateExpHeapEx
- ldr r1, _020167F0 ; =0x021C4D28
- ldr r2, [r1, #0x0]
- ldr r1, [sp, #0x0]
- str r0, [r2, r1]
- ldr r0, _020167F0 ; =0x021C4D28
- ldr r0, [r0, #0x10]
- strb r7, [r0, r7]
- b _02016792
-_0201678E:
- bl ErrorHandling
-_02016792:
- ldr r0, [sp, #0x0]
- add r7, r7, #0x1
- add r0, r0, #0x4
- add r5, #0x8
- str r0, [sp, #0x0]
- cmp r7, r4
- blo _02016752
-_020167A0:
- ldr r0, [sp, #0x4]
- add r1, r0, #0x1
- cmp r4, r1
- bhs _020167C0
- ldr r3, _020167F0 ; =0x021C4D28
- lsl r2, r4, #0x2
- mov r0, #0x0
-_020167AE:
- ldr r5, [r3, #0x0]
- str r0, [r5, r2]
- ldrh r7, [r3, #0x1a]
- ldr r5, [r3, #0x10]
- add r2, r2, #0x4
- strb r7, [r5, r4]
- add r4, r4, #0x1
- cmp r4, r1
- blo _020167AE
-_020167C0:
- cmp r4, r6
- bhs _020167D2
- ldr r0, _020167F0 ; =0x021C4D28
-_020167C6:
- ldrh r2, [r0, #0x1a]
- ldr r1, [r0, #0x10]
- strb r2, [r1, r4]
- add r4, r4, #0x1
- cmp r4, r6
- blo _020167C6
-_020167D2:
- mov r4, #0x0
- cmp r6, #0x0
- bls _020167EA
- ldr r0, _020167F0 ; =0x021C4D28
- add r3, r4, #0x0
- add r2, r4, #0x0
-_020167DE:
- ldr r1, [r0, #0xc]
- add r4, r4, #0x1
- strh r2, [r1, r3]
- add r3, r3, #0x2
- cmp r4, r6
- blo _020167DE
-_020167EA:
- add sp, #0x8
- pop {r3-r7, pc}
- nop
-_020167F0: .word 0x021C4D28
-
- thumb_func_start FUN_020167F4
-FUN_020167F4: ; 0x020167F4
- ldr r1, _02016818 ; =0x021C4D28
- ldrh r0, [r1, #0x16]
- ldrh r3, [r1, #0x18]
- cmp r0, r3
- bge _02016812
- ldr r2, [r1, #0x0]
- lsl r1, r0, #0x2
- add r2, r2, r1
-_02016804:
- ldr r1, [r2, #0x0]
- cmp r1, #0x0
- beq _02016816
- add r0, r0, #0x1
- add r2, r2, #0x4
- cmp r0, r3
- blt _02016804
-_02016812:
- mov r0, #0x0
- mvn r0, r0
-_02016816:
- bx lr
- .balign 4
-_02016818: .word 0x021C4D28
-
- thumb_func_start FUN_0201681C
-FUN_0201681C: ; 0x0201681C
- push {r3, lr}
- mov r3, #0x4
- bl FUN_02016834
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02016828
-FUN_02016828: ; 0x02016828
- push {r3, lr}
- mov r3, #0x3
- mvn r3, r3
- bl FUN_02016834
- pop {r3, pc}
-
- thumb_func_start FUN_02016834
-FUN_02016834: ; 0x02016834
- push {r3-r7, lr}
- sub sp, #0x8
- add r4, r0, #0x0
- add r5, r1, #0x0
- str r2, [sp, #0x0]
- add r7, r3, #0x0
- bl OS_GetProcMode
- cmp r0, #0x12
- bne _0201684C
- bl ErrorHandling
-_0201684C:
- ldr r1, _020168CC ; =0x021C4D28
- ldr r0, [r1, #0x10]
- ldrh r3, [r1, #0x1a]
- ldrb r2, [r0, r5]
- cmp r3, r2
- bne _020168C2
- ldrb r0, [r0, r4]
- ldr r1, [r1, #0x0]
- lsl r0, r0, #0x2
- ldr r6, [r1, r0]
- cmp r6, #0x0
- beq _020168BC
- ldr r1, [sp, #0x0]
- add r0, r6, #0x0
- add r2, r7, #0x0
- bl tempName_NNS_FndAllocFromExpHeapEx
- str r0, [sp, #0x4]
- cmp r0, #0x0
- beq _020168B6
- bl FUN_020167F4
- add r7, r0, #0x0
- bmi _020168B0
- ldr r0, [sp, #0x4]
- ldr r1, [sp, #0x0]
- mov r2, #0x0
- lsl r4, r7, #0x2
- bl tempName_NNS_FndCreateExpHeapEx
- ldr r1, _020168CC ; =0x021C4D28
- ldr r2, [r1, #0x0]
- str r0, [r2, r4]
- ldr r0, [r1, #0x0]
- ldr r0, [r0, r4]
- cmp r0, #0x0
- beq _020168AA
- ldr r0, [r1, #0x4]
- str r6, [r0, r4]
- ldr r0, [sp, #0x4]
- ldr r2, [r1, #0x8]
- add sp, #0x8
- str r0, [r2, r4]
- ldr r0, [r1, #0x10]
- strb r7, [r0, r5]
- mov r0, #0x1
- pop {r3-r7, pc}
-_020168AA:
- bl ErrorHandling
- b _020168C6
-_020168B0:
- bl ErrorHandling
- b _020168C6
-_020168B6:
- bl ErrorHandling
- b _020168C6
-_020168BC:
- bl ErrorHandling
- b _020168C6
-_020168C2:
- bl ErrorHandling
-_020168C6:
- mov r0, #0x0
- add sp, #0x8
- pop {r3-r7, pc}
- .balign 4
-_020168CC: .word 0x021C4D28
-
- thumb_func_start FUN_020168D0
-FUN_020168D0: ; 0x020168D0
- push {r4, lr}
- add r4, r0, #0x0
- bl OS_GetProcMode
- cmp r0, #0x12
- bne _020168E0
- bl ErrorHandling
-_020168E0:
- ldr r0, _02016940 ; =0x021C4D28
- ldr r1, [r0, #0x0]
- ldr r0, [r0, #0x10]
- ldrb r0, [r0, r4]
- lsl r0, r0, #0x2
- ldr r0, [r1, r0]
- cmp r0, #0x0
- beq _0201693E
- bl thunk_FUN_020adc8c
- ldr r1, _02016940 ; =0x021C4D28
- ldr r0, [r1, #0x10]
- ldrb r0, [r0, r4]
- lsl r2, r0, #0x2
- ldr r0, [r1, #0x4]
- ldr r1, [r1, #0x8]
- ldr r0, [r0, r2]
- ldr r1, [r1, r2]
- cmp r0, #0x0
- beq _02016912
- cmp r1, #0x0
- beq _02016912
- bl FUN_020ADDF0
- b _02016916
-_02016912:
- bl ErrorHandling
-_02016916:
- ldr r1, _02016940 ; =0x021C4D28
- mov r0, #0x0
- ldr r2, [r1, #0x10]
- ldr r3, [r1, #0x0]
- ldrb r2, [r2, r4]
- lsl r2, r2, #0x2
- str r0, [r3, r2]
- ldr r2, [r1, #0x10]
- ldr r3, [r1, #0x4]
- ldrb r2, [r2, r4]
- lsl r2, r2, #0x2
- str r0, [r3, r2]
- ldr r2, [r1, #0x10]
- ldr r3, [r1, #0x8]
- ldrb r2, [r2, r4]
- lsl r2, r2, #0x2
- str r0, [r3, r2]
- ldrh r2, [r1, #0x1a]
- ldr r0, [r1, #0x10]
- strb r2, [r0, r4]
-_0201693E:
- pop {r4, pc}
- .balign 4
-_02016940: .word 0x021C4D28
-
- thumb_func_start FUN_02016944
-FUN_02016944: ; 0x02016944
- push {r3-r7, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- add r7, r2, #0x0
- add r6, r3, #0x0
- cmp r5, #0x0
- bne _02016956
- bl ErrorHandling
-_02016956:
- bl OS_DisableInterrupts
- add r4, #0x10
- str r0, [sp, #0x0]
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r2, r7, #0x0
- bl tempName_NNS_FndAllocFromExpHeapEx
- add r4, r0, #0x0
- ldr r0, [sp, #0x0]
- bl OS_RestoreInterrupts
- cmp r4, #0x0
- beq _02016984
- ldr r1, [r4, #0xc]
- mov r0, #0xff
- bic r1, r0
- lsl r0, r6, #0x18
- lsr r0, r0, #0x18
- orr r0, r1
- str r0, [r4, #0xc]
- add r4, #0x10
-_02016984:
- add r0, r4, #0x0
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02016988
-FUN_02016988: ; 0x02016988
- push {r3, lr}
- bl FUN_02031810
- cmp r0, #0x0
- beq _02016996
- bl FUN_0208A9B8
-_02016996:
- pop {r3, pc}
-
- thumb_func_start FUN_02016998
-FUN_02016998: ; 0x02016998
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldr r0, _020169D4 ; =0x021C4D28
- mov r4, #0x0
- ldrh r2, [r0, #0x14]
- cmp r5, r2
- bhs _020169BA
- ldr r2, [r0, #0x0]
- ldr r0, [r0, #0x10]
- add r3, r5, #0x0
- ldrb r0, [r0, r5]
- lsl r0, r0, #0x2
- ldr r0, [r2, r0]
- mov r2, #0x4
- bl FUN_02016944
- add r4, r0, #0x0
-_020169BA:
- cmp r4, #0x0
- beq _020169CC
- ldr r0, _020169D4 ; =0x021C4D28
- lsl r1, r5, #0x1
- ldr r2, [r0, #0xc]
- ldrh r0, [r2, r1]
- add r0, r0, #0x1
- strh r0, [r2, r1]
- b _020169D0
-_020169CC:
- bl FUN_02016988
-_020169D0:
- add r0, r4, #0x0
- pop {r3-r5, pc}
- .balign 4
-_020169D4: .word 0x021C4D28
-
- thumb_func_start FUN_020169D8
-FUN_020169D8: ; 0x020169D8
- push {r3-r5, lr}
- ldr r2, _02016A14 ; =0x021C4D28
- add r5, r0, #0x0
- ldrh r0, [r2, #0x14]
- mov r4, #0x0
- cmp r5, r0
- bhs _020169FA
- ldr r0, [r2, #0x0]
- ldr r2, [r2, #0x10]
- add r3, r5, #0x0
- ldrb r2, [r2, r5]
- lsl r2, r2, #0x2
- ldr r0, [r0, r2]
- sub r2, r4, #0x4
- bl FUN_02016944
- add r4, r0, #0x0
-_020169FA:
- cmp r4, #0x0
- beq _02016A0C
- ldr r0, _02016A14 ; =0x021C4D28
- lsl r1, r5, #0x1
- ldr r2, [r0, #0xc]
- ldrh r0, [r2, r1]
- add r0, r0, #0x1
- strh r0, [r2, r1]
- b _02016A10
-_02016A0C:
- bl FUN_02016988
-_02016A10:
- add r0, r4, #0x0
- pop {r3-r5, pc}
- .balign 4
-_02016A14: .word 0x021C4D28
-
- thumb_func_start FUN_02016A18
-FUN_02016A18: ; 0x02016A18
- push {r3-r7, lr}
- add r6, r0, #0x0
- sub r0, r6, #0x4
- ldr r0, [r0, #0x0]
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
- ldr r0, _02016A88 ; =0x021C4D28
- ldrh r1, [r0, #0x14]
- cmp r4, r1
- bhs _02016A80
- ldr r1, [r0, #0x0]
- ldr r0, [r0, #0x10]
- ldrb r0, [r0, r4]
- lsl r0, r0, #0x2
- ldr r7, [r1, r0]
- cmp r7, #0x0
- bne _02016A3E
- bl ErrorHandling
-_02016A3E:
- ldr r0, _02016A88 ; =0x021C4D28
- lsl r5, r4, #0x1
- ldr r0, [r0, #0xc]
- ldrh r0, [r0, r5]
- cmp r0, #0x0
- bne _02016A50
- add r0, r4, #0x0
- bl FUN_02016B90
-_02016A50:
- ldr r0, _02016A88 ; =0x021C4D28
- ldr r0, [r0, #0xc]
- ldrh r0, [r0, r5]
- cmp r0, #0x0
- bne _02016A5E
- bl ErrorHandling
-_02016A5E:
- ldr r0, _02016A88 ; =0x021C4D28
- ldr r1, [r0, #0xc]
- ldrh r0, [r1, r5]
- sub r0, r0, #0x1
- strh r0, [r1, r5]
- bl OS_DisableInterrupts
- sub r6, #0x10
- add r4, r0, #0x0
- add r0, r7, #0x0
- add r1, r6, #0x0
- bl FUN_020ADDF0
- add r0, r4, #0x0
- bl OS_RestoreInterrupts
- pop {r3-r7, pc}
-_02016A80:
- bl ErrorHandling
- pop {r3-r7, pc}
- nop
-_02016A88: .word 0x021C4D28
-
- thumb_func_start FUN_02016A8C
-FUN_02016A8C: ; 0x02016A8C
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- bl OS_GetProcMode
- cmp r0, #0x12
- bne _02016A9E
- bl ErrorHandling
-_02016A9E:
- ldr r0, _02016AF4 ; =0x021C4D28
- ldrh r1, [r0, #0x14]
- cmp r5, r1
- bhs _02016AEE
- ldr r1, [r0, #0x0]
- ldr r0, [r0, #0x10]
- ldrb r0, [r0, r5]
- lsl r0, r0, #0x2
- ldr r6, [r1, r0]
- cmp r6, #0x0
- bne _02016AB8
- bl ErrorHandling
-_02016AB8:
- sub r0, r4, #0x4
- ldr r0, [r0, #0x0]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- cmp r0, r5
- beq _02016AC8
- bl ErrorHandling
-_02016AC8:
- sub r4, #0x10
- add r0, r6, #0x0
- add r1, r4, #0x0
- bl FUN_020ADDF0
- ldr r0, _02016AF4 ; =0x021C4D28
- lsl r4, r5, #0x1
- ldr r0, [r0, #0xc]
- ldrh r0, [r0, r4]
- cmp r0, #0x0
- bne _02016AE2
- bl ErrorHandling
-_02016AE2:
- ldr r0, _02016AF4 ; =0x021C4D28
- ldr r1, [r0, #0xc]
- ldrh r0, [r1, r4]
- sub r0, r0, #0x1
- strh r0, [r1, r4]
- pop {r4-r6, pc}
-_02016AEE:
- bl ErrorHandling
- pop {r4-r6, pc}
- .balign 4
-_02016AF4: .word 0x021C4D28
-
- thumb_func_start FUN_02016AF8
-FUN_02016AF8: ; 0x02016AF8
- push {r3, lr}
- ldr r1, _02016B1C ; =0x021C4D28
- ldrh r2, [r1, #0x14]
- cmp r0, r2
- bhs _02016B12
- ldr r2, [r1, #0x0]
- ldr r1, [r1, #0x10]
- ldrb r0, [r1, r0]
- lsl r0, r0, #0x2
- ldr r0, [r2, r0]
- bl FUN_020ADDC8
- pop {r3, pc}
-_02016B12:
- bl ErrorHandling
- mov r0, #0x0
- pop {r3, pc}
- nop
-_02016B1C: .word 0x021C4D28
-
- thumb_func_start FUN_02016B20
-FUN_02016B20: ; 0x02016B20
- push {r4, lr}
- ldr r4, _02016B40 ; =0x021C4D28
- ldrh r3, [r4, #0x14]
- cmp r1, r3
- bhs _02016B3A
- ldr r3, [r4, #0x0]
- ldr r4, [r4, #0x10]
- ldrb r1, [r4, r1]
- lsl r1, r1, #0x2
- ldr r1, [r3, r1]
- bl FUN_020AE82C
- pop {r4, pc}
-_02016B3A:
- bl ErrorHandling
- pop {r4, pc}
- .balign 4
-_02016B40: .word 0x021C4D28
-
- thumb_func_start FUN_02016B44
-FUN_02016B44: ; 0x02016B44
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- bl OS_GetProcMode
- cmp r0, #0x12
- bne _02016B56
- bl ErrorHandling
-_02016B56:
- add r0, r5, #0x0
- sub r0, #0x10
- bl FUN_020ADDC0
- add r4, #0x10
- cmp r0, r4
- blo _02016B84
- sub r2, r5, #0x4
- ldr r0, _02016B8C ; =0x021C4D28
- ldr r2, [r2, #0x0]
- ldr r1, [r0, #0x0]
- lsl r2, r2, #0x18
- ldr r0, [r0, #0x10]
- lsr r2, r2, #0x18
- ldrb r0, [r0, r2]
- sub r5, #0x10
- add r2, r4, #0x0
- lsl r0, r0, #0x2
- ldr r0, [r1, r0]
- add r1, r5, #0x0
- bl FUN_020ADE2C
- pop {r3-r5, pc}
-_02016B84:
- bl ErrorHandling
- pop {r3-r5, pc}
- nop
-_02016B8C: .word 0x021C4D28
-
- thumb_func_start FUN_02016B90
-FUN_02016B90: ; 0x02016B90
- mov r0, #0x1
- bx lr
-
- thumb_func_start FUN_02016B94
-FUN_02016B94: ; 0x02016B94
- push {r3-r5, lr}
- mov r1, #0x5a
- lsl r1, r1, #0x2
- add r5, r0, #0x0
- bl FUN_02016998
- mov r2, #0x5a
- mov r1, #0x0
- lsl r2, r2, #0x2
- add r4, r0, #0x0
- bl Call_FillMemWithValue
- str r5, [r4, #0x0]
- mov r0, #0x0
- strh r0, [r4, #0x4]
- strh r0, [r4, #0x6]
- add r0, r4, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02016BB8
-FUN_02016BB8: ; 0x02016BB8
- ldr r0, [r0, #0x0]
- bx lr
-
- thumb_func_start FUN_02016BBC
-FUN_02016BBC: ; 0x02016BBC
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, [r4, #0x0]
- ldr r1, [r4, #0x4]
- ldr r2, [r4, #0xc]
- bl GX_SetGraphicsMode
- ldr r0, [r4, #0x8]
- bl GXS_SetGraphicsMode
- mov r2, #0x1
- lsl r2, r2, #0x1a
- ldr r1, [r2, #0x0]
- ldr r0, _02016BF0 ; =0xC7FFFFFF
- and r1, r0
- str r1, [r2, #0x0]
- ldr r1, [r2, #0x0]
- asr r0, r0, #0x3
- and r0, r1
- str r0, [r2, #0x0]
- bl FUN_0201E6D8
- bl FUN_0201E740
- pop {r4, pc}
- nop
-_02016BF0: .word 0xC7FFFFFF
-
- thumb_func_start FUN_02016BF4
-FUN_02016BF4: ; 0x02016BF4
- push {r3, lr}
- add r2, r0, #0x0
- cmp r1, #0x0
- bne _02016C0C
- ldr r0, [r2, #0x0]
- ldr r1, [r2, #0x4]
- ldr r2, [r2, #0xc]
- bl GX_SetGraphicsMode
- bl FUN_0201E6D8
- pop {r3, pc}
-_02016C0C:
- ldr r0, [r2, #0x8]
- bl GXS_SetGraphicsMode
- bl FUN_0201E740
- pop {r3, pc}
-
- thumb_func_start FUN_02016C18
-FUN_02016C18: ; 0x02016C18
- push {r3-r7, lr}
- sub sp, #0x18
- str r1, [sp, #0x4]
- str r3, [sp, #0x8]
- add r4, r2, #0x0
- str r0, [sp, #0x0]
- ldrb r0, [r4, #0x10]
- ldr r1, [sp, #0x8]
- bl FUN_020177DC
- add r5, r0, #0x0
- ldr r0, [sp, #0x4]
- cmp r0, #0x7
- bls _02016C36
- b _0201705A
-_02016C36:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02016C42: ; jump table (using 16-bit offset)
- .short _02016C52 - _02016C42 - 2; case 0
- .short _02016CAA - _02016C42 - 2; case 1
- .short _02016D02 - _02016C42 - 2; case 2
- .short _02016DA4 - _02016C42 - 2; case 3
- .short _02016E46 - _02016C42 - 2; case 4
- .short _02016E9E - _02016C42 - 2; case 5
- .short _02016EF6 - _02016C42 - 2; case 6
- .short _02016F98 - _02016C42 - 2; case 7
-_02016C52:
- mov r0, #0x1
- add r1, r0, #0x0
- bl FUN_0201E6E4
- ldrb r3, [r4, #0x14]
- ldrb r1, [r4, #0x12]
- ldrb r0, [r4, #0x11]
- ldrb r2, [r4, #0x13]
- lsl r6, r3, #0xd
- lsl r0, r0, #0x7
- lsl r3, r2, #0x2
- str r0, [sp, #0xc]
- ldr r2, _02016FB4 ; =0x04000008
- lsl r7, r1, #0x8
- ldrh r1, [r2, #0x0]
- mov r0, #0x43
- and r0, r1
- lsl r1, r5, #0xe
- orr r1, r0
- ldr r0, [sp, #0xc]
- orr r0, r1
- orr r0, r7
- orr r0, r3
- orr r0, r6
- strh r0, [r2, #0x0]
- ldrh r1, [r2, #0x0]
- mov r0, #0x3
- bic r1, r0
- ldrb r0, [r4, #0x15]
- orr r0, r1
- strh r0, [r2, #0x0]
- ldr r0, [r4, #0x18]
- cmp r0, #0x0
- beq _02016CA0
- ldrh r1, [r2, #0x0]
- mov r0, #0x40
- orr r0, r1
- strh r0, [r2, #0x0]
- b _0201705A
-_02016CA0:
- ldrh r1, [r2, #0x0]
- mov r0, #0x40
- bic r1, r0
- strh r1, [r2, #0x0]
- b _0201705A
-_02016CAA:
- mov r0, #0x2
- mov r1, #0x1
- bl FUN_0201E6E4
- ldrb r3, [r4, #0x14]
- ldrb r1, [r4, #0x12]
- ldrb r0, [r4, #0x11]
- ldrb r2, [r4, #0x13]
- lsl r6, r3, #0xd
- lsl r0, r0, #0x7
- lsl r3, r2, #0x2
- str r0, [sp, #0x10]
- ldr r2, _02016FB8 ; =0x0400000A
- lsl r7, r1, #0x8
- ldrh r1, [r2, #0x0]
- mov r0, #0x43
- and r0, r1
- lsl r1, r5, #0xe
- orr r1, r0
- ldr r0, [sp, #0x10]
- orr r0, r1
- orr r0, r7
- orr r0, r3
- orr r0, r6
- strh r0, [r2, #0x0]
- ldrh r1, [r2, #0x0]
- mov r0, #0x3
- bic r1, r0
- ldrb r0, [r4, #0x15]
- orr r0, r1
- strh r0, [r2, #0x0]
- ldr r0, [r4, #0x18]
- cmp r0, #0x0
- beq _02016CF8
- ldrh r1, [r2, #0x0]
- mov r0, #0x40
- orr r0, r1
- strh r0, [r2, #0x0]
- b _0201705A
-_02016CF8:
- ldrh r1, [r2, #0x0]
- mov r0, #0x40
- bic r1, r0
- strh r1, [r2, #0x0]
- b _0201705A
-_02016D02:
- mov r0, #0x4
- mov r1, #0x1
- bl FUN_0201E6E4
- ldr r0, [sp, #0x8]
- cmp r0, #0x0
- beq _02016D18
- cmp r0, #0x1
- beq _02016D3A
- cmp r0, #0x2
- beq _02016D5C
-_02016D18:
- ldrb r1, [r4, #0x12]
- ldr r7, _02016FBC ; =0x0400000C
- ldrb r2, [r4, #0x13]
- lsl r3, r1, #0x8
- ldrb r0, [r4, #0x11]
- lsl r6, r2, #0x2
- ldrh r1, [r7, #0x0]
- lsl r2, r0, #0x7
- mov r0, #0x43
- and r0, r1
- lsl r1, r5, #0xe
- orr r0, r1
- orr r0, r2
- orr r0, r3
- orr r0, r6
- strh r0, [r7, #0x0]
- b _02016D7C
-_02016D3A:
- ldrb r2, [r4, #0x13]
- ldrb r1, [r4, #0x12]
- ldrb r0, [r4, #0x16]
- lsl r3, r2, #0x2
- ldr r7, _02016FBC ; =0x0400000C
- lsl r2, r1, #0x8
- lsl r6, r0, #0xd
- ldrh r1, [r7, #0x0]
- mov r0, #0x43
- and r0, r1
- lsl r1, r5, #0xe
- orr r0, r1
- orr r0, r2
- orr r0, r3
- orr r0, r6
- strh r0, [r7, #0x0]
- b _02016D7C
-_02016D5C:
- ldrb r1, [r4, #0x12]
- ldr r7, _02016FBC ; =0x0400000C
- ldrb r0, [r4, #0x16]
- lsl r3, r1, #0x8
- ldrb r2, [r4, #0x13]
- lsl r6, r0, #0xd
- ldrh r1, [r7, #0x0]
- mov r0, #0x43
- lsl r2, r2, #0x2
- and r0, r1
- lsl r1, r5, #0xe
- orr r0, r1
- orr r0, r2
- orr r0, r3
- orr r0, r6
- strh r0, [r7, #0x0]
-_02016D7C:
- ldr r0, _02016FBC ; =0x0400000C
- mov r1, #0x3
- ldrh r2, [r0, #0x0]
- bic r2, r1
- ldrb r1, [r4, #0x15]
- orr r1, r2
- strh r1, [r0, #0x0]
- ldr r1, [r4, #0x18]
- cmp r1, #0x0
- beq _02016D9A
- ldrh r2, [r0, #0x0]
- mov r1, #0x40
- orr r1, r2
- strh r1, [r0, #0x0]
- b _0201705A
-_02016D9A:
- ldrh r2, [r0, #0x0]
- mov r1, #0x40
- bic r2, r1
- strh r2, [r0, #0x0]
- b _0201705A
-_02016DA4:
- mov r0, #0x8
- mov r1, #0x1
- bl FUN_0201E6E4
- ldr r0, [sp, #0x8]
- cmp r0, #0x0
- beq _02016DBA
- cmp r0, #0x1
- beq _02016DDC
- cmp r0, #0x2
- beq _02016DFE
-_02016DBA:
- ldrb r1, [r4, #0x12]
- ldr r7, _02016FC0 ; =0x0400000E
- ldrb r2, [r4, #0x13]
- lsl r3, r1, #0x8
- ldrb r0, [r4, #0x11]
- lsl r6, r2, #0x2
- ldrh r1, [r7, #0x0]
- lsl r2, r0, #0x7
- mov r0, #0x43
- and r0, r1
- lsl r1, r5, #0xe
- orr r0, r1
- orr r0, r2
- orr r0, r3
- orr r0, r6
- strh r0, [r7, #0x0]
- b _02016E1E
-_02016DDC:
- ldrb r2, [r4, #0x13]
- ldrb r1, [r4, #0x12]
- ldrb r0, [r4, #0x16]
- lsl r3, r2, #0x2
- ldr r7, _02016FC0 ; =0x0400000E
- lsl r2, r1, #0x8
- lsl r6, r0, #0xd
- ldrh r1, [r7, #0x0]
- mov r0, #0x43
- and r0, r1
- lsl r1, r5, #0xe
- orr r0, r1
- orr r0, r2
- orr r0, r3
- orr r0, r6
- strh r0, [r7, #0x0]
- b _02016E1E
-_02016DFE:
- ldrb r1, [r4, #0x12]
- ldr r7, _02016FC0 ; =0x0400000E
- ldrb r0, [r4, #0x16]
- lsl r3, r1, #0x8
- ldrb r2, [r4, #0x13]
- lsl r6, r0, #0xd
- ldrh r1, [r7, #0x0]
- mov r0, #0x43
- lsl r2, r2, #0x2
- and r0, r1
- lsl r1, r5, #0xe
- orr r0, r1
- orr r0, r2
- orr r0, r3
- orr r0, r6
- strh r0, [r7, #0x0]
-_02016E1E:
- ldr r0, _02016FC0 ; =0x0400000E
- mov r1, #0x3
- ldrh r2, [r0, #0x0]
- bic r2, r1
- ldrb r1, [r4, #0x15]
- orr r1, r2
- strh r1, [r0, #0x0]
- ldr r1, [r4, #0x18]
- cmp r1, #0x0
- beq _02016E3C
- ldrh r2, [r0, #0x0]
- mov r1, #0x40
- orr r1, r2
- strh r1, [r0, #0x0]
- b _0201705A
-_02016E3C:
- ldrh r2, [r0, #0x0]
- mov r1, #0x40
- bic r2, r1
- strh r2, [r0, #0x0]
- b _0201705A
-_02016E46:
- mov r0, #0x1
- add r1, r0, #0x0
- bl FUN_0201E74C
- ldrb r3, [r4, #0x14]
- ldrb r1, [r4, #0x12]
- ldrb r0, [r4, #0x11]
- ldrb r2, [r4, #0x13]
- lsl r6, r3, #0xd
- lsl r0, r0, #0x7
- lsl r3, r2, #0x2
- str r0, [sp, #0x14]
- ldr r2, _02016FC4 ; =0x04001008
- lsl r7, r1, #0x8
- ldrh r1, [r2, #0x0]
- mov r0, #0x43
- and r0, r1
- lsl r1, r5, #0xe
- orr r1, r0
- ldr r0, [sp, #0x14]
- orr r0, r1
- orr r0, r7
- orr r0, r3
- orr r0, r6
- strh r0, [r2, #0x0]
- ldrh r1, [r2, #0x0]
- mov r0, #0x3
- bic r1, r0
- ldrb r0, [r4, #0x15]
- orr r0, r1
- strh r0, [r2, #0x0]
- ldr r0, [r4, #0x18]
- cmp r0, #0x0
- beq _02016E94
- ldrh r1, [r2, #0x0]
- mov r0, #0x40
- orr r0, r1
- strh r0, [r2, #0x0]
- b _0201705A
-_02016E94:
- ldrh r1, [r2, #0x0]
- mov r0, #0x40
- bic r1, r0
- strh r1, [r2, #0x0]
- b _0201705A
-_02016E9E:
- mov r0, #0x2
- mov r1, #0x1
- bl FUN_0201E74C
- ldrb r2, [r4, #0x13]
- ldrb r1, [r4, #0x12]
- ldrb r0, [r4, #0x11]
- lsl r6, r2, #0x2
- ldrb r3, [r4, #0x14]
- lsl r0, r0, #0x7
- mov r12, r0
- ldr r2, _02016FC8 ; =0x0400100A
- lsl r7, r1, #0x8
- ldrh r1, [r2, #0x0]
- mov r0, #0x43
- lsl r3, r3, #0xd
- and r0, r1
- lsl r1, r5, #0xe
- orr r0, r1
- mov r1, r12
- orr r0, r1
- orr r0, r7
- orr r0, r6
- orr r0, r3
- strh r0, [r2, #0x0]
- ldrh r1, [r2, #0x0]
- mov r0, #0x3
- bic r1, r0
- ldrb r0, [r4, #0x15]
- orr r0, r1
- strh r0, [r2, #0x0]
- ldr r0, [r4, #0x18]
- cmp r0, #0x0
- beq _02016EEC
- ldrh r1, [r2, #0x0]
- mov r0, #0x40
- orr r0, r1
- strh r0, [r2, #0x0]
- b _0201705A
-_02016EEC:
- ldrh r1, [r2, #0x0]
- mov r0, #0x40
- bic r1, r0
- strh r1, [r2, #0x0]
- b _0201705A
-_02016EF6:
- mov r0, #0x4
- mov r1, #0x1
- bl FUN_0201E74C
- ldr r0, [sp, #0x8]
- cmp r0, #0x0
- beq _02016F0C
- cmp r0, #0x1
- beq _02016F2E
- cmp r0, #0x2
- beq _02016F50
-_02016F0C:
- ldrb r1, [r4, #0x12]
- ldr r7, _02016FCC ; =0x0400100C
- ldrb r2, [r4, #0x13]
- lsl r3, r1, #0x8
- ldrb r0, [r4, #0x11]
- lsl r6, r2, #0x2
- ldrh r1, [r7, #0x0]
- lsl r2, r0, #0x7
- mov r0, #0x43
- and r0, r1
- lsl r1, r5, #0xe
- orr r0, r1
- orr r0, r2
- orr r0, r3
- orr r0, r6
- strh r0, [r7, #0x0]
- b _02016F70
-_02016F2E:
- ldrb r2, [r4, #0x13]
- ldrb r1, [r4, #0x12]
- ldrb r0, [r4, #0x16]
- lsl r3, r2, #0x2
- ldr r7, _02016FCC ; =0x0400100C
- lsl r2, r1, #0x8
- lsl r6, r0, #0xd
- ldrh r1, [r7, #0x0]
- mov r0, #0x43
- and r0, r1
- lsl r1, r5, #0xe
- orr r0, r1
- orr r0, r2
- orr r0, r3
- orr r0, r6
- strh r0, [r7, #0x0]
- b _02016F70
-_02016F50:
- ldrb r1, [r4, #0x12]
- ldr r7, _02016FCC ; =0x0400100C
- ldrb r0, [r4, #0x16]
- lsl r3, r1, #0x8
- ldrb r2, [r4, #0x13]
- lsl r6, r0, #0xd
- ldrh r1, [r7, #0x0]
- mov r0, #0x43
- lsl r2, r2, #0x2
- and r0, r1
- lsl r1, r5, #0xe
- orr r0, r1
- orr r0, r2
- orr r0, r3
- orr r0, r6
- strh r0, [r7, #0x0]
-_02016F70:
- ldr r0, _02016FCC ; =0x0400100C
- mov r1, #0x3
- ldrh r2, [r0, #0x0]
- bic r2, r1
- ldrb r1, [r4, #0x15]
- orr r1, r2
- strh r1, [r0, #0x0]
- ldr r1, [r4, #0x18]
- cmp r1, #0x0
- beq _02016F8E
- ldrh r2, [r0, #0x0]
- mov r1, #0x40
- orr r1, r2
- strh r1, [r0, #0x0]
- b _0201705A
-_02016F8E:
- ldrh r2, [r0, #0x0]
- mov r1, #0x40
- bic r2, r1
- strh r2, [r0, #0x0]
- b _0201705A
-_02016F98:
- mov r0, #0x8
- mov r1, #0x1
- bl FUN_0201E74C
- ldr r0, [sp, #0x8]
- cmp r0, #0x0
- beq _02016FAE
- cmp r0, #0x1
- beq _02016FF2
- cmp r0, #0x2
- beq _02017014
-_02016FAE:
- ldrb r1, [r4, #0x12]
- ldr r7, _02016FD0 ; =0x0400100E
- b _02016FD4
- .balign 4
-_02016FB4: .word 0x04000008
-_02016FB8: .word 0x0400000A
-_02016FBC: .word 0x0400000C
-_02016FC0: .word 0x0400000E
-_02016FC4: .word 0x04001008
-_02016FC8: .word 0x0400100A
-_02016FCC: .word 0x0400100C
-_02016FD0: .word 0x0400100E
-_02016FD4:
- ldrb r2, [r4, #0x13]
- lsl r3, r1, #0x8
- ldrb r0, [r4, #0x11]
- lsl r6, r2, #0x2
- ldrh r1, [r7, #0x0]
- lsl r2, r0, #0x7
- mov r0, #0x43
- and r0, r1
- lsl r1, r5, #0xe
- orr r0, r1
- orr r0, r2
- orr r0, r3
- orr r0, r6
- strh r0, [r7, #0x0]
- b _02017034
-_02016FF2:
- ldrb r2, [r4, #0x13]
- ldrb r1, [r4, #0x12]
- ldrb r0, [r4, #0x16]
- lsl r3, r2, #0x2
- ldr r7, _020170F0 ; =0x0400100E
- lsl r2, r1, #0x8
- lsl r6, r0, #0xd
- ldrh r1, [r7, #0x0]
- mov r0, #0x43
- and r0, r1
- lsl r1, r5, #0xe
- orr r0, r1
- orr r0, r2
- orr r0, r3
- orr r0, r6
- strh r0, [r7, #0x0]
- b _02017034
-_02017014:
- ldrb r1, [r4, #0x12]
- ldr r7, _020170F0 ; =0x0400100E
- ldrb r0, [r4, #0x16]
- lsl r3, r1, #0x8
- ldrb r2, [r4, #0x13]
- lsl r6, r0, #0xd
- ldrh r1, [r7, #0x0]
- mov r0, #0x43
- lsl r2, r2, #0x2
- and r0, r1
- lsl r1, r5, #0xe
- orr r0, r1
- orr r0, r2
- orr r0, r3
- orr r0, r6
- strh r0, [r7, #0x0]
-_02017034:
- ldr r0, _020170F0 ; =0x0400100E
- mov r1, #0x3
- ldrh r2, [r0, #0x0]
- bic r2, r1
- ldrb r1, [r4, #0x15]
- orr r1, r2
- strh r1, [r0, #0x0]
- ldr r1, [r4, #0x18]
- cmp r1, #0x0
- beq _02017052
- ldrh r2, [r0, #0x0]
- mov r1, #0x40
- orr r1, r2
- strh r1, [r0, #0x0]
- b _0201705A
-_02017052:
- ldrh r2, [r0, #0x0]
- mov r1, #0x40
- bic r2, r1
- strh r2, [r0, #0x0]
-_0201705A:
- ldr r0, [sp, #0x4]
- mov r1, #0x2c
- add r5, r0, #0x0
- ldr r0, [sp, #0x0]
- mul r5, r1
- add r2, r0, r5
- mov r3, #0x0
- mov r0, #0x1
- strh r3, [r2, #0x20]
- lsl r0, r0, #0xc
- str r0, [r2, #0x24]
- str r0, [r2, #0x28]
- str r3, [r2, #0x2c]
- str r3, [r2, #0x30]
- ldr r1, [r4, #0x8]
- cmp r1, #0x0
- beq _020170A2
- ldr r0, [sp, #0x0]
- ldr r6, [sp, #0x0]
- ldr r0, [r0, #0x0]
- add r6, #0x8
- bl FUN_02016998
- str r0, [r6, r5]
- ldr r1, [r6, r5]
- ldr r2, [r4, #0x8]
- mov r0, #0x0
- bl MIi_CpuClear16
- ldr r0, [sp, #0x0]
- ldr r2, [r4, #0x8]
- add r1, r0, r5
- str r2, [r1, #0xc]
- ldr r0, [r4, #0xc]
- str r0, [r1, #0x10]
- b _020170A8
-_020170A2:
- str r3, [r2, #0x8]
- str r3, [r2, #0xc]
- str r3, [r2, #0x10]
-_020170A8:
- ldr r0, [sp, #0x0]
- ldrb r1, [r4, #0x10]
- add r0, r0, r5
- strb r1, [r0, #0x1d]
- ldr r1, [sp, #0x8]
- strb r1, [r0, #0x1c]
- ldrb r1, [r4, #0x11]
- strb r1, [r0, #0x1e]
- ldr r1, [sp, #0x8]
- cmp r1, #0x0
- bne _020170CA
- ldrb r1, [r4, #0x11]
- cmp r1, #0x0
- bne _020170CA
- mov r1, #0x20
- strb r1, [r0, #0x1f]
- b _020170D2
-_020170CA:
- ldr r0, [sp, #0x0]
- mov r1, #0x40
- add r0, r0, r5
- strb r1, [r0, #0x1f]
-_020170D2:
- ldr r0, [sp, #0x0]
- ldr r1, [sp, #0x4]
- ldr r3, [r4, #0x0]
- mov r2, #0x0
- bl FUN_020179E0
- ldr r0, [sp, #0x0]
- ldr r1, [sp, #0x4]
- ldr r3, [r4, #0x4]
- mov r2, #0x3
- bl FUN_020179E0
- add sp, #0x18
- pop {r3-r7, pc}
- nop
-_020170F0: .word 0x0400100E
-
- thumb_func_start FUN_020170F4
-FUN_020170F4: ; 0x020170F4
- push {r3-r7, lr}
- sub sp, #0x20
- add r4, r1, #0x0
- add r5, r0, #0x0
- add r1, r2, #0x0
- add r0, r3, #0x0
- cmp r1, #0x0
- bne _0201710C
- mov r2, #0x2c
- mul r2, r4
- add r2, r5, r2
- strb r0, [r2, #0x1e]
-_0201710C:
- cmp r4, #0x7
- bls _02017112
- b _020177C4
-_02017112:
- add r2, r4, r4
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0201711E: ; jump table (using 16-bit offset)
- .short _0201712E - _0201711E - 2; case 0
- .short _0201719A - _0201711E - 2; case 1
- .short _02017206 - _0201711E - 2; case 2
- .short _0201733A - _0201711E - 2; case 3
- .short _0201746E - _0201711E - 2; case 4
- .short _020174F4 - _0201711E - 2; case 5
- .short _02017560 - _0201711E - 2; case 6
- .short _02017694 - _0201711E - 2; case 7
-_0201712E:
- ldr r2, _02017480 ; =0x04000008
- cmp r1, #0x1
- ldrh r3, [r2, #0x0]
- add r2, sp, #0x0
- strh r3, [r2, #0x1e]
- bne _0201714A
- ldrh r3, [r2, #0x1e]
- ldr r1, _02017484 ; =0xFFFFE0FF
- lsl r0, r0, #0x1b
- and r1, r3
- lsr r0, r0, #0x13
- orr r0, r1
- strh r0, [r2, #0x1e]
- b _0201715C
-_0201714A:
- cmp r1, #0x2
- bne _0201715C
- ldrh r3, [r2, #0x1e]
- mov r1, #0x3c
- lsl r0, r0, #0x1c
- bic r3, r1
- lsr r0, r0, #0x1a
- orr r0, r3
- strh r0, [r2, #0x1e]
-_0201715C:
- add r0, sp, #0x0
- ldrh r3, [r0, #0x1e]
- add sp, #0x20
- lsl r0, r3, #0x12
- lsr r6, r0, #0x1f
- lsl r0, r3, #0x1a
- lsr r2, r0, #0x1c
- lsl r0, r3, #0x13
- lsr r1, r0, #0x1b
- mov r0, #0x2c
- mul r0, r4
- add r0, r5, r0
- lsl r3, r3, #0x10
- lsr r5, r3, #0x1e
- lsl r3, r2, #0x2
- ldrb r0, [r0, #0x1e]
- lsl r2, r1, #0x8
- lsl r4, r6, #0xd
- lsl r1, r0, #0x7
- ldr r0, _02017480 ; =0x04000008
- mov r6, #0x43
- ldrh r7, [r0, #0x0]
- lsl r5, r5, #0xe
- and r6, r7
- orr r5, r6
- orr r1, r5
- orr r1, r2
- orr r1, r3
- orr r1, r4
- strh r1, [r0, #0x0]
- pop {r3-r7, pc}
-_0201719A:
- ldr r2, _02017488 ; =0x0400000A
- cmp r1, #0x1
- ldrh r3, [r2, #0x0]
- add r2, sp, #0x0
- strh r3, [r2, #0x1c]
- bne _020171B6
- ldrh r3, [r2, #0x1c]
- ldr r1, _02017484 ; =0xFFFFE0FF
- lsl r0, r0, #0x1b
- and r1, r3
- lsr r0, r0, #0x13
- orr r0, r1
- strh r0, [r2, #0x1c]
- b _020171C8
-_020171B6:
- cmp r1, #0x2
- bne _020171C8
- ldrh r3, [r2, #0x1c]
- mov r1, #0x3c
- lsl r0, r0, #0x1c
- bic r3, r1
- lsr r0, r0, #0x1a
- orr r0, r3
- strh r0, [r2, #0x1c]
-_020171C8:
- add r0, sp, #0x0
- ldrh r3, [r0, #0x1c]
- add sp, #0x20
- lsl r0, r3, #0x12
- lsr r6, r0, #0x1f
- lsl r0, r3, #0x1a
- lsr r2, r0, #0x1c
- lsl r0, r3, #0x13
- lsr r1, r0, #0x1b
- mov r0, #0x2c
- mul r0, r4
- add r0, r5, r0
- lsl r3, r3, #0x10
- lsr r5, r3, #0x1e
- lsl r3, r2, #0x2
- ldrb r0, [r0, #0x1e]
- lsl r2, r1, #0x8
- lsl r4, r6, #0xd
- lsl r1, r0, #0x7
- ldr r0, _02017488 ; =0x0400000A
- mov r6, #0x43
- ldrh r7, [r0, #0x0]
- lsl r5, r5, #0xe
- and r6, r7
- orr r5, r6
- orr r1, r5
- orr r1, r2
- orr r1, r3
- orr r1, r4
- strh r1, [r0, #0x0]
- pop {r3-r7, pc}
-_02017206:
- mov r2, #0x2c
- mul r2, r4
- add r3, r5, r2
- ldrb r3, [r3, #0x1c]
- cmp r3, #0x0
- beq _0201721A
- cmp r3, #0x1
- beq _0201727A
- cmp r3, #0x2
- beq _020172DA
-_0201721A:
- ldr r3, _0201748C ; =0x0400000C
- cmp r1, #0x1
- ldrh r4, [r3, #0x0]
- add r3, sp, #0x0
- strh r4, [r3, #0x1a]
- bne _02017236
- ldrh r4, [r3, #0x1a]
- ldr r1, _02017484 ; =0xFFFFE0FF
- lsl r0, r0, #0x1b
- and r1, r4
- lsr r0, r0, #0x13
- orr r0, r1
- strh r0, [r3, #0x1a]
- b _02017248
-_02017236:
- cmp r1, #0x2
- bne _02017248
- ldrh r4, [r3, #0x1a]
- mov r1, #0x3c
- lsl r0, r0, #0x1c
- bic r4, r1
- lsr r0, r0, #0x1a
- orr r0, r4
- strh r0, [r3, #0x1a]
-_02017248:
- add r0, sp, #0x0
- ldrh r3, [r0, #0x1a]
- add r2, r5, r2
- ldr r6, _0201748C ; =0x0400000C
- lsl r0, r3, #0x1a
- ldrb r4, [r2, #0x1e]
- lsr r1, r0, #0x1c
- lsl r0, r3, #0x13
- lsl r2, r3, #0x10
- lsr r3, r2, #0x1e
- ldrh r5, [r6, #0x0]
- lsr r0, r0, #0x1b
- lsl r2, r1, #0x2
- lsl r1, r0, #0x8
- lsl r0, r4, #0x7
- mov r4, #0x43
- and r4, r5
- lsl r3, r3, #0xe
- orr r3, r4
- orr r0, r3
- orr r0, r1
- orr r0, r2
- add sp, #0x20
- strh r0, [r6, #0x0]
- pop {r3-r7, pc}
-_0201727A:
- ldr r2, _0201748C ; =0x0400000C
- cmp r1, #0x1
- ldrh r3, [r2, #0x0]
- add r2, sp, #0x0
- strh r3, [r2, #0x18]
- bne _02017296
- ldrh r3, [r2, #0x18]
- ldr r1, _02017484 ; =0xFFFFE0FF
- lsl r0, r0, #0x1b
- and r1, r3
- lsr r0, r0, #0x13
- orr r0, r1
- strh r0, [r2, #0x18]
- b _020172A8
-_02017296:
- cmp r1, #0x2
- bne _020172A8
- ldrh r3, [r2, #0x18]
- mov r1, #0x3c
- lsl r0, r0, #0x1c
- bic r3, r1
- lsr r0, r0, #0x1a
- orr r0, r3
- strh r0, [r2, #0x18]
-_020172A8:
- add r0, sp, #0x0
- ldrh r3, [r0, #0x18]
- ldr r6, _0201748C ; =0x0400000C
- add sp, #0x20
- lsl r1, r3, #0x13
- lsl r0, r3, #0x1a
- lsr r4, r1, #0x1b
- lsl r1, r3, #0x12
- lsr r2, r1, #0x1f
- lsl r1, r3, #0x10
- lsr r3, r1, #0x1e
- lsr r0, r0, #0x1c
- lsl r1, r0, #0x2
- lsl r0, r4, #0x8
- ldrh r5, [r6, #0x0]
- mov r4, #0x43
- lsl r3, r3, #0xe
- and r4, r5
- orr r3, r4
- orr r0, r3
- lsl r2, r2, #0xd
- orr r0, r1
- orr r0, r2
- strh r0, [r6, #0x0]
- pop {r3-r7, pc}
-_020172DA:
- ldr r2, _0201748C ; =0x0400000C
- cmp r1, #0x1
- ldrh r3, [r2, #0x0]
- add r2, sp, #0x0
- strh r3, [r2, #0x16]
- bne _020172F6
- ldrh r3, [r2, #0x16]
- ldr r1, _02017484 ; =0xFFFFE0FF
- lsl r0, r0, #0x1b
- and r1, r3
- lsr r0, r0, #0x13
- orr r0, r1
- strh r0, [r2, #0x16]
- b _02017308
-_020172F6:
- cmp r1, #0x2
- bne _02017308
- ldrh r3, [r2, #0x16]
- mov r1, #0x38
- lsl r0, r0, #0x1d
- bic r3, r1
- lsr r0, r0, #0x1a
- orr r0, r3
- strh r0, [r2, #0x16]
-_02017308:
- add r0, sp, #0x0
- ldrh r3, [r0, #0x16]
- ldr r6, _0201748C ; =0x0400000C
- add sp, #0x20
- lsl r1, r3, #0x13
- lsr r4, r1, #0x1b
- lsl r1, r3, #0x12
- lsr r2, r1, #0x1f
- lsl r0, r3, #0x1a
- lsl r1, r3, #0x10
- lsr r3, r1, #0x1e
- lsl r1, r4, #0x8
- lsr r0, r0, #0x1d
- ldrh r5, [r6, #0x0]
- mov r4, #0x43
- lsl r3, r3, #0xe
- and r4, r5
- lsl r0, r0, #0x2
- orr r3, r4
- orr r0, r3
- lsl r2, r2, #0xd
- orr r0, r1
- orr r0, r2
- strh r0, [r6, #0x0]
- pop {r3-r7, pc}
-_0201733A:
- mov r2, #0x2c
- mul r2, r4
- add r3, r5, r2
- ldrb r3, [r3, #0x1c]
- cmp r3, #0x0
- beq _0201734E
- cmp r3, #0x1
- beq _020173AE
- cmp r3, #0x2
- beq _0201740E
-_0201734E:
- ldr r3, _02017490 ; =0x0400000E
- cmp r1, #0x1
- ldrh r4, [r3, #0x0]
- add r3, sp, #0x0
- strh r4, [r3, #0x14]
- bne _0201736A
- ldrh r4, [r3, #0x14]
- ldr r1, _02017484 ; =0xFFFFE0FF
- lsl r0, r0, #0x1b
- and r1, r4
- lsr r0, r0, #0x13
- orr r0, r1
- strh r0, [r3, #0x14]
- b _0201737C
-_0201736A:
- cmp r1, #0x2
- bne _0201737C
- ldrh r4, [r3, #0x14]
- mov r1, #0x3c
- lsl r0, r0, #0x1c
- bic r4, r1
- lsr r0, r0, #0x1a
- orr r0, r4
- strh r0, [r3, #0x14]
-_0201737C:
- add r0, sp, #0x0
- ldrh r3, [r0, #0x14]
- add r2, r5, r2
- ldr r6, _02017490 ; =0x0400000E
- lsl r0, r3, #0x1a
- ldrb r4, [r2, #0x1e]
- lsr r1, r0, #0x1c
- lsl r0, r3, #0x13
- lsl r2, r3, #0x10
- lsr r3, r2, #0x1e
- ldrh r5, [r6, #0x0]
- lsr r0, r0, #0x1b
- lsl r2, r1, #0x2
- lsl r1, r0, #0x8
- lsl r0, r4, #0x7
- mov r4, #0x43
- and r4, r5
- lsl r3, r3, #0xe
- orr r3, r4
- orr r0, r3
- orr r0, r1
- orr r0, r2
- add sp, #0x20
- strh r0, [r6, #0x0]
- pop {r3-r7, pc}
-_020173AE:
- ldr r2, _02017490 ; =0x0400000E
- cmp r1, #0x1
- ldrh r3, [r2, #0x0]
- add r2, sp, #0x0
- strh r3, [r2, #0x12]
- bne _020173CA
- ldrh r3, [r2, #0x12]
- ldr r1, _02017484 ; =0xFFFFE0FF
- lsl r0, r0, #0x1b
- and r1, r3
- lsr r0, r0, #0x13
- orr r0, r1
- strh r0, [r2, #0x12]
- b _020173DC
-_020173CA:
- cmp r1, #0x2
- bne _020173DC
- ldrh r3, [r2, #0x12]
- mov r1, #0x3c
- lsl r0, r0, #0x1c
- bic r3, r1
- lsr r0, r0, #0x1a
- orr r0, r3
- strh r0, [r2, #0x12]
-_020173DC:
- add r0, sp, #0x0
- ldrh r3, [r0, #0x12]
- ldr r6, _02017490 ; =0x0400000E
- add sp, #0x20
- lsl r1, r3, #0x13
- lsl r0, r3, #0x1a
- lsr r4, r1, #0x1b
- lsl r1, r3, #0x12
- lsr r2, r1, #0x1f
- lsl r1, r3, #0x10
- lsr r3, r1, #0x1e
- lsr r0, r0, #0x1c
- lsl r1, r0, #0x2
- lsl r0, r4, #0x8
- ldrh r5, [r6, #0x0]
- mov r4, #0x43
- lsl r3, r3, #0xe
- and r4, r5
- orr r3, r4
- orr r0, r3
- lsl r2, r2, #0xd
- orr r0, r1
- orr r0, r2
- strh r0, [r6, #0x0]
- pop {r3-r7, pc}
-_0201740E:
- ldr r2, _02017490 ; =0x0400000E
- cmp r1, #0x1
- ldrh r3, [r2, #0x0]
- add r2, sp, #0x0
- strh r3, [r2, #0x10]
- bne _0201742A
- ldrh r3, [r2, #0x10]
- ldr r1, _02017484 ; =0xFFFFE0FF
- lsl r0, r0, #0x1b
- and r1, r3
- lsr r0, r0, #0x13
- orr r0, r1
- strh r0, [r2, #0x10]
- b _0201743C
-_0201742A:
- cmp r1, #0x2
- bne _0201743C
- ldrh r3, [r2, #0x10]
- mov r1, #0x38
- lsl r0, r0, #0x1d
- bic r3, r1
- lsr r0, r0, #0x1a
- orr r0, r3
- strh r0, [r2, #0x10]
-_0201743C:
- add r0, sp, #0x0
- ldrh r3, [r0, #0x10]
- ldr r6, _02017490 ; =0x0400000E
- add sp, #0x20
- lsl r1, r3, #0x13
- lsr r4, r1, #0x1b
- lsl r1, r3, #0x12
- lsr r2, r1, #0x1f
- lsl r0, r3, #0x1a
- lsl r1, r3, #0x10
- lsr r3, r1, #0x1e
- lsl r1, r4, #0x8
- lsr r0, r0, #0x1d
- ldrh r5, [r6, #0x0]
- mov r4, #0x43
- lsl r3, r3, #0xe
- and r4, r5
- lsl r0, r0, #0x2
- orr r3, r4
- orr r0, r3
- lsl r2, r2, #0xd
- orr r0, r1
- orr r0, r2
- strh r0, [r6, #0x0]
- pop {r3-r7, pc}
-_0201746E:
- ldr r2, _02017494 ; =0x04001008
- cmp r1, #0x1
- ldrh r3, [r2, #0x0]
- add r2, sp, #0x0
- strh r3, [r2, #0xe]
- bne _020174A4
- ldrh r3, [r2, #0xe]
- ldr r1, _02017484 ; =0xFFFFE0FF
- b _02017498
- .balign 4
-_02017480: .word 0x04000008
-_02017484: .word 0xFFFFE0FF
-_02017488: .word 0x0400000A
-_0201748C: .word 0x0400000C
-_02017490: .word 0x0400000E
-_02017494: .word 0x04001008
-_02017498:
- lsl r0, r0, #0x1b
- and r1, r3
- lsr r0, r0, #0x13
- orr r0, r1
- strh r0, [r2, #0xe]
- b _020174B6
-_020174A4:
- cmp r1, #0x2
- bne _020174B6
- ldrh r3, [r2, #0xe]
- mov r1, #0x3c
- lsl r0, r0, #0x1c
- bic r3, r1
- lsr r0, r0, #0x1a
- orr r0, r3
- strh r0, [r2, #0xe]
-_020174B6:
- add r0, sp, #0x0
- ldrh r3, [r0, #0xe]
- add sp, #0x20
- lsl r0, r3, #0x12
- lsr r6, r0, #0x1f
- lsl r0, r3, #0x1a
- lsr r2, r0, #0x1c
- lsl r0, r3, #0x13
- lsr r1, r0, #0x1b
- mov r0, #0x2c
- mul r0, r4
- add r0, r5, r0
- lsl r3, r3, #0x10
- lsr r5, r3, #0x1e
- lsl r3, r2, #0x2
- ldrb r0, [r0, #0x1e]
- lsl r2, r1, #0x8
- lsl r4, r6, #0xd
- lsl r1, r0, #0x7
- ldr r0, _020177C8 ; =0x04001008
- mov r6, #0x43
- ldrh r7, [r0, #0x0]
- lsl r5, r5, #0xe
- and r6, r7
- orr r5, r6
- orr r1, r5
- orr r1, r2
- orr r1, r3
- orr r1, r4
- strh r1, [r0, #0x0]
- pop {r3-r7, pc}
-_020174F4:
- ldr r2, _020177CC ; =0x0400100A
- cmp r1, #0x1
- ldrh r3, [r2, #0x0]
- add r2, sp, #0x0
- strh r3, [r2, #0xc]
- bne _02017510
- ldrh r3, [r2, #0xc]
- ldr r1, _020177D0 ; =0xFFFFE0FF
- lsl r0, r0, #0x1b
- and r1, r3
- lsr r0, r0, #0x13
- orr r0, r1
- strh r0, [r2, #0xc]
- b _02017522
-_02017510:
- cmp r1, #0x2
- bne _02017522
- ldrh r3, [r2, #0xc]
- mov r1, #0x3c
- lsl r0, r0, #0x1c
- bic r3, r1
- lsr r0, r0, #0x1a
- orr r0, r3
- strh r0, [r2, #0xc]
-_02017522:
- add r0, sp, #0x0
- ldrh r3, [r0, #0xc]
- add sp, #0x20
- lsl r0, r3, #0x12
- lsr r6, r0, #0x1f
- lsl r0, r3, #0x1a
- lsr r2, r0, #0x1c
- lsl r0, r3, #0x13
- lsr r1, r0, #0x1b
- mov r0, #0x2c
- mul r0, r4
- add r0, r5, r0
- lsl r3, r3, #0x10
- lsr r5, r3, #0x1e
- lsl r3, r2, #0x2
- ldrb r0, [r0, #0x1e]
- lsl r2, r1, #0x8
- lsl r4, r6, #0xd
- lsl r1, r0, #0x7
- ldr r0, _020177CC ; =0x0400100A
- mov r6, #0x43
- ldrh r7, [r0, #0x0]
- lsl r5, r5, #0xe
- and r6, r7
- orr r5, r6
- orr r1, r5
- orr r1, r2
- orr r1, r3
- orr r1, r4
- strh r1, [r0, #0x0]
- pop {r3-r7, pc}
-_02017560:
- mov r2, #0x2c
- mul r2, r4
- add r3, r5, r2
- ldrb r3, [r3, #0x1c]
- cmp r3, #0x0
- beq _02017574
- cmp r3, #0x1
- beq _020175D4
- cmp r3, #0x2
- beq _02017634
-_02017574:
- ldr r3, _020177D4 ; =0x0400100C
- cmp r1, #0x1
- ldrh r4, [r3, #0x0]
- add r3, sp, #0x0
- strh r4, [r3, #0xa]
- bne _02017590
- ldrh r4, [r3, #0xa]
- ldr r1, _020177D0 ; =0xFFFFE0FF
- lsl r0, r0, #0x1b
- and r1, r4
- lsr r0, r0, #0x13
- orr r0, r1
- strh r0, [r3, #0xa]
- b _020175A2
-_02017590:
- cmp r1, #0x2
- bne _020175A2
- ldrh r4, [r3, #0xa]
- mov r1, #0x3c
- lsl r0, r0, #0x1c
- bic r4, r1
- lsr r0, r0, #0x1a
- orr r0, r4
- strh r0, [r3, #0xa]
-_020175A2:
- add r0, sp, #0x0
- ldrh r3, [r0, #0xa]
- add r2, r5, r2
- ldr r6, _020177D4 ; =0x0400100C
- lsl r0, r3, #0x1a
- ldrb r4, [r2, #0x1e]
- lsr r1, r0, #0x1c
- lsl r0, r3, #0x13
- lsl r2, r3, #0x10
- lsr r3, r2, #0x1e
- ldrh r5, [r6, #0x0]
- lsr r0, r0, #0x1b
- lsl r2, r1, #0x2
- lsl r1, r0, #0x8
- lsl r0, r4, #0x7
- mov r4, #0x43
- and r4, r5
- lsl r3, r3, #0xe
- orr r3, r4
- orr r0, r3
- orr r0, r1
- orr r0, r2
- add sp, #0x20
- strh r0, [r6, #0x0]
- pop {r3-r7, pc}
-_020175D4:
- ldr r2, _020177D4 ; =0x0400100C
- cmp r1, #0x1
- ldrh r3, [r2, #0x0]
- add r2, sp, #0x0
- strh r3, [r2, #0x8]
- bne _020175F0
- ldrh r3, [r2, #0x8]
- ldr r1, _020177D0 ; =0xFFFFE0FF
- lsl r0, r0, #0x1b
- and r1, r3
- lsr r0, r0, #0x13
- orr r0, r1
- strh r0, [r2, #0x8]
- b _02017602
-_020175F0:
- cmp r1, #0x2
- bne _02017602
- ldrh r3, [r2, #0x8]
- mov r1, #0x3c
- lsl r0, r0, #0x1c
- bic r3, r1
- lsr r0, r0, #0x1a
- orr r0, r3
- strh r0, [r2, #0x8]
-_02017602:
- add r0, sp, #0x0
- ldrh r3, [r0, #0x8]
- ldr r6, _020177D4 ; =0x0400100C
- add sp, #0x20
- lsl r1, r3, #0x13
- lsl r0, r3, #0x1a
- lsr r4, r1, #0x1b
- lsl r1, r3, #0x12
- lsr r2, r1, #0x1f
- lsl r1, r3, #0x10
- lsr r3, r1, #0x1e
- lsr r0, r0, #0x1c
- lsl r1, r0, #0x2
- lsl r0, r4, #0x8
- ldrh r5, [r6, #0x0]
- mov r4, #0x43
- lsl r3, r3, #0xe
- and r4, r5
- orr r3, r4
- orr r0, r3
- lsl r2, r2, #0xd
- orr r0, r1
- orr r0, r2
- strh r0, [r6, #0x0]
- pop {r3-r7, pc}
-_02017634:
- ldr r2, _020177D4 ; =0x0400100C
- cmp r1, #0x1
- ldrh r3, [r2, #0x0]
- add r2, sp, #0x0
- strh r3, [r2, #0x6]
- bne _02017650
- ldrh r3, [r2, #0x6]
- ldr r1, _020177D0 ; =0xFFFFE0FF
- lsl r0, r0, #0x1b
- and r1, r3
- lsr r0, r0, #0x13
- orr r0, r1
- strh r0, [r2, #0x6]
- b _02017662
-_02017650:
- cmp r1, #0x2
- bne _02017662
- ldrh r3, [r2, #0x6]
- mov r1, #0x38
- lsl r0, r0, #0x1d
- bic r3, r1
- lsr r0, r0, #0x1a
- orr r0, r3
- strh r0, [r2, #0x6]
-_02017662:
- add r0, sp, #0x0
- ldrh r3, [r0, #0x6]
- ldr r6, _020177D4 ; =0x0400100C
- add sp, #0x20
- lsl r1, r3, #0x13
- lsr r4, r1, #0x1b
- lsl r1, r3, #0x12
- lsr r2, r1, #0x1f
- lsl r0, r3, #0x1a
- lsl r1, r3, #0x10
- lsr r3, r1, #0x1e
- lsl r1, r4, #0x8
- lsr r0, r0, #0x1d
- ldrh r5, [r6, #0x0]
- mov r4, #0x43
- lsl r3, r3, #0xe
- and r4, r5
- lsl r0, r0, #0x2
- orr r3, r4
- orr r0, r3
- lsl r2, r2, #0xd
- orr r0, r1
- orr r0, r2
- strh r0, [r6, #0x0]
- pop {r3-r7, pc}
-_02017694:
- mov r2, #0x2c
- mul r2, r4
- add r3, r5, r2
- ldrb r3, [r3, #0x1c]
- cmp r3, #0x0
- beq _020176A8
- cmp r3, #0x1
- beq _02017708
- cmp r3, #0x2
- beq _02017768
-_020176A8:
- ldr r3, _020177D8 ; =0x0400100E
- cmp r1, #0x1
- ldrh r4, [r3, #0x0]
- add r3, sp, #0x0
- strh r4, [r3, #0x4]
- bne _020176C4
- ldrh r4, [r3, #0x4]
- ldr r1, _020177D0 ; =0xFFFFE0FF
- lsl r0, r0, #0x1b
- and r1, r4
- lsr r0, r0, #0x13
- orr r0, r1
- strh r0, [r3, #0x4]
- b _020176D6
-_020176C4:
- cmp r1, #0x2
- bne _020176D6
- ldrh r4, [r3, #0x4]
- mov r1, #0x3c
- lsl r0, r0, #0x1c
- bic r4, r1
- lsr r0, r0, #0x1a
- orr r0, r4
- strh r0, [r3, #0x4]
-_020176D6:
- add r0, sp, #0x0
- ldrh r3, [r0, #0x4]
- add r2, r5, r2
- ldr r6, _020177D8 ; =0x0400100E
- lsl r0, r3, #0x1a
- ldrb r4, [r2, #0x1e]
- lsr r1, r0, #0x1c
- lsl r0, r3, #0x13
- lsl r2, r3, #0x10
- lsr r3, r2, #0x1e
- ldrh r5, [r6, #0x0]
- lsr r0, r0, #0x1b
- lsl r2, r1, #0x2
- lsl r1, r0, #0x8
- lsl r0, r4, #0x7
- mov r4, #0x43
- and r4, r5
- lsl r3, r3, #0xe
- orr r3, r4
- orr r0, r3
- orr r0, r1
- orr r0, r2
- add sp, #0x20
- strh r0, [r6, #0x0]
- pop {r3-r7, pc}
-_02017708:
- ldr r2, _020177D8 ; =0x0400100E
- cmp r1, #0x1
- ldrh r3, [r2, #0x0]
- add r2, sp, #0x0
- strh r3, [r2, #0x2]
- bne _02017724
- ldrh r3, [r2, #0x2]
- ldr r1, _020177D0 ; =0xFFFFE0FF
- lsl r0, r0, #0x1b
- and r1, r3
- lsr r0, r0, #0x13
- orr r0, r1
- strh r0, [r2, #0x2]
- b _02017736
-_02017724:
- cmp r1, #0x2
- bne _02017736
- ldrh r3, [r2, #0x2]
- mov r1, #0x3c
- lsl r0, r0, #0x1c
- bic r3, r1
- lsr r0, r0, #0x1a
- orr r0, r3
- strh r0, [r2, #0x2]
-_02017736:
- add r0, sp, #0x0
- ldrh r3, [r0, #0x2]
- ldr r6, _020177D8 ; =0x0400100E
- add sp, #0x20
- lsl r1, r3, #0x13
- lsl r0, r3, #0x1a
- lsr r4, r1, #0x1b
- lsl r1, r3, #0x12
- lsr r2, r1, #0x1f
- lsl r1, r3, #0x10
- lsr r3, r1, #0x1e
- lsr r0, r0, #0x1c
- lsl r1, r0, #0x2
- lsl r0, r4, #0x8
- ldrh r5, [r6, #0x0]
- mov r4, #0x43
- lsl r3, r3, #0xe
- and r4, r5
- orr r3, r4
- orr r0, r3
- lsl r2, r2, #0xd
- orr r0, r1
- orr r0, r2
- strh r0, [r6, #0x0]
- pop {r3-r7, pc}
-_02017768:
- ldr r2, _020177D8 ; =0x0400100E
- cmp r1, #0x1
- ldrh r3, [r2, #0x0]
- add r2, sp, #0x0
- strh r3, [r2, #0x0]
- bne _02017784
- ldrh r3, [r2, #0x0]
- ldr r1, _020177D0 ; =0xFFFFE0FF
- lsl r0, r0, #0x1b
- and r1, r3
- lsr r0, r0, #0x13
- orr r0, r1
- strh r0, [r2, #0x0]
- b _02017796
-_02017784:
- cmp r1, #0x2
- bne _02017796
- ldrh r3, [r2, #0x0]
- mov r1, #0x38
- lsl r0, r0, #0x1d
- bic r3, r1
- lsr r0, r0, #0x1a
- orr r0, r3
- strh r0, [r2, #0x0]
-_02017796:
- add r0, sp, #0x0
- ldrh r3, [r0, #0x0]
- ldr r6, _020177D8 ; =0x0400100E
- lsl r1, r3, #0x13
- lsr r4, r1, #0x1b
- lsl r1, r3, #0x12
- lsr r2, r1, #0x1f
- lsl r0, r3, #0x1a
- lsl r1, r3, #0x10
- lsr r3, r1, #0x1e
- lsl r1, r4, #0x8
- lsr r0, r0, #0x1d
- ldrh r5, [r6, #0x0]
- mov r4, #0x43
- lsl r3, r3, #0xe
- and r4, r5
- lsl r0, r0, #0x2
- orr r3, r4
- orr r0, r3
- lsl r2, r2, #0xd
- orr r0, r1
- orr r0, r2
- strh r0, [r6, #0x0]
-_020177C4:
- add sp, #0x20
- pop {r3-r7, pc}
- .balign 4
-_020177C8: .word 0x04001008
-_020177CC: .word 0x0400100A
-_020177D0: .word 0xFFFFE0FF
-_020177D4: .word 0x0400100C
-_020177D8: .word 0x0400100E
-
- thumb_func_start FUN_020177DC
-FUN_020177DC: ; 0x020177DC
- cmp r1, #0x0
- beq _020177EA
- cmp r1, #0x1
- beq _0201780A
- cmp r1, #0x2
- beq _0201782A
- b _0201784A
-_020177EA:
- cmp r0, #0x1
- bne _020177F2
- mov r0, #0x0
- bx lr
-_020177F2:
- cmp r0, #0x2
- bne _020177FA
- mov r0, #0x2
- bx lr
-_020177FA:
- cmp r0, #0x3
- bne _02017802
- mov r0, #0x1
- bx lr
-_02017802:
- cmp r0, #0x4
- bne _0201784A
- mov r0, #0x3
- bx lr
-_0201780A:
- cmp r0, #0x0
- bne _02017812
- mov r0, #0x0
- bx lr
-_02017812:
- cmp r0, #0x1
- bne _0201781A
- mov r0, #0x1
- bx lr
-_0201781A:
- cmp r0, #0x4
- bne _02017822
- mov r0, #0x2
- bx lr
-_02017822:
- cmp r0, #0x5
- bne _0201784A
- mov r0, #0x3
- bx lr
-_0201782A:
- cmp r0, #0x0
- bne _02017832
- mov r0, #0x0
- bx lr
-_02017832:
- cmp r0, #0x1
- bne _0201783A
- mov r0, #0x1
- bx lr
-_0201783A:
- cmp r0, #0x4
- bne _02017842
- mov r0, #0x2
- bx lr
-_02017842:
- cmp r0, #0x5
- bne _0201784A
- mov r0, #0x3
- bx lr
-_0201784A:
- mov r0, #0x0
- bx lr
- .balign 4
-
- thumb_func_start FUN_02017850
-FUN_02017850: ; 0x02017850
- cmp r0, #0x5
- bhi _0201789E
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02017860: ; jump table (using 16-bit offset)
- .short _0201786C - _02017860 - 2; case 0
- .short _02017874 - _02017860 - 2; case 1
- .short _0201787C - _02017860 - 2; case 2
- .short _02017886 - _02017860 - 2; case 3
- .short _02017890 - _02017860 - 2; case 4
- .short _02017898 - _02017860 - 2; case 5
-_0201786C:
- mov r0, #0x10
- strb r0, [r1, #0x0]
- strb r0, [r2, #0x0]
- bx lr
-_02017874:
- mov r0, #0x20
- strb r0, [r1, #0x0]
- strb r0, [r2, #0x0]
- bx lr
-_0201787C:
- mov r0, #0x20
- strb r0, [r1, #0x0]
- mov r0, #0x40
- strb r0, [r2, #0x0]
- bx lr
-_02017886:
- mov r0, #0x40
- strb r0, [r1, #0x0]
- mov r0, #0x20
- strb r0, [r2, #0x0]
- bx lr
-_02017890:
- mov r0, #0x40
- strb r0, [r1, #0x0]
- strb r0, [r2, #0x0]
- bx lr
-_02017898:
- mov r0, #0x80
- strb r0, [r1, #0x0]
- strb r0, [r2, #0x0]
-_0201789E:
- bx lr
-
- thumb_func_start FUN_020178A0
-FUN_020178A0: ; 0x020178A0
- push {r3-r5, lr}
- add r4, r0, #0x0
- mov r2, #0x2c
- add r5, r1, #0x0
- mul r5, r2
- add r4, #0x8
- ldr r0, [r4, r5]
- cmp r0, #0x0
- beq _020178BA
- bl FUN_02016A18
- mov r0, #0x0
- str r0, [r4, r5]
-_020178BA:
- pop {r3-r5, pc}
-
- thumb_func_start FUN_020178BC
-FUN_020178BC: ; 0x020178BC
- cmp r0, #0x7
- bhi _0201795A
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_020178CC: ; jump table (using 16-bit offset)
- .short _020178DC - _020178CC - 2; case 0
- .short _020178EC - _020178CC - 2; case 1
- .short _020178FC - _020178CC - 2; case 2
- .short _0201790C - _020178CC - 2; case 3
- .short _0201791C - _020178CC - 2; case 4
- .short _0201792C - _020178CC - 2; case 5
- .short _0201793C - _020178CC - 2; case 6
- .short _0201794C - _020178CC - 2; case 7
-_020178DC:
- ldr r2, _0201795C ; =0x04000008
- mov r0, #0x3
- ldrh r3, [r2, #0x0]
- bic r3, r0
- add r0, r3, #0x0
- orr r0, r1
- strh r0, [r2, #0x0]
- bx lr
-_020178EC:
- ldr r2, _02017960 ; =0x0400000A
- mov r0, #0x3
- ldrh r3, [r2, #0x0]
- bic r3, r0
- add r0, r3, #0x0
- orr r0, r1
- strh r0, [r2, #0x0]
- bx lr
-_020178FC:
- ldr r2, _02017964 ; =0x0400000C
- mov r0, #0x3
- ldrh r3, [r2, #0x0]
- bic r3, r0
- add r0, r3, #0x0
- orr r0, r1
- strh r0, [r2, #0x0]
- bx lr
-_0201790C:
- ldr r2, _02017968 ; =0x0400000E
- mov r0, #0x3
- ldrh r3, [r2, #0x0]
- bic r3, r0
- add r0, r3, #0x0
- orr r0, r1
- strh r0, [r2, #0x0]
- bx lr
-_0201791C:
- ldr r2, _0201796C ; =0x04001008
- mov r0, #0x3
- ldrh r3, [r2, #0x0]
- bic r3, r0
- add r0, r3, #0x0
- orr r0, r1
- strh r0, [r2, #0x0]
- bx lr
-_0201792C:
- ldr r2, _02017970 ; =0x0400100A
- mov r0, #0x3
- ldrh r3, [r2, #0x0]
- bic r3, r0
- add r0, r3, #0x0
- orr r0, r1
- strh r0, [r2, #0x0]
- bx lr
-_0201793C:
- ldr r2, _02017974 ; =0x0400100C
- mov r0, #0x3
- ldrh r3, [r2, #0x0]
- bic r3, r0
- add r0, r3, #0x0
- orr r0, r1
- strh r0, [r2, #0x0]
- bx lr
-_0201794C:
- ldr r2, _02017978 ; =0x0400100E
- mov r0, #0x3
- ldrh r3, [r2, #0x0]
- bic r3, r0
- add r0, r3, #0x0
- orr r0, r1
- strh r0, [r2, #0x0]
-_0201795A:
- bx lr
- .balign 4
-_0201795C: .word 0x04000008
-_02017960: .word 0x0400000A
-_02017964: .word 0x0400000C
-_02017968: .word 0x0400000E
-_0201796C: .word 0x04001008
-_02017970: .word 0x0400100A
-_02017974: .word 0x0400100C
-_02017978: .word 0x0400100E
-
- thumb_func_start FUN_0201797C
-FUN_0201797C: ; 0x0201797C
- push {r3, lr}
- cmp r0, #0x7
- bhi _020179DC
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0201798E: ; jump table (using 16-bit offset)
- .short _0201799E - _0201798E - 2; case 0
- .short _020179A6 - _0201798E - 2; case 1
- .short _020179AE - _0201798E - 2; case 2
- .short _020179B6 - _0201798E - 2; case 3
- .short _020179BE - _0201798E - 2; case 4
- .short _020179C6 - _0201798E - 2; case 5
- .short _020179CE - _0201798E - 2; case 6
- .short _020179D6 - _0201798E - 2; case 7
-_0201799E:
- mov r0, #0x1
- bl FUN_0201E6E4
- pop {r3, pc}
-_020179A6:
- mov r0, #0x2
- bl FUN_0201E6E4
- pop {r3, pc}
-_020179AE:
- mov r0, #0x4
- bl FUN_0201E6E4
- pop {r3, pc}
-_020179B6:
- mov r0, #0x8
- bl FUN_0201E6E4
- pop {r3, pc}
-_020179BE:
- mov r0, #0x1
- bl FUN_0201E74C
- pop {r3, pc}
-_020179C6:
- mov r0, #0x2
- bl FUN_0201E74C
- pop {r3, pc}
-_020179CE:
- mov r0, #0x4
- bl FUN_0201E74C
- pop {r3, pc}
-_020179D6:
- mov r0, #0x8
- bl FUN_0201E74C
-_020179DC:
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_020179E0
-FUN_020179E0: ; 0x020179E0
- push {r4-r6, lr}
- add r5, r1, #0x0
- add r4, r0, #0x0
- mov r0, #0x2c
- add r6, r5, #0x0
- mul r6, r0
- add r0, r4, #0x0
- add r0, #0x8
- add r1, r2, #0x0
- add r2, r3, #0x0
- add r0, r0, r6
- bl FUN_02017B8C
- add r0, r4, r6
- ldr r1, [r0, #0x14]
- ldr r0, [r0, #0x18]
- cmp r5, #0x7
- bls _02017A06
- b _02017B1C
-_02017A06:
- add r2, r5, r5
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_02017A12: ; jump table (using 16-bit offset)
- .short _02017A22 - _02017A12 - 2; case 0
- .short _02017A38 - _02017A12 - 2; case 1
- .short _02017A4E - _02017A12 - 2; case 2
- .short _02017A78 - _02017A12 - 2; case 3
- .short _02017AA2 - _02017A12 - 2; case 4
- .short _02017AB8 - _02017A12 - 2; case 5
- .short _02017ACE - _02017A12 - 2; case 6
- .short _02017AF6 - _02017A12 - 2; case 7
-_02017A22:
- ldr r2, _02017B20 ; =0x000001FF
- add r3, r1, #0x0
- lsl r1, r0, #0x10
- lsl r0, r2, #0x10
- and r3, r2
- and r0, r1
- add r1, r3, #0x0
- orr r1, r0
- ldr r0, _02017B24 ; =0x04000010
- str r1, [r0, #0x0]
- pop {r4-r6, pc}
-_02017A38:
- ldr r2, _02017B20 ; =0x000001FF
- add r3, r1, #0x0
- lsl r1, r0, #0x10
- lsl r0, r2, #0x10
- and r3, r2
- and r0, r1
- add r1, r3, #0x0
- orr r1, r0
- ldr r0, _02017B28 ; =0x04000014
- str r1, [r0, #0x0]
- pop {r4-r6, pc}
-_02017A4E:
- add r2, r4, #0x0
- add r2, #0x74
- ldrb r2, [r2, #0x0]
- cmp r2, #0x0
- bne _02017A6E
- ldr r2, _02017B20 ; =0x000001FF
- add r3, r1, #0x0
- lsl r1, r0, #0x10
- lsl r0, r2, #0x10
- and r3, r2
- and r0, r1
- add r1, r3, #0x0
- orr r1, r0
- ldr r0, _02017B2C ; =0x04000018
- str r1, [r0, #0x0]
- pop {r4-r6, pc}
-_02017A6E:
- add r0, r4, #0x0
- mov r1, #0x2
- bl FUN_02017C6C
- pop {r4-r6, pc}
-_02017A78:
- add r2, r4, #0x0
- add r2, #0xa0
- ldrb r2, [r2, #0x0]
- cmp r2, #0x0
- bne _02017A98
- ldr r2, _02017B20 ; =0x000001FF
- add r3, r1, #0x0
- lsl r1, r0, #0x10
- lsl r0, r2, #0x10
- and r3, r2
- and r0, r1
- add r1, r3, #0x0
- orr r1, r0
- ldr r0, _02017B30 ; =0x0400001C
- str r1, [r0, #0x0]
- pop {r4-r6, pc}
-_02017A98:
- add r0, r4, #0x0
- mov r1, #0x3
- bl FUN_02017C6C
- pop {r4-r6, pc}
-_02017AA2:
- ldr r2, _02017B20 ; =0x000001FF
- add r3, r1, #0x0
- lsl r1, r0, #0x10
- lsl r0, r2, #0x10
- and r3, r2
- and r0, r1
- add r1, r3, #0x0
- orr r1, r0
- ldr r0, _02017B34 ; =0x04001010
- str r1, [r0, #0x0]
- pop {r4-r6, pc}
-_02017AB8:
- ldr r2, _02017B20 ; =0x000001FF
- add r3, r1, #0x0
- lsl r1, r0, #0x10
- lsl r0, r2, #0x10
- and r3, r2
- and r0, r1
- add r1, r3, #0x0
- orr r1, r0
- ldr r0, _02017B38 ; =0x04001014
- str r1, [r0, #0x0]
- pop {r4-r6, pc}
-_02017ACE:
- mov r2, #0x49
- lsl r2, r2, #0x2
- ldrb r3, [r4, r2]
- cmp r3, #0x0
- bne _02017AEC
- add r2, #0xdb
- and r2, r1
- lsl r1, r0, #0x10
- ldr r0, _02017B3C ; =0x01FF0000
- and r0, r1
- add r1, r2, #0x0
- orr r1, r0
- ldr r0, _02017B40 ; =0x04001018
- str r1, [r0, #0x0]
- pop {r4-r6, pc}
-_02017AEC:
- add r0, r4, #0x0
- mov r1, #0x6
- bl FUN_02017C6C
- pop {r4-r6, pc}
-_02017AF6:
- mov r2, #0x15
- lsl r2, r2, #0x4
- ldrb r3, [r4, r2]
- cmp r3, #0x0
- bne _02017B14
- add r2, #0xaf
- and r2, r1
- lsl r1, r0, #0x10
- ldr r0, _02017B3C ; =0x01FF0000
- and r0, r1
- add r1, r2, #0x0
- orr r1, r0
- ldr r0, _02017B44 ; =0x0400101C
- str r1, [r0, #0x0]
- pop {r4-r6, pc}
-_02017B14:
- add r0, r4, #0x0
- mov r1, #0x7
- bl FUN_02017C6C
-_02017B1C:
- pop {r4-r6, pc}
- nop
-_02017B20: .word 0x000001FF
-_02017B24: .word 0x04000010
-_02017B28: .word 0x04000014
-_02017B2C: .word 0x04000018
-_02017B30: .word 0x0400001C
-_02017B34: .word 0x04001010
-_02017B38: .word 0x04001014
-_02017B3C: .word 0x01FF0000
-_02017B40: .word 0x04001018
-_02017B44: .word 0x0400101C
-
- thumb_func_start FUN_02017B48
-FUN_02017B48: ; 0x02017B48
- mov r2, #0x2c
- mul r2, r1
- add r0, r0, r2
- ldr r0, [r0, #0x14]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02017B54
-FUN_02017B54: ; 0x02017B54
- mov r2, #0x2c
- mul r2, r1
- add r0, r0, r2
- ldr r0, [r0, #0x18]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02017B60
-FUN_02017B60: ; 0x02017B60
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- add r1, r5, #0x0
- mov r0, #0x2c
- add r1, #0x8
- mul r0, r4
- add r0, r1, r0
- add r1, r2, #0x0
- add r2, r3, #0x0
- bl FUN_02017B8C
- ldr r0, [sp, #0x18]
- ldr r2, [sp, #0x10]
- str r0, [sp, #0x0]
- ldr r3, [sp, #0x14]
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02017BD0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02017B8C
-FUN_02017B8C: ; 0x02017B8C
- cmp r1, #0x5
- bhi _02017BCE
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #0x6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02017B9C: ; jump table (using 16-bit offset)
- .short _02017BA8 - _02017B9C - 2; case 0
- .short _02017BAC - _02017B9C - 2; case 1
- .short _02017BB4 - _02017B9C - 2; case 2
- .short _02017BBC - _02017B9C - 2; case 3
- .short _02017BC0 - _02017B9C - 2; case 4
- .short _02017BC8 - _02017B9C - 2; case 5
-_02017BA8:
- str r2, [r0, #0xc]
- bx lr
-_02017BAC:
- ldr r1, [r0, #0xc]
- add r1, r1, r2
- str r1, [r0, #0xc]
- bx lr
-_02017BB4:
- ldr r1, [r0, #0xc]
- sub r1, r1, r2
- str r1, [r0, #0xc]
- bx lr
-_02017BBC:
- str r2, [r0, #0x10]
- bx lr
-_02017BC0:
- ldr r1, [r0, #0x10]
- add r1, r1, r2
- str r1, [r0, #0x10]
- bx lr
-_02017BC8:
- ldr r1, [r0, #0x10]
- sub r1, r1, r2
- str r1, [r0, #0x10]
-_02017BCE:
- bx lr
-
- thumb_func_start FUN_02017BD0
-FUN_02017BD0: ; 0x02017BD0
- push {r3-r5, lr}
- sub sp, #0x8
- add r4, r1, #0x0
- add r1, r2, #0x0
- add r2, r3, #0x0
- ldr r3, [sp, #0x18]
- cmp r4, #0x7
- bhi _02017C58
- add r5, r4, r4
- add r5, pc
- ldrh r5, [r5, #0x6]
- lsl r5, r5, #0x10
- asr r5, r5, #0x10
- add pc, r5
-_02017BEC: ; jump table (using 16-bit offset)
- .short _02017C58 - _02017BEC - 2; case 0
- .short _02017C58 - _02017BEC - 2; case 1
- .short _02017BFC - _02017BEC - 2; case 2
- .short _02017C14 - _02017BEC - 2; case 3
- .short _02017C58 - _02017BEC - 2; case 4
- .short _02017C58 - _02017BEC - 2; case 5
- .short _02017C2C - _02017BEC - 2; case 6
- .short _02017C44 - _02017BEC - 2; case 7
-_02017BFC:
- mov r5, #0x2c
- mul r5, r4
- add r4, r0, r5
- ldr r0, [r4, #0x14]
- str r0, [sp, #0x0]
- ldr r0, [r4, #0x18]
- str r0, [sp, #0x4]
- ldr r0, _02017C5C ; =0x04000020
- bl G2x_SetBGyAffine_
- add sp, #0x8
- pop {r3-r5, pc}
-_02017C14:
- mov r5, #0x2c
- mul r5, r4
- add r4, r0, r5
- ldr r0, [r4, #0x14]
- str r0, [sp, #0x0]
- ldr r0, [r4, #0x18]
- str r0, [sp, #0x4]
- ldr r0, _02017C60 ; =0x04000030
- bl G2x_SetBGyAffine_
- add sp, #0x8
- pop {r3-r5, pc}
-_02017C2C:
- mov r5, #0x2c
- mul r5, r4
- add r4, r0, r5
- ldr r0, [r4, #0x14]
- str r0, [sp, #0x0]
- ldr r0, [r4, #0x18]
- str r0, [sp, #0x4]
- ldr r0, _02017C64 ; =0x04001020
- bl G2x_SetBGyAffine_
- add sp, #0x8
- pop {r3-r5, pc}
-_02017C44:
- mov r5, #0x2c
- mul r5, r4
- add r4, r0, r5
- ldr r0, [r4, #0x14]
- str r0, [sp, #0x0]
- ldr r0, [r4, #0x18]
- str r0, [sp, #0x4]
- ldr r0, _02017C68 ; =0x04001030
- bl G2x_SetBGyAffine_
-_02017C58:
- add sp, #0x8
- pop {r3-r5, pc}
- .balign 4
-_02017C5C: .word 0x04000020
-_02017C60: .word 0x04000030
-_02017C64: .word 0x04001020
-_02017C68: .word 0x04001030
-
- thumb_func_start FUN_02017C6C
-FUN_02017C6C: ; 0x02017C6C
- push {r4-r5, lr}
- sub sp, #0x14
- mov r2, #0x1
- lsl r2, r2, #0xc
- add r5, r0, #0x0
- add r4, r1, #0x0
- mov r1, #0x0
- add r0, sp, #0x4
- add r3, r2, #0x0
- str r1, [sp, #0x0]
- bl FUN_0201BB74
- mov r3, #0x0
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r2, sp, #0x4
- str r3, [sp, #0x0]
- bl FUN_02017BD0
- add sp, #0x14
- pop {r4-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02017C98
-FUN_02017C98: ; 0x02017C98
- push {r3-r5, lr}
- cmp r2, #0x0
- bne _02017CA4
- bl MI_UncompressLZ8
- pop {r3-r5, pc}
-_02017CA4:
- mov r4, #0x3
- add r3, r0, #0x0
- tst r3, r4
- bne _02017CCA
- add r3, r1, #0x0
- tst r3, r4
- bne _02017CCA
- lsl r3, r2, #0x10
- lsr r3, r3, #0x10
- lsr r4, r3, #0x1f
- lsl r5, r3, #0x1e
- sub r5, r5, r4
- mov r3, #0x1e
- ror r5, r3
- add r3, r4, r5
- bne _02017CCA
- bl MIi_CpuCopy32
- pop {r3-r5, pc}
-_02017CCA:
- bl MIi_CpuCopy16
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02017CD0
-FUN_02017CD0: ; 0x02017CD0
- push {r3, lr}
- mov r2, #0x2c
- mul r2, r1
- add r3, r0, r2
- ldr r2, [r3, #0x10]
- str r2, [sp, #0x0]
- ldr r2, [r3, #0x8]
- ldr r3, [r3, #0xc]
- bl FUN_02017CE8
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02017CE8
-FUN_02017CE8: ; 0x02017CE8
- push {r3-r7, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- add r4, r1, #0x0
- add r6, r2, #0x0
- str r3, [sp, #0x0]
- cmp r3, #0x0
- bne _02017D56
- mov r0, #0x2c
- add r7, r4, #0x0
- mul r7, r0
- add r0, r5, r7
- ldr r0, [r0, #0x8]
- str r0, [sp, #0x4]
- cmp r0, #0x0
- beq _02017D26
- ldr r1, [sp, #0x4]
- add r0, r6, #0x0
- add r2, r3, #0x0
- bl FUN_02017C98
- add r3, r5, r7
- ldr r2, [r3, #0x10]
- ldr r1, [sp, #0x4]
- ldr r3, [r3, #0xc]
- add r0, r4, #0x0
- lsl r2, r2, #0x1
- bl FUN_02017D68
- add sp, #0x8
- pop {r3-r7, pc}
-_02017D26:
- ldr r0, [r6, #0x0]
- lsr r7, r0, #0x8
- ldr r0, [r5, #0x0]
- add r1, r7, #0x0
- bl FUN_020169D8
- add r5, r0, #0x0
- ldr r2, [sp, #0x0]
- add r0, r6, #0x0
- add r1, r5, #0x0
- bl FUN_02017C98
- ldr r2, [sp, #0x20]
- add r0, r4, #0x0
- add r1, r5, #0x0
- lsl r2, r2, #0x1
- add r3, r7, #0x0
- bl FUN_02017D68
- add r0, r5, #0x0
- bl FUN_02016A18
- add sp, #0x8
- pop {r3-r7, pc}
-_02017D56:
- ldr r2, [sp, #0x20]
- add r0, r4, #0x0
- add r1, r6, #0x0
- lsl r2, r2, #0x1
- bl FUN_02017D68
- add sp, #0x8
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02017D68
-FUN_02017D68: ; 0x02017D68
- push {r3-r7, lr}
- add r4, r1, #0x0
- add r6, r3, #0x0
- add r7, r0, #0x0
- add r0, r4, #0x0
- add r1, r6, #0x0
- add r5, r2, #0x0
- bl DC_FlushRange
- cmp r7, #0x7
- bhi _02017DF8
- add r0, r7, r7
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02017D8A: ; jump table (using 16-bit offset)
- .short _02017D9A - _02017D8A - 2; case 0
- .short _02017DA6 - _02017D8A - 2; case 1
- .short _02017DB2 - _02017D8A - 2; case 2
- .short _02017DBE - _02017D8A - 2; case 3
- .short _02017DCA - _02017D8A - 2; case 4
- .short _02017DD6 - _02017D8A - 2; case 5
- .short _02017DE2 - _02017D8A - 2; case 6
- .short _02017DEE - _02017D8A - 2; case 7
-_02017D9A:
- add r0, r4, #0x0
- add r1, r5, #0x0
- add r2, r6, #0x0
- bl GX_LoadBG0Scr
- pop {r3-r7, pc}
-_02017DA6:
- add r0, r4, #0x0
- add r1, r5, #0x0
- add r2, r6, #0x0
- bl GX_LoadBG1Scr
- pop {r3-r7, pc}
-_02017DB2:
- add r0, r4, #0x0
- add r1, r5, #0x0
- add r2, r6, #0x0
- bl GX_LoadBG2Scr
- pop {r3-r7, pc}
-_02017DBE:
- add r0, r4, #0x0
- add r1, r5, #0x0
- add r2, r6, #0x0
- bl GX_LoadBG3Scr
- pop {r3-r7, pc}
-_02017DCA:
- add r0, r4, #0x0
- add r1, r5, #0x0
- add r2, r6, #0x0
- bl GXS_LoadBG0Scr
- pop {r3-r7, pc}
-_02017DD6:
- add r0, r4, #0x0
- add r1, r5, #0x0
- add r2, r6, #0x0
- bl GXS_LoadBG1Scr
- pop {r3-r7, pc}
-_02017DE2:
- add r0, r4, #0x0
- add r1, r5, #0x0
- add r2, r6, #0x0
- bl GXS_LoadBG2Scr
- pop {r3-r7, pc}
-_02017DEE:
- add r0, r4, #0x0
- add r1, r5, #0x0
- add r2, r6, #0x0
- bl GXS_LoadBG3Scr
-_02017DF8:
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02017DFC
-FUN_02017DFC: ; 0x02017DFC
- push {r4, lr}
- add r4, r0, #0x0
- add r0, r2, #0x0
- mov r2, #0x2c
- mul r2, r1
- add r1, r4, r2
- ldr r1, [r1, #0x8]
- add r2, r3, #0x0
- bl FUN_02017C98
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02017E14
-FUN_02017E14: ; 0x02017E14
- push {r3-r4, lr}
- sub sp, #0x4
- mov r4, #0x2c
- mul r4, r1
- add r4, r0, r4
- ldrb r4, [r4, #0x1e]
- cmp r4, #0x0
- bne _02017E32
- ldr r4, [sp, #0x10]
- lsl r4, r4, #0x5
- str r4, [sp, #0x0]
- bl FUN_02017E40
- add sp, #0x4
- pop {r3-r4, pc}
-_02017E32:
- ldr r4, [sp, #0x10]
- lsl r4, r4, #0x6
- str r4, [sp, #0x0]
- bl FUN_02017E40
- add sp, #0x4
- pop {r3-r4, pc}
-
- thumb_func_start FUN_02017E40
-FUN_02017E40: ; 0x02017E40
- push {r3-r7, lr}
- add r7, r1, #0x0
- add r5, r2, #0x0
- str r3, [sp, #0x0]
- cmp r3, #0x0
- bne _02017E78
- ldr r1, [r5, #0x0]
- ldr r0, [r0, #0x0]
- lsr r4, r1, #0x8
- add r1, r4, #0x0
- bl FUN_020169D8
- add r6, r0, #0x0
- ldr r2, [sp, #0x0]
- add r0, r5, #0x0
- add r1, r6, #0x0
- bl FUN_02017C98
- ldr r2, [sp, #0x18]
- add r0, r7, #0x0
- add r1, r6, #0x0
- add r3, r4, #0x0
- bl FUN_02017E84
- add r0, r6, #0x0
- bl FUN_02016A18
- pop {r3-r7, pc}
-_02017E78:
- ldr r2, [sp, #0x18]
- add r0, r7, #0x0
- add r1, r5, #0x0
- bl FUN_02017E84
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02017E84
-FUN_02017E84: ; 0x02017E84
- push {r3-r7, lr}
- add r4, r1, #0x0
- add r6, r3, #0x0
- add r7, r0, #0x0
- add r0, r4, #0x0
- add r1, r6, #0x0
- add r5, r2, #0x0
- bl DC_FlushRange
- cmp r7, #0x7
- bhi _02017F14
- add r0, r7, r7
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02017EA6: ; jump table (using 16-bit offset)
- .short _02017EB6 - _02017EA6 - 2; case 0
- .short _02017EC2 - _02017EA6 - 2; case 1
- .short _02017ECE - _02017EA6 - 2; case 2
- .short _02017EDA - _02017EA6 - 2; case 3
- .short _02017EE6 - _02017EA6 - 2; case 4
- .short _02017EF2 - _02017EA6 - 2; case 5
- .short _02017EFE - _02017EA6 - 2; case 6
- .short _02017F0A - _02017EA6 - 2; case 7
-_02017EB6:
- add r0, r4, #0x0
- add r1, r5, #0x0
- add r2, r6, #0x0
- bl GX_LoadBG0Char
- pop {r3-r7, pc}
-_02017EC2:
- add r0, r4, #0x0
- add r1, r5, #0x0
- add r2, r6, #0x0
- bl GX_LoadBG1Char
- pop {r3-r7, pc}
-_02017ECE:
- add r0, r4, #0x0
- add r1, r5, #0x0
- add r2, r6, #0x0
- bl GX_LoadBG2Char
- pop {r3-r7, pc}
-_02017EDA:
- add r0, r4, #0x0
- add r1, r5, #0x0
- add r2, r6, #0x0
- bl GX_LoadBG3Char
- pop {r3-r7, pc}
-_02017EE6:
- add r0, r4, #0x0
- add r1, r5, #0x0
- add r2, r6, #0x0
- bl GXS_LoadBG0Char
- pop {r3-r7, pc}
-_02017EF2:
- add r0, r4, #0x0
- add r1, r5, #0x0
- add r2, r6, #0x0
- bl GXS_LoadBG1Char
- pop {r3-r7, pc}
-_02017EFE:
- add r0, r4, #0x0
- add r1, r5, #0x0
- add r2, r6, #0x0
- bl GXS_LoadBG2Char
- pop {r3-r7, pc}
-_02017F0A:
- add r0, r4, #0x0
- add r1, r5, #0x0
- add r2, r6, #0x0
- bl GXS_LoadBG3Char
-_02017F14:
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02017F18
-FUN_02017F18: ; 0x02017F18
- push {r3-r7, lr}
- add r6, r0, #0x0
- add r5, r1, #0x0
- add r0, r3, #0x0
- add r7, r2, #0x0
- str r3, [sp, #0x0]
- bl FUN_020169D8
- add r4, r0, #0x0
- mov r1, #0x0
- add r2, r5, #0x0
- bl Call_FillMemWithValue
- add r0, r6, #0x0
- add r1, r4, #0x0
- add r2, r7, #0x0
- add r3, r5, #0x0
- bl FUN_02017E84
- ldr r0, [sp, #0x0]
- add r1, r4, #0x0
- bl FUN_02016A8C
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02017F48
-FUN_02017F48: ; 0x02017F48
- push {r3-r7, lr}
- sub sp, #0x8
- add r7, r1, #0x0
- add r4, r0, #0x0
- mov r1, #0x2c
- add r6, r7, #0x0
- add r4, #0x1f
- mul r6, r1
- ldrb r1, [r4, r6]
- ldr r0, [r0, #0x0]
- add r5, r2, #0x0
- mul r1, r3
- str r1, [sp, #0x0]
- bl FUN_020169D8
- str r0, [sp, #0x4]
- ldrb r0, [r4, r6]
- cmp r0, #0x20
- bne _02017F82
- lsl r2, r5, #0xc
- lsl r1, r5, #0x8
- lsl r0, r5, #0x4
- orr r1, r2
- orr r0, r1
- add r1, r5, #0x0
- orr r1, r0
- lsl r0, r1, #0x10
- add r5, r1, #0x0
- b _02017F8C
-_02017F82:
- lsl r2, r5, #0x18
- lsl r1, r5, #0x10
- lsl r0, r5, #0x8
- orr r1, r2
- orr r0, r1
-_02017F8C:
- orr r5, r0
- ldr r1, [sp, #0x4]
- ldr r2, [sp, #0x0]
- add r0, r5, #0x0
- bl MIi_CpuClearFast
- lsl r0, r7, #0x18
- ldrb r2, [r4, r6]
- ldr r3, [sp, #0x20]
- ldr r1, [sp, #0x4]
- mul r2, r3
- ldr r3, [sp, #0x0]
- lsr r0, r0, #0x18
- bl FUN_02017E84
- ldr r0, [sp, #0x4]
- bl FUN_02016A18
- add sp, #0x8
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02017FB4
-FUN_02017FB4: ; 0x02017FB4
- push {r3-r7, lr}
- add r5, r1, #0x0
- add r4, r2, #0x0
- add r6, r0, #0x0
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r7, r3, #0x0
- bl DC_FlushRange
- cmp r6, #0x4
- bhs _02017FD6
- add r0, r5, #0x0
- add r1, r7, #0x0
- add r2, r4, #0x0
- bl GX_LoadBGPltt
- pop {r3-r7, pc}
-_02017FD6:
- add r0, r5, #0x0
- add r1, r7, #0x0
- add r2, r4, #0x0
- bl GXS_LoadBGPltt
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02017FE4
-FUN_02017FE4: ; 0x02017FE4
- push {r0-r3}
- push {r3, lr}
- add r1, sp, #0xc
- mov r2, #0x2
- mov r3, #0x0
- bl FUN_02017FB4
- pop {r3}
- pop {r3}
- add sp, #0x10
- bx r3
- .balign 4
-
- thumb_func_start FUN_02017FFC
-FUN_02017FFC: ; 0x02017FFC
- cmp r2, #0x5
- bhi _02018066
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0201800C: ; jump table (using 16-bit offset)
- .short _02018018 - _0201800C - 2; case 0
- .short _02018022 - _0201800C - 2; case 1
- .short _02018022 - _0201800C - 2; case 2
- .short _0201802C - _0201800C - 2; case 3
- .short _02018042 - _0201800C - 2; case 4
- .short _02018064 - _0201800C - 2; case 5
-_02018018:
- lsl r1, r1, #0x4
- add r0, r0, r1
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bx lr
-_02018022:
- lsl r1, r1, #0x5
- add r0, r0, r1
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bx lr
-_0201802C:
- mov r2, #0x1f
- add r3, r0, #0x0
- and r3, r2
- mov r2, #0x1f
- bic r0, r2
- add r0, r1, r0
- lsl r0, r0, #0x5
- add r0, r3, r0
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bx lr
-_02018042:
- asr r2, r1, #0x5
- asr r3, r0, #0x5
- lsl r2, r2, #0x1
- add r2, r3, r2
- lsl r2, r2, #0x10
- lsr r2, r2, #0x10
- lsl r2, r2, #0x1a
- lsr r3, r2, #0x10
- mov r2, #0x1f
- and r2, r0
- lsl r0, r1, #0x1b
- lsr r0, r0, #0x16
- add r0, r2, r0
- add r0, r3, r0
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bx lr
-_02018064:
- mov r0, #0x0
-_02018066:
- bx lr
-
- thumb_func_start FUN_02018068
-FUN_02018068: ; 0x02018068
- push {r3-r7}
- sub sp, #0x4
- str r3, [sp, #0x0]
- add r6, r2, #0x0
- ldr r5, [sp, #0x0]
- add r4, r6, #0x0
- sub r4, #0x20
- sub r5, #0x20
- mov r2, #0x0
- lsl r4, r4, #0x10
- lsl r5, r5, #0x10
- add r3, r2, #0x0
- asr r4, r4, #0x10
- asr r7, r5, #0x10
- lsr r5, r0, #0x5
- beq _0201808E
- add r2, r2, #0x1
- lsl r2, r2, #0x18
- lsr r2, r2, #0x18
-_0201808E:
- lsr r5, r1, #0x5
- beq _02018098
- add r2, r2, #0x2
- lsl r2, r2, #0x18
- lsr r2, r2, #0x18
-_02018098:
- cmp r2, #0x3
- bhi _02018140
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_020180A8: ; jump table (using 16-bit offset)
- .short _020180B0 - _020180A8 - 2; case 0
- .short _020180CE - _020180A8 - 2; case 1
- .short _020180F4 - _020180A8 - 2; case 2
- .short _02018120 - _020180A8 - 2; case 3
-_020180B0:
- cmp r4, #0x0
- blt _020180C0
- lsl r1, r1, #0x5
- add r0, r0, r1
- add r0, r3, r0
- lsl r0, r0, #0x10
- lsr r3, r0, #0x10
- b _02018140
-_020180C0:
- add r2, r1, #0x0
- mul r2, r6
- add r0, r0, r2
- add r0, r3, r0
- lsl r0, r0, #0x10
- lsr r3, r0, #0x10
- b _02018140
-_020180CE:
- cmp r7, #0x0
- blt _020180D8
- mov r2, #0x1
- lsl r2, r2, #0xa
- b _020180DC
-_020180D8:
- ldr r2, [sp, #0x0]
- lsl r2, r2, #0x5
-_020180DC:
- add r2, r3, r2
- lsl r2, r2, #0x10
- lsr r3, r2, #0x10
- mov r2, #0x1f
- and r2, r0
- add r0, r1, #0x0
- mul r0, r4
- add r0, r2, r0
- add r0, r3, r0
- lsl r0, r0, #0x10
- lsr r3, r0, #0x10
- b _02018140
-_020180F4:
- lsl r2, r6, #0x5
- add r2, r3, r2
- lsl r2, r2, #0x10
- lsr r2, r2, #0x10
- cmp r4, #0x0
- blt _0201810E
- lsl r1, r1, #0x1b
- lsr r1, r1, #0x16
- add r0, r0, r1
- add r0, r2, r0
- lsl r0, r0, #0x10
- lsr r3, r0, #0x10
- b _02018140
-_0201810E:
- mov r3, #0x1f
- and r1, r3
- add r3, r1, #0x0
- mul r3, r6
- add r0, r0, r3
- add r0, r2, r0
- lsl r0, r0, #0x10
- lsr r3, r0, #0x10
- b _02018140
-_02018120:
- add r2, r6, r7
- lsl r2, r2, #0x5
- add r2, r3, r2
- add r5, r0, #0x0
- mov r3, #0x1f
- add r0, r1, #0x0
- and r0, r3
- add r1, r0, #0x0
- lsl r2, r2, #0x10
- and r5, r3
- mul r1, r4
- lsr r2, r2, #0x10
- add r0, r5, r1
- add r0, r2, r0
- lsl r0, r0, #0x10
- lsr r3, r0, #0x10
-_02018140:
- add r0, r3, #0x0
- add sp, #0x4
- pop {r3-r7}
- bx lr
-
- thumb_func_start FUN_02018148
-FUN_02018148: ; 0x02018148
- push {r3-r6, lr}
- sub sp, #0x1c
- add r6, sp, #0x20
- ldrb r5, [r6, #0x14]
- str r5, [sp, #0x0]
- ldrb r4, [r6, #0x18]
- str r4, [sp, #0x4]
- str r2, [sp, #0x8]
- mov r2, #0x0
- str r2, [sp, #0xc]
- str r2, [sp, #0x10]
- str r5, [sp, #0x14]
- str r4, [sp, #0x18]
- add r2, r3, #0x0
- ldrb r3, [r6, #0x10]
- bl FUN_02018170
- add sp, #0x1c
- pop {r3-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02018170
-FUN_02018170: ; 0x02018170
- push {r4-r5, lr}
- sub sp, #0x1c
- add r4, r2, #0x0
- add r2, r3, #0x0
- mov r3, #0x2c
- add r5, r1, #0x0
- mul r5, r3
- add r1, r0, r5
- ldrb r1, [r1, #0x1c]
- add r3, sp, #0x18
- cmp r1, #0x1
- beq _020181BA
- ldrb r1, [r3, #0x14]
- add r0, #0x8
- add r0, r0, r5
- str r1, [sp, #0x0]
- ldr r1, [sp, #0x30]
- str r1, [sp, #0x4]
- ldrb r1, [r3, #0x1c]
- str r1, [sp, #0x8]
- add r1, sp, #0x38
- ldrb r1, [r1, #0x0]
- str r1, [sp, #0xc]
- add r1, sp, #0x3c
- ldrb r1, [r1, #0x0]
- str r1, [sp, #0x10]
- add r1, sp, #0x40
- ldrb r1, [r1, #0x0]
- str r1, [sp, #0x14]
- mov r1, #0x0
- str r1, [sp, #0x18]
- ldrb r3, [r3, #0x10]
- add r1, r4, #0x0
- bl FUN_02018268
- add sp, #0x1c
- pop {r4-r5, pc}
-_020181BA:
- ldrb r1, [r3, #0x14]
- add r0, #0x8
- add r0, r0, r5
- str r1, [sp, #0x0]
- ldr r1, [sp, #0x30]
- str r1, [sp, #0x4]
- ldrb r1, [r3, #0x1c]
- str r1, [sp, #0x8]
- add r1, sp, #0x38
- ldrb r1, [r1, #0x0]
- str r1, [sp, #0xc]
- add r1, sp, #0x3c
- ldrb r1, [r1, #0x0]
- str r1, [sp, #0x10]
- add r1, sp, #0x40
- ldrb r1, [r1, #0x0]
- str r1, [sp, #0x14]
- mov r1, #0x0
- str r1, [sp, #0x18]
- ldrb r3, [r3, #0x10]
- add r1, r4, #0x0
- bl FUN_020183DC
- add sp, #0x1c
- pop {r4-r5, pc}
-
- thumb_func_start FUN_020181EC
-FUN_020181EC: ; 0x020181EC
- push {r4-r5, lr}
- sub sp, #0x1c
- add r4, r2, #0x0
- add r2, r3, #0x0
- mov r3, #0x2c
- add r5, r1, #0x0
- mul r5, r3
- add r1, r0, r5
- ldrb r1, [r1, #0x1c]
- add r3, sp, #0x18
- cmp r1, #0x1
- beq _02018236
- ldrb r1, [r3, #0x14]
- add r0, #0x8
- add r0, r0, r5
- str r1, [sp, #0x0]
- ldr r1, [sp, #0x30]
- str r1, [sp, #0x4]
- ldrb r1, [r3, #0x1c]
- str r1, [sp, #0x8]
- add r1, sp, #0x38
- ldrb r1, [r1, #0x0]
- str r1, [sp, #0xc]
- add r1, sp, #0x3c
- ldrb r1, [r1, #0x0]
- str r1, [sp, #0x10]
- add r1, sp, #0x40
- ldrb r1, [r1, #0x0]
- str r1, [sp, #0x14]
- mov r1, #0x1
- str r1, [sp, #0x18]
- ldrb r3, [r3, #0x10]
- add r1, r4, #0x0
- bl FUN_02018268
- add sp, #0x1c
- pop {r4-r5, pc}
-_02018236:
- ldrb r1, [r3, #0x14]
- add r0, #0x8
- add r0, r0, r5
- str r1, [sp, #0x0]
- ldr r1, [sp, #0x30]
- str r1, [sp, #0x4]
- ldrb r1, [r3, #0x1c]
- str r1, [sp, #0x8]
- add r1, sp, #0x38
- ldrb r1, [r1, #0x0]
- str r1, [sp, #0xc]
- add r1, sp, #0x3c
- ldrb r1, [r1, #0x0]
- str r1, [sp, #0x10]
- add r1, sp, #0x40
- ldrb r1, [r1, #0x0]
- str r1, [sp, #0x14]
- mov r1, #0x1
- str r1, [sp, #0x18]
- ldrb r3, [r3, #0x10]
- add r1, r4, #0x0
- bl FUN_020183DC
- add sp, #0x1c
- pop {r4-r5, pc}
-
- thumb_func_start FUN_02018268
-FUN_02018268: ; 0x02018268
- push {r4-r7, lr}
- sub sp, #0x44
- str r1, [sp, #0x0]
- str r2, [sp, #0x4]
- add r7, r0, #0x0
- ldr r0, [sp, #0x58]
- add r6, r3, #0x0
- str r0, [sp, #0x58]
- ldr r0, [sp, #0x5c]
- ldr r4, [sp, #0x68]
- str r0, [sp, #0x5c]
- ldr r0, [sp, #0x6c]
- str r0, [sp, #0x6c]
- ldr r0, [r7, #0x0]
- str r0, [sp, #0x2c]
- cmp r0, #0x0
- bne _0201828C
- b _020183D6
-_0201828C:
- ldrb r0, [r7, #0x15]
- add r1, sp, #0x40
- add r1, #0x1
- add r2, sp, #0x40
- bl FUN_02017850
- add r0, sp, #0x70
- ldrb r0, [r0, #0x0]
- cmp r0, #0x0
- bne _0201833A
- mov r0, #0x0
- str r0, [sp, #0x28]
- ldr r0, [sp, #0x58]
- cmp r0, #0x0
- bls _020182CA
- add r1, sp, #0x48
- ldrb r0, [r1, #0x1c]
- str r0, [sp, #0x1c]
- ldrb r0, [r1, #0x18]
- str r0, [sp, #0x18]
- lsl r1, r0, #0x1
- ldr r0, [sp, #0x5c]
- add r0, r0, r1
- str r0, [sp, #0x14]
-_020182BC:
- ldr r1, [sp, #0x4]
- ldr r0, [sp, #0x28]
- add r0, r1, r0
- add r1, sp, #0x40
- ldrb r1, [r1, #0x0]
- cmp r0, r1
- blt _020182CC
-_020182CA:
- b _020183D6
-_020182CC:
- ldr r2, [sp, #0x1c]
- ldr r1, [sp, #0x28]
- add r2, r2, r1
- ldr r1, [sp, #0x6c]
- cmp r2, r1
- bge _020183D6
- mov r5, #0x0
- cmp r6, #0x0
- bls _02018326
- add r1, r4, #0x0
- mul r1, r2
- lsl r2, r1, #0x1
- ldr r1, [sp, #0x14]
- lsl r0, r0, #0x18
- add r1, r1, r2
- lsr r0, r0, #0x18
- str r1, [sp, #0x10]
- str r0, [sp, #0x30]
-_020182F0:
- add r1, sp, #0x40
- ldr r0, [sp, #0x0]
- ldrb r1, [r1, #0x1]
- add r0, r0, r5
- cmp r0, r1
- bge _02018326
- ldr r1, [sp, #0x18]
- add r1, r1, r5
- cmp r1, r4
- bge _02018326
- ldrb r2, [r7, #0x15]
- lsl r0, r0, #0x18
- ldr r1, [sp, #0x30]
- lsr r0, r0, #0x18
- bl FUN_02017FFC
- ldr r1, [sp, #0x10]
- lsl r2, r5, #0x1
- ldrh r1, [r1, r2]
- lsl r2, r0, #0x1
- ldr r0, [sp, #0x2c]
- strh r1, [r0, r2]
- add r0, r5, #0x1
- lsl r0, r0, #0x18
- lsr r5, r0, #0x18
- cmp r5, r6
- blo _020182F0
-_02018326:
- ldr r0, [sp, #0x28]
- add r0, r0, #0x1
- lsl r0, r0, #0x18
- lsr r1, r0, #0x18
- str r1, [sp, #0x28]
- ldr r0, [sp, #0x58]
- cmp r1, r0
- blo _020182BC
- add sp, #0x44
- pop {r4-r7, pc}
-_0201833A:
- mov r0, #0x0
- str r0, [sp, #0x8]
- ldr r0, [sp, #0x58]
- cmp r0, #0x0
- bls _020183D6
- add r1, sp, #0x48
- ldrb r0, [r1, #0x1c]
- str r0, [sp, #0x24]
- ldrb r0, [r1, #0x18]
- str r0, [sp, #0x20]
-_0201834E:
- ldr r1, [sp, #0x4]
- ldr r0, [sp, #0x8]
- add r1, r1, r0
- add r0, sp, #0x40
- ldrb r0, [r0, #0x0]
- cmp r1, r0
- bge _020183D6
- ldr r2, [sp, #0x24]
- ldr r0, [sp, #0x8]
- add r0, r2, r0
- ldr r2, [sp, #0x6c]
- cmp r0, r2
- bge _020183D6
- mov r5, #0x0
- cmp r6, #0x0
- bls _020183C6
- lsl r1, r1, #0x18
- lsl r0, r0, #0x18
- lsr r1, r1, #0x18
- lsr r0, r0, #0x18
- str r1, [sp, #0x34]
- str r0, [sp, #0x3c]
-_0201837A:
- add r1, sp, #0x40
- ldr r0, [sp, #0x0]
- ldrb r1, [r1, #0x1]
- add r0, r0, r5
- cmp r0, r1
- bge _020183C6
- ldr r1, [sp, #0x20]
- add r1, r1, r5
- str r1, [sp, #0xc]
- cmp r1, r4
- bge _020183C6
- ldrb r2, [r7, #0x15]
- lsl r0, r0, #0x18
- ldr r1, [sp, #0x34]
- lsr r0, r0, #0x18
- bl FUN_02017FFC
- str r0, [sp, #0x38]
- ldr r0, [sp, #0xc]
- ldr r1, [sp, #0x3c]
- lsl r0, r0, #0x18
- ldr r3, [sp, #0x6c]
- lsr r0, r0, #0x18
- add r2, r4, #0x0
- bl FUN_02018068
- lsl r1, r0, #0x1
- ldr r0, [sp, #0x5c]
- ldrh r0, [r0, r1]
- ldr r1, [sp, #0x38]
- lsl r2, r1, #0x1
- ldr r1, [sp, #0x2c]
- strh r0, [r1, r2]
- add r0, r5, #0x1
- lsl r0, r0, #0x18
- lsr r5, r0, #0x18
- cmp r5, r6
- blo _0201837A
-_020183C6:
- ldr r0, [sp, #0x8]
- add r0, r0, #0x1
- lsl r0, r0, #0x18
- lsr r1, r0, #0x18
- str r1, [sp, #0x8]
- ldr r0, [sp, #0x58]
- cmp r1, r0
- blo _0201834E
-_020183D6:
- add sp, #0x44
- pop {r4-r7, pc}
- .balign 4
-
- thumb_func_start FUN_020183DC
-FUN_020183DC: ; 0x020183DC
- push {r4-r7, lr}
- sub sp, #0x44
- str r1, [sp, #0x0]
- str r2, [sp, #0x4]
- add r7, r0, #0x0
- ldr r0, [sp, #0x58]
- add r6, r3, #0x0
- str r0, [sp, #0x58]
- ldr r0, [sp, #0x5c]
- ldr r4, [sp, #0x68]
- str r0, [sp, #0x5c]
- ldr r0, [sp, #0x6c]
- str r0, [sp, #0x6c]
- ldr r0, [r7, #0x0]
- str r0, [sp, #0x2c]
- cmp r0, #0x0
- bne _02018400
- b _0201853C
-_02018400:
- ldrb r0, [r7, #0x15]
- add r1, sp, #0x40
- add r1, #0x1
- add r2, sp, #0x40
- bl FUN_02017850
- add r0, sp, #0x70
- ldrb r0, [r0, #0x0]
- cmp r0, #0x0
- bne _020184A4
- mov r0, #0x0
- str r0, [sp, #0x28]
- ldr r0, [sp, #0x58]
- cmp r0, #0x0
- bhi _02018420
- b _0201853C
-_02018420:
- add r1, sp, #0x48
- ldrb r0, [r1, #0x1c]
- str r0, [sp, #0x1c]
- ldrb r0, [r1, #0x18]
- ldr r1, [sp, #0x5c]
- str r0, [sp, #0x18]
- add r0, r1, r0
- str r0, [sp, #0x14]
-_02018430:
- ldr r1, [sp, #0x4]
- ldr r0, [sp, #0x28]
- add r0, r1, r0
- add r1, sp, #0x40
- ldrb r1, [r1, #0x0]
- cmp r0, r1
- bge _0201853C
- ldr r2, [sp, #0x1c]
- ldr r1, [sp, #0x28]
- add r2, r2, r1
- ldr r1, [sp, #0x6c]
- cmp r2, r1
- bge _0201853C
- mov r5, #0x0
- cmp r6, #0x0
- bls _02018490
- ldr r1, [sp, #0x14]
- mul r2, r4
- lsl r0, r0, #0x18
- add r1, r1, r2
- lsr r0, r0, #0x18
- str r1, [sp, #0x10]
- str r0, [sp, #0x30]
-_0201845E:
- add r1, sp, #0x40
- ldr r0, [sp, #0x0]
- ldrb r1, [r1, #0x1]
- add r0, r0, r5
- cmp r0, r1
- bge _02018490
- ldr r1, [sp, #0x18]
- add r1, r1, r5
- cmp r1, r4
- bge _02018490
- ldrb r2, [r7, #0x15]
- lsl r0, r0, #0x18
- ldr r1, [sp, #0x30]
- lsr r0, r0, #0x18
- bl FUN_02017FFC
- ldr r1, [sp, #0x10]
- ldrb r2, [r1, r5]
- ldr r1, [sp, #0x2c]
- strb r2, [r1, r0]
- add r0, r5, #0x1
- lsl r0, r0, #0x18
- lsr r5, r0, #0x18
- cmp r5, r6
- blo _0201845E
-_02018490:
- ldr r0, [sp, #0x28]
- add r0, r0, #0x1
- lsl r0, r0, #0x18
- lsr r1, r0, #0x18
- str r1, [sp, #0x28]
- ldr r0, [sp, #0x58]
- cmp r1, r0
- blo _02018430
- add sp, #0x44
- pop {r4-r7, pc}
-_020184A4:
- mov r0, #0x0
- str r0, [sp, #0x8]
- ldr r0, [sp, #0x58]
- cmp r0, #0x0
- bls _0201853C
- add r1, sp, #0x48
- ldrb r0, [r1, #0x1c]
- str r0, [sp, #0x24]
- ldrb r0, [r1, #0x18]
- str r0, [sp, #0x20]
-_020184B8:
- ldr r1, [sp, #0x4]
- ldr r0, [sp, #0x8]
- add r1, r1, r0
- add r0, sp, #0x40
- ldrb r0, [r0, #0x0]
- cmp r1, r0
- bge _0201853C
- ldr r2, [sp, #0x24]
- ldr r0, [sp, #0x8]
- add r0, r2, r0
- ldr r2, [sp, #0x6c]
- cmp r0, r2
- bge _0201853C
- mov r5, #0x0
- cmp r6, #0x0
- bls _0201852C
- lsl r1, r1, #0x18
- lsl r0, r0, #0x18
- lsr r1, r1, #0x18
- lsr r0, r0, #0x18
- str r1, [sp, #0x34]
- str r0, [sp, #0x3c]
-_020184E4:
- add r1, sp, #0x40
- ldr r0, [sp, #0x0]
- ldrb r1, [r1, #0x1]
- add r0, r0, r5
- cmp r0, r1
- bge _0201852C
- ldr r1, [sp, #0x20]
- add r1, r1, r5
- str r1, [sp, #0xc]
- cmp r1, r4
- bge _0201852C
- ldrb r2, [r7, #0x15]
- lsl r0, r0, #0x18
- ldr r1, [sp, #0x34]
- lsr r0, r0, #0x18
- bl FUN_02017FFC
- str r0, [sp, #0x38]
- ldr r0, [sp, #0xc]
- ldr r1, [sp, #0x3c]
- lsl r0, r0, #0x18
- ldr r3, [sp, #0x6c]
- lsr r0, r0, #0x18
- add r2, r4, #0x0
- bl FUN_02018068
- ldr r1, [sp, #0x5c]
- ldrb r2, [r1, r0]
- ldr r1, [sp, #0x2c]
- ldr r0, [sp, #0x38]
- strb r2, [r1, r0]
- add r0, r5, #0x1
- lsl r0, r0, #0x18
- lsr r5, r0, #0x18
- cmp r5, r6
- blo _020184E4
-_0201852C:
- ldr r0, [sp, #0x8]
- add r0, r0, #0x1
- lsl r0, r0, #0x18
- lsr r1, r0, #0x18
- str r1, [sp, #0x8]
- ldr r0, [sp, #0x58]
- cmp r1, r0
- blo _020184B8
-_0201853C:
- add sp, #0x44
- pop {r4-r7, pc}
-
- thumb_func_start FUN_02018540
-FUN_02018540: ; 0x02018540
- push {r4-r5, lr}
- sub sp, #0xc
- add r4, r2, #0x0
- add r2, r3, #0x0
- mov r3, #0x2c
- add r5, r1, #0x0
- mul r5, r3
- add r1, r0, r5
- ldrb r1, [r1, #0x1c]
- add r3, sp, #0x8
- cmp r1, #0x1
- beq _02018574
- ldrb r1, [r3, #0x14]
- add r0, #0x8
- add r0, r0, r5
- str r1, [sp, #0x0]
- ldrb r1, [r3, #0x18]
- str r1, [sp, #0x4]
- ldrb r1, [r3, #0x1c]
- str r1, [sp, #0x8]
- ldrb r3, [r3, #0x10]
- add r1, r4, #0x0
- bl FUN_02018590
- add sp, #0xc
- pop {r4-r5, pc}
-_02018574:
- ldrb r1, [r3, #0x14]
- add r0, #0x8
- add r0, r0, r5
- str r1, [sp, #0x0]
- ldrb r1, [r3, #0x18]
- str r1, [sp, #0x4]
- lsl r1, r4, #0x18
- ldrb r3, [r3, #0x10]
- lsr r1, r1, #0x18
- bl FUN_02018640
- add sp, #0xc
- pop {r4-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02018590
-FUN_02018590: ; 0x02018590
- push {r4-r7, lr}
- sub sp, #0x1c
- str r2, [sp, #0x4]
- str r3, [sp, #0x8]
- ldr r4, [r0, #0x0]
- add r7, r1, #0x0
- str r0, [sp, #0x0]
- ldr r6, [sp, #0x38]
- cmp r4, #0x0
- beq _0201863A
- ldrb r0, [r0, #0x15]
- add r1, sp, #0x18
- add r1, #0x1
- add r2, sp, #0x18
- bl FUN_02017850
- add r0, sp, #0x20
- ldrb r2, [r0, #0x14]
- ldr r1, [sp, #0x8]
- add r1, r1, r2
- ldr r2, [sp, #0x8]
- str r1, [sp, #0xc]
- cmp r2, r1
- bge _0201863A
- ldrb r2, [r0, #0x10]
- ldr r0, [sp, #0x4]
- lsl r1, r6, #0xc
- add r0, r0, r2
- add r1, r1, r7
- str r0, [sp, #0x10]
- lsl r0, r1, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x14]
-_020185D2:
- add r0, sp, #0x18
- ldrb r1, [r0, #0x0]
- ldr r0, [sp, #0x8]
- cmp r0, r1
- bhs _0201863A
- ldr r5, [sp, #0x4]
- ldr r0, [sp, #0x10]
- add r1, r5, #0x0
- cmp r1, r0
- bge _0201862A
-_020185E6:
- add r0, sp, #0x18
- ldrb r0, [r0, #0x1]
- cmp r5, r0
- bhs _0201862A
- ldr r2, [sp, #0x0]
- ldr r1, [sp, #0x8]
- ldrb r2, [r2, #0x15]
- add r0, r5, #0x0
- bl FUN_02017FFC
- cmp r6, #0x11
- bne _02018604
- lsl r0, r0, #0x1
- strh r7, [r4, r0]
- b _0201861E
-_02018604:
- cmp r6, #0x10
- bne _02018618
- lsl r0, r0, #0x1
- ldrh r2, [r4, r0]
- mov r1, #0xf
- lsl r1, r1, #0xc
- and r1, r2
- add r1, r7, r1
- strh r1, [r4, r0]
- b _0201861E
-_02018618:
- lsl r1, r0, #0x1
- ldr r0, [sp, #0x14]
- strh r0, [r4, r1]
-_0201861E:
- add r0, r5, #0x1
- lsl r0, r0, #0x18
- lsr r5, r0, #0x18
- ldr r0, [sp, #0x10]
- cmp r5, r0
- blt _020185E6
-_0201862A:
- ldr r0, [sp, #0x8]
- add r0, r0, #0x1
- lsl r0, r0, #0x18
- lsr r1, r0, #0x18
- ldr r0, [sp, #0xc]
- str r1, [sp, #0x8]
- cmp r1, r0
- blt _020185D2
-_0201863A:
- add sp, #0x1c
- pop {r4-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02018640
-FUN_02018640: ; 0x02018640
- push {r4-r7, lr}
- sub sp, #0x14
- str r1, [sp, #0x0]
- add r7, r0, #0x0
- str r2, [sp, #0x4]
- ldr r0, [r7, #0x0]
- add r5, r3, #0x0
- str r0, [sp, #0xc]
- cmp r0, #0x0
- beq _020186B0
- ldrb r0, [r7, #0x15]
- add r1, sp, #0x10
- add r1, #0x1
- add r2, sp, #0x10
- bl FUN_02017850
- add r1, sp, #0x18
- ldrb r0, [r1, #0x14]
- add r0, r5, r0
- str r0, [sp, #0x8]
- cmp r5, r0
- bge _020186B0
- ldrb r1, [r1, #0x10]
- ldr r0, [sp, #0x4]
- add r6, r0, r1
-_02018672:
- add r0, sp, #0x10
- ldrb r0, [r0, #0x0]
- cmp r5, r0
- bhs _020186B0
- ldr r4, [sp, #0x4]
- add r0, r4, #0x0
- cmp r0, r6
- bge _020186A4
-_02018682:
- add r0, sp, #0x10
- ldrb r0, [r0, #0x1]
- cmp r4, r0
- bhs _020186A4
- ldrb r2, [r7, #0x15]
- add r0, r4, #0x0
- add r1, r5, #0x0
- bl FUN_02017FFC
- ldr r2, [sp, #0x0]
- ldr r1, [sp, #0xc]
- strb r2, [r1, r0]
- add r0, r4, #0x1
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
- cmp r4, r6
- blt _02018682
-_020186A4:
- add r0, r5, #0x1
- lsl r0, r0, #0x18
- lsr r5, r0, #0x18
- ldr r0, [sp, #0x8]
- cmp r5, r0
- blt _02018672
-_020186B0:
- add sp, #0x14
- pop {r4-r7, pc}
-
- thumb_func_start FUN_020186B4
-FUN_020186B4: ; 0x020186B4
- push {r4-r7, lr}
- sub sp, #0x14
- add r5, r0, #0x0
- mov r0, #0x2c
- add r7, r1, #0x0
- mul r7, r0
- str r2, [sp, #0x0]
- add r0, r5, r7
- ldr r4, [r0, #0x8]
- add r6, r3, #0x0
- cmp r4, #0x0
- beq _0201873C
- ldrb r0, [r0, #0x1d]
- add r1, sp, #0x10
- add r1, #0x1
- add r2, sp, #0x10
- bl FUN_02017850
- add r0, sp, #0x18
- ldrb r1, [r0, #0x14]
- add r1, r6, r1
- str r1, [sp, #0x4]
- cmp r6, r1
- bge _0201873C
- add r1, r5, r7
- str r1, [sp, #0xc]
- ldrb r1, [r0, #0x18]
- lsl r1, r1, #0xc
- str r1, [sp, #0x8]
- ldrb r1, [r0, #0x10]
- ldr r0, [sp, #0x0]
- add r7, r0, r1
-_020186F4:
- add r0, sp, #0x10
- ldrb r0, [r0, #0x0]
- cmp r6, r0
- bhs _0201873C
- ldr r5, [sp, #0x0]
- add r0, r5, #0x0
- cmp r0, r7
- bge _02018730
-_02018704:
- add r0, sp, #0x10
- ldrb r0, [r0, #0x1]
- cmp r5, r0
- bhs _02018730
- ldr r2, [sp, #0xc]
- add r0, r5, #0x0
- ldrb r2, [r2, #0x1d]
- add r1, r6, #0x0
- bl FUN_02017FFC
- lsl r0, r0, #0x1
- ldrh r2, [r4, r0]
- ldr r1, _02018740 ; =0x00000FFF
- and r2, r1
- ldr r1, [sp, #0x8]
- orr r1, r2
- strh r1, [r4, r0]
- add r0, r5, #0x1
- lsl r0, r0, #0x18
- lsr r5, r0, #0x18
- cmp r5, r7
- blt _02018704
-_02018730:
- add r0, r6, #0x1
- lsl r0, r0, #0x18
- lsr r6, r0, #0x18
- ldr r0, [sp, #0x4]
- cmp r6, r0
- blt _020186F4
-_0201873C:
- add sp, #0x14
- pop {r4-r7, pc}
- .balign 4
-_02018740: .word 0x00000FFF
-
- thumb_func_start FUN_02018744
-FUN_02018744: ; 0x02018744
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- mov r0, #0x2c
- mul r0, r4
- add r2, r5, r0
- ldr r1, [r2, #0x8]
- cmp r1, #0x0
- beq _02018766
- ldr r2, [r2, #0xc]
- mov r0, #0x0
- bl MIi_CpuClear16
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02017CD0
-_02018766:
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02018768
-FUN_02018768: ; 0x02018768
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- mov r0, #0x2c
- mul r0, r4
- add r3, r5, r0
- ldr r1, [r3, #0x8]
- cmp r1, #0x0
- beq _0201878A
- add r0, r2, #0x0
- ldr r2, [r3, #0xc]
- bl MIi_CpuClear16
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02017CD0
-_0201878A:
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0201878C
-FUN_0201878C: ; 0x0201878C
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- mov r0, #0x2c
- mul r0, r4
- add r3, r5, r0
- ldr r1, [r3, #0x8]
- cmp r1, #0x0
- beq _020187AE
- add r0, r2, #0x0
- ldr r2, [r3, #0xc]
- bl MIi_CpuClear16
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_0201AC68
-_020187AE:
- pop {r3-r5, pc}
-
- thumb_func_start FUN_020187B0
-FUN_020187B0: ; 0x020187B0
- push {r3, lr}
- cmp r0, #0x7
- bhi _02018802
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_020187C2: ; jump table (using 16-bit offset)
- .short _020187D2 - _020187C2 - 2; case 0
- .short _020187D8 - _020187C2 - 2; case 1
- .short _020187DE - _020187C2 - 2; case 2
- .short _020187E4 - _020187C2 - 2; case 3
- .short _020187EA - _020187C2 - 2; case 4
- .short _020187F0 - _020187C2 - 2; case 5
- .short _020187F6 - _020187C2 - 2; case 6
- .short _020187FC - _020187C2 - 2; case 7
-_020187D2:
- bl G2_GetBG0CharPtr
- pop {r3, pc}
-_020187D8:
- bl G2_GetBG1CharPtr
- pop {r3, pc}
-_020187DE:
- bl G2_GetBG2CharPtr
- pop {r3, pc}
-_020187E4:
- bl G2_GetBG3CharPtr
- pop {r3, pc}
-_020187EA:
- bl G2S_GetBG0CharPtr
- pop {r3, pc}
-_020187F0:
- bl G2S_GetBG1CharPtr
- pop {r3, pc}
-_020187F6:
- bl G2S_GetBG2CharPtr
- pop {r3, pc}
-_020187FC:
- bl G2S_GetBG3CharPtr
- pop {r3, pc}
-_02018802:
- mov r0, #0x0
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02018808
-FUN_02018808: ; 0x02018808
- push {r4-r7}
- lsl r3, r3, #0x1c
- lsr r3, r3, #0x18
- mov r4, #0x0
- cmp r1, #0x0
- bls _02018842
- mov r5, #0xf
- add r6, r5, #0x0
-_02018818:
- ldrb r7, [r0, r4]
- and r7, r6
- strb r7, [r2, #0x0]
- ldrb r7, [r2, #0x0]
- cmp r7, #0x0
- beq _02018828
- add r7, r7, r3
- strb r7, [r2, #0x0]
-_02018828:
- ldrb r7, [r0, r4]
- asr r7, r7, #0x4
- and r7, r5
- strb r7, [r2, #0x1]
- ldrb r7, [r2, #0x1]
- cmp r7, #0x0
- beq _0201883A
- add r7, r7, r3
- strb r7, [r2, #0x1]
-_0201883A:
- add r4, r4, #0x1
- add r2, r2, #0x2
- cmp r4, r1
- blo _02018818
-_02018842:
- pop {r4-r7}
- bx lr
- .balign 4
-
- thumb_func_start FUN_02018848
-FUN_02018848: ; 0x02018848
- push {r3-r7, lr}
- add r5, r1, #0x0
- add r6, r0, #0x0
- add r0, r3, #0x0
- lsl r1, r5, #0x1
- add r7, r2, #0x0
- bl FUN_02016998
- add r4, r0, #0x0
- add r0, r6, #0x0
- add r1, r5, #0x0
- add r2, r4, #0x0
- add r3, r7, #0x0
- bl FUN_02018808
- add r0, r4, #0x0
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0201886C
-FUN_0201886C: ; 0x0201886C
- mov r2, #0x2c
- mul r2, r1
- add r0, r0, r2
- ldr r0, [r0, #0x8]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02018878
-FUN_02018878: ; 0x02018878
- mov r2, #0x2c
- mul r2, r1
- add r0, r0, r2
- ldrh r0, [r0, #0x20]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02018884
-FUN_02018884: ; 0x02018884
- sub sp, #0x20
- cmp r1, #0x7
- bls _0201888C
- b _02018A38
-_0201888C:
- add r2, r1, r1
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_02018898: ; jump table (using 16-bit offset)
- .short _020188A8 - _02018898 - 2; case 0
- .short _020188BC - _02018898 - 2; case 1
- .short _020188D0 - _02018898 - 2; case 2
- .short _02018920 - _02018898 - 2; case 3
- .short _02018970 - _02018898 - 2; case 4
- .short _02018984 - _02018898 - 2; case 5
- .short _02018998 - _02018898 - 2; case 6
- .short _020189E8 - _02018898 - 2; case 7
-_020188A8:
- ldr r0, _02018A40 ; =0x04000008
- ldrh r1, [r0, #0x0]
- add r0, sp, #0x0
- add sp, #0x20
- strh r1, [r0, #0x1e]
- lsl r0, r1, #0x1e
- lsr r0, r0, #0x1e
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bx lr
-_020188BC:
- ldr r0, _02018A44 ; =0x0400000A
- ldrh r1, [r0, #0x0]
- add r0, sp, #0x0
- add sp, #0x20
- strh r1, [r0, #0x1c]
- lsl r0, r1, #0x1e
- lsr r0, r0, #0x1e
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bx lr
-_020188D0:
- mov r2, #0x2c
- mul r2, r1
- add r0, r0, r2
- ldrb r0, [r0, #0x1c]
- cmp r0, #0x0
- beq _020188E4
- cmp r0, #0x1
- beq _020188F8
- cmp r0, #0x2
- beq _0201890C
-_020188E4:
- ldr r0, _02018A48 ; =0x0400000C
- ldrh r1, [r0, #0x0]
- add r0, sp, #0x0
- add sp, #0x20
- strh r1, [r0, #0x1a]
- lsl r0, r1, #0x1e
- lsr r0, r0, #0x1e
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bx lr
-_020188F8:
- ldr r0, _02018A48 ; =0x0400000C
- ldrh r1, [r0, #0x0]
- add r0, sp, #0x0
- add sp, #0x20
- strh r1, [r0, #0x18]
- lsl r0, r1, #0x1e
- lsr r0, r0, #0x1e
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bx lr
-_0201890C:
- ldr r0, _02018A48 ; =0x0400000C
- ldrh r1, [r0, #0x0]
- add r0, sp, #0x0
- add sp, #0x20
- strh r1, [r0, #0x16]
- lsl r0, r1, #0x1e
- lsr r0, r0, #0x1e
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bx lr
-_02018920:
- mov r2, #0x2c
- mul r2, r1
- add r0, r0, r2
- ldrb r0, [r0, #0x1c]
- cmp r0, #0x0
- beq _02018934
- cmp r0, #0x1
- beq _02018948
- cmp r0, #0x2
- beq _0201895C
-_02018934:
- ldr r0, _02018A4C ; =0x0400000E
- ldrh r1, [r0, #0x0]
- add r0, sp, #0x0
- add sp, #0x20
- strh r1, [r0, #0x14]
- lsl r0, r1, #0x1e
- lsr r0, r0, #0x1e
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bx lr
-_02018948:
- ldr r0, _02018A4C ; =0x0400000E
- ldrh r1, [r0, #0x0]
- add r0, sp, #0x0
- add sp, #0x20
- strh r1, [r0, #0x12]
- lsl r0, r1, #0x1e
- lsr r0, r0, #0x1e
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bx lr
-_0201895C:
- ldr r0, _02018A4C ; =0x0400000E
- ldrh r1, [r0, #0x0]
- add r0, sp, #0x0
- add sp, #0x20
- strh r1, [r0, #0x10]
- lsl r0, r1, #0x1e
- lsr r0, r0, #0x1e
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bx lr
-_02018970:
- ldr r0, _02018A50 ; =0x04001008
- ldrh r1, [r0, #0x0]
- add r0, sp, #0x0
- add sp, #0x20
- strh r1, [r0, #0xe]
- lsl r0, r1, #0x1e
- lsr r0, r0, #0x1e
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bx lr
-_02018984:
- ldr r0, _02018A54 ; =0x0400100A
- ldrh r1, [r0, #0x0]
- add r0, sp, #0x0
- add sp, #0x20
- strh r1, [r0, #0xc]
- lsl r0, r1, #0x1e
- lsr r0, r0, #0x1e
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bx lr
-_02018998:
- mov r2, #0x2c
- mul r2, r1
- add r0, r0, r2
- ldrb r0, [r0, #0x1c]
- cmp r0, #0x0
- beq _020189AC
- cmp r0, #0x1
- beq _020189C0
- cmp r0, #0x2
- beq _020189D4
-_020189AC:
- ldr r0, _02018A58 ; =0x0400100C
- ldrh r1, [r0, #0x0]
- add r0, sp, #0x0
- add sp, #0x20
- strh r1, [r0, #0xa]
- lsl r0, r1, #0x1e
- lsr r0, r0, #0x1e
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bx lr
-_020189C0:
- ldr r0, _02018A58 ; =0x0400100C
- ldrh r1, [r0, #0x0]
- add r0, sp, #0x0
- add sp, #0x20
- strh r1, [r0, #0x8]
- lsl r0, r1, #0x1e
- lsr r0, r0, #0x1e
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bx lr
-_020189D4:
- ldr r0, _02018A58 ; =0x0400100C
- ldrh r1, [r0, #0x0]
- add r0, sp, #0x0
- add sp, #0x20
- strh r1, [r0, #0x6]
- lsl r0, r1, #0x1e
- lsr r0, r0, #0x1e
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bx lr
-_020189E8:
- mov r2, #0x2c
- mul r2, r1
- add r0, r0, r2
- ldrb r0, [r0, #0x1c]
- cmp r0, #0x0
- beq _020189FC
- cmp r0, #0x1
- beq _02018A10
- cmp r0, #0x2
- beq _02018A24
-_020189FC:
- ldr r0, _02018A5C ; =0x0400100E
- ldrh r1, [r0, #0x0]
- add r0, sp, #0x0
- add sp, #0x20
- strh r1, [r0, #0x4]
- lsl r0, r1, #0x1e
- lsr r0, r0, #0x1e
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bx lr
-_02018A10:
- ldr r0, _02018A5C ; =0x0400100E
- ldrh r1, [r0, #0x0]
- add r0, sp, #0x0
- add sp, #0x20
- strh r1, [r0, #0x2]
- lsl r0, r1, #0x1e
- lsr r0, r0, #0x1e
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bx lr
-_02018A24:
- ldr r0, _02018A5C ; =0x0400100E
- ldrh r1, [r0, #0x0]
- add r0, sp, #0x0
- add sp, #0x20
- strh r1, [r0, #0x0]
- lsl r0, r1, #0x1e
- lsr r0, r0, #0x1e
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bx lr
-_02018A38:
- mov r0, #0x0
- add sp, #0x20
- bx lr
- nop
-_02018A40: .word 0x04000008
-_02018A44: .word 0x0400000A
-_02018A48: .word 0x0400000C
-_02018A4C: .word 0x0400000E
-_02018A50: .word 0x04001008
-_02018A54: .word 0x0400100A
-_02018A58: .word 0x0400100C
-_02018A5C: .word 0x0400100E
-
- thumb_func_start FUN_02018A60
-FUN_02018A60: ; 0x02018A60
- push {r3-r7, lr}
- sub sp, #0x68
- str r2, [sp, #0x8]
- str r3, [sp, #0xc]
- add r2, sp, #0x70
- str r0, [sp, #0x0]
- ldrh r0, [r2, #0x10]
- str r1, [sp, #0x4]
- ldrh r2, [r2, #0x18]
- str r0, [sp, #0x10]
- add r0, r1, #0x0
- ldrh r1, [r0, #0x4]
- ldr r0, [sp, #0x10]
- sub r3, r1, r0
- cmp r3, r2
- bge _02018A88
- ldr r0, [sp, #0x8]
- add r0, r0, r3
- str r0, [sp, #0x50]
- b _02018A8E
-_02018A88:
- ldr r0, [sp, #0x8]
- add r0, r2, r0
- str r0, [sp, #0x50]
-_02018A8E:
- ldr r2, [sp, #0x4]
- add r3, sp, #0x70
- ldrh r0, [r3, #0x14]
- ldrh r2, [r2, #0x6]
- ldrh r3, [r3, #0x1c]
- sub r4, r2, r0
- cmp r4, r3
- bge _02018AA6
- ldr r2, [sp, #0xc]
- add r2, r2, r4
- str r2, [sp, #0x4c]
- b _02018AAC
-_02018AA6:
- ldr r2, [sp, #0xc]
- add r2, r3, r2
- str r2, [sp, #0x4c]
-_02018AAC:
- ldr r2, [sp, #0x0]
- mov r3, #0x7
- ldrh r4, [r2, #0x4]
- add r2, r4, #0x0
- and r2, r3
- add r2, r4, r2
- asr r2, r2, #0x3
- str r2, [sp, #0x48]
- add r2, r1, #0x0
- and r2, r3
- add r1, r1, r2
- asr r1, r1, #0x3
- str r1, [sp, #0x44]
- add r1, sp, #0x70
- ldrh r1, [r1, #0x20]
- ldr r2, _02018C98 ; =0x0000FFFF
- str r1, [sp, #0x38]
- cmp r1, r2
- bne _02018BB4
- ldr r2, [sp, #0xc]
- ldr r1, [sp, #0x4c]
- cmp r2, r1
- bge _02018ADE
- cmp r2, r1
- blt _02018AE0
-_02018ADE:
- b _02018C92
-_02018AE0:
- add r1, r2, #0x0
- lsl r1, r1, #0x2
- lsl r0, r0, #0x2
- str r1, [sp, #0x28]
- str r0, [sp, #0x24]
-_02018AEA:
- ldr r3, [sp, #0x8]
- ldr r0, [sp, #0x50]
- add r1, r3, #0x0
- ldr r4, [sp, #0x10]
- cmp r1, r0
- bge _02018B96
- cmp r1, r0
- bge _02018B96
- add r0, r3, #0x0
- lsl r5, r0, #0x2
- add r0, r4, #0x0
- lsl r6, r0, #0x2
- ldr r0, _02018C9C ; =0x00003FE0
- ldr r1, [sp, #0x28]
- ldr r2, [sp, #0x48]
- and r1, r0
- mul r2, r1
- str r2, [sp, #0x20]
- ldr r2, [sp, #0x28]
- mov r1, #0x1c
- and r2, r1
- str r2, [sp, #0x1c]
- ldr r2, [sp, #0x24]
- and r0, r2
- ldr r2, [sp, #0x44]
- mul r2, r0
- ldr r0, [sp, #0x24]
- str r2, [sp, #0x18]
- and r0, r1
- str r0, [sp, #0x14]
-_02018B26:
- ldr r0, [sp, #0x4]
- asr r2, r4, #0x1
- mov r1, #0x3
- ldr r0, [r0, #0x0]
- and r1, r2
- add r1, r0, r1
- ldr r0, _02018C9C ; =0x00003FE0
- and r0, r6
- add r1, r1, r0
- ldr r0, [sp, #0x18]
- add r6, r6, #0x4
- add r0, r1, r0
- str r0, [sp, #0x64]
- lsl r0, r4, #0x1f
- lsr r2, r0, #0x1d
- ldr r0, [sp, #0x0]
- asr r1, r3, #0x1
- ldr r7, [r0, #0x0]
- mov r0, #0x3
- and r0, r1
- ldr r1, _02018C9C ; =0x00003FE0
- add r4, r4, #0x1
- and r1, r5
- str r1, [sp, #0x54]
- add r1, r7, r0
- ldr r0, [sp, #0x54]
- add r5, r5, #0x4
- add r1, r0, r1
- ldr r0, [sp, #0x20]
- add r1, r0, r1
- ldr r0, [sp, #0x1c]
- ldrb r1, [r0, r1]
- lsl r0, r3, #0x1f
- lsr r0, r0, #0x1d
- asr r1, r0
- mov r0, #0xf
- and r0, r1
- add r7, r0, #0x0
- ldr r1, [sp, #0x14]
- ldr r0, [sp, #0x64]
- lsl r7, r2
- ldrb r0, [r0, r1]
- add r3, r3, #0x1
- str r0, [sp, #0x58]
- mov r0, #0xf0
- asr r0, r2
- ldr r1, [sp, #0x58]
- add r2, r7, #0x0
- and r0, r1
- orr r2, r0
- ldr r1, [sp, #0x14]
- ldr r0, [sp, #0x64]
- strb r2, [r0, r1]
- ldr r0, [sp, #0x50]
- cmp r3, r0
- blt _02018B26
-_02018B96:
- ldr r0, [sp, #0x28]
- add r0, r0, #0x4
- str r0, [sp, #0x28]
- ldr r0, [sp, #0xc]
- add r0, r0, #0x1
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x24]
- ldr r1, [sp, #0xc]
- add r0, r0, #0x4
- str r0, [sp, #0x24]
- ldr r0, [sp, #0x4c]
- cmp r1, r0
- blt _02018AEA
- add sp, #0x68
- pop {r3-r7, pc}
-_02018BB4:
- ldr r2, [sp, #0xc]
- ldr r1, [sp, #0x4c]
- cmp r2, r1
- bge _02018C92
- cmp r2, r1
- bge _02018C92
- add r1, r2, #0x0
- lsl r1, r1, #0x2
- lsl r0, r0, #0x2
- str r1, [sp, #0x40]
- str r0, [sp, #0x3c]
-_02018BCA:
- ldr r3, [sp, #0x8]
- ldr r0, [sp, #0x50]
- add r1, r3, #0x0
- ldr r4, [sp, #0x10]
- cmp r1, r0
- bge _02018C78
- cmp r1, r0
- bge _02018C78
- add r0, r3, #0x0
- lsl r1, r0, #0x2
- add r0, r4, #0x0
- lsl r2, r0, #0x2
- ldr r0, _02018C9C ; =0x00003FE0
- ldr r5, [sp, #0x40]
- ldr r6, [sp, #0x48]
- and r5, r0
- mul r6, r5
- str r6, [sp, #0x34]
- ldr r6, [sp, #0x40]
- mov r5, #0x1c
- and r6, r5
- str r6, [sp, #0x30]
- ldr r6, [sp, #0x3c]
- and r0, r6
- ldr r6, [sp, #0x44]
- mul r6, r0
- ldr r0, [sp, #0x3c]
- str r6, [sp, #0x2c]
- and r0, r5
- str r0, [sp, #0x60]
-_02018C06:
- ldr r0, [sp, #0x4]
- asr r6, r4, #0x1
- mov r5, #0x3
- and r5, r6
- ldr r0, [r0, #0x0]
- asr r6, r3, #0x1
- add r5, r0, r5
- ldr r0, _02018C9C ; =0x00003FE0
- and r0, r2
- add r5, r5, r0
- ldr r0, [sp, #0x2c]
- add r5, r5, r0
- ldr r0, [sp, #0x0]
- ldr r7, [r0, #0x0]
- mov r0, #0x3
- and r0, r6
- ldr r6, _02018C9C ; =0x00003FE0
- and r6, r1
- str r6, [sp, #0x5c]
- add r6, r7, r0
- ldr r0, [sp, #0x5c]
- add r6, r0, r6
- ldr r0, [sp, #0x34]
- add r6, r0, r6
- ldr r0, [sp, #0x30]
- ldrb r6, [r0, r6]
- lsl r0, r3, #0x1f
- lsr r0, r0, #0x1d
- asr r6, r0
- mov r0, #0xf
- and r0, r6
- ldr r6, [sp, #0x38]
- cmp r0, r6
- beq _02018C6A
- lsl r6, r4, #0x1f
- lsr r7, r6, #0x1d
- lsl r0, r7
- mov lr, r0
- ldr r0, [sp, #0x60]
- ldrb r0, [r5, r0]
- mov r12, r0
- mov r0, #0xf0
- add r6, r0, #0x0
- asr r6, r7
- mov r0, r12
- and r0, r6
- mov r6, lr
- orr r6, r0
- ldr r0, [sp, #0x60]
- strb r6, [r5, r0]
-_02018C6A:
- ldr r0, [sp, #0x50]
- add r3, r3, #0x1
- add r1, r1, #0x4
- add r2, r2, #0x4
- add r4, r4, #0x1
- cmp r3, r0
- blt _02018C06
-_02018C78:
- ldr r0, [sp, #0x40]
- add r0, r0, #0x4
- str r0, [sp, #0x40]
- ldr r0, [sp, #0xc]
- add r0, r0, #0x1
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x3c]
- ldr r1, [sp, #0xc]
- add r0, r0, #0x4
- str r0, [sp, #0x3c]
- ldr r0, [sp, #0x4c]
- cmp r1, r0
- blt _02018BCA
-_02018C92:
- add sp, #0x68
- pop {r3-r7, pc}
- nop
-_02018C98: .word 0x0000FFFF
-_02018C9C: .word 0x00003FE0
-
- thumb_func_start FUN_02018CA0
-FUN_02018CA0: ; 0x02018CA0
- push {r3-r7, lr}
- sub sp, #0x50
- str r2, [sp, #0x8]
- str r3, [sp, #0xc]
- add r2, sp, #0x58
- str r0, [sp, #0x0]
- ldrh r0, [r2, #0x10]
- str r1, [sp, #0x4]
- ldrh r2, [r2, #0x18]
- str r0, [sp, #0x10]
- add r0, r1, #0x0
- ldrh r1, [r0, #0x4]
- ldr r0, [sp, #0x10]
- sub r3, r1, r0
- cmp r3, r2
- bge _02018CC6
- ldr r0, [sp, #0x8]
- add r0, r0, r3
- b _02018CCA
-_02018CC6:
- ldr r0, [sp, #0x8]
- add r0, r2, r0
-_02018CCA:
- ldr r2, [sp, #0x4]
- add r3, sp, #0x58
- mov r12, r0
- ldrh r0, [r3, #0x14]
- ldrh r2, [r2, #0x6]
- ldrh r3, [r3, #0x1c]
- sub r4, r2, r0
- cmp r4, r3
- bge _02018CE2
- ldr r2, [sp, #0xc]
- add r2, r2, r4
- b _02018CE6
-_02018CE2:
- ldr r2, [sp, #0xc]
- add r2, r3, r2
-_02018CE6:
- mov lr, r2
- ldr r2, [sp, #0x0]
- mov r3, #0x7
- ldrh r4, [r2, #0x4]
- add r2, r4, #0x0
- and r2, r3
- add r2, r4, r2
- asr r2, r2, #0x3
- str r2, [sp, #0x4c]
- add r2, r1, #0x0
- and r2, r3
- add r1, r1, r2
- asr r1, r1, #0x3
- str r1, [sp, #0x48]
- add r1, sp, #0x58
- ldrh r1, [r1, #0x20]
- ldr r2, _02018E80 ; =0x0000FFFF
- str r1, [sp, #0x3c]
- cmp r1, r2
- bne _02018DC6
- ldr r2, [sp, #0xc]
- mov r1, lr
- cmp r2, r1
- bge _02018D1C
- mov r1, lr
- cmp r2, r1
- blt _02018D1E
-_02018D1C:
- b _02018E7C
-_02018D1E:
- add r1, r2, #0x0
- lsl r1, r1, #0x3
- lsl r0, r0, #0x3
- str r1, [sp, #0x28]
- str r0, [sp, #0x24]
-_02018D28:
- ldr r1, [sp, #0x8]
- mov r0, r12
- add r2, r1, #0x0
- ldr r7, [sp, #0x10]
- cmp r2, r0
- bge _02018DA8
- mov r0, r12
- cmp r2, r0
- bge _02018DA8
- add r0, r1, #0x0
- lsl r2, r0, #0x3
- add r0, r7, #0x0
- lsl r3, r0, #0x3
- ldr r6, _02018E84 ; =0x00007FC0
- ldr r0, [sp, #0x28]
- ldr r4, [sp, #0x4c]
- and r0, r6
- mul r4, r0
- str r4, [sp, #0x20]
- ldr r0, [sp, #0x28]
- mov r5, #0x38
- and r0, r5
- str r0, [sp, #0x1c]
- ldr r0, [sp, #0x24]
- ldr r4, [sp, #0x48]
- and r0, r6
- mul r4, r0
- ldr r0, [sp, #0x24]
- str r4, [sp, #0x18]
- and r0, r5
- str r0, [sp, #0x14]
-_02018D66:
- ldr r0, [sp, #0x0]
- add r5, r1, #0x0
- mov r4, #0x7
- and r5, r4
- ldr r0, [r0, #0x0]
- ldr r4, _02018E84 ; =0x00007FC0
- add r0, r0, r5
- and r4, r2
- add r4, r4, r0
- ldr r0, [sp, #0x20]
- add r5, r7, #0x0
- add r4, r0, r4
- ldr r0, [sp, #0x1c]
- add r1, r1, #0x1
- ldrb r6, [r0, r4]
- ldr r0, [sp, #0x4]
- mov r4, #0x7
- and r5, r4
- ldr r0, [r0, #0x0]
- ldr r4, _02018E84 ; =0x00007FC0
- add r0, r0, r5
- and r4, r3
- add r4, r4, r0
- ldr r0, [sp, #0x18]
- add r2, #0x8
- add r4, r0, r4
- ldr r0, [sp, #0x14]
- add r3, #0x8
- strb r6, [r0, r4]
- mov r0, r12
- add r7, r7, #0x1
- cmp r1, r0
- blt _02018D66
-_02018DA8:
- ldr r0, [sp, #0x28]
- add r0, #0x8
- str r0, [sp, #0x28]
- ldr r0, [sp, #0xc]
- add r0, r0, #0x1
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x24]
- ldr r1, [sp, #0xc]
- add r0, #0x8
- str r0, [sp, #0x24]
- mov r0, lr
- cmp r1, r0
- blt _02018D28
- add sp, #0x50
- pop {r3-r7, pc}
-_02018DC6:
- ldr r2, [sp, #0xc]
- mov r1, lr
- cmp r2, r1
- bge _02018E7C
- mov r1, lr
- cmp r2, r1
- bge _02018E7C
- add r1, r2, #0x0
- lsl r1, r1, #0x3
- lsl r0, r0, #0x3
- str r1, [sp, #0x44]
- str r0, [sp, #0x40]
-_02018DDE:
- ldr r2, [sp, #0x8]
- mov r0, r12
- add r1, r2, #0x0
- ldr r3, [sp, #0x10]
- cmp r1, r0
- bge _02018E62
- mov r0, r12
- cmp r1, r0
- bge _02018E62
- add r0, r2, #0x0
- lsl r6, r0, #0x3
- add r0, r3, #0x0
- lsl r1, r0, #0x3
- ldr r7, _02018E84 ; =0x00007FC0
- ldr r0, [sp, #0x44]
- ldr r4, [sp, #0x4c]
- and r0, r7
- mul r4, r0
- str r4, [sp, #0x38]
- ldr r0, [sp, #0x44]
- mov r5, #0x38
- and r0, r5
- str r0, [sp, #0x34]
- ldr r0, [sp, #0x40]
- ldr r4, [sp, #0x48]
- and r0, r7
- mul r4, r0
- ldr r0, [sp, #0x40]
- str r4, [sp, #0x30]
- and r0, r5
- str r0, [sp, #0x2c]
-_02018E1C:
- ldr r0, [sp, #0x4]
- mov r4, #0x7
- ldr r0, [r0, #0x0]
- and r4, r3
- add r0, r0, r4
- ldr r4, _02018E84 ; =0x00007FC0
- add r5, r2, #0x0
- and r4, r1
- add r4, r0, r4
- ldr r0, [sp, #0x30]
- add r7, r4, r0
- ldr r0, [sp, #0x0]
- mov r4, #0x7
- and r5, r4
- ldr r0, [r0, #0x0]
- ldr r4, _02018E84 ; =0x00007FC0
- add r0, r0, r5
- and r4, r6
- add r4, r4, r0
- ldr r0, [sp, #0x38]
- add r4, r0, r4
- ldr r0, [sp, #0x34]
- ldrb r0, [r0, r4]
- ldr r4, [sp, #0x3c]
- cmp r0, r4
- beq _02018E54
- ldr r4, [sp, #0x2c]
- strb r0, [r7, r4]
-_02018E54:
- add r2, r2, #0x1
- mov r0, r12
- add r6, #0x8
- add r1, #0x8
- add r3, r3, #0x1
- cmp r2, r0
- blt _02018E1C
-_02018E62:
- ldr r0, [sp, #0x44]
- add r0, #0x8
- str r0, [sp, #0x44]
- ldr r0, [sp, #0xc]
- add r0, r0, #0x1
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x40]
- ldr r1, [sp, #0xc]
- add r0, #0x8
- str r0, [sp, #0x40]
- mov r0, lr
- cmp r1, r0
- blt _02018DDE
-_02018E7C:
- add sp, #0x50
- pop {r3-r7, pc}
- .balign 4
-_02018E80: .word 0x0000FFFF
-_02018E84: .word 0x00007FC0
-
- thumb_func_start FUN_02018E88
-FUN_02018E88: ; 0x02018E88
- push {r4-r7, lr}
- sub sp, #0x14
- str r1, [sp, #0x4]
- str r2, [sp, #0x8]
- str r0, [sp, #0x0]
- ldr r0, [sp, #0x2c]
- str r0, [sp, #0x2c]
- ldr r0, [sp, #0x4]
- add r6, r0, r3
- ldr r0, [sp, #0x0]
- ldrh r0, [r0, #0x4]
- cmp r6, r0
- ble _02018EA4
- add r6, r0, #0x0
-_02018EA4:
- add r1, sp, #0x18
- ldrh r2, [r1, #0x10]
- ldr r1, [sp, #0x8]
- add r1, r1, r2
- mov r12, r1
- ldr r1, [sp, #0x0]
- ldrh r2, [r1, #0x6]
- mov r1, r12
- cmp r1, r2
- ble _02018EBA
- mov r12, r2
-_02018EBA:
- mov r1, #0x7
- and r1, r0
- add r0, r0, r1
- asr r0, r0, #0x3
- mov lr, r0
- ldr r1, [sp, #0x8]
- mov r0, r12
- cmp r1, r0
- bge _02018F44
- add r0, r1, #0x0
- lsl r0, r0, #0x2
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x2c]
- lsl r0, r0, #0x4
- str r0, [sp, #0x10]
-_02018ED8:
- ldr r1, [sp, #0x4]
- add r0, r1, #0x0
- cmp r0, r6
- bge _02018F32
- lsl r5, r0, #0x2
- ldr r2, _02018F48 ; =0x00003FE0
- ldr r0, [sp, #0xc]
- and r0, r2
- add r7, r0, #0x0
- mov r2, lr
- mul r7, r2
- ldr r0, [sp, #0xc]
- mov r2, #0x1c
- and r2, r0
-_02018EF4:
- ldr r0, [sp, #0x0]
- asr r3, r1, #0x1
- ldr r4, [r0, #0x0]
- mov r0, #0x3
- and r0, r3
- ldr r3, _02018F48 ; =0x00003FE0
- add r0, r4, r0
- and r3, r5
- add r0, r0, r3
- add r0, r0, r7
- mov r3, #0x1
- tst r3, r1
- ldrb r4, [r0, r2]
- beq _02018F1C
- mov r3, #0xf
- and r3, r4
- strb r3, [r0, r2]
- ldrb r4, [r0, r2]
- ldr r3, [sp, #0x10]
- b _02018F26
-_02018F1C:
- mov r3, #0xf0
- and r3, r4
- strb r3, [r0, r2]
- ldrb r4, [r0, r2]
- ldr r3, [sp, #0x2c]
-_02018F26:
- orr r3, r4
- add r1, r1, #0x1
- strb r3, [r0, r2]
- add r5, r5, #0x4
- cmp r1, r6
- blt _02018EF4
-_02018F32:
- ldr r0, [sp, #0xc]
- add r0, r0, #0x4
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x8]
- add r1, r0, #0x1
- mov r0, r12
- str r1, [sp, #0x8]
- cmp r1, r0
- blt _02018ED8
-_02018F44:
- add sp, #0x14
- pop {r4-r7, pc}
- .balign 4
-_02018F48: .word 0x00003FE0
-
- thumb_func_start FUN_02018F4C
-FUN_02018F4C: ; 0x02018F4C
- push {r4-r7, lr}
- sub sp, #0x14
- str r1, [sp, #0x4]
- str r2, [sp, #0x8]
- str r0, [sp, #0x0]
- ldr r0, [sp, #0x2c]
- str r0, [sp, #0x2c]
- ldr r0, [sp, #0x4]
- add r5, r0, r3
- ldr r0, [sp, #0x0]
- ldrh r0, [r0, #0x4]
- cmp r5, r0
- ble _02018F68
- add r5, r0, #0x0
-_02018F68:
- add r1, sp, #0x18
- ldrh r2, [r1, #0x10]
- ldr r1, [sp, #0x8]
- add r1, r1, r2
- mov lr, r1
- ldr r1, [sp, #0x0]
- ldrh r2, [r1, #0x6]
- mov r1, lr
- cmp r1, r2
- ble _02018F7E
- mov lr, r2
-_02018F7E:
- mov r1, #0x7
- and r1, r0
- add r0, r0, r1
- asr r0, r0, #0x3
- str r0, [sp, #0x10]
- ldr r1, [sp, #0x8]
- mov r0, lr
- cmp r1, r0
- bge _02018FEA
- add r0, r1, #0x0
- lsl r0, r0, #0x3
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x4]
- lsl r0, r0, #0x3
- mov r12, r0
-_02018F9C:
- ldr r2, [sp, #0x4]
- add r0, r2, #0x0
- cmp r0, r5
- bge _02018FD8
- ldr r1, [sp, #0xc]
- ldr r0, _02018FF0 ; =0x00007FC0
- mov r3, r12
- and r0, r1
- add r7, r0, #0x0
- ldr r1, [sp, #0x10]
- mov r0, #0x38
- mul r7, r1
- ldr r1, [sp, #0xc]
- add r6, r1, #0x0
- and r6, r0
-_02018FBA:
- ldr r0, [sp, #0x0]
- ldr r4, _02018FF0 ; =0x00007FC0
- ldr r1, [r0, #0x0]
- mov r0, #0x7
- and r0, r2
- and r4, r3
- add r0, r1, r0
- add r0, r4, r0
- add r1, r7, r0
- ldr r0, [sp, #0x2c]
- add r2, r2, #0x1
- strb r0, [r6, r1]
- add r3, #0x8
- cmp r2, r5
- blt _02018FBA
-_02018FD8:
- ldr r0, [sp, #0xc]
- add r0, #0x8
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x8]
- add r1, r0, #0x1
- mov r0, lr
- str r1, [sp, #0x8]
- cmp r1, r0
- blt _02018F9C
-_02018FEA:
- add sp, #0x14
- pop {r4-r7, pc}
- nop
-_02018FF0: .word 0x00007FC0
-
- thumb_func_start FUN_02018FF4
-FUN_02018FF4: ; 0x02018FF4
- push {r4-r6, lr}
- add r5, r1, #0x0
- lsl r1, r5, #0x4
- bl FUN_02016998
- add r6, r0, #0x0
- mov r4, #0x0
- cmp r5, #0x0
- ble _02019018
-_02019006:
- lsl r0, r4, #0x4
- add r0, r6, r0
- bl FUN_0201901C
- add r0, r4, #0x1
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
- cmp r4, r5
- blt _02019006
-_02019018:
- add r0, r6, #0x0
- pop {r4-r6, pc}
-
- thumb_func_start FUN_0201901C
-FUN_0201901C: ; 0x0201901C
- mov r3, #0x0
- str r3, [r0, #0x0]
- mov r1, #0xff
- strb r1, [r0, #0x4]
- strb r3, [r0, #0x5]
- strb r3, [r0, #0x6]
- strb r3, [r0, #0x7]
- strb r3, [r0, #0x8]
- strb r3, [r0, #0x9]
- ldrh r2, [r0, #0xa]
- ldr r1, _02019044 ; =0xFFFF8000
- and r2, r1
- strh r2, [r0, #0xa]
- str r3, [r0, #0xc]
- ldrh r2, [r0, #0xa]
- sub r1, r1, #0x1
- and r1, r2
- strh r1, [r0, #0xa]
- bx lr
- nop
-_02019044: .word 0xFFFF8000
-
- thumb_func_start FUN_02019048
-FUN_02019048: ; 0x02019048
- ldr r1, [r0, #0x0]
- cmp r1, #0x0
- beq _0201905A
- ldrb r1, [r0, #0x4]
- cmp r1, #0xff
- beq _0201905A
- ldr r0, [r0, #0xc]
- cmp r0, #0x0
- bne _0201905E
-_0201905A:
- mov r0, #0x0
- bx lr
-_0201905E:
- mov r0, #0x1
- bx lr
- .balign 4
-
- thumb_func_start FUN_02019064
-FUN_02019064: ; 0x02019064
- push {r3-r7, lr}
- add r6, r2, #0x0
- add r5, r0, #0x0
- mov r0, #0x2c
- add r7, r6, #0x0
- mul r7, r0
- add r4, r1, #0x0
- str r3, [sp, #0x0]
- add r1, r5, r7
- ldr r0, [r1, #0x8]
- cmp r0, #0x0
- beq _020190E0
- add r3, sp, #0x8
- ldrb r2, [r1, #0x1f]
- ldrb r1, [r3, #0x14]
- ldrb r3, [r3, #0x18]
- ldr r0, [r5, #0x0]
- mul r3, r1
- add r1, r2, #0x0
- mul r1, r3
- bl FUN_02016998
- add r1, r0, #0x0
- beq _020190E0
- str r5, [r4, #0x0]
- strb r6, [r4, #0x4]
- ldr r0, [sp, #0x0]
- add r3, sp, #0x8
- strb r0, [r4, #0x5]
- ldrb r0, [r3, #0x10]
- ldr r2, _020190E4 ; =0xFFFF8000
- strb r0, [r4, #0x6]
- ldrb r0, [r3, #0x14]
- strb r0, [r4, #0x7]
- ldrb r0, [r3, #0x18]
- strb r0, [r4, #0x8]
- ldrb r0, [r3, #0x1c]
- strb r0, [r4, #0x9]
- ldrh r0, [r4, #0xa]
- ldrh r3, [r3, #0x20]
- and r0, r2
- lsr r2, r2, #0x11
- and r2, r3
- orr r0, r2
- strh r0, [r4, #0xa]
- str r1, [r4, #0xc]
- add r0, r5, r7
- ldrb r0, [r0, #0x1e]
- cmp r0, #0x0
- bne _020190CC
- mov r2, #0x0
- b _020190CE
-_020190CC:
- mov r2, #0x1
-_020190CE:
- ldrh r1, [r4, #0xa]
- ldr r0, _020190E8 ; =0xFFFF7FFF
- and r1, r0
- lsl r0, r2, #0x10
- lsr r0, r0, #0x10
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x10
- orr r0, r1
- strh r0, [r4, #0xa]
-_020190E0:
- pop {r3-r7, pc}
- nop
-_020190E4: .word 0xFFFF8000
-_020190E8: .word 0xFFFF7FFF
-
- thumb_func_start FUN_020190EC
-FUN_020190EC: ; 0x020190EC
- push {r3-r7, lr}
- sub sp, #0x8
- str r3, [sp, #0x0]
- add r5, r0, #0x0
- ldr r0, [sp, #0x24]
- add r6, r2, #0x0
- str r0, [sp, #0x24]
- ldr r0, [sp, #0x0]
- add r4, r1, #0x0
- mul r0, r6
- lsl r0, r0, #0x5
- str r0, [sp, #0x4]
- ldr r0, [r5, #0x0]
- ldr r1, [sp, #0x4]
- bl FUN_02016998
- ldr r1, [sp, #0x24]
- add r7, r0, #0x0
- lsl r2, r1, #0x4
- orr r1, r2
- lsl r1, r1, #0x18
- ldr r2, [sp, #0x4]
- lsr r1, r1, #0x18
- bl Call_FillMemWithValue
- cmp r7, #0x0
- beq _02019148
- str r5, [r4, #0x0]
- strb r6, [r4, #0x7]
- ldr r0, [sp, #0x0]
- strb r0, [r4, #0x8]
- ldrh r1, [r4, #0xa]
- ldr r0, _0201914C ; =0xFFFF8000
- add r3, r1, #0x0
- add r1, sp, #0x10
- ldrh r2, [r1, #0x10]
- lsr r1, r0, #0x11
- and r3, r0
- and r1, r2
- orr r1, r3
- strh r1, [r4, #0xa]
- str r7, [r4, #0xc]
- ldrh r1, [r4, #0xa]
- sub r0, r0, #0x1
- and r0, r1
- strh r0, [r4, #0xa]
-_02019148:
- add sp, #0x8
- pop {r3-r7, pc}
- .balign 4
-_0201914C: .word 0xFFFF8000
-
- thumb_func_start FUN_02019150
-FUN_02019150: ; 0x02019150
- push {lr}
- sub sp, #0x14
- add r3, r2, #0x0
- ldrb r2, [r3, #0x2]
- str r2, [sp, #0x0]
- ldrb r2, [r3, #0x3]
- str r2, [sp, #0x4]
- ldrb r2, [r3, #0x4]
- str r2, [sp, #0x8]
- ldrb r2, [r3, #0x5]
- str r2, [sp, #0xc]
- ldrh r2, [r3, #0x6]
- str r2, [sp, #0x10]
- ldrb r2, [r3, #0x0]
- ldrb r3, [r3, #0x1]
- bl FUN_02019064
- add sp, #0x14
- pop {pc}
- .balign 4
-
- thumb_func_start FUN_02019178
-FUN_02019178: ; 0x02019178
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, [r4, #0xc]
- bl FUN_02016A18
- mov r2, #0x0
- str r2, [r4, #0x0]
- mov r0, #0xff
- strb r0, [r4, #0x4]
- strb r2, [r4, #0x5]
- strb r2, [r4, #0x6]
- strb r2, [r4, #0x7]
- strb r2, [r4, #0x8]
- strb r2, [r4, #0x9]
- ldrh r1, [r4, #0xa]
- ldr r0, _020191A0 ; =0xFFFF8000
- and r0, r1
- strh r0, [r4, #0xa]
- str r2, [r4, #0xc]
- pop {r4, pc}
- .balign 4
-_020191A0: .word 0xFFFF8000
-
- thumb_func_start FUN_020191A4
-FUN_020191A4: ; 0x020191A4
- push {r4-r6, lr}
- add r6, r1, #0x0
- add r5, r0, #0x0
- mov r4, #0x0
- cmp r6, #0x0
- ble _020191C8
-_020191B0:
- lsl r0, r4, #0x4
- add r0, r5, r0
- ldr r0, [r0, #0xc]
- cmp r0, #0x0
- beq _020191BE
- bl FUN_02016A18
-_020191BE:
- add r0, r4, #0x1
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
- cmp r4, r6
- blt _020191B0
-_020191C8:
- add r0, r5, #0x0
- bl FUN_02016A18
- pop {r4-r6, pc}
-
- thumb_func_start FUN_020191D0
-FUN_020191D0: ; 0x020191D0
- push {r4, lr}
- add r4, r0, #0x0
- bne _020191DA
- bl ErrorHandling
-_020191DA:
- ldr r0, [r4, #0x0]
- cmp r0, #0x0
- bne _020191E4
- bl ErrorHandling
-_020191E4:
- ldrb r0, [r4, #0x4]
- cmp r0, #0x8
- blo _020191EE
- bl ErrorHandling
-_020191EE:
- ldrb r1, [r4, #0x4]
- mov r0, #0x2c
- ldr r2, [r4, #0x0]
- mul r0, r1
- add r0, r2, r0
- ldrb r0, [r0, #0x1c]
- cmp r0, #0x3
- blo _02019202
- bl ErrorHandling
-_02019202:
- ldrb r2, [r4, #0x4]
- mov r1, #0x2c
- ldr r3, [r4, #0x0]
- mul r1, r2
- add r1, r3, r1
- ldrb r1, [r1, #0x1c]
- add r0, r4, #0x0
- lsl r2, r1, #0x2
- ldr r1, _0201921C ; =0x020EDB68
- ldr r1, [r1, r2]
- blx r1
- pop {r4, pc}
- nop
-_0201921C: .word 0x020EDB68
-
- thumb_func_start FUN_02019220
-FUN_02019220: ; 0x02019220
- push {r4, lr}
- add r4, r0, #0x0
- bne _0201922A
- bl ErrorHandling
-_0201922A:
- ldr r0, [r4, #0x0]
- cmp r0, #0x0
- bne _02019234
- bl ErrorHandling
-_02019234:
- ldrb r0, [r4, #0x4]
- cmp r0, #0x8
- blo _0201923E
- bl ErrorHandling
-_0201923E:
- ldrb r1, [r4, #0x4]
- mov r0, #0x2c
- ldr r2, [r4, #0x0]
- mul r0, r1
- add r0, r2, r0
- ldrb r0, [r0, #0x1c]
- cmp r0, #0x3
- blo _02019252
- bl ErrorHandling
-_02019252:
- ldrb r2, [r4, #0x4]
- mov r1, #0x2c
- ldr r3, [r4, #0x0]
- mul r1, r2
- add r1, r3, r1
- ldrb r1, [r1, #0x1c]
- add r0, r4, #0x0
- lsl r2, r1, #0x2
- ldr r1, _0201926C ; =0x020EDB5C
- ldr r1, [r1, r2]
- blx r1
- pop {r4, pc}
- nop
-_0201926C: .word 0x020EDB5C
-
- thumb_func_start FUN_02019270
-FUN_02019270: ; 0x02019270
- push {r3, lr}
- ldrb r2, [r0, #0x4]
- mov r1, #0x2c
- ldr r3, [r0, #0x0]
- mul r1, r2
- add r1, r3, r1
- ldrb r1, [r1, #0x1c]
- lsl r2, r1, #0x2
- ldr r1, _02019288 ; =0x020EDB38
- ldr r1, [r1, r2]
- blx r1
- pop {r3, pc}
- .balign 4
-_02019288: .word 0x020EDB38
-
- thumb_func_start FUN_0201928C
-FUN_0201928C: ; 0x0201928C
- push {r4-r6, lr}
- add r5, r0, #0x0
- ldrb r6, [r5, #0x7]
- ldrb r4, [r5, #0x8]
- strb r1, [r5, #0x7]
- strb r2, [r5, #0x8]
- ldrb r3, [r5, #0x4]
- mov r2, #0x2c
- ldr r1, [r5, #0x0]
- mul r2, r3
- add r1, r1, r2
- ldrb r1, [r1, #0x1c]
- lsl r2, r1, #0x2
- ldr r1, _020192B4 ; =0x020EDB38
- ldr r1, [r1, r2]
- blx r1
- strb r6, [r5, #0x7]
- strb r4, [r5, #0x8]
- pop {r4-r6, pc}
- nop
-_020192B4: .word 0x020EDB38
-
- thumb_func_start FUN_020192B8
-FUN_020192B8: ; 0x020192B8
- push {r3, lr}
- ldrb r2, [r0, #0x4]
- mov r1, #0x2c
- ldr r3, [r0, #0x0]
- mul r1, r2
- add r1, r3, r1
- ldrb r1, [r1, #0x1c]
- lsl r2, r1, #0x2
- ldr r1, _020192D0 ; =0x020EDB74
- ldr r1, [r1, r2]
- blx r1
- pop {r3, pc}
- .balign 4
-_020192D0: .word 0x020EDB74
-
- thumb_func_start FUN_020192D4
-FUN_020192D4: ; 0x020192D4
- push {r3-r7, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- ldrb r1, [r5, #0x4]
- mov r0, #0x2c
- ldr r2, [r5, #0x0]
- mul r0, r1
- add r0, r2, r0
- ldr r0, [r0, #0x8]
- str r0, [sp, #0x4]
- cmp r0, #0x0
- beq _02019354
- ldrh r0, [r5, #0xa]
- ldrb r1, [r5, #0x5]
- lsl r0, r0, #0x11
- lsr r3, r0, #0x11
- ldrb r0, [r5, #0x7]
- add r7, r1, r0
- ldrb r0, [r5, #0x6]
- ldrb r1, [r5, #0x8]
- mov r12, r0
- add r0, r0, r1
- mov r1, r12
- mov lr, r0
- cmp r1, r0
- bhs _02019354
-_02019308:
- ldrb r2, [r5, #0x5]
- cmp r2, r7
- bhs _02019348
- mov r0, r12
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x16
- lsl r1, r0, #0x1
- ldr r0, [sp, #0x4]
- add r0, r0, r1
- mov r1, r12
- str r0, [sp, #0x0]
- mov r0, #0x20
- add r6, r1, #0x0
- and r6, r0
-_02019324:
- ldrb r0, [r5, #0x9]
- mov r4, #0x20
- add r1, r3, #0x0
- lsl r0, r0, #0xc
- and r4, r2
- orr r1, r0
- mov r0, #0x1f
- add r4, r6, r4
- and r0, r2
- lsl r4, r4, #0x5
- add r0, r0, r4
- lsl r4, r0, #0x1
- ldr r0, [sp, #0x0]
- add r2, r2, #0x1
- strh r1, [r0, r4]
- add r3, r3, #0x1
- cmp r2, r7
- blo _02019324
-_02019348:
- mov r0, r12
- add r1, r0, #0x1
- mov r0, lr
- mov r12, r1
- cmp r1, r0
- blo _02019308
-_02019354:
- add sp, #0x8
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02019358
-FUN_02019358: ; 0x02019358
- push {r4-r7}
- ldrb r3, [r0, #0x4]
- mov r1, #0x2c
- add r2, r3, #0x0
- mul r2, r1
- ldr r1, [r0, #0x0]
- add r1, r1, r2
- ldr r3, [r1, #0x8]
- cmp r3, #0x0
- beq _020193AC
- ldrb r2, [r1, #0x1d]
- ldr r1, _020193B0 ; =0x020EDB30
- ldrb r6, [r1, r2]
- ldrb r1, [r0, #0x6]
- add r2, r1, #0x0
- mul r2, r6
- add r2, r3, r2
- ldrb r1, [r0, #0x5]
- mov r3, #0x0
- add r4, r2, r1
- ldrh r1, [r0, #0xa]
- lsl r1, r1, #0x11
- lsr r5, r1, #0x11
- ldrb r1, [r0, #0x8]
- cmp r1, #0x0
- ble _020193AC
- add r1, r3, #0x0
-_0201938E:
- ldrb r7, [r0, #0x7]
- add r2, r1, #0x0
- cmp r7, #0x0
- ble _020193A2
-_02019396:
- strb r5, [r4, r2]
- ldrb r7, [r0, #0x7]
- add r2, r2, #0x1
- add r5, r5, #0x1
- cmp r2, r7
- blt _02019396
-_020193A2:
- ldrb r2, [r0, #0x8]
- add r3, r3, #0x1
- add r4, r4, r6
- cmp r3, r2
- blt _0201938E
-_020193AC:
- pop {r4-r7}
- bx lr
- .balign 4
-_020193B0: .word 0x020EDB30
-
- thumb_func_start FUN_020193B4
-FUN_020193B4: ; 0x020193B4
- push {r4-r7, lr}
- sub sp, #0xc
- ldrb r2, [r0, #0x4]
- str r0, [sp, #0x0]
- mov r0, #0x2c
- add r1, r2, #0x0
- mul r1, r0
- ldr r0, [sp, #0x0]
- ldr r0, [r0, #0x0]
- add r1, r0, r1
- ldr r0, [r1, #0x8]
- str r0, [sp, #0x4]
- cmp r0, #0x0
- beq _0201943C
- ldrb r1, [r1, #0x1d]
- ldr r0, _02019440 ; =0x020EDB30
- ldrb r0, [r0, r1]
- str r0, [sp, #0x8]
- ldr r0, [sp, #0x0]
- ldrb r1, [r0, #0x5]
- ldrb r0, [r0, #0x7]
- add r2, r1, r0
- ldr r0, [sp, #0x0]
- ldrb r0, [r0, #0x6]
- mov r12, r0
- ldr r0, [sp, #0x0]
- ldrb r1, [r0, #0x8]
- mov r0, r12
- add r0, r0, r1
- mov r1, r12
- mov lr, r0
- cmp r1, r0
- bhs _0201943C
- mov r6, #0x0
- mov r7, #0x20
-_020193FA:
- ldr r0, [sp, #0x0]
- ldrb r1, [r0, #0x5]
- cmp r1, r2
- bhs _02019430
- mov r3, r12
- mov r0, #0x1f
- and r3, r0
- ldr r0, [sp, #0x8]
- mul r0, r3
- lsl r3, r0, #0x1
- ldr r0, [sp, #0x4]
- add r5, r0, r3
- mov r3, r12
- mov r0, #0x20
- and r3, r0
-_02019418:
- add r4, r1, #0x0
- and r4, r7
- mov r0, #0x1f
- add r4, r3, r4
- and r0, r1
- lsl r4, r4, #0x5
- add r0, r0, r4
- lsl r0, r0, #0x1
- add r1, r1, #0x1
- strh r6, [r5, r0]
- cmp r1, r2
- blo _02019418
-_02019430:
- mov r0, r12
- add r1, r0, #0x1
- mov r0, lr
- mov r12, r1
- cmp r1, r0
- blo _020193FA
-_0201943C:
- add sp, #0xc
- pop {r4-r7, pc}
- .balign 4
-_02019440: .word 0x020EDB30
-
- thumb_func_start FUN_02019444
-FUN_02019444: ; 0x02019444
- push {r4-r7}
- ldrb r3, [r0, #0x4]
- mov r1, #0x2c
- add r2, r3, #0x0
- mul r2, r1
- ldr r1, [r0, #0x0]
- add r1, r1, r2
- ldr r3, [r1, #0x8]
- cmp r3, #0x0
- beq _02019492
- ldrb r2, [r1, #0x1d]
- ldr r1, _02019498 ; =0x020EDB30
- mov r4, #0x0
- ldrb r6, [r1, r2]
- ldrb r1, [r0, #0x6]
- add r2, r1, #0x0
- mul r2, r6
- ldrb r1, [r0, #0x5]
- add r2, r3, r2
- add r5, r2, r1
- ldrb r1, [r0, #0x8]
- cmp r1, #0x0
- ble _02019492
- add r1, r4, #0x0
- add r2, r4, #0x0
-_02019476:
- ldrb r7, [r0, #0x7]
- add r3, r2, #0x0
- cmp r7, #0x0
- ble _02019488
-_0201947E:
- strb r1, [r5, r3]
- ldrb r7, [r0, #0x7]
- add r3, r3, #0x1
- cmp r3, r7
- blt _0201947E
-_02019488:
- ldrb r3, [r0, #0x8]
- add r4, r4, #0x1
- add r5, r5, r6
- cmp r4, r3
- blt _02019476
-_02019492:
- pop {r4-r7}
- bx lr
- nop
-_02019498: .word 0x020EDB30
-
- thumb_func_start FUN_0201949C
-FUN_0201949C: ; 0x0201949C
- push {r3-r4, lr}
- sub sp, #0x4
- add r4, r0, #0x0
- bl FUN_020192D4
- add r0, r4, #0x0
- bl FUN_02019548
- ldrb r1, [r4, #0x4]
- mov r0, #0x2c
- add r2, r1, #0x0
- mul r2, r0
- ldr r0, [r4, #0x0]
- add r3, r0, r2
- ldr r2, [r3, #0x10]
- str r2, [sp, #0x0]
- ldr r2, [r3, #0x8]
- ldr r3, [r3, #0xc]
- bl FUN_02017CE8
- add sp, #0x4
- pop {r3-r4, pc}
-
- thumb_func_start FUN_020194C8
-FUN_020194C8: ; 0x020194C8
- push {r4, lr}
- add r4, r0, #0x0
- bl FUN_020192D4
- ldrb r1, [r4, #0x4]
- ldr r0, [r4, #0x0]
- bl FUN_0201AC68
- add r0, r4, #0x0
- bl FUN_02019548
- pop {r4, pc}
-
- thumb_func_start FUN_020194E0
-FUN_020194E0: ; 0x020194E0
- push {r3-r5, lr}
- add r4, r0, #0x0
- bl FUN_02019358
- ldrb r1, [r4, #0x4]
- mov r0, #0x2c
- add r2, r1, #0x0
- mul r2, r0
- ldr r0, [r4, #0x0]
- add r3, r0, r2
- ldr r2, [r3, #0x10]
- str r2, [sp, #0x0]
- ldr r2, [r3, #0x8]
- ldr r3, [r3, #0xc]
- bl FUN_02017CE8
- ldrh r0, [r4, #0xa]
- lsl r0, r0, #0x11
- lsr r0, r0, #0x11
- str r0, [sp, #0x0]
- ldrb r5, [r4, #0x7]
- ldrb r3, [r4, #0x8]
- ldrb r1, [r4, #0x4]
- ldr r0, [r4, #0x0]
- mul r3, r5
- ldr r2, [r4, #0xc]
- lsl r3, r3, #0x6
- bl FUN_02017E14
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0201951C
-FUN_0201951C: ; 0x0201951C
- push {r3-r5, lr}
- add r4, r0, #0x0
- bl FUN_02019358
- ldrb r1, [r4, #0x4]
- ldr r0, [r4, #0x0]
- bl FUN_0201AC68
- ldrh r0, [r4, #0xa]
- lsl r0, r0, #0x11
- lsr r0, r0, #0x11
- str r0, [sp, #0x0]
- ldrb r5, [r4, #0x7]
- ldrb r3, [r4, #0x8]
- ldrb r1, [r4, #0x4]
- ldr r0, [r4, #0x0]
- mul r3, r5
- ldr r2, [r4, #0xc]
- lsl r3, r3, #0x6
- bl FUN_02017E14
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02019548
-FUN_02019548: ; 0x02019548
- push {r3-r5, lr}
- add r3, r0, #0x0
- ldrh r2, [r3, #0xa]
- ldrb r1, [r3, #0x4]
- mov r4, #0x2c
- lsl r2, r2, #0x11
- ldr r0, [r3, #0x0]
- lsr r2, r2, #0x11
- str r2, [sp, #0x0]
- mul r4, r1
- add r4, r0, r4
- ldr r2, [r3, #0xc]
- ldrb r5, [r3, #0x7]
- ldrb r3, [r3, #0x8]
- ldrb r4, [r4, #0x1f]
- mul r3, r5
- mul r3, r4
- bl FUN_02017E14
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02019570
-FUN_02019570: ; 0x02019570
- push {r3, lr}
- ldrb r2, [r0, #0x4]
- mov r1, #0x2c
- ldr r3, [r0, #0x0]
- mul r1, r2
- add r1, r3, r1
- ldrb r1, [r1, #0x1c]
- lsl r2, r1, #0x2
- ldr r1, _02019588 ; =0x020EDB50
- ldr r1, [r1, r2]
- blx r1
- pop {r3, pc}
- .balign 4
-_02019588: .word 0x020EDB50
-
- thumb_func_start FUN_0201958C
-FUN_0201958C: ; 0x0201958C
- push {r3, lr}
- ldrb r2, [r0, #0x4]
- mov r1, #0x2c
- ldr r3, [r0, #0x0]
- mul r1, r2
- add r1, r3, r1
- ldrb r1, [r1, #0x1c]
- lsl r2, r1, #0x2
- ldr r1, _020195A4 ; =0x020EDB44
- ldr r1, [r1, r2]
- blx r1
- pop {r3, pc}
- .balign 4
-_020195A4: .word 0x020EDB44
-
- thumb_func_start FUN_020195A8
-FUN_020195A8: ; 0x020195A8
- push {r3-r4, lr}
- sub sp, #0x4
- add r4, r0, #0x0
- bl FUN_020193B4
- ldrb r1, [r4, #0x4]
- mov r0, #0x2c
- add r2, r1, #0x0
- mul r2, r0
- ldr r0, [r4, #0x0]
- add r3, r0, r2
- ldr r2, [r3, #0x10]
- str r2, [sp, #0x0]
- ldr r2, [r3, #0x8]
- ldr r3, [r3, #0xc]
- bl FUN_02017CE8
- add sp, #0x4
- pop {r3-r4, pc}
- .balign 4
-
- thumb_func_start FUN_020195D0
-FUN_020195D0: ; 0x020195D0
- push {r4, lr}
- add r4, r0, #0x0
- bl FUN_020193B4
- ldrb r1, [r4, #0x4]
- ldr r0, [r4, #0x0]
- bl FUN_0201AC68
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_020195E4
-FUN_020195E4: ; 0x020195E4
- push {r3-r4, lr}
- sub sp, #0x4
- add r4, r0, #0x0
- bl FUN_02019444
- ldrb r1, [r4, #0x4]
- mov r0, #0x2c
- add r2, r1, #0x0
- mul r2, r0
- ldr r0, [r4, #0x0]
- add r3, r0, r2
- ldr r2, [r3, #0x10]
- str r2, [sp, #0x0]
- ldr r2, [r3, #0x8]
- ldr r3, [r3, #0xc]
- bl FUN_02017CE8
- add sp, #0x4
- pop {r3-r4, pc}
- .balign 4
-
- thumb_func_start FUN_0201960C
-FUN_0201960C: ; 0x0201960C
- push {r4, lr}
- add r4, r0, #0x0
- bl FUN_02019444
- ldrb r1, [r4, #0x4]
- ldr r0, [r4, #0x0]
- bl FUN_0201AC68
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02019620
-FUN_02019620: ; 0x02019620
- push {r3-r5, lr}
- add r4, r0, #0x0
- ldrb r2, [r4, #0x4]
- mov r0, #0x2c
- ldr r3, [r4, #0x0]
- mul r0, r2
- add r0, r3, r0
- ldrb r2, [r0, #0x1f]
- cmp r2, #0x20
- bne _0201963C
- lsl r0, r1, #0x4
- orr r0, r1
- lsl r0, r0, #0x18
- lsr r1, r0, #0x18
-_0201963C:
- lsl r3, r1, #0x18
- lsl r0, r1, #0x10
- orr r0, r3
- lsl r5, r1, #0x8
- orr r0, r5
- orr r0, r1
- ldr r1, [r4, #0xc]
- ldrb r3, [r4, #0x8]
- ldrb r4, [r4, #0x7]
- mul r2, r4
- mul r2, r3
- bl MIi_CpuClearFast
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02019658
-FUN_02019658: ; 0x02019658
- push {r4-r5, lr}
- sub sp, #0x1c
- add r4, sp, #0x18
- ldrh r5, [r4, #0x10]
- str r5, [sp, #0x0]
- ldrh r5, [r4, #0x14]
- str r5, [sp, #0x4]
- ldrh r5, [r4, #0x18]
- str r5, [sp, #0x8]
- ldrh r5, [r4, #0x1c]
- str r5, [sp, #0xc]
- ldrh r5, [r4, #0x20]
- str r5, [sp, #0x10]
- ldrh r4, [r4, #0x24]
- str r4, [sp, #0x14]
- mov r4, #0x0
- str r4, [sp, #0x18]
- bl FUN_02019684
- add sp, #0x1c
- pop {r4-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02019684
-FUN_02019684: ; 0x02019684
- push {r4-r5, lr}
- sub sp, #0x24
- str r1, [sp, #0x1c]
- add r4, sp, #0x20
- ldrh r5, [r4, #0x10]
- add r1, sp, #0x14
- strh r5, [r1, #0xc]
- ldrh r5, [r4, #0x14]
- strh r5, [r1, #0xe]
- ldr r5, [r0, #0xc]
- str r5, [sp, #0x14]
- ldrb r5, [r0, #0x7]
- lsl r5, r5, #0x3
- strh r5, [r1, #0x4]
- ldrb r5, [r0, #0x8]
- lsl r5, r5, #0x3
- strh r5, [r1, #0x6]
- ldrb r5, [r0, #0x4]
- ldr r1, [r0, #0x0]
- mov r0, #0x2c
- mul r0, r5
- add r0, r1, r0
- ldrb r0, [r0, #0x1e]
- add r1, sp, #0x14
- cmp r0, #0x0
- ldrh r0, [r4, #0x18]
- bne _020196D6
- str r0, [sp, #0x0]
- ldrh r0, [r4, #0x1c]
- str r0, [sp, #0x4]
- ldrh r0, [r4, #0x20]
- str r0, [sp, #0x8]
- ldrh r0, [r4, #0x24]
- str r0, [sp, #0xc]
- ldrh r0, [r4, #0x28]
- str r0, [sp, #0x10]
- add r0, sp, #0x1c
- bl FUN_02018A60
- add sp, #0x24
- pop {r4-r5, pc}
-_020196D6:
- str r0, [sp, #0x0]
- ldrh r0, [r4, #0x1c]
- str r0, [sp, #0x4]
- ldrh r0, [r4, #0x20]
- str r0, [sp, #0x8]
- ldrh r0, [r4, #0x24]
- str r0, [sp, #0xc]
- ldrh r0, [r4, #0x28]
- str r0, [sp, #0x10]
- add r0, sp, #0x1c
- bl FUN_02018CA0
- add sp, #0x24
- pop {r4-r5, pc}
- .balign 4
-
- thumb_func_start FUN_020196F4
-FUN_020196F4: ; 0x020196F4
- push {r3-r5, lr}
- sub sp, #0x10
- add r5, r1, #0x0
- ldr r1, [r0, #0xc]
- add r4, r2, #0x0
- str r1, [sp, #0x8]
- ldrb r1, [r0, #0x7]
- add r2, r3, #0x0
- lsl r3, r1, #0x3
- add r1, sp, #0x8
- strh r3, [r1, #0x4]
- ldrb r3, [r0, #0x8]
- lsl r3, r3, #0x3
- strh r3, [r1, #0x6]
- ldrb r3, [r0, #0x4]
- ldr r1, [r0, #0x0]
- mov r0, #0x2c
- mul r0, r3
- add r0, r1, r0
- ldrb r0, [r0, #0x1e]
- add r3, sp, #0x10
- cmp r0, #0x0
- bne _02019736
- ldrh r0, [r3, #0x14]
- add r1, r4, #0x0
- str r0, [sp, #0x0]
- str r5, [sp, #0x4]
- ldrh r3, [r3, #0x10]
- add r0, sp, #0x8
- bl FUN_02018E88
- add sp, #0x10
- pop {r3-r5, pc}
-_02019736:
- ldrh r0, [r3, #0x14]
- add r1, r4, #0x0
- str r0, [sp, #0x0]
- str r5, [sp, #0x4]
- ldrh r3, [r3, #0x10]
- add r0, sp, #0x8
- bl FUN_02018F4C
- add sp, #0x10
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0201974C
-FUN_0201974C: ; 0x0201974C
- push {r4-r7, lr}
- sub sp, #0x1fc
- sub sp, #0x118
- add r5, r0, #0x0
- ldr r0, [sp, #0x330]
- str r1, [sp, #0x0]
- str r0, [sp, #0x330]
- add r1, sp, #0x318
- ldrh r1, [r1, #0x10]
- ldr r0, [r5, #0xc]
- str r1, [sp, #0x5c]
- ldrb r1, [r5, #0x7]
- str r0, [sp, #0x278]
- ldrb r0, [r5, #0x8]
- lsl r1, r1, #0x13
- lsr r4, r1, #0x10
- ldr r1, [sp, #0x5c]
- lsl r0, r0, #0x13
- sub r1, r4, r1
- lsr r0, r0, #0x10
- str r4, [sp, #0x58]
- str r1, [sp, #0x8]
- cmp r1, r2
- blt _0201977E
- str r2, [sp, #0x8]
-_0201977E:
- add r1, sp, #0x318
- ldrh r1, [r1, #0x14]
- sub r0, r0, r1
- str r1, [sp, #0x48]
- str r0, [sp, #0x4]
- cmp r0, r3
- blt _0201978E
- str r3, [sp, #0x4]
-_0201978E:
- ldr r0, [sp, #0x8]
- mov r4, #0x0
- cmp r0, #0x8
- ble _0201979E
- mov r0, #0x1
- orr r0, r4
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
-_0201979E:
- ldr r0, [sp, #0x4]
- cmp r0, #0x8
- ble _020197AC
- mov r0, #0x2
- orr r0, r4
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
-_020197AC:
- ldrh r0, [r5, #0xa]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x1f
- beq _020197B8
- bl FUN_0201A12C
-_020197B8:
- cmp r4, #0x3
- bls _020197C0
- bl FUN_0201A8BC
-_020197C0:
- add r0, r4, r4
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_020197CC: ; jump table (using 16-bit offset)
- .short _020197D4 - _020197CC - 2; case 0
- .short _020198D6 - _020197CC - 2; case 1
- .short _02019AE6 - _020197CC - 2; case 2
- .short _02019D06 - _020197CC - 2; case 3
-_020197D4:
- ldr r0, [sp, #0x330]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x70]
- mov r0, #0x0
- str r0, [sp, #0x274]
- ldr r0, [sp, #0x4]
- cmp r0, #0x0
- bgt _020197EA
- bl FUN_0201A8BC
-_020197EA:
- ldr r0, [sp, #0x58]
- mov r1, #0x7
- and r1, r0
- add r0, r0, r1
- asr r0, r0, #0x3
- str r0, [sp, #0x6c]
-_020197F6:
- ldr r0, [sp, #0x0]
- ldr r1, [sp, #0x70]
- ldr r0, [r0, #0x0]
- ldr r2, [sp, #0x5c]
- str r0, [sp, #0x26c]
- ldr r0, [sp, #0x274]
- asr r1, r0
- mov r0, #0x1
- and r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x270]
- ldr r0, [sp, #0x8]
- mov r1, #0x0
- cmp r0, #0x0
- ble _020198AA
- ble _020198AA
- add r0, r2, #0x0
- lsl r3, r0, #0x2
- ldr r0, [sp, #0x48]
- ldr r6, [sp, #0x6c]
- lsl r5, r0, #0x2
- ldr r0, _02019B68 ; =0x00003FE0
- add r7, r5, #0x0
- and r0, r5
- mul r6, r0
- mov r0, #0x1c
- and r7, r0
- ldr r0, [sp, #0x48]
- str r6, [sp, #0x68]
- add r0, r0, #0x1
- lsl r6, r0, #0x2
- ldr r0, _02019B68 ; =0x00003FE0
- ldr r5, [sp, #0x6c]
- and r0, r6
- mul r5, r0
- mov r0, #0x1c
- and r0, r6
- add r4, r1, #0x0
- str r5, [sp, #0x64]
- str r0, [sp, #0x60]
-_02019848:
- asr r5, r2, #0x1
- mov r0, #0x3
- and r5, r0
- ldr r0, [sp, #0x278]
- add r0, r0, r5
- ldr r5, _02019B68 ; =0x00003FE0
- and r5, r3
- add r5, r0, r5
- ldr r0, [sp, #0x68]
- str r5, [sp, #0x27c]
- add r0, r5, r0
- ldr r5, [sp, #0x26c]
- add r6, r5, #0x0
- lsr r6, r4
- mov r5, #0xf
- and r5, r6
- lsl r5, r5, #0x18
- lsr r5, r5, #0x18
- beq _0201989C
- lsl r6, r2, #0x1f
- lsr r6, r6, #0x1d
- lsl r5, r6
- str r5, [sp, #0x280]
- ldrb r5, [r0, r7]
- str r5, [sp, #0x284]
- mov r5, #0xf0
- asr r5, r6
- ldr r6, [sp, #0x284]
- and r6, r5
- ldr r5, [sp, #0x280]
- orr r5, r6
- lsl r5, r5, #0x18
- lsr r5, r5, #0x18
- strb r5, [r0, r7]
- ldr r0, [sp, #0x270]
- cmp r0, #0x0
- beq _0201989C
- ldr r6, [sp, #0x27c]
- ldr r0, [sp, #0x64]
- add r6, r6, r0
- ldr r0, [sp, #0x60]
- strb r5, [r0, r6]
-_0201989C:
- ldr r0, [sp, #0x8]
- add r1, r1, #0x1
- add r4, r4, #0x4
- add r3, r3, #0x4
- add r2, r2, #0x1
- cmp r1, r0
- blt _02019848
-_020198AA:
- ldr r0, [sp, #0x270]
- cmp r0, #0x0
- beq _020198B8
- ldr r0, [sp, #0x48]
- add r0, r0, #0x2
- str r0, [sp, #0x48]
- b _020198BE
-_020198B8:
- ldr r0, [sp, #0x48]
- add r0, r0, #0x1
- str r0, [sp, #0x48]
-_020198BE:
- ldr r0, [sp, #0x0]
- add r0, r0, #0x4
- str r0, [sp, #0x0]
- ldr r0, [sp, #0x274]
- add r1, r0, #0x1
- ldr r0, [sp, #0x4]
- str r1, [sp, #0x274]
- cmp r1, r0
- blt _020197F6
- add sp, #0x1fc
- add sp, #0x118
- pop {r4-r7, pc}
-_020198D6:
- ldr r0, [sp, #0x0]
- str r0, [sp, #0x25c]
- ldr r0, [sp, #0x48]
- str r0, [sp, #0x264]
- ldr r0, [sp, #0x330]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x54]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x84]
- mov r0, #0x0
- str r0, [sp, #0x268]
- ldr r0, [sp, #0x4]
- cmp r0, #0x0
- ble _020199D2
- ldr r0, [sp, #0x58]
- mov r1, #0x7
- and r1, r0
- add r0, r0, r1
- asr r0, r0, #0x3
- str r0, [sp, #0x80]
-_02019902:
- ldr r0, [sp, #0x25c]
- ldr r1, [sp, #0x84]
- ldr r0, [r0, #0x0]
- ldr r2, [sp, #0x5c]
- str r0, [sp, #0x258]
- ldr r0, [sp, #0x268]
- ldr r6, [sp, #0x80]
- asr r1, r0
- mov r0, #0x1
- and r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x260]
- add r0, r2, #0x0
- lsl r3, r0, #0x2
- ldr r0, [sp, #0x264]
- mov r1, #0x0
- lsl r5, r0, #0x2
- ldr r0, _02019B68 ; =0x00003FE0
- add r7, r5, #0x0
- and r0, r5
- mul r6, r0
- mov r0, #0x1c
- and r7, r0
- ldr r0, [sp, #0x264]
- str r6, [sp, #0x7c]
- add r0, r0, #0x1
- lsl r6, r0, #0x2
- ldr r0, _02019B68 ; =0x00003FE0
- ldr r5, [sp, #0x80]
- and r0, r6
- mul r5, r0
- mov r0, #0x1c
- and r0, r6
- add r4, r1, #0x0
- str r5, [sp, #0x78]
- str r0, [sp, #0x74]
-_0201994C:
- asr r5, r2, #0x1
- mov r0, #0x3
- and r5, r0
- ldr r0, [sp, #0x278]
- add r0, r0, r5
- ldr r5, _02019B68 ; =0x00003FE0
- and r5, r3
- add r5, r0, r5
- ldr r0, [sp, #0x7c]
- str r5, [sp, #0x288]
- add r0, r5, r0
- ldr r5, [sp, #0x258]
- add r6, r5, #0x0
- lsr r6, r4
- mov r5, #0xf
- and r5, r6
- lsl r5, r5, #0x18
- lsr r5, r5, #0x18
- beq _020199A0
- lsl r6, r2, #0x1f
- lsr r6, r6, #0x1d
- lsl r5, r6
- str r5, [sp, #0x28c]
- ldrb r5, [r0, r7]
- str r5, [sp, #0x290]
- mov r5, #0xf0
- asr r5, r6
- ldr r6, [sp, #0x290]
- and r6, r5
- ldr r5, [sp, #0x28c]
- orr r5, r6
- lsl r5, r5, #0x18
- lsr r5, r5, #0x18
- strb r5, [r0, r7]
- ldr r0, [sp, #0x260]
- cmp r0, #0x0
- beq _020199A0
- ldr r6, [sp, #0x288]
- ldr r0, [sp, #0x78]
- add r6, r6, r0
- ldr r0, [sp, #0x74]
- strb r5, [r0, r6]
-_020199A0:
- add r1, r1, #0x1
- add r4, r4, #0x4
- add r3, r3, #0x4
- add r2, r2, #0x1
- cmp r1, #0x8
- blt _0201994C
- ldr r0, [sp, #0x260]
- cmp r0, #0x0
- beq _020199BA
- ldr r0, [sp, #0x264]
- add r0, r0, #0x2
- str r0, [sp, #0x264]
- b _020199C0
-_020199BA:
- ldr r0, [sp, #0x264]
- add r0, r0, #0x1
- str r0, [sp, #0x264]
-_020199C0:
- ldr r0, [sp, #0x25c]
- add r0, r0, #0x4
- str r0, [sp, #0x25c]
- ldr r0, [sp, #0x268]
- add r1, r0, #0x1
- ldr r0, [sp, #0x4]
- str r1, [sp, #0x268]
- cmp r1, r0
- blt _02019902
-_020199D2:
- ldr r0, [sp, #0x0]
- add r0, #0x20
- str r0, [sp, #0x0]
- ldr r0, [sp, #0x54]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x98]
- mov r0, #0x0
- str r0, [sp, #0x254]
- ldr r0, [sp, #0x4]
- cmp r0, #0x0
- bgt _020199EE
- bl FUN_0201A8BC
-_020199EE:
- ldr r0, [sp, #0x5c]
- mov r1, #0x7
- add r0, #0x8
- str r0, [sp, #0x5c]
- ldr r0, [sp, #0x58]
- and r1, r0
- add r0, r0, r1
- asr r0, r0, #0x3
- str r0, [sp, #0x94]
-_02019A00:
- ldr r0, [sp, #0x0]
- ldr r1, [sp, #0x98]
- ldr r0, [r0, #0x0]
- ldr r2, [sp, #0x5c]
- str r0, [sp, #0x24c]
- ldr r0, [sp, #0x254]
- asr r1, r0
- mov r0, #0x1
- and r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x250]
- ldr r0, [sp, #0x8]
- mov r1, #0x0
- str r0, [sp, #0x294]
- sub r0, #0x8
- str r0, [sp, #0x294]
- cmp r0, #0x0
- ble _02019ABA
- ble _02019ABA
- add r0, r2, #0x0
- lsl r3, r0, #0x2
- ldr r0, [sp, #0x48]
- ldr r6, [sp, #0x94]
- lsl r5, r0, #0x2
- ldr r0, _02019B68 ; =0x00003FE0
- add r7, r5, #0x0
- and r0, r5
- mul r6, r0
- mov r0, #0x1c
- and r7, r0
- ldr r0, [sp, #0x48]
- str r6, [sp, #0x90]
- add r0, r0, #0x1
- lsl r6, r0, #0x2
- ldr r0, _02019B68 ; =0x00003FE0
- ldr r5, [sp, #0x94]
- and r0, r6
- mul r5, r0
- mov r0, #0x1c
- and r0, r6
- add r4, r1, #0x0
- str r5, [sp, #0x8c]
- str r0, [sp, #0x88]
-_02019A58:
- asr r5, r2, #0x1
- mov r0, #0x3
- and r5, r0
- ldr r0, [sp, #0x278]
- add r0, r0, r5
- ldr r5, _02019B68 ; =0x00003FE0
- and r5, r3
- add r5, r0, r5
- ldr r0, [sp, #0x90]
- str r5, [sp, #0x298]
- add r0, r5, r0
- ldr r5, [sp, #0x24c]
- add r6, r5, #0x0
- lsr r6, r4
- mov r5, #0xf
- and r5, r6
- lsl r5, r5, #0x18
- lsr r5, r5, #0x18
- beq _02019AAC
- lsl r6, r2, #0x1f
- lsr r6, r6, #0x1d
- lsl r5, r6
- str r5, [sp, #0x29c]
- ldrb r5, [r0, r7]
- str r5, [sp, #0x2a0]
- mov r5, #0xf0
- asr r5, r6
- ldr r6, [sp, #0x2a0]
- and r6, r5
- ldr r5, [sp, #0x29c]
- orr r5, r6
- lsl r5, r5, #0x18
- lsr r5, r5, #0x18
- strb r5, [r0, r7]
- ldr r0, [sp, #0x250]
- cmp r0, #0x0
- beq _02019AAC
- ldr r6, [sp, #0x298]
- ldr r0, [sp, #0x8c]
- add r6, r6, r0
- ldr r0, [sp, #0x88]
- strb r5, [r0, r6]
-_02019AAC:
- ldr r0, [sp, #0x294]
- add r1, r1, #0x1
- add r4, r4, #0x4
- add r3, r3, #0x4
- add r2, r2, #0x1
- cmp r1, r0
- blt _02019A58
-_02019ABA:
- ldr r0, [sp, #0x250]
- cmp r0, #0x0
- beq _02019AC8
- ldr r0, [sp, #0x48]
- add r0, r0, #0x2
- str r0, [sp, #0x48]
- b _02019ACE
-_02019AC8:
- ldr r0, [sp, #0x48]
- add r0, r0, #0x1
- str r0, [sp, #0x48]
-_02019ACE:
- ldr r0, [sp, #0x0]
- add r0, r0, #0x4
- str r0, [sp, #0x0]
- ldr r0, [sp, #0x254]
- add r1, r0, #0x1
- ldr r0, [sp, #0x4]
- str r1, [sp, #0x254]
- cmp r1, r0
- blt _02019A00
- add sp, #0x1fc
- add sp, #0x118
- pop {r4-r7, pc}
-_02019AE6:
- ldr r0, [sp, #0x0]
- mov r1, #0x7
- str r0, [sp, #0x23c]
- ldr r0, [sp, #0x48]
- str r0, [sp, #0x244]
- mov r0, #0x0
- str r0, [sp, #0x248]
- ldr r0, [sp, #0x330]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0xa8]
- ldr r0, [sp, #0x58]
- and r1, r0
- add r0, r0, r1
- asr r0, r0, #0x3
- str r0, [sp, #0x40]
-_02019B06:
- ldr r0, [sp, #0x23c]
- ldr r1, [sp, #0xa8]
- ldr r0, [r0, #0x0]
- ldr r2, [sp, #0x5c]
- str r0, [sp, #0x238]
- ldr r0, [sp, #0x248]
- asr r1, r0
- mov r0, #0x1
- and r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x240]
- ldr r0, [sp, #0x8]
- mov r1, #0x0
- cmp r0, #0x0
- ble _02019BC2
- ble _02019BC2
- add r0, r2, #0x0
- lsl r3, r0, #0x2
- ldr r0, [sp, #0x244]
- ldr r6, [sp, #0x40]
- lsl r5, r0, #0x2
- ldr r0, _02019B68 ; =0x00003FE0
- add r7, r5, #0x0
- and r0, r5
- mul r6, r0
- mov r0, #0x1c
- and r7, r0
- ldr r0, [sp, #0x244]
- str r6, [sp, #0xa4]
- add r0, r0, #0x1
- lsl r6, r0, #0x2
- ldr r0, _02019B68 ; =0x00003FE0
- ldr r5, [sp, #0x40]
- and r0, r6
- mul r5, r0
- mov r0, #0x1c
- and r0, r6
- add r4, r1, #0x0
- str r5, [sp, #0xa0]
- str r0, [sp, #0x9c]
-_02019B58:
- asr r5, r2, #0x1
- mov r0, #0x3
- and r5, r0
- ldr r0, [sp, #0x278]
- add r0, r0, r5
- ldr r5, _02019B68 ; =0x00003FE0
- b _02019B6C
- nop
-_02019B68: .word 0x00003FE0
-_02019B6C:
- and r5, r3
- add r5, r0, r5
- ldr r0, [sp, #0xa4]
- str r5, [sp, #0x2a4]
- add r0, r5, r0
- ldr r5, [sp, #0x238]
- add r6, r5, #0x0
- lsr r6, r4
- mov r5, #0xf
- and r5, r6
- lsl r5, r5, #0x18
- lsr r5, r5, #0x18
- beq _02019BB4
- lsl r6, r2, #0x1f
- lsr r6, r6, #0x1d
- lsl r5, r6
- str r5, [sp, #0x2a8]
- ldrb r5, [r0, r7]
- str r5, [sp, #0x2ac]
- mov r5, #0xf0
- asr r5, r6
- ldr r6, [sp, #0x2ac]
- and r6, r5
- ldr r5, [sp, #0x2a8]
- orr r5, r6
- lsl r5, r5, #0x18
- lsr r5, r5, #0x18
- strb r5, [r0, r7]
- ldr r0, [sp, #0x240]
- cmp r0, #0x0
- beq _02019BB4
- ldr r6, [sp, #0x2a4]
- ldr r0, [sp, #0xa0]
- add r6, r6, r0
- ldr r0, [sp, #0x9c]
- strb r5, [r0, r6]
-_02019BB4:
- ldr r0, [sp, #0x8]
- add r1, r1, #0x1
- add r4, r4, #0x4
- add r3, r3, #0x4
- add r2, r2, #0x1
- cmp r1, r0
- blt _02019B58
-_02019BC2:
- ldr r0, [sp, #0x240]
- cmp r0, #0x0
- beq _02019BD0
- ldr r0, [sp, #0x244]
- add r0, r0, #0x2
- str r0, [sp, #0x244]
- b _02019BD6
-_02019BD0:
- ldr r0, [sp, #0x244]
- add r0, r0, #0x1
- str r0, [sp, #0x244]
-_02019BD6:
- ldr r0, [sp, #0x23c]
- add r0, r0, #0x4
- str r0, [sp, #0x23c]
- ldr r0, [sp, #0x248]
- add r0, r0, #0x1
- str r0, [sp, #0x248]
- cmp r0, #0x8
- blt _02019B06
- ldr r0, [sp, #0x0]
- mov r2, #0x0
- add r0, #0x40
- str r0, [sp, #0x0]
- ldr r0, [sp, #0x48]
- mov r1, #0x1
- add r0, #0x8
- str r0, [sp, #0x48]
-_02019BF6:
- ldr r0, [sp, #0x330]
- asr r0, r2
- tst r0, r1
- beq _02019C04
- ldr r0, [sp, #0x48]
- add r0, r0, #0x1
- str r0, [sp, #0x48]
-_02019C04:
- add r2, r2, #0x1
- cmp r2, #0x8
- blt _02019BF6
- ldr r0, [sp, #0x330]
- asr r0, r0, #0x8
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0xb8]
- mov r0, #0x0
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x4]
- sub r0, #0x8
- cmp r0, #0x0
- bgt _02019C24
- bl FUN_0201A8BC
-_02019C24:
- ldr r0, [sp, #0x0]
- ldr r1, [sp, #0xb8]
- ldr r0, [r0, #0x0]
- ldr r2, [sp, #0x5c]
- str r0, [sp, #0x230]
- ldr r0, [sp, #0x20]
- asr r1, r0
- mov r0, #0x1
- and r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x234]
- ldr r0, [sp, #0x8]
- mov r1, #0x0
- cmp r0, #0x0
- ble _02019CD8
- ble _02019CD8
- add r0, r2, #0x0
- lsl r3, r0, #0x2
- ldr r0, [sp, #0x48]
- ldr r6, [sp, #0x40]
- lsl r5, r0, #0x2
- ldr r0, _02019F88 ; =0x00003FE0
- add r7, r5, #0x0
- and r0, r5
- mul r6, r0
- mov r0, #0x1c
- and r7, r0
- ldr r0, [sp, #0x48]
- str r6, [sp, #0xb4]
- add r0, r0, #0x1
- lsl r6, r0, #0x2
- ldr r0, _02019F88 ; =0x00003FE0
- ldr r5, [sp, #0x40]
- and r0, r6
- mul r5, r0
- mov r0, #0x1c
- and r0, r6
- add r4, r1, #0x0
- str r5, [sp, #0xb0]
- str r0, [sp, #0xac]
-_02019C76:
- asr r5, r2, #0x1
- mov r0, #0x3
- and r5, r0
- ldr r0, [sp, #0x278]
- add r0, r0, r5
- ldr r5, _02019F88 ; =0x00003FE0
- and r5, r3
- add r5, r0, r5
- ldr r0, [sp, #0xb4]
- str r5, [sp, #0x2b0]
- add r0, r5, r0
- ldr r5, [sp, #0x230]
- add r6, r5, #0x0
- lsr r6, r4
- mov r5, #0xf
- and r5, r6
- lsl r5, r5, #0x18
- lsr r5, r5, #0x18
- beq _02019CCA
- lsl r6, r2, #0x1f
- lsr r6, r6, #0x1d
- lsl r5, r6
- str r5, [sp, #0x2b4]
- ldrb r5, [r0, r7]
- str r5, [sp, #0x2b8]
- mov r5, #0xf0
- asr r5, r6
- ldr r6, [sp, #0x2b8]
- and r6, r5
- ldr r5, [sp, #0x2b4]
- orr r5, r6
- lsl r5, r5, #0x18
- lsr r5, r5, #0x18
- strb r5, [r0, r7]
- ldr r0, [sp, #0x234]
- cmp r0, #0x0
- beq _02019CCA
- ldr r6, [sp, #0x2b0]
- ldr r0, [sp, #0xb0]
- add r6, r6, r0
- ldr r0, [sp, #0xac]
- strb r5, [r0, r6]
-_02019CCA:
- ldr r0, [sp, #0x8]
- add r1, r1, #0x1
- add r4, r4, #0x4
- add r3, r3, #0x4
- add r2, r2, #0x1
- cmp r1, r0
- blt _02019C76
-_02019CD8:
- ldr r0, [sp, #0x234]
- cmp r0, #0x0
- beq _02019CE6
- ldr r0, [sp, #0x48]
- add r0, r0, #0x2
- str r0, [sp, #0x48]
- b _02019CEC
-_02019CE6:
- ldr r0, [sp, #0x48]
- add r0, r0, #0x1
- str r0, [sp, #0x48]
-_02019CEC:
- ldr r0, [sp, #0x0]
- ldr r1, [sp, #0x4]
- add r0, r0, #0x4
- str r0, [sp, #0x0]
- ldr r0, [sp, #0x20]
- sub r1, #0x8
- add r0, r0, #0x1
- str r0, [sp, #0x20]
- cmp r0, r1
- blt _02019C24
- add sp, #0x1fc
- add sp, #0x118
- pop {r4-r7, pc}
-_02019D06:
- ldr r0, [sp, #0x0]
- str r0, [sp, #0x220]
- ldr r0, [sp, #0x48]
- str r0, [sp, #0x228]
- ldr r0, [sp, #0x330]
- lsl r0, r0, #0x18
- lsr r1, r0, #0x18
- mov r0, #0x0
- str r0, [sp, #0x22c]
- lsl r0, r1, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x3c]
- ldr r0, [sp, #0x58]
- mov r1, #0x7
- and r1, r0
- add r0, r0, r1
- asr r0, r0, #0x3
- str r0, [sp, #0x38]
-_02019D2A:
- ldr r0, [sp, #0x220]
- ldr r1, [sp, #0x3c]
- ldr r0, [r0, #0x0]
- ldr r2, [sp, #0x5c]
- str r0, [sp, #0x21c]
- ldr r0, [sp, #0x22c]
- ldr r6, [sp, #0x38]
- asr r1, r0
- mov r0, #0x1
- and r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x224]
- add r0, r2, #0x0
- lsl r3, r0, #0x2
- ldr r0, [sp, #0x228]
- mov r1, #0x0
- lsl r5, r0, #0x2
- ldr r0, _02019F88 ; =0x00003FE0
- add r7, r5, #0x0
- and r0, r5
- mul r6, r0
- mov r0, #0x1c
- and r7, r0
- ldr r0, [sp, #0x228]
- str r6, [sp, #0xc4]
- add r0, r0, #0x1
- lsl r6, r0, #0x2
- ldr r0, _02019F88 ; =0x00003FE0
- ldr r5, [sp, #0x38]
- and r0, r6
- mul r5, r0
- mov r0, #0x1c
- and r0, r6
- str r3, [sp, #0x34]
- add r4, r1, #0x0
- str r5, [sp, #0xc0]
- str r0, [sp, #0xbc]
-_02019D76:
- asr r5, r2, #0x1
- mov r0, #0x3
- and r5, r0
- ldr r0, [sp, #0x278]
- add r0, r0, r5
- ldr r5, _02019F88 ; =0x00003FE0
- and r5, r3
- add r5, r0, r5
- ldr r0, [sp, #0xc4]
- str r5, [sp, #0x2bc]
- add r0, r5, r0
- ldr r5, [sp, #0x21c]
- add r6, r5, #0x0
- lsr r6, r4
- mov r5, #0xf
- and r5, r6
- lsl r5, r5, #0x18
- lsr r5, r5, #0x18
- beq _02019DCA
- lsl r6, r2, #0x1f
- lsr r6, r6, #0x1d
- lsl r5, r6
- str r5, [sp, #0x2c0]
- ldrb r5, [r0, r7]
- str r5, [sp, #0x2c4]
- mov r5, #0xf0
- asr r5, r6
- ldr r6, [sp, #0x2c4]
- and r6, r5
- ldr r5, [sp, #0x2c0]
- orr r5, r6
- lsl r5, r5, #0x18
- lsr r5, r5, #0x18
- strb r5, [r0, r7]
- ldr r0, [sp, #0x224]
- cmp r0, #0x0
- beq _02019DCA
- ldr r6, [sp, #0x2bc]
- ldr r0, [sp, #0xc0]
- add r6, r6, r0
- ldr r0, [sp, #0xbc]
- strb r5, [r0, r6]
-_02019DCA:
- add r1, r1, #0x1
- add r4, r4, #0x4
- add r3, r3, #0x4
- add r2, r2, #0x1
- cmp r1, #0x8
- blt _02019D76
- ldr r0, [sp, #0x224]
- cmp r0, #0x0
- beq _02019DE4
- ldr r0, [sp, #0x228]
- add r0, r0, #0x2
- str r0, [sp, #0x228]
- b _02019DEA
-_02019DE4:
- ldr r0, [sp, #0x228]
- add r0, r0, #0x1
- str r0, [sp, #0x228]
-_02019DEA:
- ldr r0, [sp, #0x220]
- add r0, r0, #0x4
- str r0, [sp, #0x220]
- ldr r0, [sp, #0x22c]
- add r0, r0, #0x1
- str r0, [sp, #0x22c]
- cmp r0, #0x8
- blt _02019D2A
- ldr r0, [sp, #0x0]
- str r0, [sp, #0x20c]
- add r0, #0x20
- str r0, [sp, #0x20c]
- ldr r0, [sp, #0x48]
- str r0, [sp, #0x214]
- mov r0, #0x0
- str r0, [sp, #0x218]
- ldr r0, [sp, #0x5c]
- str r0, [sp, #0xd4]
- add r0, #0x8
- str r0, [sp, #0xd4]
-_02019E12:
- ldr r0, [sp, #0x20c]
- ldr r1, [sp, #0x3c]
- ldr r0, [r0, #0x0]
- ldr r2, [sp, #0xd4]
- str r0, [sp, #0x208]
- ldr r0, [sp, #0x218]
- asr r1, r0
- mov r0, #0x1
- and r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x210]
- ldr r0, [sp, #0x8]
- mov r1, #0x0
- str r0, [sp, #0x2c8]
- sub r0, #0x8
- str r0, [sp, #0x2c8]
- cmp r0, #0x0
- ble _02019ECC
- ble _02019ECC
- add r0, r2, #0x0
- lsl r3, r0, #0x2
- ldr r0, [sp, #0x214]
- ldr r6, [sp, #0x38]
- lsl r5, r0, #0x2
- ldr r0, _02019F88 ; =0x00003FE0
- add r7, r5, #0x0
- and r0, r5
- mul r6, r0
- mov r0, #0x1c
- and r7, r0
- ldr r0, [sp, #0x214]
- str r6, [sp, #0xd0]
- add r0, r0, #0x1
- lsl r6, r0, #0x2
- ldr r0, _02019F88 ; =0x00003FE0
- ldr r5, [sp, #0x38]
- and r0, r6
- mul r5, r0
- mov r0, #0x1c
- and r0, r6
- add r4, r1, #0x0
- str r5, [sp, #0xcc]
- str r0, [sp, #0xc8]
-_02019E6A:
- asr r5, r2, #0x1
- mov r0, #0x3
- and r5, r0
- ldr r0, [sp, #0x278]
- add r0, r0, r5
- ldr r5, _02019F88 ; =0x00003FE0
- and r5, r3
- add r5, r0, r5
- ldr r0, [sp, #0xd0]
- str r5, [sp, #0x2cc]
- add r0, r5, r0
- ldr r5, [sp, #0x208]
- add r6, r5, #0x0
- lsr r6, r4
- mov r5, #0xf
- and r5, r6
- lsl r5, r5, #0x18
- lsr r5, r5, #0x18
- beq _02019EBE
- lsl r6, r2, #0x1f
- lsr r6, r6, #0x1d
- lsl r5, r6
- str r5, [sp, #0x2d0]
- ldrb r5, [r0, r7]
- str r5, [sp, #0x2d4]
- mov r5, #0xf0
- asr r5, r6
- ldr r6, [sp, #0x2d4]
- and r6, r5
- ldr r5, [sp, #0x2d0]
- orr r5, r6
- lsl r5, r5, #0x18
- lsr r5, r5, #0x18
- strb r5, [r0, r7]
- ldr r0, [sp, #0x210]
- cmp r0, #0x0
- beq _02019EBE
- ldr r6, [sp, #0x2cc]
- ldr r0, [sp, #0xcc]
- add r6, r6, r0
- ldr r0, [sp, #0xc8]
- strb r5, [r0, r6]
-_02019EBE:
- ldr r0, [sp, #0x2c8]
- add r1, r1, #0x1
- add r4, r4, #0x4
- add r3, r3, #0x4
- add r2, r2, #0x1
- cmp r1, r0
- blt _02019E6A
-_02019ECC:
- ldr r0, [sp, #0x210]
- cmp r0, #0x0
- beq _02019EDA
- ldr r0, [sp, #0x214]
- add r0, r0, #0x2
- str r0, [sp, #0x214]
- b _02019EE0
-_02019EDA:
- ldr r0, [sp, #0x214]
- add r0, r0, #0x1
- str r0, [sp, #0x214]
-_02019EE0:
- ldr r0, [sp, #0x20c]
- add r0, r0, #0x4
- str r0, [sp, #0x20c]
- ldr r0, [sp, #0x218]
- add r0, r0, #0x1
- str r0, [sp, #0x218]
- cmp r0, #0x8
- blt _02019E12
- ldr r0, [sp, #0x0]
- mov r2, #0x0
- str r0, [sp, #0x1fc]
- add r0, #0x40
- str r0, [sp, #0x1fc]
- ldr r0, [sp, #0x48]
- mov r1, #0x1
- add r0, #0x8
- str r0, [sp, #0x48]
- str r0, [sp, #0x204]
-_02019F04:
- ldr r0, [sp, #0x330]
- asr r0, r2
- tst r0, r1
- beq _02019F12
- ldr r0, [sp, #0x204]
- add r0, r0, #0x1
- str r0, [sp, #0x204]
-_02019F12:
- add r2, r2, #0x1
- cmp r2, #0x8
- blt _02019F04
- ldr r0, [sp, #0x330]
- asr r0, r0, #0x8
- str r0, [sp, #0x50]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0xe4]
- mov r0, #0x0
- str r0, [sp, #0x1c]
- ldr r0, [sp, #0x4]
- sub r0, #0x8
- cmp r0, #0x0
- ble _0201A008
-_02019F30:
- ldr r0, [sp, #0x1fc]
- ldr r1, [sp, #0xe4]
- ldr r0, [r0, #0x0]
- ldr r6, [sp, #0x38]
- str r0, [sp, #0x1f8]
- ldr r0, [sp, #0x1c]
- ldr r2, [sp, #0x5c]
- asr r1, r0
- mov r0, #0x1
- and r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x200]
- ldr r0, [sp, #0x204]
- mov r1, #0x0
- lsl r5, r0, #0x2
- ldr r0, _02019F88 ; =0x00003FE0
- add r7, r5, #0x0
- and r0, r5
- mul r6, r0
- mov r0, #0x1c
- and r7, r0
- ldr r0, [sp, #0x204]
- str r6, [sp, #0xe0]
- add r0, r0, #0x1
- lsl r6, r0, #0x2
- ldr r0, _02019F88 ; =0x00003FE0
- ldr r5, [sp, #0x38]
- and r0, r6
- mul r5, r0
- mov r0, #0x1c
- and r0, r6
- ldr r3, [sp, #0x34]
- add r4, r1, #0x0
- str r5, [sp, #0xdc]
- str r0, [sp, #0xd8]
-_02019F78:
- asr r5, r2, #0x1
- mov r0, #0x3
- and r5, r0
- ldr r0, [sp, #0x278]
- add r0, r0, r5
- ldr r5, _02019F88 ; =0x00003FE0
- b _02019F8C
- nop
-_02019F88: .word 0x00003FE0
-_02019F8C:
- and r5, r3
- add r5, r0, r5
- ldr r0, [sp, #0xe0]
- str r5, [sp, #0x2d8]
- add r0, r5, r0
- ldr r5, [sp, #0x1f8]
- add r6, r5, #0x0
- lsr r6, r4
- mov r5, #0xf
- and r5, r6
- lsl r5, r5, #0x18
- lsr r5, r5, #0x18
- beq _02019FD4
- lsl r6, r2, #0x1f
- lsr r6, r6, #0x1d
- lsl r5, r6
- str r5, [sp, #0x2dc]
- ldrb r5, [r0, r7]
- str r5, [sp, #0x2e0]
- mov r5, #0xf0
- asr r5, r6
- ldr r6, [sp, #0x2e0]
- and r6, r5
- ldr r5, [sp, #0x2dc]
- orr r5, r6
- lsl r5, r5, #0x18
- lsr r5, r5, #0x18
- strb r5, [r0, r7]
- ldr r0, [sp, #0x200]
- cmp r0, #0x0
- beq _02019FD4
- ldr r6, [sp, #0x2d8]
- ldr r0, [sp, #0xdc]
- add r6, r6, r0
- ldr r0, [sp, #0xd8]
- strb r5, [r0, r6]
-_02019FD4:
- add r1, r1, #0x1
- add r4, r4, #0x4
- add r3, r3, #0x4
- add r2, r2, #0x1
- cmp r1, #0x8
- blt _02019F78
- ldr r0, [sp, #0x200]
- cmp r0, #0x0
- beq _02019FEE
- ldr r0, [sp, #0x204]
- add r0, r0, #0x2
- str r0, [sp, #0x204]
- b _02019FF4
-_02019FEE:
- ldr r0, [sp, #0x204]
- add r0, r0, #0x1
- str r0, [sp, #0x204]
-_02019FF4:
- ldr r0, [sp, #0x1fc]
- ldr r1, [sp, #0x4]
- add r0, r0, #0x4
- str r0, [sp, #0x1fc]
- ldr r0, [sp, #0x1c]
- sub r1, #0x8
- add r0, r0, #0x1
- str r0, [sp, #0x1c]
- cmp r0, r1
- blt _02019F30
-_0201A008:
- ldr r0, [sp, #0x0]
- mov r2, #0x0
- add r0, #0x60
- str r0, [sp, #0x0]
- mov r1, #0x1
-_0201A012:
- ldr r0, [sp, #0x330]
- asr r0, r2
- tst r0, r1
- beq _0201A020
- ldr r0, [sp, #0x48]
- add r0, r0, #0x1
- str r0, [sp, #0x48]
-_0201A020:
- add r2, r2, #0x1
- cmp r2, #0x8
- blt _0201A012
- ldr r0, [sp, #0x50]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0xf4]
- mov r0, #0x0
- str r0, [sp, #0x18]
- ldr r0, [sp, #0x4]
- sub r0, #0x8
- cmp r0, #0x0
- bgt _0201A03E
- bl FUN_0201A8BC
-_0201A03E:
- ldr r0, [sp, #0x5c]
- add r0, #0x8
- str r0, [sp, #0x5c]
-_0201A044:
- ldr r0, [sp, #0x0]
- ldr r1, [sp, #0xf4]
- ldr r0, [r0, #0x0]
- ldr r2, [sp, #0x5c]
- str r0, [sp, #0x1f0]
- ldr r0, [sp, #0x18]
- asr r1, r0
- mov r0, #0x1
- and r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x1f4]
- ldr r0, [sp, #0x8]
- mov r1, #0x0
- str r0, [sp, #0x2e4]
- sub r0, #0x8
- str r0, [sp, #0x2e4]
- cmp r0, #0x0
- ble _0201A0FE
- ble _0201A0FE
- add r0, r2, #0x0
- lsl r3, r0, #0x2
- ldr r0, [sp, #0x48]
- ldr r6, [sp, #0x38]
- lsl r5, r0, #0x2
- ldr r0, _0201A3A8 ; =0x00003FE0
- add r7, r5, #0x0
- and r0, r5
- mul r6, r0
- mov r0, #0x1c
- and r7, r0
- ldr r0, [sp, #0x48]
- str r6, [sp, #0xf0]
- add r0, r0, #0x1
- lsl r6, r0, #0x2
- ldr r0, _0201A3A8 ; =0x00003FE0
- ldr r5, [sp, #0x38]
- and r0, r6
- mul r5, r0
- mov r0, #0x1c
- and r0, r6
- add r4, r1, #0x0
- str r5, [sp, #0xec]
- str r0, [sp, #0xe8]
-_0201A09C:
- asr r5, r2, #0x1
- mov r0, #0x3
- and r5, r0
- ldr r0, [sp, #0x278]
- add r0, r0, r5
- ldr r5, _0201A3A8 ; =0x00003FE0
- and r5, r3
- add r5, r0, r5
- ldr r0, [sp, #0xf0]
- str r5, [sp, #0x2e8]
- add r0, r5, r0
- ldr r5, [sp, #0x1f0]
- add r6, r5, #0x0
- lsr r6, r4
- mov r5, #0xf
- and r5, r6
- lsl r5, r5, #0x18
- lsr r5, r5, #0x18
- beq _0201A0F0
- lsl r6, r2, #0x1f
- lsr r6, r6, #0x1d
- lsl r5, r6
- str r5, [sp, #0x2ec]
- ldrb r5, [r0, r7]
- mov r12, r5
- mov r5, #0xf0
- asr r5, r6
- mov r6, r12
- and r6, r5
- ldr r5, [sp, #0x2ec]
- orr r5, r6
- lsl r5, r5, #0x18
- lsr r5, r5, #0x18
- strb r5, [r0, r7]
- ldr r0, [sp, #0x1f4]
- cmp r0, #0x0
- beq _0201A0F0
- ldr r6, [sp, #0x2e8]
- ldr r0, [sp, #0xec]
- add r6, r6, r0
- ldr r0, [sp, #0xe8]
- strb r5, [r0, r6]
-_0201A0F0:
- ldr r0, [sp, #0x2e4]
- add r1, r1, #0x1
- add r4, r4, #0x4
- add r3, r3, #0x4
- add r2, r2, #0x1
- cmp r1, r0
- blt _0201A09C
-_0201A0FE:
- ldr r0, [sp, #0x1f4]
- cmp r0, #0x0
- beq _0201A10C
- ldr r0, [sp, #0x48]
- add r0, r0, #0x2
- str r0, [sp, #0x48]
- b _0201A112
-_0201A10C:
- ldr r0, [sp, #0x48]
- add r0, r0, #0x1
- str r0, [sp, #0x48]
-_0201A112:
- ldr r0, [sp, #0x0]
- ldr r1, [sp, #0x4]
- add r0, r0, #0x4
- str r0, [sp, #0x0]
- ldr r0, [sp, #0x18]
- sub r1, #0x8
- add r0, r0, #0x1
- str r0, [sp, #0x18]
- cmp r0, r1
- blt _0201A044
- add sp, #0x1fc
- add sp, #0x118
- pop {r4-r7, pc}
-
- thumb_func_start FUN_0201A12C
-FUN_0201A12C: ; 0x0201A12C
- lsl r1, r2, #0x2
- mul r1, r3
- ldr r3, [r5, #0x0]
- ldrb r2, [r5, #0x9]
- ldr r0, [sp, #0x0]
- ldr r3, [r3, #0x0]
- lsl r1, r1, #0x3
- bl FUN_02018848
- str r0, [sp, #0x1ec]
- cmp r4, #0x3
- bhi _0201A21E
- add r0, r4, r4
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0201A150: ; jump table (using 16-bit offset)
- .short _0201A158 - _0201A150 - 2; case 0
- .short _0201A220 - _0201A150 - 2; case 1
- .short _0201A3CA - _0201A150 - 2; case 2
- .short _0201A56E - _0201A150 - 2; case 3
-_0201A158:
- ldr r0, [sp, #0x330]
- ldr r7, [sp, #0x1ec]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x10c]
- mov r0, #0x0
- str r0, [sp, #0x1e8]
- ldr r0, [sp, #0x4]
- cmp r0, #0x0
- ble _0201A21E
- ldr r0, [sp, #0x58]
- mov r1, #0x7
- and r1, r0
- add r0, r0, r1
- asr r0, r0, #0x3
- str r0, [sp, #0x108]
-_0201A178:
- ldr r1, [sp, #0x10c]
- ldr r0, [sp, #0x1e8]
- mov r4, #0x0
- asr r1, r0
- mov r0, #0x1
- and r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x310]
- ldr r0, [sp, #0x8]
- ldr r5, [sp, #0x5c]
- cmp r0, #0x0
- ble _0201A1FC
- ble _0201A1FC
- add r0, r5, #0x0
- lsl r6, r0, #0x3
- ldr r0, [sp, #0x48]
- ldr r2, [sp, #0x108]
- lsl r1, r0, #0x3
- ldr r0, _0201A3AC ; =0x00007FC0
- mov r3, #0x38
- and r0, r1
- mul r2, r0
- add r0, r1, #0x0
- and r0, r3
- str r0, [sp, #0x100]
- ldr r0, [sp, #0x48]
- str r2, [sp, #0x104]
- add r0, r0, #0x1
- lsl r1, r0, #0x3
- ldr r0, _0201A3AC ; =0x00007FC0
- ldr r2, [sp, #0x108]
- and r0, r1
- mul r2, r0
- add r0, r1, #0x0
- and r0, r3
- str r2, [sp, #0xfc]
- str r0, [sp, #0xf8]
-_0201A1C4:
- mov r0, #0x7
- add r1, r5, #0x0
- and r1, r0
- ldr r0, [sp, #0x278]
- add r1, r0, r1
- ldr r0, _0201A3AC ; =0x00007FC0
- and r0, r6
- add r3, r1, r0
- ldr r0, [sp, #0x104]
- ldrb r1, [r7, r4]
- add r2, r3, r0
- cmp r1, #0x0
- beq _0201A1F0
- ldr r0, [sp, #0x100]
- strb r1, [r2, r0]
- ldr r0, [sp, #0x310]
- cmp r0, #0x0
- beq _0201A1F0
- ldr r0, [sp, #0xfc]
- add r2, r3, r0
- ldr r0, [sp, #0xf8]
- strb r1, [r0, r2]
-_0201A1F0:
- ldr r0, [sp, #0x8]
- add r4, r4, #0x1
- add r6, #0x8
- add r5, r5, #0x1
- cmp r4, r0
- blt _0201A1C4
-_0201A1FC:
- ldr r0, [sp, #0x310]
- cmp r0, #0x0
- beq _0201A20A
- ldr r0, [sp, #0x48]
- add r0, r0, #0x2
- str r0, [sp, #0x48]
- b _0201A210
-_0201A20A:
- ldr r0, [sp, #0x48]
- add r0, r0, #0x1
- str r0, [sp, #0x48]
-_0201A210:
- ldr r0, [sp, #0x1e8]
- add r7, #0x8
- add r1, r0, #0x1
- ldr r0, [sp, #0x4]
- str r1, [sp, #0x1e8]
- cmp r1, r0
- blt _0201A178
-_0201A21E:
- b _0201A8B6
-_0201A220:
- ldr r0, [sp, #0x48]
- ldr r7, [sp, #0x1ec]
- str r0, [sp, #0x1e0]
- ldr r0, [sp, #0x330]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x4c]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x124]
- mov r0, #0x0
- str r0, [sp, #0x1e4]
- ldr r0, [sp, #0x4]
- cmp r0, #0x0
- ble _0201A2E6
- ldr r0, [sp, #0x58]
- mov r1, #0x7
- and r1, r0
- add r0, r0, r1
- asr r0, r0, #0x3
- str r0, [sp, #0x120]
-_0201A24A:
- ldr r1, [sp, #0x124]
- ldr r0, [sp, #0x1e4]
- ldr r5, [sp, #0x5c]
- asr r1, r0
- mov r0, #0x1
- and r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x30c]
- add r0, r5, #0x0
- lsl r6, r0, #0x3
- ldr r0, [sp, #0x1e0]
- ldr r2, [sp, #0x120]
- lsl r1, r0, #0x3
- ldr r0, _0201A3AC ; =0x00007FC0
- mov r3, #0x38
- and r0, r1
- mul r2, r0
- add r0, r1, #0x0
- and r0, r3
- str r0, [sp, #0x118]
- ldr r0, [sp, #0x1e0]
- str r2, [sp, #0x11c]
- add r0, r0, #0x1
- lsl r1, r0, #0x3
- ldr r0, _0201A3AC ; =0x00007FC0
- ldr r2, [sp, #0x120]
- and r0, r1
- mul r2, r0
- add r0, r1, #0x0
- and r0, r3
- mov r4, #0x0
- str r2, [sp, #0x114]
- str r0, [sp, #0x110]
-_0201A28E:
- mov r0, #0x7
- add r1, r5, #0x0
- and r1, r0
- ldr r0, [sp, #0x278]
- add r1, r0, r1
- ldr r0, _0201A3AC ; =0x00007FC0
- and r0, r6
- add r3, r1, r0
- ldr r0, [sp, #0x11c]
- ldrb r1, [r7, r4]
- add r2, r3, r0
- cmp r1, #0x0
- beq _0201A2BA
- ldr r0, [sp, #0x118]
- strb r1, [r2, r0]
- ldr r0, [sp, #0x30c]
- cmp r0, #0x0
- beq _0201A2BA
- ldr r0, [sp, #0x114]
- add r2, r3, r0
- ldr r0, [sp, #0x110]
- strb r1, [r0, r2]
-_0201A2BA:
- add r4, r4, #0x1
- add r6, #0x8
- add r5, r5, #0x1
- cmp r4, #0x8
- blt _0201A28E
- ldr r0, [sp, #0x30c]
- cmp r0, #0x0
- beq _0201A2D2
- ldr r0, [sp, #0x1e0]
- add r0, r0, #0x2
- str r0, [sp, #0x1e0]
- b _0201A2D8
-_0201A2D2:
- ldr r0, [sp, #0x1e0]
- add r0, r0, #0x1
- str r0, [sp, #0x1e0]
-_0201A2D8:
- ldr r0, [sp, #0x1e4]
- add r7, #0x8
- add r1, r0, #0x1
- ldr r0, [sp, #0x4]
- str r1, [sp, #0x1e4]
- cmp r1, r0
- blt _0201A24A
-_0201A2E6:
- ldr r0, [sp, #0x1ec]
- str r0, [sp, #0x308]
- add r0, #0x40
- str r0, [sp, #0x308]
- ldr r0, [sp, #0x4c]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x13c]
- mov r0, #0x0
- str r0, [sp, #0x1dc]
- ldr r0, [sp, #0x4]
- cmp r0, #0x0
- ble _0201A3C8
- ldr r0, [sp, #0x5c]
- mov r1, #0x7
- add r0, #0x8
- str r0, [sp, #0x5c]
- ldr r0, [sp, #0x58]
- and r1, r0
- add r0, r0, r1
- asr r0, r0, #0x3
- str r0, [sp, #0x138]
-_0201A312:
- ldr r1, [sp, #0x13c]
- ldr r0, [sp, #0x1dc]
- ldr r7, [sp, #0x8]
- asr r1, r0
- mov r0, #0x1
- and r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- sub r7, #0x8
- mov r4, #0x0
- str r0, [sp, #0x1d8]
- ldr r5, [sp, #0x5c]
- cmp r7, #0x0
- ble _0201A398
- ble _0201A398
- add r0, r5, #0x0
- lsl r6, r0, #0x3
- ldr r0, [sp, #0x48]
- ldr r2, [sp, #0x138]
- lsl r1, r0, #0x3
- ldr r0, _0201A3AC ; =0x00007FC0
- mov r3, #0x38
- and r0, r1
- mul r2, r0
- add r0, r1, #0x0
- and r0, r3
- str r0, [sp, #0x130]
- ldr r0, [sp, #0x48]
- str r2, [sp, #0x134]
- add r0, r0, #0x1
- lsl r1, r0, #0x3
- ldr r0, _0201A3AC ; =0x00007FC0
- ldr r2, [sp, #0x138]
- and r0, r1
- mul r2, r0
- add r0, r1, #0x0
- and r0, r3
- str r2, [sp, #0x12c]
- str r0, [sp, #0x128]
-_0201A360:
- mov r0, #0x7
- add r1, r5, #0x0
- and r1, r0
- ldr r0, [sp, #0x278]
- add r1, r0, r1
- ldr r0, _0201A3AC ; =0x00007FC0
- and r0, r6
- add r3, r1, r0
- ldr r0, [sp, #0x134]
- add r2, r3, r0
- ldr r0, [sp, #0x308]
- ldrb r1, [r0, r4]
- cmp r1, #0x0
- beq _0201A38E
- ldr r0, [sp, #0x130]
- strb r1, [r2, r0]
- ldr r0, [sp, #0x1d8]
- cmp r0, #0x0
- beq _0201A38E
- ldr r0, [sp, #0x12c]
- add r2, r3, r0
- ldr r0, [sp, #0x128]
- strb r1, [r0, r2]
-_0201A38E:
- add r4, r4, #0x1
- add r6, #0x8
- add r5, r5, #0x1
- cmp r4, r7
- blt _0201A360
-_0201A398:
- ldr r0, [sp, #0x1d8]
- cmp r0, #0x0
- beq _0201A3B0
- ldr r0, [sp, #0x48]
- add r0, r0, #0x2
- str r0, [sp, #0x48]
- b _0201A3B6
- nop
-_0201A3A8: .word 0x00003FE0
-_0201A3AC: .word 0x00007FC0
-_0201A3B0:
- ldr r0, [sp, #0x48]
- add r0, r0, #0x1
- str r0, [sp, #0x48]
-_0201A3B6:
- ldr r0, [sp, #0x308]
- add r0, #0x8
- str r0, [sp, #0x308]
- ldr r0, [sp, #0x1dc]
- add r1, r0, #0x1
- ldr r0, [sp, #0x4]
- str r1, [sp, #0x1dc]
- cmp r1, r0
- blt _0201A312
-_0201A3C8:
- b _0201A8B6
-_0201A3CA:
- ldr r0, [sp, #0x48]
- mov r1, #0x7
- str r0, [sp, #0x1d0]
- mov r0, #0x0
- str r0, [sp, #0x1d4]
- ldr r0, [sp, #0x330]
- ldr r7, [sp, #0x1ec]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x150]
- ldr r0, [sp, #0x58]
- and r1, r0
- add r0, r0, r1
- asr r0, r0, #0x3
- str r0, [sp, #0x30]
-_0201A3E8:
- ldr r1, [sp, #0x150]
- ldr r0, [sp, #0x1d4]
- mov r4, #0x0
- asr r1, r0
- mov r0, #0x1
- and r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x304]
- ldr r0, [sp, #0x8]
- ldr r5, [sp, #0x5c]
- cmp r0, #0x0
- ble _0201A46C
- ble _0201A46C
- add r0, r5, #0x0
- lsl r6, r0, #0x3
- ldr r0, [sp, #0x1d0]
- ldr r2, [sp, #0x30]
- lsl r1, r0, #0x3
- ldr r0, _0201A748 ; =0x00007FC0
- mov r3, #0x38
- and r0, r1
- mul r2, r0
- add r0, r1, #0x0
- and r0, r3
- str r0, [sp, #0x148]
- ldr r0, [sp, #0x1d0]
- str r2, [sp, #0x14c]
- add r0, r0, #0x1
- lsl r1, r0, #0x3
- ldr r0, _0201A748 ; =0x00007FC0
- ldr r2, [sp, #0x30]
- and r0, r1
- mul r2, r0
- add r0, r1, #0x0
- and r0, r3
- str r2, [sp, #0x144]
- str r0, [sp, #0x140]
-_0201A434:
- mov r0, #0x7
- add r1, r5, #0x0
- and r1, r0
- ldr r0, [sp, #0x278]
- add r1, r0, r1
- ldr r0, _0201A748 ; =0x00007FC0
- and r0, r6
- add r3, r1, r0
- ldr r0, [sp, #0x14c]
- ldrb r1, [r7, r4]
- add r2, r3, r0
- cmp r1, #0x0
- beq _0201A460
- ldr r0, [sp, #0x148]
- strb r1, [r2, r0]
- ldr r0, [sp, #0x304]
- cmp r0, #0x0
- beq _0201A460
- ldr r0, [sp, #0x144]
- add r2, r3, r0
- ldr r0, [sp, #0x140]
- strb r1, [r0, r2]
-_0201A460:
- ldr r0, [sp, #0x8]
- add r4, r4, #0x1
- add r6, #0x8
- add r5, r5, #0x1
- cmp r4, r0
- blt _0201A434
-_0201A46C:
- ldr r0, [sp, #0x304]
- cmp r0, #0x0
- beq _0201A47A
- ldr r0, [sp, #0x1d0]
- add r0, r0, #0x2
- str r0, [sp, #0x1d0]
- b _0201A480
-_0201A47A:
- ldr r0, [sp, #0x1d0]
- add r0, r0, #0x1
- str r0, [sp, #0x1d0]
-_0201A480:
- ldr r0, [sp, #0x1d4]
- add r7, #0x8
- add r0, r0, #0x1
- str r0, [sp, #0x1d4]
- cmp r0, #0x8
- blt _0201A3E8
- ldr r0, [sp, #0x48]
- ldr r7, [sp, #0x1ec]
- add r0, #0x8
- str r0, [sp, #0x48]
- add r7, #0x80
- mov r0, #0x0
- mov r2, #0x1
-_0201A49A:
- ldr r1, [sp, #0x330]
- asr r1, r0
- tst r1, r2
- beq _0201A4A8
- ldr r1, [sp, #0x48]
- add r1, r1, #0x1
- str r1, [sp, #0x48]
-_0201A4A8:
- add r0, r0, #0x1
- cmp r0, #0x8
- blt _0201A49A
- ldr r0, [sp, #0x330]
- asr r0, r0, #0x8
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x164]
- mov r0, #0x0
- str r0, [sp, #0x14]
- ldr r0, [sp, #0x4]
- sub r0, #0x8
- cmp r0, #0x0
- ble _0201A56C
-_0201A4C4:
- ldr r1, [sp, #0x164]
- ldr r0, [sp, #0x14]
- mov r4, #0x0
- asr r1, r0
- mov r0, #0x1
- and r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x300]
- ldr r0, [sp, #0x8]
- ldr r5, [sp, #0x5c]
- cmp r0, #0x0
- ble _0201A548
- ble _0201A548
- add r0, r5, #0x0
- lsl r6, r0, #0x3
- ldr r0, [sp, #0x48]
- ldr r2, [sp, #0x30]
- lsl r1, r0, #0x3
- ldr r0, _0201A748 ; =0x00007FC0
- mov r3, #0x38
- and r0, r1
- mul r2, r0
- add r0, r1, #0x0
- and r0, r3
- str r0, [sp, #0x15c]
- ldr r0, [sp, #0x48]
- str r2, [sp, #0x160]
- add r0, r0, #0x1
- lsl r1, r0, #0x3
- ldr r0, _0201A748 ; =0x00007FC0
- ldr r2, [sp, #0x30]
- and r0, r1
- mul r2, r0
- add r0, r1, #0x0
- and r0, r3
- str r2, [sp, #0x158]
- str r0, [sp, #0x154]
-_0201A510:
- mov r0, #0x7
- add r1, r5, #0x0
- and r1, r0
- ldr r0, [sp, #0x278]
- add r1, r0, r1
- ldr r0, _0201A748 ; =0x00007FC0
- and r0, r6
- add r3, r1, r0
- ldr r0, [sp, #0x160]
- ldrb r1, [r7, r4]
- add r2, r3, r0
- cmp r1, #0x0
- beq _0201A53C
- ldr r0, [sp, #0x15c]
- strb r1, [r2, r0]
- ldr r0, [sp, #0x300]
- cmp r0, #0x0
- beq _0201A53C
- ldr r0, [sp, #0x158]
- add r2, r3, r0
- ldr r0, [sp, #0x154]
- strb r1, [r0, r2]
-_0201A53C:
- ldr r0, [sp, #0x8]
- add r4, r4, #0x1
- add r6, #0x8
- add r5, r5, #0x1
- cmp r4, r0
- blt _0201A510
-_0201A548:
- ldr r0, [sp, #0x300]
- cmp r0, #0x0
- beq _0201A556
- ldr r0, [sp, #0x48]
- add r0, r0, #0x2
- str r0, [sp, #0x48]
- b _0201A55C
-_0201A556:
- ldr r0, [sp, #0x48]
- add r0, r0, #0x1
- str r0, [sp, #0x48]
-_0201A55C:
- ldr r0, [sp, #0x14]
- ldr r1, [sp, #0x4]
- add r0, r0, #0x1
- sub r1, #0x8
- add r7, #0x8
- str r0, [sp, #0x14]
- cmp r0, r1
- blt _0201A4C4
-_0201A56C:
- b _0201A8B6
-_0201A56E:
- ldr r0, [sp, #0x48]
- ldr r7, [sp, #0x1ec]
- str r0, [sp, #0x1c8]
- ldr r0, [sp, #0x330]
- lsl r0, r0, #0x18
- lsr r1, r0, #0x18
- mov r0, #0x0
- str r0, [sp, #0x1cc]
- lsl r0, r1, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x2c]
- ldr r0, [sp, #0x58]
- mov r1, #0x7
- and r1, r0
- add r0, r0, r1
- asr r0, r0, #0x3
- str r0, [sp, #0x28]
-_0201A590:
- ldr r1, [sp, #0x2c]
- ldr r0, [sp, #0x1cc]
- ldr r5, [sp, #0x5c]
- asr r1, r0
- mov r0, #0x1
- and r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x2fc]
- add r0, r5, #0x0
- lsl r6, r0, #0x3
- ldr r0, [sp, #0x1c8]
- ldr r2, [sp, #0x28]
- lsl r1, r0, #0x3
- ldr r0, _0201A748 ; =0x00007FC0
- mov r3, #0x38
- and r0, r1
- mul r2, r0
- add r0, r1, #0x0
- and r0, r3
- str r0, [sp, #0x170]
- ldr r0, [sp, #0x1c8]
- str r2, [sp, #0x174]
- add r0, r0, #0x1
- lsl r1, r0, #0x3
- ldr r0, _0201A748 ; =0x00007FC0
- ldr r2, [sp, #0x28]
- and r0, r1
- mul r2, r0
- add r0, r1, #0x0
- and r0, r3
- mov r4, #0x0
- str r6, [sp, #0x24]
- str r2, [sp, #0x16c]
- str r0, [sp, #0x168]
-_0201A5D6:
- mov r0, #0x7
- add r1, r5, #0x0
- and r1, r0
- ldr r0, [sp, #0x278]
- add r1, r0, r1
- ldr r0, _0201A748 ; =0x00007FC0
- and r0, r6
- add r3, r1, r0
- ldr r0, [sp, #0x174]
- ldrb r1, [r7, r4]
- add r2, r3, r0
- cmp r1, #0x0
- beq _0201A602
- ldr r0, [sp, #0x170]
- strb r1, [r2, r0]
- ldr r0, [sp, #0x2fc]
- cmp r0, #0x0
- beq _0201A602
- ldr r0, [sp, #0x16c]
- add r2, r3, r0
- ldr r0, [sp, #0x168]
- strb r1, [r0, r2]
-_0201A602:
- add r4, r4, #0x1
- add r6, #0x8
- add r5, r5, #0x1
- cmp r4, #0x8
- blt _0201A5D6
- ldr r0, [sp, #0x2fc]
- cmp r0, #0x0
- beq _0201A61A
- ldr r0, [sp, #0x1c8]
- add r0, r0, #0x2
- str r0, [sp, #0x1c8]
- b _0201A620
-_0201A61A:
- ldr r0, [sp, #0x1c8]
- add r0, r0, #0x1
- str r0, [sp, #0x1c8]
-_0201A620:
- ldr r0, [sp, #0x1cc]
- add r7, #0x8
- add r0, r0, #0x1
- str r0, [sp, #0x1cc]
- cmp r0, #0x8
- blt _0201A590
- ldr r0, [sp, #0x1ec]
- str r0, [sp, #0x2f8]
- add r0, #0x40
- str r0, [sp, #0x2f8]
- ldr r0, [sp, #0x48]
- str r0, [sp, #0x1c0]
- mov r0, #0x0
- str r0, [sp, #0x1c4]
- ldr r0, [sp, #0x5c]
- str r0, [sp, #0x188]
- add r0, #0x8
- str r0, [sp, #0x188]
-_0201A644:
- ldr r1, [sp, #0x2c]
- ldr r0, [sp, #0x1c4]
- ldr r7, [sp, #0x8]
- asr r1, r0
- mov r0, #0x1
- and r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- sub r7, #0x8
- mov r4, #0x0
- str r0, [sp, #0x1bc]
- ldr r5, [sp, #0x188]
- cmp r7, #0x0
- ble _0201A6CA
- ble _0201A6CA
- add r0, r5, #0x0
- lsl r6, r0, #0x3
- ldr r0, [sp, #0x1c0]
- ldr r2, [sp, #0x28]
- lsl r1, r0, #0x3
- ldr r0, _0201A748 ; =0x00007FC0
- mov r3, #0x38
- and r0, r1
- mul r2, r0
- add r0, r1, #0x0
- and r0, r3
- str r0, [sp, #0x180]
- ldr r0, [sp, #0x1c0]
- str r2, [sp, #0x184]
- add r0, r0, #0x1
- lsl r1, r0, #0x3
- ldr r0, _0201A748 ; =0x00007FC0
- ldr r2, [sp, #0x28]
- and r0, r1
- mul r2, r0
- add r0, r1, #0x0
- and r0, r3
- str r2, [sp, #0x17c]
- str r0, [sp, #0x178]
-_0201A692:
- mov r0, #0x7
- add r1, r5, #0x0
- and r1, r0
- ldr r0, [sp, #0x278]
- add r1, r0, r1
- ldr r0, _0201A748 ; =0x00007FC0
- and r0, r6
- add r3, r1, r0
- ldr r0, [sp, #0x184]
- add r2, r3, r0
- ldr r0, [sp, #0x2f8]
- ldrb r1, [r0, r4]
- cmp r1, #0x0
- beq _0201A6C0
- ldr r0, [sp, #0x180]
- strb r1, [r2, r0]
- ldr r0, [sp, #0x1bc]
- cmp r0, #0x0
- beq _0201A6C0
- ldr r0, [sp, #0x17c]
- add r2, r3, r0
- ldr r0, [sp, #0x178]
- strb r1, [r0, r2]
-_0201A6C0:
- add r4, r4, #0x1
- add r6, #0x8
- add r5, r5, #0x1
- cmp r4, r7
- blt _0201A692
-_0201A6CA:
- ldr r0, [sp, #0x1bc]
- cmp r0, #0x0
- beq _0201A6D8
- ldr r0, [sp, #0x1c0]
- add r0, r0, #0x2
- str r0, [sp, #0x1c0]
- b _0201A6DE
-_0201A6D8:
- ldr r0, [sp, #0x1c0]
- add r0, r0, #0x1
- str r0, [sp, #0x1c0]
-_0201A6DE:
- ldr r0, [sp, #0x2f8]
- add r0, #0x8
- str r0, [sp, #0x2f8]
- ldr r0, [sp, #0x1c4]
- add r0, r0, #0x1
- str r0, [sp, #0x1c4]
- cmp r0, #0x8
- blt _0201A644
- ldr r0, [sp, #0x48]
- ldr r7, [sp, #0x1ec]
- add r0, #0x8
- add r7, #0x80
- str r0, [sp, #0x48]
- str r0, [sp, #0x1b8]
- mov r0, #0x0
- mov r2, #0x1
-_0201A6FE:
- ldr r1, [sp, #0x330]
- asr r1, r0
- tst r1, r2
- beq _0201A70C
- ldr r1, [sp, #0x1b8]
- add r1, r1, #0x1
- str r1, [sp, #0x1b8]
-_0201A70C:
- add r0, r0, #0x1
- cmp r0, #0x8
- blt _0201A6FE
- ldr r0, [sp, #0x330]
- asr r0, r0, #0x8
- str r0, [sp, #0x44]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x19c]
- mov r0, #0x0
- str r0, [sp, #0x10]
- ldr r0, [sp, #0x4]
- sub r0, #0x8
- cmp r0, #0x0
- ble _0201A7CE
-_0201A72A:
- ldr r1, [sp, #0x19c]
- ldr r0, [sp, #0x10]
- ldr r2, [sp, #0x28]
- asr r1, r0
- mov r0, #0x1
- and r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x2f4]
- ldr r0, [sp, #0x1b8]
- mov r3, #0x38
- lsl r1, r0, #0x3
- ldr r0, _0201A748 ; =0x00007FC0
- b _0201A74C
- nop
-_0201A748: .word 0x00007FC0
-_0201A74C:
- ldr r5, [sp, #0x5c]
- and r0, r1
- mul r2, r0
- add r0, r1, #0x0
- and r0, r3
- str r0, [sp, #0x194]
- ldr r0, [sp, #0x1b8]
- str r2, [sp, #0x198]
- add r0, r0, #0x1
- lsl r1, r0, #0x3
- ldr r0, _0201A8C4 ; =0x00007FC0
- ldr r2, [sp, #0x28]
- and r0, r1
- mul r2, r0
- add r0, r1, #0x0
- and r0, r3
- ldr r6, [sp, #0x24]
- mov r4, #0x0
- str r2, [sp, #0x190]
- str r0, [sp, #0x18c]
-_0201A774:
- mov r0, #0x7
- add r1, r5, #0x0
- and r1, r0
- ldr r0, [sp, #0x278]
- add r1, r0, r1
- ldr r0, _0201A8C4 ; =0x00007FC0
- and r0, r6
- add r3, r1, r0
- ldr r0, [sp, #0x198]
- ldrb r1, [r7, r4]
- add r2, r3, r0
- cmp r1, #0x0
- beq _0201A7A0
- ldr r0, [sp, #0x194]
- strb r1, [r2, r0]
- ldr r0, [sp, #0x2f4]
- cmp r0, #0x0
- beq _0201A7A0
- ldr r0, [sp, #0x190]
- add r2, r3, r0
- ldr r0, [sp, #0x18c]
- strb r1, [r0, r2]
-_0201A7A0:
- add r4, r4, #0x1
- add r6, #0x8
- add r5, r5, #0x1
- cmp r4, #0x8
- blt _0201A774
- ldr r0, [sp, #0x2f4]
- cmp r0, #0x0
- beq _0201A7B8
- ldr r0, [sp, #0x1b8]
- add r0, r0, #0x2
- str r0, [sp, #0x1b8]
- b _0201A7BE
-_0201A7B8:
- ldr r0, [sp, #0x1b8]
- add r0, r0, #0x1
- str r0, [sp, #0x1b8]
-_0201A7BE:
- ldr r0, [sp, #0x10]
- ldr r1, [sp, #0x4]
- add r0, r0, #0x1
- sub r1, #0x8
- add r7, #0x8
- str r0, [sp, #0x10]
- cmp r0, r1
- blt _0201A72A
-_0201A7CE:
- ldr r0, [sp, #0x1ec]
- mov r2, #0x0
- str r0, [sp, #0x2f0]
- add r0, #0xc0
- str r0, [sp, #0x2f0]
- mov r1, #0x1
-_0201A7DA:
- ldr r0, [sp, #0x330]
- asr r0, r2
- tst r0, r1
- beq _0201A7E8
- ldr r0, [sp, #0x48]
- add r0, r0, #0x1
- str r0, [sp, #0x48]
-_0201A7E8:
- add r2, r2, #0x1
- cmp r2, #0x8
- blt _0201A7DA
- ldr r0, [sp, #0x44]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x1b0]
- mov r0, #0x0
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x4]
- sub r0, #0x8
- cmp r0, #0x0
- ble _0201A8B6
- ldr r0, [sp, #0x5c]
- add r0, #0x8
- str r0, [sp, #0x5c]
-_0201A808:
- ldr r1, [sp, #0x1b0]
- ldr r0, [sp, #0xc]
- ldr r7, [sp, #0x8]
- asr r1, r0
- mov r0, #0x1
- and r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- sub r7, #0x8
- mov r4, #0x0
- str r0, [sp, #0x1b4]
- ldr r5, [sp, #0x5c]
- cmp r7, #0x0
- ble _0201A88E
- ble _0201A88E
- add r0, r5, #0x0
- lsl r6, r0, #0x3
- ldr r0, [sp, #0x48]
- ldr r2, [sp, #0x28]
- lsl r1, r0, #0x3
- ldr r0, _0201A8C4 ; =0x00007FC0
- mov r3, #0x38
- and r0, r1
- mul r2, r0
- add r0, r1, #0x0
- and r0, r3
- str r0, [sp, #0x1a8]
- ldr r0, [sp, #0x48]
- str r2, [sp, #0x1ac]
- add r0, r0, #0x1
- lsl r1, r0, #0x3
- ldr r0, _0201A8C4 ; =0x00007FC0
- ldr r2, [sp, #0x28]
- and r0, r1
- mul r2, r0
- add r0, r1, #0x0
- and r0, r3
- str r2, [sp, #0x1a4]
- str r0, [sp, #0x1a0]
-_0201A856:
- mov r0, #0x7
- add r1, r5, #0x0
- and r1, r0
- ldr r0, [sp, #0x278]
- add r1, r0, r1
- ldr r0, _0201A8C4 ; =0x00007FC0
- and r0, r6
- add r3, r1, r0
- ldr r0, [sp, #0x1ac]
- add r2, r3, r0
- ldr r0, [sp, #0x2f0]
- ldrb r1, [r0, r4]
- cmp r1, #0x0
- beq _0201A884
- ldr r0, [sp, #0x1a8]
- strb r1, [r2, r0]
- ldr r0, [sp, #0x1b4]
- cmp r0, #0x0
- beq _0201A884
- ldr r0, [sp, #0x1a4]
- add r2, r3, r0
- ldr r0, [sp, #0x1a0]
- strb r1, [r0, r2]
-_0201A884:
- add r4, r4, #0x1
- add r6, #0x8
- add r5, r5, #0x1
- cmp r4, r7
- blt _0201A856
-_0201A88E:
- ldr r0, [sp, #0x1b4]
- cmp r0, #0x0
- beq _0201A89C
- ldr r0, [sp, #0x48]
- add r0, r0, #0x2
- str r0, [sp, #0x48]
- b _0201A8A2
-_0201A89C:
- ldr r0, [sp, #0x48]
- add r0, r0, #0x1
- str r0, [sp, #0x48]
-_0201A8A2:
- ldr r0, [sp, #0x2f0]
- ldr r1, [sp, #0x4]
- add r0, #0x8
- str r0, [sp, #0x2f0]
- ldr r0, [sp, #0xc]
- sub r1, #0x8
- add r0, r0, #0x1
- str r0, [sp, #0xc]
- cmp r0, r1
- blt _0201A808
-_0201A8B6:
- ldr r0, [sp, #0x1ec]
- bl FUN_02016A18
-
- thumb_func_start FUN_0201A8BC
-FUN_0201A8BC: ; 0x0201A8BC
- add sp, #0x1fc
- add sp, #0x118
- pop {r4-r7, pc}
- nop
-_0201A8C4: .word 0x00007FC0
-
- thumb_func_start FUN_0201A8C8
-FUN_0201A8C8: ; 0x0201A8C8
- push {r4-r6, lr}
- ldrb r6, [r0, #0x4]
- mov r5, #0x2c
- ldr r4, [r0, #0x0]
- mul r5, r6
- add r4, r4, r5
- ldrb r4, [r4, #0x1e]
- cmp r4, #0x0
- bne _0201A8E0
- bl FUN_0201A8E8
- pop {r4-r6, pc}
-_0201A8E0:
- bl FUN_0201A9D4
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_0201A8E8
-FUN_0201A8E8: ; 0x0201A8E8
- push {r3-r7, lr}
- sub sp, #0x10
- add r6, r3, #0x0
- add r4, r0, #0x0
- add r0, r1, #0x0
- lsl r3, r6, #0x18
- lsl r1, r6, #0x10
- str r2, [sp, #0x0]
- orr r1, r3
- lsl r5, r6, #0x8
- orr r1, r5
- orr r1, r6
- str r1, [sp, #0x4]
- ldrb r1, [r4, #0x7]
- ldrb r3, [r4, #0x8]
- ldr r2, [r4, #0xc]
- str r1, [sp, #0x8]
- mul r1, r3
- lsl r1, r1, #0x5
- str r1, [sp, #0xc]
- cmp r0, #0x3
- bhi _0201A9CE
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0201A920: ; jump table (using 16-bit offset)
- .short _0201A928 - _0201A920 - 2; case 0
- .short _0201A976 - _0201A920 - 2; case 1
- .short _0201A9CE - _0201A920 - 2; case 2
- .short _0201A9CE - _0201A920 - 2; case 3
-_0201A928:
- add r0, r1, #0x0
- mov r7, #0x0
- cmp r0, #0x0
- ble _0201A9CE
- mov r0, #0x7
- mov lr, r0
-_0201A934:
- ldr r3, [sp, #0x0]
- mov r4, #0x0
- add r5, r7, #0x0
-_0201A93A:
- mov r0, #0x7
- add r6, r3, #0x0
- and r6, r0
- add r1, r3, #0x0
- mov r0, lr
- bic r1, r0
- ldr r0, [sp, #0x8]
- mul r1, r0
- add r0, r6, #0x0
- orr r0, r1
- lsl r0, r0, #0x2
- add r1, r7, r0
- ldr r0, [sp, #0xc]
- cmp r1, r0
- bge _0201A95C
- ldr r0, [r2, r1]
- b _0201A95E
-_0201A95C:
- ldr r0, [sp, #0x4]
-_0201A95E:
- add r4, r4, #0x1
- str r0, [r2, r5]
- add r3, r3, #0x1
- add r5, r5, #0x4
- cmp r4, #0x8
- blt _0201A93A
- ldr r0, [sp, #0xc]
- add r7, #0x20
- cmp r7, r0
- blt _0201A934
- add sp, #0x10
- pop {r3-r7, pc}
-_0201A976:
- add r0, r1, #0x0
- sub r0, r0, #0x4
- add r2, r2, r0
- add r0, r1, #0x0
- mov r7, #0x0
- cmp r0, #0x0
- ble _0201A9CE
- mov r0, #0x7
- mov r12, r0
-_0201A988:
- ldr r4, [sp, #0x0]
- mov r5, #0x0
- add r3, r7, #0x0
-_0201A98E:
- mov r0, #0x7
- add r6, r4, #0x0
- and r6, r0
- add r1, r4, #0x0
- mov r0, r12
- bic r1, r0
- ldr r0, [sp, #0x8]
- mul r1, r0
- add r0, r6, #0x0
- orr r0, r1
- lsl r0, r0, #0x2
- add r1, r7, r0
- ldr r0, [sp, #0xc]
- cmp r1, r0
- bge _0201A9B6
- sub r0, r2, r1
- ldr r1, [r0, #0x0]
- sub r0, r2, r3
- str r1, [r0, #0x0]
- b _0201A9BC
-_0201A9B6:
- ldr r0, [sp, #0x4]
- sub r1, r2, r3
- str r0, [r1, #0x0]
-_0201A9BC:
- add r5, r5, #0x1
- add r4, r4, #0x1
- add r3, r3, #0x4
- cmp r5, #0x8
- blt _0201A98E
- ldr r0, [sp, #0xc]
- add r7, #0x20
- cmp r7, r0
- blt _0201A988
-_0201A9CE:
- add sp, #0x10
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0201A9D4
-FUN_0201A9D4: ; 0x0201A9D4
- push {r3-r7, lr}
- sub sp, #0x20
- add r6, r3, #0x0
- add r4, r0, #0x0
- str r2, [sp, #0x0]
- lsl r2, r6, #0x18
- lsl r0, r6, #0x10
- orr r0, r2
- ldrb r2, [r4, #0x7]
- ldr r3, [r4, #0xc]
- lsl r5, r6, #0x8
- orr r0, r5
- ldrb r4, [r4, #0x8]
- str r2, [sp, #0x10]
- orr r0, r6
- mul r2, r4
- lsl r2, r2, #0x6
- str r2, [sp, #0x1c]
- cmp r1, #0x3
- bls _0201A9FE
- b _0201AB04
-_0201A9FE:
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #0x6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0201AA0A: ; jump table (using 16-bit offset)
- .short _0201AA12 - _0201AA0A - 2; case 0
- .short _0201AA80 - _0201AA0A - 2; case 1
- .short _0201AB04 - _0201AA0A - 2; case 2
- .short _0201AB04 - _0201AA0A - 2; case 3
-_0201AA12:
- mov r1, #0x0
- str r1, [sp, #0xc]
- add r1, r2, #0x0
- cmp r1, #0x0
- ble _0201AB04
- add r1, r1, #0x4
- str r1, [sp, #0x14]
- mov r1, #0x7
- mov lr, r1
-_0201AA24:
- ldr r4, [sp, #0x0]
- ldr r5, [sp, #0xc]
- mov r7, #0x0
-_0201AA2A:
- mov r1, #0x7
- add r6, r4, #0x0
- and r6, r1
- add r2, r4, #0x0
- mov r1, lr
- bic r2, r1
- ldr r1, [sp, #0x10]
- mul r2, r1
- add r1, r6, #0x0
- orr r1, r2
- lsl r2, r1, #0x3
- ldr r1, [sp, #0xc]
- add r1, r1, r2
- ldr r2, [sp, #0x1c]
- cmp r1, r2
- bge _0201AA50
- ldr r2, [r3, r1]
- str r2, [r3, r5]
- b _0201AA52
-_0201AA50:
- str r0, [r3, r5]
-_0201AA52:
- add r2, r1, #0x4
- ldr r1, [sp, #0x14]
- cmp r2, r1
- bge _0201AA62
- ldr r2, [r3, r2]
- add r1, r5, #0x4
- str r2, [r3, r1]
- b _0201AA66
-_0201AA62:
- add r1, r5, #0x4
- str r0, [r3, r1]
-_0201AA66:
- add r7, r7, #0x1
- add r4, r4, #0x1
- add r5, #0x8
- cmp r7, #0x8
- blt _0201AA2A
- ldr r2, [sp, #0xc]
- ldr r1, [sp, #0x1c]
- add r2, #0x40
- str r2, [sp, #0xc]
- cmp r2, r1
- blt _0201AA24
- add sp, #0x20
- pop {r3-r7, pc}
-_0201AA80:
- add r1, r2, #0x0
- sub r1, #0x8
- add r3, r3, r1
- mov r1, #0x0
- str r1, [sp, #0x8]
- add r1, r2, #0x0
- cmp r1, #0x0
- ble _0201AB04
-_0201AA90:
- mov r1, #0x0
- str r1, [sp, #0x4]
- ldr r1, [sp, #0x1c]
- ldr r5, [sp, #0x0]
- sub r1, r1, #0x4
- str r1, [sp, #0x18]
- mov r1, #0x7
- ldr r4, [sp, #0x8]
- mov r12, r1
-_0201AAA2:
- mov r1, #0x7
- add r6, r5, #0x0
- and r6, r1
- add r2, r5, #0x0
- mov r1, r12
- bic r2, r1
- ldr r1, [sp, #0x10]
- mul r2, r1
- add r1, r6, #0x0
- orr r1, r2
- lsl r2, r1, #0x3
- ldr r1, [sp, #0x8]
- add r6, r1, r2
- ldr r1, [sp, #0x1c]
- cmp r6, r1
- bge _0201AACC
- sub r1, r3, r6
- ldr r2, [r1, #0x0]
- sub r1, r3, r4
- str r2, [r1, #0x0]
- b _0201AAD0
-_0201AACC:
- sub r1, r3, r4
- str r0, [r1, #0x0]
-_0201AAD0:
- ldr r1, [sp, #0x18]
- sub r2, r6, #0x4
- cmp r2, r1
- bge _0201AAE4
- sub r1, r3, r2
- sub r2, r4, #0x4
- ldr r1, [r1, #0x0]
- sub r2, r3, r2
- str r1, [r2, #0x0]
- b _0201AAEA
-_0201AAE4:
- sub r1, r4, #0x4
- sub r1, r3, r1
- str r0, [r1, #0x0]
-_0201AAEA:
- ldr r1, [sp, #0x4]
- add r5, r5, #0x1
- add r1, r1, #0x1
- add r4, #0x8
- str r1, [sp, #0x4]
- cmp r1, #0x8
- blt _0201AAA2
- ldr r2, [sp, #0x8]
- ldr r1, [sp, #0x1c]
- add r2, #0x40
- str r2, [sp, #0x8]
- cmp r2, r1
- blt _0201AA90
-_0201AB04:
- add sp, #0x20
- pop {r3-r7, pc}
-
- thumb_func_start FUN_0201AB08
-FUN_0201AB08: ; 0x0201AB08
- ldrb r0, [r0, #0x4]
- bx lr
-
- thumb_func_start FUN_0201AB0C
-FUN_0201AB0C: ; 0x0201AB0C
- ldrb r0, [r0, #0x7]
- bx lr
-
- thumb_func_start FUN_0201AB10
-FUN_0201AB10: ; 0x0201AB10
- ldrb r0, [r0, #0x8]
- bx lr
-
- thumb_func_start FUN_0201AB14
-FUN_0201AB14: ; 0x0201AB14
- ldrb r0, [r0, #0x5]
- bx lr
-
- thumb_func_start FUN_0201AB18
-FUN_0201AB18: ; 0x0201AB18
- ldrb r0, [r0, #0x6]
- bx lr
-
- thumb_func_start FUN_0201AB1C
-FUN_0201AB1C: ; 0x0201AB1C
- strb r1, [r0, #0x5]
- bx lr
-
- thumb_func_start FUN_0201AB20
-FUN_0201AB20: ; 0x0201AB20
- strb r1, [r0, #0x6]
- bx lr
-
- thumb_func_start FUN_0201AB24
-FUN_0201AB24: ; 0x0201AB24
- strb r1, [r0, #0x9]
- bx lr
-
- thumb_func_start FUN_0201AB28
-FUN_0201AB28: ; 0x0201AB28
- push {r3-r4, lr}
- sub sp, #0x4
- add r4, r0, #0x0
- add r0, r1, #0x0
- add r1, r2, #0x0
- bl FUN_020161A4
- add r1, sp, #0x0
- str r0, [r4, #0x0]
- bl FUN_020B0030
- ldr r0, [sp, #0x0]
- add sp, #0x4
- pop {r3-r4, pc}
-
- thumb_func_start FUN_0201AB44
-FUN_0201AB44: ; 0x0201AB44
- push {r3-r4, lr}
- sub sp, #0x4
- add r4, r0, #0x0
- add r0, r1, #0x0
- add r1, r2, #0x0
- bl FUN_020161A4
- add r1, sp, #0x0
- str r0, [r4, #0x0]
- bl FUN_020B0138
- ldr r0, [sp, #0x0]
- add sp, #0x4
- pop {r3-r4, pc}
-
- thumb_func_start FUN_0201AB60
-FUN_0201AB60: ; 0x0201AB60
- push {r4, lr}
- add r4, r0, #0x0
- bl FUN_0201AC78
- add r0, r4, #0x0
- bl FUN_0201AB78
- mov r0, #0x0
- strh r0, [r4, #0x4]
- strh r0, [r4, #0x6]
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0201AB78
-FUN_0201AB78: ; 0x0201AB78
- push {r4, lr}
- add r4, r0, #0x0
- ldrh r1, [r4, #0x6]
- mov r0, #0x1
- tst r0, r1
- beq _0201AB92
- ldr r2, [r4, #0x10]
- ldr r1, [r4, #0x8]
- ldr r3, [r4, #0xc]
- mov r0, #0x0
- lsl r2, r2, #0x1
- bl FUN_02017D68
-_0201AB92:
- ldrh r1, [r4, #0x6]
- mov r0, #0x2
- tst r0, r1
- beq _0201ABA8
- ldr r2, [r4, #0x3c]
- ldr r1, [r4, #0x34]
- ldr r3, [r4, #0x38]
- mov r0, #0x1
- lsl r2, r2, #0x1
- bl FUN_02017D68
-_0201ABA8:
- ldrh r1, [r4, #0x6]
- mov r0, #0x4
- tst r0, r1
- beq _0201ABBE
- ldr r2, [r4, #0x68]
- ldr r1, [r4, #0x60]
- ldr r3, [r4, #0x64]
- mov r0, #0x2
- lsl r2, r2, #0x1
- bl FUN_02017D68
-_0201ABBE:
- ldrh r1, [r4, #0x6]
- mov r0, #0x8
- tst r0, r1
- beq _0201ABE0
- add r2, r4, #0x0
- add r1, r4, #0x0
- add r2, #0x94
- add r3, r4, #0x0
- add r1, #0x8c
- ldr r2, [r2, #0x0]
- add r3, #0x90
- ldr r1, [r1, #0x0]
- ldr r3, [r3, #0x0]
- mov r0, #0x3
- lsl r2, r2, #0x1
- bl FUN_02017D68
-_0201ABE0:
- ldrh r1, [r4, #0x6]
- mov r0, #0x10
- tst r0, r1
- beq _0201AC02
- add r2, r4, #0x0
- add r1, r4, #0x0
- add r2, #0xc0
- add r3, r4, #0x0
- add r1, #0xb8
- ldr r2, [r2, #0x0]
- add r3, #0xbc
- ldr r1, [r1, #0x0]
- ldr r3, [r3, #0x0]
- mov r0, #0x4
- lsl r2, r2, #0x1
- bl FUN_02017D68
-_0201AC02:
- ldrh r1, [r4, #0x6]
- mov r0, #0x20
- tst r0, r1
- beq _0201AC24
- add r2, r4, #0x0
- add r1, r4, #0x0
- add r2, #0xec
- add r3, r4, #0x0
- add r1, #0xe4
- ldr r2, [r2, #0x0]
- add r3, #0xe8
- ldr r1, [r1, #0x0]
- ldr r3, [r3, #0x0]
- mov r0, #0x5
- lsl r2, r2, #0x1
- bl FUN_02017D68
-_0201AC24:
- ldrh r0, [r4, #0x6]
- mov r3, #0x40
- tst r0, r3
- beq _0201AC44
- add r2, r3, #0x0
- add r1, r3, #0x0
- add r2, #0xd8
- add r1, #0xd0
- ldr r2, [r4, r2]
- add r3, #0xd4
- ldr r1, [r4, r1]
- ldr r3, [r4, r3]
- mov r0, #0x6
- lsl r2, r2, #0x1
- bl FUN_02017D68
-_0201AC44:
- ldrh r0, [r4, #0x6]
- mov r3, #0x80
- tst r0, r3
- beq _0201AC64
- add r2, r3, #0x0
- add r1, r3, #0x0
- add r2, #0xc4
- add r1, #0xbc
- ldr r2, [r4, r2]
- add r3, #0xc0
- ldr r1, [r4, r1]
- ldr r3, [r4, r3]
- mov r0, #0x7
- lsl r2, r2, #0x1
- bl FUN_02017D68
-_0201AC64:
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0201AC68
-FUN_0201AC68: ; 0x0201AC68
- ldrh r3, [r0, #0x6]
- mov r2, #0x1
- lsl r2, r1
- add r1, r3, #0x0
- orr r1, r2
- strh r1, [r0, #0x6]
- bx lr
- .balign 4
-
- thumb_func_start FUN_0201AC78
-FUN_0201AC78: ; 0x0201AC78
- push {r4, lr}
- sub sp, #0x48
- add r4, r0, #0x0
- ldrh r1, [r4, #0x4]
- mov r0, #0x1
- tst r0, r1
- beq _0201AC9E
- ldr r1, [r4, #0x14]
- ldr r0, _0201AEB0 ; =0x000001FF
- add r2, r1, #0x0
- ldr r1, [r4, #0x18]
- and r2, r0
- lsl r1, r1, #0x10
- lsl r0, r0, #0x10
- and r0, r1
- add r1, r2, #0x0
- orr r1, r0
- ldr r0, _0201AEB4 ; =0x04000010
- str r1, [r0, #0x0]
-_0201AC9E:
- ldrh r1, [r4, #0x4]
- mov r0, #0x2
- tst r0, r1
- beq _0201ACBE
- ldr r1, [r4, #0x40]
- ldr r0, _0201AEB0 ; =0x000001FF
- add r2, r1, #0x0
- ldr r1, [r4, #0x44]
- and r2, r0
- lsl r1, r1, #0x10
- lsl r0, r0, #0x10
- and r0, r1
- add r1, r2, #0x0
- orr r1, r0
- ldr r0, _0201AEB8 ; =0x04000014
- str r1, [r0, #0x0]
-_0201ACBE:
- ldrh r1, [r4, #0x4]
- mov r0, #0x4
- tst r0, r1
- beq _0201AD1E
- add r0, r4, #0x0
- add r0, #0x74
- ldrb r0, [r0, #0x0]
- cmp r0, #0x0
- bne _0201ACEA
- ldr r1, [r4, #0x6c]
- ldr r0, _0201AEB0 ; =0x000001FF
- add r2, r1, #0x0
- ldr r1, [r4, #0x70]
- and r2, r0
- lsl r1, r1, #0x10
- lsl r0, r0, #0x10
- and r0, r1
- add r1, r2, #0x0
- orr r1, r0
- ldr r0, _0201AEBC ; =0x04000018
- str r1, [r0, #0x0]
- b _0201AD1E
-_0201ACEA:
- mov r0, #0x2
- str r0, [sp, #0x0]
- add r1, r4, #0x0
- add r1, #0x78
- add r3, r4, #0x0
- add r3, #0x80
- ldrh r1, [r1, #0x0]
- ldr r2, [r4, #0x7c]
- ldr r3, [r3, #0x0]
- add r0, sp, #0x38
- bl FUN_0201BB74
- ldr r0, [r4, #0x6c]
- add r2, r4, #0x0
- str r0, [sp, #0x0]
- ldr r0, [r4, #0x70]
- add r3, r4, #0x0
- str r0, [sp, #0x4]
- add r2, #0x84
- add r3, #0x88
- ldr r0, _0201AEC0 ; =0x04000020
- ldr r2, [r2, #0x0]
- ldr r3, [r3, #0x0]
- add r1, sp, #0x38
- bl G2x_SetBGyAffine_
-_0201AD1E:
- ldrh r1, [r4, #0x4]
- mov r0, #0x8
- tst r0, r1
- beq _0201AD8E
- add r0, r4, #0x0
- add r0, #0xa0
- ldrb r0, [r0, #0x0]
- cmp r0, #0x0
- bne _0201AD4E
- add r0, r4, #0x0
- add r2, r4, #0x0
- add r0, #0x98
- add r2, #0x9c
- ldr r2, [r2, #0x0]
- ldr r0, [r0, #0x0]
- ldr r1, _0201AEB0 ; =0x000001FF
- lsl r2, r2, #0x10
- and r0, r1
- lsl r1, r1, #0x10
- and r1, r2
- orr r1, r0
- ldr r0, _0201AEC4 ; =0x0400001C
- str r1, [r0, #0x0]
- b _0201AD8E
-_0201AD4E:
- mov r0, #0x2
- add r1, r4, #0x0
- str r0, [sp, #0x0]
- add r1, #0xa4
- add r2, r4, #0x0
- add r3, r4, #0x0
- add r2, #0xa8
- add r3, #0xac
- ldrh r1, [r1, #0x0]
- ldr r2, [r2, #0x0]
- ldr r3, [r3, #0x0]
- add r0, sp, #0x28
- bl FUN_0201BB74
- add r0, r4, #0x0
- add r0, #0x98
- ldr r0, [r0, #0x0]
- add r2, r4, #0x0
- str r0, [sp, #0x0]
- add r0, r4, #0x0
- add r0, #0x9c
- ldr r0, [r0, #0x0]
- add r3, r4, #0x0
- str r0, [sp, #0x4]
- add r2, #0xb0
- add r3, #0xb4
- ldr r0, _0201AEC8 ; =0x04000030
- ldr r2, [r2, #0x0]
- ldr r3, [r3, #0x0]
- add r1, sp, #0x28
- bl G2x_SetBGyAffine_
-_0201AD8E:
- ldrh r1, [r4, #0x4]
- mov r0, #0x10
- tst r0, r1
- beq _0201ADB2
- add r0, r4, #0x0
- add r2, r4, #0x0
- add r0, #0xc4
- add r2, #0xc8
- ldr r2, [r2, #0x0]
- ldr r0, [r0, #0x0]
- ldr r1, _0201AEB0 ; =0x000001FF
- lsl r2, r2, #0x10
- and r0, r1
- lsl r1, r1, #0x10
- and r1, r2
- orr r1, r0
- ldr r0, _0201AECC ; =0x04001010
- str r1, [r0, #0x0]
-_0201ADB2:
- ldrh r1, [r4, #0x4]
- mov r0, #0x20
- tst r0, r1
- beq _0201ADD6
- add r0, r4, #0x0
- add r2, r4, #0x0
- add r0, #0xf0
- add r2, #0xf4
- ldr r2, [r2, #0x0]
- ldr r0, [r0, #0x0]
- ldr r1, _0201AEB0 ; =0x000001FF
- lsl r2, r2, #0x10
- and r0, r1
- lsl r1, r1, #0x10
- and r1, r2
- orr r1, r0
- ldr r0, _0201AED0 ; =0x04001014
- str r1, [r0, #0x0]
-_0201ADD6:
- ldrh r0, [r4, #0x4]
- mov r3, #0x40
- tst r0, r3
- beq _0201AE3E
- add r0, r3, #0x0
- add r0, #0xe4
- ldrb r0, [r4, r0]
- cmp r0, #0x0
- bne _0201AE04
- ldr r1, _0201AEB0 ; =0x000001FF
- add r3, #0xdc
- add r2, r1, #0x0
- sub r2, #0xdf
- ldr r0, [r4, r3]
- ldr r2, [r4, r2]
- and r0, r1
- lsl r2, r2, #0x10
- lsl r1, r1, #0x10
- and r1, r2
- orr r1, r0
- ldr r0, _0201AED4 ; =0x04001018
- str r1, [r0, #0x0]
- b _0201AE3E
-_0201AE04:
- mov r0, #0x2
- add r1, r3, #0x0
- add r2, r3, #0x0
- str r0, [sp, #0x0]
- add r1, #0xe8
- add r2, #0xec
- add r3, #0xf0
- ldrh r1, [r4, r1]
- ldr r2, [r4, r2]
- ldr r3, [r4, r3]
- add r0, sp, #0x18
- bl FUN_0201BB74
- mov r3, #0x47
- lsl r3, r3, #0x2
- ldr r0, [r4, r3]
- add r2, r3, #0x0
- str r0, [sp, #0x0]
- add r0, r3, #0x4
- ldr r0, [r4, r0]
- add r2, #0x18
- str r0, [sp, #0x4]
- add r3, #0x1c
- ldr r0, _0201AED8 ; =0x04001020
- ldr r2, [r4, r2]
- ldr r3, [r4, r3]
- add r1, sp, #0x18
- bl G2x_SetBGyAffine_
-_0201AE3E:
- ldrh r0, [r4, #0x4]
- mov r3, #0x80
- tst r0, r3
- beq _0201AEAC
- add r0, r3, #0x0
- add r0, #0xd0
- ldrb r0, [r4, r0]
- cmp r0, #0x0
- bne _0201AE72
- add r3, #0xc8
- ldr r1, [r4, r3]
- ldr r0, _0201AEB0 ; =0x000001FF
- add r2, r1, #0x0
- add r1, r0, #0x0
- sub r1, #0xb3
- ldr r1, [r4, r1]
- and r2, r0
- lsl r1, r1, #0x10
- lsl r0, r0, #0x10
- and r0, r1
- add r1, r2, #0x0
- orr r1, r0
- ldr r0, _0201AEDC ; =0x0400101C
- add sp, #0x48
- str r1, [r0, #0x0]
- pop {r4, pc}
-_0201AE72:
- mov r0, #0x2
- add r1, r3, #0x0
- add r2, r3, #0x0
- str r0, [sp, #0x0]
- add r1, #0xd4
- add r2, #0xd8
- add r3, #0xdc
- ldrh r1, [r4, r1]
- ldr r2, [r4, r2]
- ldr r3, [r4, r3]
- add r0, sp, #0x8
- bl FUN_0201BB74
- mov r3, #0x52
- lsl r3, r3, #0x2
- ldr r0, [r4, r3]
- add r2, r3, #0x0
- str r0, [sp, #0x0]
- add r0, r3, #0x4
- ldr r0, [r4, r0]
- add r2, #0x18
- str r0, [sp, #0x4]
- add r3, #0x1c
- ldr r0, _0201AEE0 ; =0x04001030
- ldr r2, [r4, r2]
- ldr r3, [r4, r3]
- add r1, sp, #0x8
- bl G2x_SetBGyAffine_
-_0201AEAC:
- add sp, #0x48
- pop {r4, pc}
- .balign 4
-_0201AEB0: .word 0x000001FF
-_0201AEB4: .word 0x04000010
-_0201AEB8: .word 0x04000014
-_0201AEBC: .word 0x04000018
-_0201AEC0: .word 0x04000020
-_0201AEC4: .word 0x0400001C
-_0201AEC8: .word 0x04000030
-_0201AECC: .word 0x04001010
-_0201AED0: .word 0x04001014
-_0201AED4: .word 0x04001018
-_0201AED8: .word 0x04001020
-_0201AEDC: .word 0x0400101C
-_0201AEE0: .word 0x04001030
-
- thumb_func_start FUN_0201AEE4
-FUN_0201AEE4: ; 0x0201AEE4
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- add r1, r5, #0x0
- mov r0, #0x2c
- add r1, #0x8
- mul r0, r4
- add r0, r1, r0
- add r1, r2, #0x0
- add r2, r3, #0x0
- bl FUN_02017B8C
- mov r0, #0x1
- ldrh r1, [r5, #0x4]
- lsl r0, r4
- orr r0, r1
- strh r0, [r5, #0x4]
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0201AF08
-FUN_0201AF08: ; 0x0201AF08
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- add r1, r5, #0x0
- mov r0, #0x2c
- add r1, #0x8
- mul r0, r4
- add r0, r1, r0
- add r1, r2, #0x0
- add r2, r3, #0x0
- bl FUN_0201AF2C
- mov r0, #0x1
- ldrh r1, [r5, #0x4]
- lsl r0, r4
- orr r0, r1
- strh r0, [r5, #0x4]
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0201AF2C
-FUN_0201AF2C: ; 0x0201AF2C
- cmp r1, #0x0
- beq _0201AF3A
- cmp r1, #0x1
- beq _0201AF3E
- cmp r1, #0x2
- beq _0201AF46
- bx lr
-_0201AF3A:
- strh r2, [r0, #0x18]
- bx lr
-_0201AF3E:
- ldrh r1, [r0, #0x18]
- add r1, r1, r2
- strh r1, [r0, #0x18]
- bx lr
-_0201AF46:
- ldrh r1, [r0, #0x18]
- sub r1, r1, r2
- strh r1, [r0, #0x18]
- bx lr
- .balign 4
-
- thumb_func_start FUN_0201AF50
-FUN_0201AF50: ; 0x0201AF50
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- add r1, r5, #0x0
- mov r0, #0x2c
- add r1, #0x8
- mul r0, r4
- add r0, r1, r0
- add r1, r2, #0x0
- add r2, r3, #0x0
- bl FUN_0201AF74
- mov r0, #0x1
- ldrh r1, [r5, #0x4]
- lsl r0, r4
- orr r0, r1
- strh r0, [r5, #0x4]
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0201AF74
-FUN_0201AF74: ; 0x0201AF74
- sub r1, #0x9
- cmp r1, #0x5
- bhi _0201AFB8
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #0x6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0201AF86: ; jump table (using 16-bit offset)
- .short _0201AF92 - _0201AF86 - 2; case 0
- .short _0201AF96 - _0201AF86 - 2; case 1
- .short _0201AF9E - _0201AF86 - 2; case 2
- .short _0201AFA6 - _0201AF86 - 2; case 3
- .short _0201AFAA - _0201AF86 - 2; case 4
- .short _0201AFB2 - _0201AF86 - 2; case 5
-_0201AF92:
- str r2, [r0, #0x24]
- bx lr
-_0201AF96:
- ldr r1, [r0, #0x24]
- add r1, r1, r2
- str r1, [r0, #0x24]
- bx lr
-_0201AF9E:
- ldr r1, [r0, #0x24]
- sub r1, r1, r2
- str r1, [r0, #0x24]
- bx lr
-_0201AFA6:
- str r2, [r0, #0x28]
- bx lr
-_0201AFAA:
- ldr r1, [r0, #0x28]
- add r1, r1, r2
- str r1, [r0, #0x28]
- bx lr
-_0201AFB2:
- ldr r1, [r0, #0x28]
- sub r1, r1, r2
- str r1, [r0, #0x28]
-_0201AFB8:
- bx lr
- .balign 4
-
- thumb_func_start FUN_0201AFBC
-FUN_0201AFBC: ; 0x0201AFBC
- push {r4-r7, lr}
- sub sp, #0x1c
- str r1, [sp, #0x0]
- add r7, r0, #0x0
- str r2, [sp, #0x4]
- ldr r0, [sp, #0x30]
- str r3, [sp, #0x8]
- str r0, [sp, #0x30]
- ldr r0, [sp, #0x0]
- add r4, r7, #0x0
- mov r1, #0x2c
- add r5, r0, #0x0
- mul r5, r1
- add r4, #0x8
- ldr r0, [r4, r5]
- cmp r0, #0x0
- bne _0201AFE4
- add sp, #0x1c
- mov r0, #0x0
- pop {r4-r7, pc}
-_0201AFE4:
- ldr r0, [sp, #0x4]
- ldr r1, [sp, #0x8]
- add r2, r7, r5
- lsl r0, r0, #0x15
- lsl r1, r1, #0x15
- ldrb r2, [r2, #0x1d]
- lsr r0, r0, #0x18
- lsr r1, r1, #0x18
- bl FUN_02017FFC
- add r6, r0, #0x0
- ldr r0, [sp, #0x0]
- bl FUN_020187B0
- str r0, [sp, #0x18]
- ldr r1, [sp, #0x4]
- mov r0, #0x7
- and r1, r0
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- str r1, [sp, #0x14]
- ldr r1, [sp, #0x8]
- and r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- add r1, r7, r5
- str r0, [sp, #0x10]
- ldrb r0, [r1, #0x1e]
- cmp r0, #0x0
- bne _0201B096
- ldr r0, [r4, r5]
- mov r1, #0x40
- str r0, [sp, #0xc]
- ldr r0, [r7, #0x0]
- bl FUN_020169D8
- add r4, r0, #0x0
- lsl r0, r6, #0x1
- ldr r1, [sp, #0xc]
- mov r12, r0
- ldrh r0, [r1, r0]
- mov r3, #0x0
- mov r6, #0xf
- lsl r0, r0, #0x16
- lsr r1, r0, #0x11
- ldr r0, [sp, #0x18]
- add r2, r0, r1
-_0201B042:
- ldrb r5, [r2, r3]
- lsl r0, r3, #0x1
- add r1, r4, r0
- and r5, r6
- strb r5, [r4, r0]
- ldrb r0, [r2, r3]
- asr r0, r0, #0x4
- strb r0, [r1, #0x1]
- add r0, r3, #0x1
- lsl r0, r0, #0x18
- lsr r3, r0, #0x18
- cmp r3, #0x20
- blo _0201B042
- ldr r2, [sp, #0xc]
- mov r1, r12
- ldrh r1, [r2, r1]
- add r0, r7, #0x0
- asr r2, r1, #0xa
- mov r1, #0x3
- and r1, r2
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- add r2, r4, #0x0
- bl FUN_0201B118
- ldr r0, [sp, #0x10]
- lsl r1, r0, #0x3
- ldr r0, [sp, #0x14]
- add r0, r0, r1
- ldrb r5, [r4, r0]
- add r0, r4, #0x0
- bl FUN_02016A18
- ldr r0, [sp, #0x30]
- ldrh r2, [r0, #0x0]
- mov r0, #0x1
- add r1, r0, #0x0
- lsl r1, r5
- tst r1, r2
- beq _0201B10C
- add sp, #0x1c
- pop {r4-r7, pc}
-_0201B096:
- ldrb r0, [r1, #0x1c]
- cmp r0, #0x1
- beq _0201B0E0
- ldr r0, [r7, #0x0]
- ldr r4, [r4, r5]
- mov r1, #0x40
- bl FUN_020169D8
- lsl r6, r6, #0x1
- ldrh r1, [r4, r6]
- add r5, r0, #0x0
- lsl r1, r1, #0x16
- lsr r2, r1, #0x10
- ldr r1, [sp, #0x18]
- add r1, r1, r2
- mov r2, #0x40
- bl memcpy
- ldrh r1, [r4, r6]
- add r0, r7, #0x0
- asr r2, r1, #0xa
- mov r1, #0x3
- and r1, r2
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- add r2, r5, #0x0
- bl FUN_0201B118
- ldr r0, [sp, #0x10]
- lsl r1, r0, #0x3
- ldr r0, [sp, #0x14]
- add r0, r0, r1
- ldrb r4, [r5, r0]
- add r0, r5, #0x0
- bl FUN_02016A18
- b _0201B0F4
-_0201B0E0:
- ldr r1, [r4, r5]
- ldr r0, [sp, #0x10]
- ldrb r1, [r1, r6]
- lsl r0, r0, #0x3
- lsl r2, r1, #0x6
- ldr r1, [sp, #0x14]
- add r1, r1, r2
- add r1, r0, r1
- ldr r0, [sp, #0x18]
- ldrb r4, [r0, r1]
-_0201B0F4:
- ldr r0, [sp, #0x30]
- ldrh r2, [r0, #0x0]
- lsl r0, r2, #0x18
- lsr r1, r0, #0x18
- ldr r0, _0201B114 ; =0x0000FFFF
-_0201B0FE:
- cmp r2, r0
- beq _0201B10C
- cmp r4, r1
- bne _0201B0FE
- add sp, #0x1c
- mov r0, #0x1
- pop {r4-r7, pc}
-_0201B10C:
- mov r0, #0x0
- add sp, #0x1c
- pop {r4-r7, pc}
- nop
-_0201B114: .word 0x0000FFFF
-
- thumb_func_start FUN_0201B118
-FUN_0201B118: ; 0x0201B118
- push {r3-r7, lr}
- str r1, [sp, #0x0]
- ldr r1, [sp, #0x0]
- add r7, r2, #0x0
- cmp r1, #0x0
- beq _0201B1A4
- ldr r0, [r0, #0x0]
- mov r1, #0x40
- bl FUN_020169D8
- add r4, r0, #0x0
- ldr r0, [sp, #0x0]
- mov r1, #0x1
- tst r0, r1
- beq _0201B166
- mov r0, #0x0
- mov r5, #0x7
-_0201B13A:
- lsl r3, r0, #0x3
- add r2, r7, r3
- mov r1, #0x0
- add r3, r4, r3
-_0201B142:
- sub r6, r5, r1
- ldrb r6, [r2, r6]
- strb r6, [r3, r1]
- add r1, r1, #0x1
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- cmp r1, #0x8
- blo _0201B142
- add r0, r0, #0x1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- cmp r0, #0x8
- blo _0201B13A
- add r0, r7, #0x0
- add r1, r4, #0x0
- mov r2, #0x40
- bl memcpy
-_0201B166:
- ldr r0, [sp, #0x0]
- mov r1, #0x2
- tst r0, r1
- beq _0201B19E
- mov r5, #0x0
- mov r6, #0x7
-_0201B172:
- lsl r0, r5, #0x3
- add r3, r4, r0
- sub r0, r6, r5
- lsl r0, r0, #0x3
- add r2, r7, r0
- mov r1, #0x8
-_0201B17E:
- ldrb r0, [r2, #0x0]
- add r2, r2, #0x1
- strb r0, [r3, #0x0]
- add r3, r3, #0x1
- sub r1, r1, #0x1
- bne _0201B17E
- add r0, r5, #0x1
- lsl r0, r0, #0x18
- lsr r5, r0, #0x18
- cmp r5, #0x8
- blo _0201B172
- add r0, r7, #0x0
- add r1, r4, #0x0
- mov r2, #0x40
- bl memcpy
-_0201B19E:
- add r0, r4, #0x0
- bl FUN_02016A18
-_0201B1A4:
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0201B1A8
-FUN_0201B1A8: ; 0x0201B1A8
- push {r3-r5, lr}
- add r5, r3, #0x0
- add r4, r2, #0x0
- bl FUN_020161A4
- str r0, [r5, #0x0]
- bl FUN_020BC0FC
- cmp r0, #0x0
- beq _0201B1D2
- bl FUN_0201B254
- cmp r0, #0x0
- bne _0201B1D2
- ldr r0, [r5, #0x0]
- ldr r1, [r0, #0x8]
- bl DC_FlushRange
- ldr r0, [r5, #0x0]
- bl FUN_020BB59C
-_0201B1D2:
- ldr r0, [r5, #0x0]
- bl FUN_020BC13C
- ldrh r1, [r0, #0xe]
- add r1, r0, r1
- ldr r1, [r1, #0xc]
- add r0, r0, r1
- str r0, [r4, #0x0]
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0201B1E4
-FUN_0201B1E4: ; 0x0201B1E4
- push {r3-r5, lr}
- add r5, r1, #0x0
- add r4, r0, #0x0
- ldr r0, [r5, #0x0]
- bl FUN_020BC0FC
- cmp r0, #0x0
- beq _0201B20A
- bl FUN_0201B254
- cmp r0, #0x0
- bne _0201B20A
- ldr r0, [r5, #0x0]
- ldr r1, [r0, #0x8]
- bl DC_FlushRange
- ldr r0, [r5, #0x0]
- bl FUN_020BB59C
-_0201B20A:
- ldr r0, [r5, #0x0]
- bl FUN_020BC13C
- ldrh r1, [r0, #0xe]
- add r1, r0, r1
- ldr r1, [r1, #0xc]
- add r0, r0, r1
- str r0, [r4, #0x0]
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0201B21C
-FUN_0201B21C: ; 0x0201B21C
- push {r3-r5, lr}
- add r4, r3, #0x0
- add r5, r2, #0x0
- ldr r3, [sp, #0x10]
- add r2, r4, #0x0
- bl FUN_0201B1A8
- ldr r1, [r4, #0x0]
- add r0, r5, #0x0
- bl FUN_020B80B4
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0201B234
-FUN_0201B234: ; 0x0201B234
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- add r0, r4, #0x0
- add r1, r2, #0x0
- bl FUN_0201B1E4
- cmp r4, #0x0
- bne _0201B24A
- bl ErrorHandling
-_0201B24A:
- ldr r1, [r4, #0x0]
- add r0, r5, #0x0
- bl FUN_020B80B4
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0201B254
-FUN_0201B254: ; 0x0201B254
- ldrh r2, [r0, #0x10]
- mov r1, #0x1
- tst r2, r1
- bne _0201B262
- ldrh r0, [r0, #0x20]
- tst r0, r1
- beq _0201B266
-_0201B262:
- mov r0, #0x1
- bx lr
-_0201B266:
- mov r0, #0x0
- bx lr
- .balign 4
-
- thumb_func_start FUN_0201B26C
-FUN_0201B26C: ; 0x0201B26C
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r0, r1, #0x0
- add r4, r2, #0x0
- add r6, r3, #0x0
- bl FUN_020B8474
- ldr r1, _0201B2A0 ; =0x021CEDD4
- add r0, r4, #0x0
- bl MI_Copy36B
- ldr r1, _0201B2A4 ; =0x021CED98
- mov r0, #0xa4
- ldr r2, [r1, #0x7c]
- bic r2, r0
- add r0, r6, #0x0
- str r2, [r1, #0x7c]
- bl FUN_020B844C
- bl FUN_020B849C
- add r0, r5, #0x0
- bl FUN_020BAC98
- pop {r4-r6, pc}
- nop
-_0201B2A0: .word 0x021CEDD4
-_0201B2A4: .word 0x021CED98
-
- thumb_func_start FUN_0201B2A8
-FUN_0201B2A8: ; 0x0201B2A8
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r0, r1, #0x0
- add r4, r2, #0x0
- add r6, r3, #0x0
- bl FUN_020B8474
- ldr r1, _0201B2E4 ; =0x021CEDD4
- add r0, r4, #0x0
- bl MI_Copy36B
- ldr r1, _0201B2E8 ; =0x021CED98
- mov r0, #0xa4
- ldr r2, [r1, #0x7c]
- bic r2, r0
- str r2, [r1, #0x7c]
- add r0, r6, #0x0
- bl FUN_020B844C
- bl FUN_020B849C
- mov r1, #0x0
- ldr r0, [r5, #0x4]
- add r2, r1, #0x0
- mov r3, #0x1
- bl FUN_020BAFB8
- bl FUN_020BB394
- pop {r4-r6, pc}
- .balign 4
-_0201B2E4: .word 0x021CEDD4
-_0201B2E8: .word 0x021CED98
-
- thumb_func_start FUN_0201B2EC
-FUN_0201B2EC: ; 0x0201B2EC
- push {r3, lr}
- sub sp, #0x8
- mov r1, #0x4
- str r1, [sp, #0x0]
- ldr r1, _0201B30C ; =FUN_0201B314
- mov r2, #0x2
- str r1, [sp, #0x4]
- mov r1, #0x0
- add r3, r1, #0x0
- bl FUN_02022318
- ldr r1, _0201B310 ; =0x021C4D44
- str r0, [r1, #0x0]
- add sp, #0x8
- pop {r3, pc}
- nop
-_0201B30C: .word FUN_0201B314
-_0201B310: .word 0x021C4D44
-
- thumb_func_start FUN_0201B314
-FUN_0201B314: ; 0x0201B314
- push {r3, lr}
- mov r0, #0x1
- add r1, r0, #0x0
- bl FUN_0201E6E4
- ldr r0, _0201B380 ; =0x04000008
- mov r1, #0x3
- ldrh r2, [r0, #0x0]
- bic r2, r1
- mov r1, #0x1
- orr r1, r2
- strh r1, [r0, #0x0]
- add r0, #0x58
- ldrh r2, [r0, #0x0]
- ldr r1, _0201B384 ; =0xFFFFCFFD
- and r2, r1
- strh r2, [r0, #0x0]
- add r2, r1, #0x2
- ldrh r3, [r0, #0x0]
- add r1, r1, #0x2
- and r3, r2
- mov r2, #0x10
- orr r2, r3
- strh r2, [r0, #0x0]
- ldrh r3, [r0, #0x0]
- ldr r2, _0201B388 ; =0x0000CFFB
- and r3, r2
- strh r3, [r0, #0x0]
- ldrh r3, [r0, #0x0]
- sub r2, #0x1c
- and r3, r1
- mov r1, #0x8
- orr r1, r3
- strh r1, [r0, #0x0]
- ldrh r1, [r0, #0x0]
- and r1, r2
- strh r1, [r0, #0x0]
- mov r0, #0x0
- add r1, r0, #0x0
- add r2, r0, #0x0
- add r3, r0, #0x0
- bl G3X_SetFog
- mov r0, #0x0
- ldr r2, _0201B38C ; =0x00007FFF
- add r1, r0, #0x0
- mov r3, #0x3f
- str r0, [sp, #0x0]
- bl G3X_SetClearColor
- ldr r1, _0201B390 ; =0xBFFF0000
- ldr r0, _0201B394 ; =0x04000580
- str r1, [r0, #0x0]
- pop {r3, pc}
- .balign 4
-_0201B380: .word 0x04000008
-_0201B384: .word 0xFFFFCFFD
-_0201B388: .word 0x0000CFFB
-_0201B38C: .word 0x00007FFF
-_0201B390: .word 0xBFFF0000
-_0201B394: .word 0x04000580
-
- thumb_func_start FUN_0201B398
-FUN_0201B398: ; 0x0201B398
- ldr r0, _0201B3A0 ; =0x021C4D44
- ldr r3, _0201B3A4 ; =FUN_020223BC
- ldr r0, [r0, #0x0]
- bx r3
- .balign 4
-_0201B3A0: .word 0x021C4D44
-_0201B3A4: .word FUN_020223BC
-
- thumb_func_start FUN_0201B3A8
-FUN_0201B3A8: ; 0x0201B3A8
- push {r4, lr}
- add r4, r1, #0x0
- bl FUN_020BC13C
- cmp r4, #0x0
- beq _0201B3BE
- add r1, r4, #0x0
- bl FUN_020B7790
- mov r0, #0x1
- pop {r4, pc}
-_0201B3BE:
- mov r0, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0201B3C4
-FUN_0201B3C4: ; 0x0201B3C4
- push {r3-r7, lr}
- sub sp, #0x10
- add r5, r0, #0x0
- bne _0201B3D2
- add sp, #0x10
- mov r0, #0x0
- pop {r3-r7, pc}
-_0201B3D2:
- mov r1, #0x0
- str r1, [r5, #0x8]
- mov r1, #0x1
- str r1, [sp, #0x8]
- str r1, [sp, #0x4]
- str r1, [sp, #0x0]
- cmp r5, #0x0
- beq _0201B4D0
- bl FUN_020B7E1C
- add r6, r0, #0x0
- add r0, r5, #0x0
- bl FUN_020B7E10
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl FUN_020B7CE4
- str r0, [sp, #0xc]
- cmp r6, #0x0
- beq _0201B412
- ldr r3, _0201B4D8 ; =0x021064B8
- mov r1, #0x0
- ldr r3, [r3, #0x0]
- add r0, r6, #0x0
- add r2, r1, #0x0
- blx r3
- add r7, r0, #0x0
- bne _0201B414
- mov r0, #0x0
- str r0, [sp, #0x8]
- b _0201B414
-_0201B412:
- mov r7, #0x0
-_0201B414:
- cmp r4, #0x0
- beq _0201B42E
- ldr r3, _0201B4D8 ; =0x021064B8
- add r0, r4, #0x0
- ldr r3, [r3, #0x0]
- mov r1, #0x1
- mov r2, #0x0
- blx r3
- add r6, r0, #0x0
- bne _0201B430
- mov r0, #0x0
- str r0, [sp, #0x4]
- b _0201B430
-_0201B42E:
- mov r6, #0x0
-_0201B430:
- ldr r0, [sp, #0xc]
- cmp r0, #0x0
- beq _0201B450
- ldr r3, _0201B4DC ; =0x021064C0
- mov r1, #0x2
- ldrh r2, [r5, #0x20]
- lsl r1, r1, #0xe
- ldr r3, [r3, #0x0]
- and r1, r2
- mov r2, #0x0
- blx r3
- add r4, r0, #0x0
- bne _0201B452
- mov r0, #0x0
- str r0, [sp, #0x0]
- b _0201B452
-_0201B450:
- mov r4, #0x0
-_0201B452:
- ldr r0, [sp, #0x8]
- cmp r0, #0x0
- bne _0201B46E
- ldr r1, _0201B4E0 ; =0x021064BC
- add r0, r7, #0x0
- ldr r1, [r1, #0x0]
- blx r1
- cmp r0, #0x0
- beq _0201B468
- bl ErrorHandling
-_0201B468:
- add sp, #0x10
- mov r0, #0x0
- pop {r3-r7, pc}
-_0201B46E:
- ldr r0, [sp, #0x4]
- cmp r0, #0x0
- bne _0201B48A
- ldr r1, _0201B4E0 ; =0x021064BC
- add r0, r6, #0x0
- ldr r1, [r1, #0x0]
- blx r1
- cmp r0, #0x0
- beq _0201B484
- bl ErrorHandling
-_0201B484:
- add sp, #0x10
- mov r0, #0x0
- pop {r3-r7, pc}
-_0201B48A:
- ldr r0, [sp, #0x0]
- cmp r0, #0x0
- bne _0201B4A6
- ldr r1, _0201B4E4 ; =0x021064C4
- add r0, r4, #0x0
- ldr r1, [r1, #0x0]
- blx r1
- cmp r0, #0x0
- beq _0201B4A0
- bl ErrorHandling
-_0201B4A0:
- add sp, #0x10
- mov r0, #0x0
- pop {r3-r7, pc}
-_0201B4A6:
- add r0, r5, #0x0
- add r1, r7, #0x0
- add r2, r6, #0x0
- bl FUN_020B7DFC
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_020B7CDC
- ldr r1, [r5, #0x4]
- add r0, r5, #0x0
- bl DC_FlushRange
- add r0, r5, #0x0
- mov r1, #0x1
- bl FUN_020B7D28
- add r0, r5, #0x0
- mov r1, #0x1
- bl FUN_020B7C78
-_0201B4D0:
- mov r0, #0x1
- add sp, #0x10
- pop {r3-r7, pc}
- nop
-_0201B4D8: .word 0x021064B8
-_0201B4DC: .word 0x021064C0
-_0201B4E0: .word 0x021064BC
-_0201B4E4: .word 0x021064C4
-
- thumb_func_start FUN_0201B4E8
-FUN_0201B4E8: ; 0x0201B4E8
- str r0, [r1, #0x0]
- add r0, r0, #0x4
- str r0, [r1, #0x8]
- str r0, [r1, #0x4]
- mov r0, #0x0
- str r0, [r1, #0xc]
- str r0, [r1, #0x10]
- str r0, [r1, #0x14]
- bx lr
- .balign 4
-
- thumb_func_start FUN_0201B4FC
-FUN_0201B4FC: ; 0x0201B4FC
- push {r3-r7, lr}
- add r5, r0, #0x0
- ldrh r0, [r5, #0x0]
- mov r7, #0x0
- cmp r0, #0x0
- ble _0201B52A
- add r4, r7, #0x0
- add r6, r7, #0x0
-_0201B50C:
- ldr r1, [r5, #0x24]
- add r0, r5, #0x0
- add r1, r1, r4
- bl FUN_0201B4E8
- ldr r0, [r5, #0x24]
- add r7, r7, #0x1
- add r1, r0, r4
- ldr r0, [r5, #0x20]
- add r4, #0x1c
- str r1, [r0, r6]
- ldrh r0, [r5, #0x0]
- add r6, r6, #0x4
- cmp r7, r0
- blt _0201B50C
-_0201B52A:
- mov r0, #0x0
- strh r0, [r5, #0x2]
- pop {r3-r7, pc}
-
- thumb_func_start FUN_0201B530
-FUN_0201B530: ; 0x0201B530
- ldrh r3, [r0, #0x2]
- ldrh r1, [r0, #0x0]
- cmp r3, r1
- bne _0201B53C
- mov r0, #0x0
- bx lr
-_0201B53C:
- ldr r2, [r0, #0x20]
- lsl r1, r3, #0x2
- ldr r2, [r2, r1]
- add r1, r3, #0x1
- strh r1, [r0, #0x2]
- add r0, r2, #0x0
- bx lr
- .balign 4
-
- thumb_func_start FUN_0201B54C
-FUN_0201B54C: ; 0x0201B54C
- ldrh r2, [r0, #0x2]
- cmp r2, #0x0
- bne _0201B556
- mov r0, #0x0
- bx lr
-_0201B556:
- str r0, [r1, #0x0]
- add r2, r0, #0x4
- str r2, [r1, #0x8]
- str r2, [r1, #0x4]
- mov r2, #0x0
- str r2, [r1, #0xc]
- str r2, [r1, #0x10]
- str r2, [r1, #0x14]
- ldrh r2, [r0, #0x2]
- sub r2, r2, #0x1
- strh r2, [r0, #0x2]
- ldr r2, [r0, #0x20]
- ldrh r0, [r0, #0x2]
- lsl r0, r0, #0x2
- str r1, [r2, r0]
- mov r0, #0x1
- bx lr
-
- thumb_func_start FUN_0201B578
-FUN_0201B578: ; 0x0201B578
- lsl r0, r0, #0x5
- add r0, #0x34
- bx lr
- .balign 4
-
- thumb_func_start FUN_0201B580
-FUN_0201B580: ; 0x0201B580
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- bne _0201B58C
- bl ErrorHandling
-_0201B58C:
- add r1, r4, #0x0
- add r1, #0x34
- lsl r0, r5, #0x2
- str r1, [r4, #0x20]
- add r0, r1, r0
- str r0, [r4, #0x24]
- strh r5, [r4, #0x0]
- mov r0, #0x0
- strh r0, [r4, #0x2]
- str r0, [r4, #0x28]
- add r0, r4, #0x0
- bl FUN_0201B5AC
- add r0, r4, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0201B5AC
-FUN_0201B5AC: ; 0x0201B5AC
- push {r4, lr}
- add r4, r0, #0x0
- bl FUN_0201B4FC
- str r4, [r4, #0x4]
- add r0, r4, #0x4
- str r0, [r4, #0xc]
- str r0, [r4, #0x8]
- mov r0, #0x0
- str r0, [r4, #0x10]
- str r0, [r4, #0x14]
- str r0, [r4, #0x18]
- ldr r0, [r4, #0xc]
- str r0, [r4, #0x2c]
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0201B5CC
-FUN_0201B5CC: ; 0x0201B5CC
- push {r4-r6, lr}
- add r5, r0, #0x0
- ldr r0, [r5, #0x28]
- cmp r0, #0x0
- bne _0201B608
- ldr r1, [r5, #0xc]
- add r4, r5, #0x4
- str r1, [r5, #0x2c]
- cmp r1, r4
- beq _0201B604
- mov r6, #0x0
-_0201B5E2:
- ldr r0, [r1, #0x8]
- str r0, [r5, #0x30]
- ldr r0, [r5, #0x2c]
- ldr r1, [r0, #0x18]
- cmp r1, #0x0
- bne _0201B5FA
- ldr r2, [r0, #0x14]
- cmp r2, #0x0
- beq _0201B5FC
- ldr r1, [r0, #0x10]
- blx r2
- b _0201B5FC
-_0201B5FA:
- str r6, [r0, #0x18]
-_0201B5FC:
- ldr r1, [r5, #0x30]
- str r1, [r5, #0x2c]
- cmp r1, r4
- bne _0201B5E2
-_0201B604:
- mov r0, #0x0
- str r0, [r1, #0x14]
-_0201B608:
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_0201B60C
-FUN_0201B60C: ; 0x0201B60C
- push {r3-r5, lr}
- add r4, r0, #0x0
- mov r5, #0x1
- str r5, [r4, #0x28]
- bl FUN_0201B620
- mov r1, #0x0
- str r1, [r4, #0x28]
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0201B620
-FUN_0201B620: ; 0x0201B620
- push {r3-r7, lr}
- add r5, r0, #0x0
- add r6, r1, #0x0
- add r7, r2, #0x0
- add r4, r3, #0x0
- bl FUN_0201B530
- cmp r0, #0x0
- bne _0201B636
- mov r0, #0x0
- pop {r3-r7, pc}
-_0201B636:
- str r4, [r0, #0xc]
- str r7, [r0, #0x10]
- str r6, [r0, #0x14]
- ldr r2, [r5, #0x2c]
- ldr r1, [r2, #0x14]
- cmp r1, #0x0
- beq _0201B656
- ldr r1, [r2, #0xc]
- cmp r1, r4
- bhi _0201B650
- mov r1, #0x1
- str r1, [r0, #0x18]
- b _0201B65A
-_0201B650:
- mov r1, #0x0
- str r1, [r0, #0x18]
- b _0201B65A
-_0201B656:
- mov r1, #0x0
- str r1, [r0, #0x18]
-_0201B65A:
- ldr r3, [r5, #0xc]
- add r2, r5, #0x4
- cmp r3, r2
- beq _0201B686
- ldr r4, [r0, #0xc]
-_0201B664:
- ldr r1, [r3, #0xc]
- cmp r1, r4
- bls _0201B680
- ldr r1, [r3, #0x4]
- str r1, [r0, #0x4]
- str r3, [r0, #0x8]
- ldr r1, [r3, #0x4]
- str r0, [r1, #0x8]
- str r0, [r3, #0x4]
- ldr r1, [r5, #0x30]
- cmp r3, r1
- bne _0201B69E
- str r0, [r5, #0x30]
- pop {r3-r7, pc}
-_0201B680:
- ldr r3, [r3, #0x8]
- cmp r3, r2
- bne _0201B664
-_0201B686:
- ldr r2, [r5, #0x30]
- add r1, r5, #0x4
- cmp r2, r1
- bne _0201B690
- str r0, [r5, #0x30]
-_0201B690:
- ldr r1, [r5, #0x8]
- str r1, [r0, #0x4]
- add r1, r5, #0x4
- str r1, [r0, #0x8]
- ldr r1, [r5, #0x8]
- str r0, [r1, #0x8]
- str r0, [r5, #0x8]
-_0201B69E:
- pop {r3-r7, pc}
-
- thumb_func_start FUN_0201B6A0
-FUN_0201B6A0: ; 0x0201B6A0
- add r1, r0, #0x0
- ldr r2, [r1, #0x0]
- ldr r0, [r2, #0x30]
- cmp r0, r1
- bne _0201B6AE
- ldr r0, [r1, #0x8]
- str r0, [r2, #0x30]
-_0201B6AE:
- ldr r2, [r1, #0x8]
- ldr r0, [r1, #0x4]
- ldr r3, _0201B6C0 ; =0x0201B54D
- str r2, [r0, #0x8]
- ldr r2, [r1, #0x4]
- ldr r0, [r1, #0x8]
- str r2, [r0, #0x4]
- ldr r0, [r1, #0x0]
- bx r3
- .balign 4
-_0201B6C0: .word 0x0201B54D
-
- thumb_func_start FUN_0201B6C4
-FUN_0201B6C4: ; 0x0201B6C4
- str r1, [r0, #0x14]
- bx lr
-
- thumb_func_start FUN_0201B6C8
-FUN_0201B6C8: ; 0x0201B6C8
- ldr r0, [r0, #0x10]
- bx lr
-
- thumb_func_start FUN_0201B6CC
-FUN_0201B6CC: ; 0x0201B6CC
- ldr r0, [r0, #0xc]
- bx lr
-
- thumb_func_start FUN_0201B6D0
-FUN_0201B6D0: ; 0x0201B6D0
- push {r4-r7, lr}
- sub sp, #0x34
- add r6, r1, #0x0
- add r4, r0, #0x0
- add r5, r2, #0x0
- ldmia r6!, {r0-r1}
- add r2, sp, #0x1c
- stmia r2!, {r0-r1}
- ldr r0, [r6, #0x0]
- add r4, #0x14
- str r0, [r2, #0x0]
- mov r0, #0x20
- ldrsh r0, [r4, r0]
- add r7, r3, #0x0
- mov r1, #0x1a
- str r0, [sp, #0x0]
- mov r0, #0x22
- ldrsh r0, [r4, r0]
- mov r2, #0x1c
- mov r3, #0x1e
- str r0, [sp, #0x4]
- add r0, sp, #0x28
- str r0, [sp, #0x8]
- mov r0, #0x18
- ldrsh r0, [r4, r0]
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldrsh r3, [r4, r3]
- bl FUN_0201B808
- add r0, sp, #0x1c
- bl FUN_020B8474
- ldr r1, _0201B764 ; =0x021CEDD4
- add r0, r5, #0x0
- bl MI_Copy36B
- ldr r1, _0201B768 ; =0x021CED98
- mov r0, #0xa4
- ldr r2, [r1, #0x7c]
- bic r2, r0
- add r0, r7, #0x0
- str r2, [r1, #0x7c]
- bl FUN_020B844C
- bl FUN_020B849C
- mov r1, #0x0
- mov r0, #0x11
- add r2, r1, #0x0
- bl FUN_020BB1C0
- ldr r0, [r4, #0x24]
- add r1, sp, #0x10
- str r0, [sp, #0x10]
- str r0, [sp, #0x14]
- str r0, [sp, #0x18]
- mov r0, #0x1b
- mov r2, #0x3
- bl FUN_020BB1C0
- add r0, sp, #0x28
- bl FUN_0201B82C
- add r4, r0, #0x0
- mov r2, #0x1
- mov r0, #0x12
- add r1, sp, #0xc
- str r2, [sp, #0xc]
- bl FUN_020BB1C0
- add r0, r4, #0x0
- add sp, #0x34
- pop {r4-r7, pc}
- .balign 4
-_0201B764: .word 0x021CEDD4
-_0201B768: .word 0x021CED98
-
- thumb_func_start FUN_0201B76C
-FUN_0201B76C: ; 0x0201B76C
- push {r3-r5, lr}
- sub sp, #0x28
- add r5, r0, #0x0
- add r4, r1, #0x0
- mov r0, #0x2
- ldrsh r0, [r4, r0]
- str r0, [sp, #0x0]
- mov r0, #0x4
- ldrsh r0, [r4, r0]
- str r0, [sp, #0x4]
- add r0, sp, #0x1c
- str r0, [sp, #0x8]
- mov r0, #0x0
- ldrsh r3, [r4, r0]
- add r1, r0, #0x0
- add r2, r0, #0x0
- bl FUN_0201B808
- add r0, r5, #0x0
- bl FUN_020B8474
- bl FUN_020B849C
- mov r1, #0x0
- mov r0, #0x11
- add r2, r1, #0x0
- bl FUN_020BB1C0
- ldr r0, [r4, #0x10]
- lsl r2, r0, #0xc
- ldr r0, [r4, #0xc]
- lsl r1, r0, #0xc
- ldr r0, [r4, #0x8]
- lsl r0, r0, #0xc
- str r0, [sp, #0x10]
- str r1, [sp, #0x14]
- str r2, [sp, #0x18]
- mov r0, #0x1b
- add r1, sp, #0x10
- mov r2, #0x3
- bl FUN_020BB1C0
- add r0, sp, #0x1c
- bl FUN_0201B82C
- add r4, r0, #0x0
- mov r2, #0x1
- mov r0, #0x12
- add r1, sp, #0xc
- str r2, [sp, #0xc]
- bl FUN_020BB1C0
- add r0, r4, #0x0
- add sp, #0x28
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0201B7DC
-FUN_0201B7DC: ; 0x0201B7DC
- push {r4-r6, lr}
- add r6, r3, #0x0
- add r4, r2, #0x0
- add r2, r6, #0x0
- add r5, r1, #0x0
- add r1, r6, #0x0
- add r2, #0x8
- bl FUN_0201B880
- add r2, r6, #0x0
- add r0, r5, #0x0
- add r1, r6, #0x2
- add r2, #0xc
- bl FUN_0201B880
- add r1, r6, #0x4
- add r6, #0x10
- add r0, r4, #0x0
- add r2, r6, #0x0
- bl FUN_0201B880
- pop {r4-r6, pc}
-
- thumb_func_start FUN_0201B808
-FUN_0201B808: ; 0x0201B808
- push {r3-r4}
- ldr r4, [sp, #0x10]
- strh r0, [r4, #0x0]
- strh r1, [r4, #0x2]
- ldr r1, _0201B828 ; =0xFFFFFFF8
- strh r2, [r4, #0x4]
- strh r3, [r4, #0x6]
- add r1, sp
- mov r0, #0x10
- ldrsh r0, [r1, r0]
- strh r0, [r4, #0x8]
- mov r0, #0x14
- ldrsh r0, [r1, r0]
- strh r0, [r4, #0xa]
- pop {r3-r4}
- bx lr
- .balign 4
-_0201B828: .word 0xFFFFFFF8
-
- thumb_func_start FUN_0201B82C
-FUN_0201B82C: ; 0x0201B82C
- push {r3-r4, lr}
- sub sp, #0xc
- add r4, r0, #0x0
- ldr r0, _0201B87C ; =0x000030C1
- mov r2, #0x1
- str r0, [sp, #0x4]
- mov r0, #0x29
- add r1, sp, #0x4
- str r2, [sp, #0x8]
- bl FUN_020BB1C0
- mov r0, #0x0
- str r0, [sp, #0x0]
- mov r0, #0x40
- add r1, sp, #0x0
- mov r2, #0x1
- bl FUN_020BB1C0
- mov r1, #0x0
- mov r0, #0x41
- add r2, r1, #0x0
- bl FUN_020BB1C0
- mov r0, #0x70
- add r1, r4, #0x0
- mov r2, #0x3
- bl FUN_020BB1C0
- bl FUN_020BB394
- add r4, sp, #0x8
-_0201B86A:
- add r0, r4, #0x0
- bl G3X_GetBoxTestResult
- cmp r0, #0x0
- bne _0201B86A
- ldr r0, [sp, #0x8]
- add sp, #0xc
- pop {r3-r4, pc}
- nop
-_0201B87C: .word 0x000030C1
-
- thumb_func_start FUN_0201B880
-FUN_0201B880: ; 0x0201B880
- push {r3-r4}
- ldr r4, _0201B8B4 ; =0x00007FFF
- mov r3, #0x0
- cmp r0, r4
- blo _0201B896
-_0201B88A:
- add r3, r3, #0x1
- lsl r3, r3, #0x18
- lsr r0, r0, #0x1
- lsr r3, r3, #0x18
- cmp r0, r4
- bhs _0201B88A
-_0201B896:
- strh r0, [r1, #0x0]
- mov r0, #0x1
- mov r1, #0x0
- str r0, [r2, #0x0]
- cmp r3, #0x0
- ble _0201B8AE
-_0201B8A2:
- ldr r0, [r2, #0x0]
- add r1, r1, #0x1
- lsl r0, r0, #0x1
- str r0, [r2, #0x0]
- cmp r1, r3
- blt _0201B8A2
-_0201B8AE:
- pop {r3-r4}
- bx lr
- nop
-_0201B8B4: .word 0x00007FFF
-
- thumb_func_start FUN_0201B8B8
-FUN_0201B8B8: ; 0x0201B8B8
- push {r4, lr}
- add r4, r0, #0x0
- ldrh r1, [r4, #0x0]
- ldr r0, _0201B8DC ; =0x0000FFFE
- cmp r1, r0
- beq _0201B8C8
- bl ErrorHandling
-_0201B8C8:
- ldrh r1, [r4, #0x0]
- ldr r0, _0201B8DC ; =0x0000FFFE
- cmp r1, r0
- bne _0201B8D8
- ldrh r0, [r4, #0x4]
- add r1, r4, #0x6
- lsl r0, r0, #0x1
- add r4, r1, r0
-_0201B8D8:
- add r0, r4, #0x0
- pop {r4, pc}
- .balign 4
-_0201B8DC: .word 0x0000FFFE
-
- thumb_func_start FUN_0201B8E0
-FUN_0201B8E0: ; 0x0201B8E0
- push {r4, lr}
- add r4, r0, #0x0
- ldrh r1, [r4, #0x0]
- ldr r0, _0201B8F4 ; =0x0000FFFE
- cmp r1, r0
- beq _0201B8F0
- bl ErrorHandling
-_0201B8F0:
- ldrh r0, [r4, #0x2]
- pop {r4, pc}
- .balign 4
-_0201B8F4: .word 0x0000FFFE
-
- thumb_func_start FUN_0201B8F8
-FUN_0201B8F8: ; 0x0201B8F8
- push {r3, lr}
- bl FUN_0201B8E0
- mov r1, #0xff
- lsl r1, r1, #0x8
- and r1, r0
- mov r0, #0x1
- lsl r0, r0, #0x8
- cmp r1, r0
- bne _0201B910
- mov r0, #0x1
- pop {r3, pc}
-_0201B910:
- mov r0, #0x0
- pop {r3, pc}
-
- thumb_func_start FUN_0201B914
-FUN_0201B914: ; 0x0201B914
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- ldrh r1, [r5, #0x0]
- ldr r0, _0201B938 ; =0x0000FFFE
- cmp r1, r0
- beq _0201B926
- bl ErrorHandling
-_0201B926:
- ldrh r0, [r5, #0x4]
- cmp r4, r0
- blo _0201B930
- bl ErrorHandling
-_0201B930:
- lsl r0, r4, #0x1
- add r0, r5, r0
- ldrh r0, [r0, #0x6]
- pop {r3-r5, pc}
- .balign 4
-_0201B938: .word 0x0000FFFE
-
- thumb_func_start FUN_0201B93C
-FUN_0201B93C: ; 0x0201B93C
- mov r1, #0x5a
- lsl r1, r1, #0x2
- cmp r0, r1
- blo _0201B948
- mov r0, #0x0
- bx lr
-_0201B948:
- lsl r1, r0, #0x2
- ldr r0, _0201B950 ; =0x020EDF50
- ldr r0, [r0, r1]
- bx lr
- .balign 4
-_0201B950: .word 0x020EDF50
-
- thumb_func_start FUN_0201B954
-FUN_0201B954: ; 0x0201B954
- mov r1, #0x5a
- lsl r1, r1, #0x2
- cmp r0, r1
- blo _0201B960
- mov r0, #0x0
- bx lr
-_0201B960:
- add r0, #0x5a
- lsl r1, r0, #0x2
- ldr r0, _0201B96C ; =0x020EDF50
- ldr r0, [r0, r1]
- bx lr
- nop
-_0201B96C: .word 0x020EDF50
-
- thumb_func_start FUN_0201B970
-FUN_0201B970: ; 0x0201B970
- push {r3, lr}
- mov r1, #0x5a
- lsl r1, r1, #0x2
- bl _s32_div_f
- ldr r0, _0201B984 ; =0x020EDF50
- lsl r1, r1, #0x2
- ldr r0, [r0, r1]
- pop {r3, pc}
- nop
-_0201B984: .word 0x020EDF50
-
- thumb_func_start FUN_0201B988
-FUN_0201B988: ; 0x0201B988
- push {r3, lr}
- mov r1, #0x5a
- lsl r1, r1, #0x2
- bl _s32_div_f
- add r1, #0x5a
- ldr r0, _0201B99C ; =0x020EDF50
- lsl r1, r1, #0x2
- ldr r0, [r0, r1]
- pop {r3, pc}
- .balign 4
-_0201B99C: .word 0x020EDF50
-
- thumb_func_start FUN_0201B9A0
-FUN_0201B9A0: ; 0x0201B9A0
- push {r3, lr}
- mov r1, #0x5a
- lsl r1, r1, #0x2
- bl _s32_div_f
- ldr r0, _0201B9B4 ; =0x020EDC7E
- lsl r1, r1, #0x1
- ldrh r0, [r0, r1]
- pop {r3, pc}
- nop
-_0201B9B4: .word 0x020EDC7E
-
- thumb_func_start FUN_0201B9B8
-FUN_0201B9B8: ; 0x0201B9B8
- push {r3, lr}
- lsl r0, r0, #0x4
- mov r1, #0x5a
- lsr r0, r0, #0x10
- lsl r1, r1, #0x2
- bl _s32_div_f
- ldr r0, _0201B9D0 ; =0x020EDF50
- lsl r1, r1, #0x2
- ldr r0, [r0, r1]
- pop {r3, pc}
- nop
-_0201B9D0: .word 0x020EDF50
-
- thumb_func_start FUN_0201B9D4
-FUN_0201B9D4: ; 0x0201B9D4
- ldr r0, _0201B9DC ; =0x021C4D48
- ldr r0, [r0, #0x0]
- bx lr
- nop
-_0201B9DC: .word 0x021C4D48
-
- thumb_func_start FUN_0201B9E0
-FUN_0201B9E0: ; 0x0201B9E0
- ldr r1, _0201B9E8 ; =0x021C4D48
- str r0, [r1, #0x0]
- bx lr
- nop
-_0201B9E8: .word 0x021C4D48
-
- thumb_func_start FUN_0201B9EC
-FUN_0201B9EC: ; 0x0201B9EC
- ldr r1, _0201BA04 ; =0x021C4D48
- ldr r0, _0201BA08 ; =0x41C64E6D
- ldr r2, [r1, #0x0]
- add r3, r2, #0x0
- mul r3, r0
- ldr r0, _0201BA0C ; =0x00006073
- add r0, r3, r0
- str r0, [r1, #0x0]
- lsr r0, r0, #0x10
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bx lr
- .balign 4
-_0201BA04: .word 0x021C4D48
-_0201BA08: .word 0x41C64E6D
-_0201BA0C: .word 0x00006073
-
- thumb_func_start FUN_0201BA10
-FUN_0201BA10: ; 0x0201BA10
- ldr r1, _0201BA18 ; =0x6C078965
- mul r1, r0
- add r0, r1, #0x1
- bx lr
- .balign 4
-_0201BA18: .word 0x6C078965
-
- thumb_func_start FUN_0201BA1C
-FUN_0201BA1C: ; 0x0201BA1C
- push {r4-r5}
- ldr r1, _0201BA50 ; =0x021C4D48
- mov r4, #0x27
- str r0, [r1, #0x4]
- ldr r1, _0201BA54 ; =0x02105BA8
- mov r0, #0x1
- str r0, [r1, #0x0]
- ldr r1, _0201BA58 ; =0x021C4D50
- ldr r3, _0201BA5C ; =0x6C078965
- lsl r4, r4, #0x4
-_0201BA30:
- sub r2, r1, #0x4
- ldr r5, [r2, #0x0]
- lsr r2, r5, #0x1e
- eor r2, r5
- add r5, r2, #0x0
- mul r5, r3
- add r2, r0, r5
- add r0, r0, #0x1
- stmia r1!, {r2}
- cmp r0, r4
- blt _0201BA30
- ldr r1, _0201BA54 ; =0x02105BA8
- str r0, [r1, #0x0]
- pop {r4-r5}
- bx lr
- nop
-_0201BA50: .word 0x021C4D48
-_0201BA54: .word 0x02105BA8
-_0201BA58: .word 0x021C4D50
-_0201BA5C: .word 0x6C078965
-
- thumb_func_start FUN_0201BA60
-FUN_0201BA60: ; 0x0201BA60
- push {r3-r7, lr}
- ldr r0, _0201BB44 ; =0x02105BA8
- ldr r1, [r0, #0x0]
- mov r0, #0x27
- lsl r0, r0, #0x4
- cmp r1, r0
- blt _0201BB18
- add r0, r0, #0x1
- cmp r1, r0
- bne _0201BA7A
- ldr r0, _0201BB48 ; =0x00001571
- bl FUN_0201BA1C
-_0201BA7A:
- ldr r4, _0201BB4C ; =0x021C4D4C
- ldr r1, _0201BB50 ; =0x02105BAC
- ldr r5, _0201BB54 ; =0x7FFFFFFF
- ldr r6, _0201BB58 ; =0x00000634
- mov r0, #0x0
-_0201BA84:
- mov r2, #0x2
- ldr r3, [r4, #0x0]
- lsl r2, r2, #0x1e
- and r3, r2
- ldr r2, [r4, #0x4]
- add r0, r0, #0x1
- and r2, r5
- orr r3, r2
- lsr r7, r3, #0x1
- lsl r3, r3, #0x1f
- ldr r2, [r4, r6]
- lsr r3, r3, #0x1d
- ldr r3, [r1, r3]
- eor r2, r7
- eor r2, r3
- stmia r4!, {r2}
- cmp r0, #0xe3
- blt _0201BA84
- ldr r1, _0201BB5C ; =0x0000026F
- cmp r0, r1
- bge _0201BAE4
- ldr r2, _0201BB4C ; =0x021C4D4C
- lsl r1, r0, #0x2
- add r1, r2, r1
- mov r2, #0xe3
- ldr r4, _0201BB50 ; =0x02105BAC
- ldr r3, _0201BB5C ; =0x0000026F
- lsl r2, r2, #0x2
-_0201BABC:
- mov r5, #0x2
- ldr r6, [r1, #0x0]
- lsl r5, r5, #0x1e
- and r5, r6
- ldr r7, [r1, #0x4]
- ldr r6, _0201BB54 ; =0x7FFFFFFF
- add r0, r0, #0x1
- and r6, r7
- orr r6, r5
- lsr r5, r6, #0x1
- sub r7, r1, r2
- lsl r6, r6, #0x1f
- ldr r7, [r7, #0x0]
- lsr r6, r6, #0x1d
- ldr r6, [r4, r6]
- eor r5, r7
- eor r5, r6
- stmia r1!, {r5}
- cmp r0, r3
- blt _0201BABC
-_0201BAE4:
- ldr r2, _0201BB60 ; =0x021C56C8
- mov r0, #0x2
- ldr r1, [r2, #0x40]
- lsl r0, r0, #0x1e
- add r3, r1, #0x0
- ldr r1, _0201BB64 ; =0x021C4D48
- and r3, r0
- ldr r1, [r1, #0x4]
- sub r0, r0, #0x1
- and r0, r1
- add r4, r3, #0x0
- orr r4, r0
- ldr r0, _0201BB68 ; =0x021C5348
- ldr r1, [r0, #0x34]
- lsr r0, r4, #0x1
- add r3, r1, #0x0
- eor r3, r0
- lsl r0, r4, #0x1f
- lsr r1, r0, #0x1d
- ldr r0, _0201BB50 ; =0x02105BAC
- ldr r0, [r0, r1]
- mov r1, #0x0
- eor r0, r3
- str r0, [r2, #0x40]
- ldr r0, _0201BB44 ; =0x02105BA8
- str r1, [r0, #0x0]
-_0201BB18:
- ldr r0, _0201BB44 ; =0x02105BA8
- ldr r2, [r0, #0x0]
- add r1, r2, #0x1
- str r1, [r0, #0x0]
- ldr r0, _0201BB4C ; =0x021C4D4C
- lsl r1, r2, #0x2
- ldr r1, [r0, r1]
- lsr r0, r1, #0xb
- add r2, r1, #0x0
- eor r2, r0
- ldr r0, _0201BB6C ; =0x9D2C5680
- lsl r1, r2, #0x7
- and r0, r1
- eor r2, r0
- ldr r0, _0201BB70 ; =0xEFC60000
- lsl r1, r2, #0xf
- and r0, r1
- add r1, r2, #0x0
- eor r1, r0
- lsr r0, r1, #0x12
- eor r0, r1
- pop {r3-r7, pc}
- .balign 4
-_0201BB44: .word 0x02105BA8
-_0201BB48: .word 0x00001571
-_0201BB4C: .word 0x021C4D4C
-_0201BB50: .word 0x02105BAC
-_0201BB54: .word 0x7FFFFFFF
-_0201BB58: .word 0x00000634
-_0201BB5C: .word 0x0000026F
-_0201BB60: .word 0x021C56C8
-_0201BB64: .word 0x021C4D48
-_0201BB68: .word 0x021C5348
-_0201BB6C: .word 0x9D2C5680
-_0201BB70: .word 0xEFC60000
-
- thumb_func_start FUN_0201BB74
-FUN_0201BB74: ; 0x0201BB74
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r0, sp, #0x0
- ldrb r0, [r0, #0x10]
- add r4, r2, #0x0
- add r6, r3, #0x0
- cmp r0, #0x1
- bne _0201BB8E
- ldr r0, _0201BBC8 ; =0x0000FFFF
- mul r0, r1
- lsl r0, r0, #0x8
- lsr r1, r0, #0x10
- b _0201BBA2
-_0201BB8E:
- cmp r0, #0x2
- bne _0201BBA2
- ldr r0, _0201BBC8 ; =0x0000FFFF
- mul r0, r1
- mov r1, #0x5a
- lsl r1, r1, #0x2
- bl _u32_div_f
- lsl r0, r0, #0x10
- lsr r1, r0, #0x10
-_0201BBA2:
- asr r0, r1, #0x4
- lsl r3, r0, #0x1
- lsl r1, r3, #0x1
- ldr r2, _0201BBCC ; =0x020FFA38
- add r3, r3, #0x1
- lsl r3, r3, #0x1
- ldrsh r1, [r2, r1]
- ldrsh r2, [r2, r3]
- add r0, r5, #0x0
- bl MTX_Rot22_
- add r0, r5, #0x0
- add r1, r5, #0x0
- add r2, r4, #0x0
- add r3, r6, #0x0
- bl MTX_ScaleApply22
- pop {r4-r6, pc}
- nop
-_0201BBC8: .word 0x0000FFFF
-_0201BBCC: .word 0x020FFA38
-
- thumb_func_start FUN_0201BBD0
-FUN_0201BBD0: ; 0x0201BBD0
- push {r3-r7, lr}
- sub sp, #0x38
- lsl r5, r0, #0xc
- lsl r4, r1, #0xc
- mov r1, #0x0
- lsl r0, r2, #0xc
- lsl r6, r3, #0xc
- str r1, [sp, #0x34]
- str r0, [sp, #0x0]
- str r0, [sp, #0x20]
- str r1, [sp, #0x28]
- str r1, [sp, #0x8]
- str r1, [sp, #0xc]
- asr r1, r5, #0x1f
- add r0, r5, #0x0
- asr r3, r6, #0x1f
- add r2, r6, #0x0
- str r5, [sp, #0x2c]
- str r4, [sp, #0x30]
- str r6, [sp, #0x24]
- bl _ll_mul
- str r0, [sp, #0x4]
- add r2, r4, #0x0
- ldr r0, [sp, #0x20]
- add r7, r1, #0x0
- asr r1, r0, #0x1f
- asr r3, r2, #0x1f
- bl _ll_mul
- mov r2, #0x2
- ldr r3, [sp, #0x4]
- lsl r2, r2, #0xa
- add r3, r3, r2
- ldr r2, _0201BC80 ; =0x00000000
- str r4, [sp, #0x2c]
- adc r7, r2
- lsl r2, r7, #0x14
- lsr r3, r3, #0xc
- orr r3, r2
- mov r2, #0x2
- lsl r2, r2, #0xa
- add r0, r0, r2
- ldr r2, _0201BC80 ; =0x00000000
- str r5, [sp, #0x30]
- adc r1, r2
- lsl r1, r1, #0x14
- lsr r0, r0, #0xc
- orr r0, r1
- sub r2, r3, r0
- ldr r1, [sp, #0x8]
- ldr r0, [sp, #0xc]
- str r2, [sp, #0x10]
- add r0, r1, r0
- add r7, r2, r0
- mov r0, #0x0
- str r0, [sp, #0x34]
- add r0, sp, #0x2c
- add r1, sp, #0x14
- bl VEC_Normalize
- mov r1, #0x0
- ldr r0, [sp, #0x0]
- str r1, [sp, #0x34]
- str r0, [sp, #0x20]
- str r1, [sp, #0x28]
- add r0, sp, #0x20
- add r1, sp, #0x2c
- add r2, sp, #0x8
- str r5, [sp, #0x2c]
- str r4, [sp, #0x30]
- str r6, [sp, #0x24]
- bl VEC_Subtract
- add r0, sp, #0x14
- add r1, sp, #0x8
- bl VEC_DotProduct
- asr r0, r0, #0xc
- bpl _0201BC72
- neg r0, r0
-_0201BC72:
- cmp r7, #0x0
- bgt _0201BC7C
- mov r1, #0x0
- mvn r1, r1
- mul r0, r1
-_0201BC7C:
- add sp, #0x38
- pop {r3-r7, pc}
- .balign 4
-_0201BC80: .word 0x00000000
-
- thumb_func_start FUN_0201BC84
-FUN_0201BC84: ; 0x0201BC84
- push {r3-r5, lr}
- lsl r0, r0, #0xd
- add r4, r1, #0x0
- ldr r2, _0201BCB4 ; =0x0000323D
- asr r1, r0, #0x1f
- mov r3, #0x0
- bl _ll_mul
- add r5, r0, #0x0
- ldr r0, _0201BCB8 ; =0x0000FFFF
- mov r2, #0x2
- mov r3, #0x0
- lsl r2, r2, #0xa
- mul r0, r4
- add r2, r5, r2
- adc r1, r3
- lsl r1, r1, #0x14
- lsr r2, r2, #0xc
- orr r2, r1
- asr r1, r2, #0xc
- bl _s32_div_f
- pop {r3-r5, pc}
- nop
-_0201BCB4: .word 0x0000323D
-_0201BCB8: .word 0x0000FFFF
-
- thumb_func_start FUN_0201BCBC
-FUN_0201BCBC: ; 0x0201BCBC
- ldr r1, _0201BCC4 ; =0x02105BB4
- str r0, [r1, #0x0]
- bx lr
- nop
-_0201BCC4: .word 0x02105BB4
-
- thumb_func_start FUN_0201BCC8
-FUN_0201BCC8: ; 0x0201BCC8
- push {r4-r6, lr}
- ldr r4, _0201BCF8 ; =0x021C5714
- mov r5, #0x0
-_0201BCCE:
- ldr r3, [r4, #0x0]
- cmp r3, #0x0
- bne _0201BCE8
- ldr r6, _0201BCF8 ; =0x021C5714
- lsl r4, r5, #0x2
- bl FUN_0200CA7C
- str r0, [r6, r4]
- ldr r0, [r6, r4]
- cmp r0, #0x0
- bne _0201BCF0
- mov r5, #0x8
- b _0201BCF0
-_0201BCE8:
- add r5, r5, #0x1
- add r4, r4, #0x4
- cmp r5, #0x8
- blt _0201BCCE
-_0201BCF0:
- lsl r0, r5, #0x18
- lsr r0, r0, #0x18
- pop {r4-r6, pc}
- nop
-_0201BCF8: .word 0x021C5714
-
- thumb_func_start FUN_0201BCFC
-FUN_0201BCFC: ; 0x0201BCFC
- push {r4-r6, lr}
- add r5, r0, #0x0
- cmp r5, #0x8
- blo _0201BD08
- bl ErrorHandling
-_0201BD08:
- ldr r6, _0201BD40 ; =0x021C5714
- lsl r4, r5, #0x2
- ldr r0, [r6, r4]
- cmp r0, #0x0
- bne _0201BD16
- bl ErrorHandling
-_0201BD16:
- cmp r5, #0x8
- bhs _0201BD3C
- ldr r0, [r6, r4]
- cmp r0, #0x0
- beq _0201BD3C
- bl FUN_0201B6C8
- add r5, r0, #0x0
- beq _0201BD32
- bl FUN_0201C238
- add r0, r5, #0x0
- bl FUN_02016A18
-_0201BD32:
- ldr r0, [r6, r4]
- bl FUN_0200CAB4
- mov r0, #0x0
- str r0, [r6, r4]
-_0201BD3C:
- pop {r4-r6, pc}
- nop
-_0201BD40: .word 0x021C5714
-
- thumb_func_start FUN_0201BD44
-FUN_0201BD44: ; 0x0201BD44
- lsl r1, r0, #0x2
- ldr r0, _0201BD58 ; =0x021C5714
- ldr r0, [r0, r1]
- cmp r0, #0x0
- beq _0201BD52
- mov r0, #0x1
- bx lr
-_0201BD52:
- mov r0, #0x0
- bx lr
- nop
-_0201BD58: .word 0x021C5714
-
- thumb_func_start FUN_0201BD5C
-FUN_0201BD5C: ; 0x0201BD5C
- mov r1, #0x0
- ldr r2, _0201BD6C ; =0x021C5714
- add r0, r1, #0x0
-_0201BD62:
- add r1, r1, #0x1
- stmia r2!, {r0}
- cmp r1, #0x8
- blt _0201BD62
- bx lr
- .balign 4
-_0201BD6C: .word 0x021C5714
-
- thumb_func_start FUN_0201BD70
-FUN_0201BD70: ; 0x0201BD70
- push {r3, lr}
- bl FUN_0201BD44
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- pop {r3, pc}
-
- thumb_func_start FUN_0201BD7C
-FUN_0201BD7C: ; 0x0201BD7C
- ldr r3, _0201BD80 ; =FUN_0201BCFC
- bx r3
- .balign 4
-_0201BD80: .word FUN_0201BCFC
-
- thumb_func_start FUN_0201BD84
-FUN_0201BD84: ; 0x0201BD84
- push {r3, lr}
- sub sp, #0x18
- str r0, [sp, #0x4]
- lsl r0, r3, #0x18
- lsr r3, r0, #0x18
- ldr r0, [sp, #0x20]
- str r2, [sp, #0x0]
- add r2, sp, #0x0
- strb r1, [r2, #0x9]
- lsl r0, r0, #0x18
- strb r3, [r2, #0xa]
- lsr r0, r0, #0x18
- strb r0, [r2, #0xb]
- strb r3, [r2, #0xc]
- strb r0, [r2, #0xd]
- ldr r0, _0201BDDC ; =0x02105BB4
- lsl r1, r1, #0x3
- ldr r0, [r0, #0x0]
- add r1, r0, r1
- ldrb r0, [r1, #0x2]
- strb r0, [r2, #0xe]
- ldrb r0, [r1, #0x3]
- strb r0, [r2, #0xf]
- ldrb r0, [r1, #0x4]
- strb r0, [r2, #0x10]
- ldrb r0, [r1, #0x5]
- strb r0, [r2, #0x11]
- ldrb r0, [r1, #0x6]
- strb r0, [r2, #0x12]
- ldrb r0, [r1, #0x7]
- ldr r1, [sp, #0x24]
- strb r0, [r2, #0x13]
- mov r0, #0x0
- strh r0, [r2, #0x14]
- strb r0, [r2, #0x16]
- mov r0, #0xff
- strb r0, [r2, #0x17]
- ldr r2, [sp, #0x28]
- add r0, sp, #0x0
- bl FUN_0201BE98
- add sp, #0x18
- pop {r3, pc}
- nop
-_0201BDDC: .word 0x02105BB4
-
- thumb_func_start FUN_0201BDE0
-FUN_0201BDE0: ; 0x0201BDE0
- push {r3, lr}
- sub sp, #0x18
- str r0, [sp, #0x4]
- lsl r0, r3, #0x18
- lsr r3, r0, #0x18
- ldr r0, [sp, #0x20]
- str r2, [sp, #0x0]
- add r2, sp, #0x0
- strb r1, [r2, #0x9]
- lsl r0, r0, #0x18
- strb r3, [r2, #0xa]
- lsr r0, r0, #0x18
- strb r0, [r2, #0xb]
- strb r3, [r2, #0xc]
- strb r0, [r2, #0xd]
- ldr r0, _0201BE38 ; =0x02105BB4
- lsl r1, r1, #0x3
- ldr r0, [r0, #0x0]
- add r1, r0, r1
- ldrb r0, [r1, #0x2]
- strb r0, [r2, #0xe]
- ldrb r0, [r1, #0x3]
- strb r0, [r2, #0xf]
- ldrb r0, [r1, #0x4]
- ldr r1, [sp, #0x28]
- strb r0, [r2, #0x10]
- lsr r0, r1, #0x10
- strb r0, [r2, #0x11]
- lsr r0, r1, #0x8
- strb r0, [r2, #0x13]
- strb r1, [r2, #0x12]
- mov r0, #0x0
- strh r0, [r2, #0x14]
- strb r0, [r2, #0x16]
- mov r0, #0xff
- strb r0, [r2, #0x17]
- ldr r1, [sp, #0x24]
- ldr r2, [sp, #0x2c]
- add r0, sp, #0x0
- bl FUN_0201BE98
- add sp, #0x18
- pop {r3, pc}
- nop
-_0201BE38: .word 0x02105BB4
-
- thumb_func_start FUN_0201BE3C
-FUN_0201BE3C: ; 0x0201BE3C
- push {r3, lr}
- sub sp, #0x18
- str r0, [sp, #0x4]
- lsl r0, r3, #0x18
- lsr r3, r0, #0x18
- ldr r0, [sp, #0x20]
- str r2, [sp, #0x0]
- add r2, sp, #0x0
- strb r1, [r2, #0x9]
- lsl r0, r0, #0x18
- strb r3, [r2, #0xa]
- lsr r0, r0, #0x18
- strb r0, [r2, #0xb]
- strb r3, [r2, #0xc]
- strb r0, [r2, #0xd]
- ldr r0, [sp, #0x2c]
- strb r0, [r2, #0xe]
- ldr r0, [sp, #0x30]
- strb r0, [r2, #0xf]
- ldr r0, _0201BE94 ; =0x02105BB4
- ldr r3, [r0, #0x0]
- lsl r0, r1, #0x3
- add r0, r3, r0
- ldrb r0, [r0, #0x4]
- ldr r1, [sp, #0x28]
- strb r0, [r2, #0x10]
- lsr r0, r1, #0x10
- strb r0, [r2, #0x11]
- lsr r0, r1, #0x8
- strb r0, [r2, #0x13]
- strb r1, [r2, #0x12]
- mov r0, #0x0
- strh r0, [r2, #0x14]
- strb r0, [r2, #0x16]
- mov r0, #0xff
- strb r0, [r2, #0x17]
- ldr r1, [sp, #0x24]
- ldr r2, [sp, #0x34]
- add r0, sp, #0x0
- bl FUN_0201BE98
- add sp, #0x18
- pop {r3, pc}
- nop
-_0201BE94: .word 0x02105BB4
-
- thumb_func_start FUN_0201BE98
-FUN_0201BE98: ; 0x0201BE98
- push {r3-r7, lr}
- add r7, r0, #0x0
- ldr r0, _0201BFD0 ; =0x02105BB4
- add r6, r1, #0x0
- ldr r0, [r0, #0x0]
- add r5, r2, #0x0
- cmp r0, #0x0
- bne _0201BEAC
- mov r0, #0xff
- pop {r3-r7, pc}
-_0201BEAC:
- mov r0, #0x0
- mov r1, #0x30
- bl FUN_02016998
- add r4, r0, #0x0
- mov r1, #0x1
- add r0, #0x23
- strb r1, [r0, #0x0]
- add r0, r4, #0x0
- mov r3, #0x0
- add r0, #0x24
- strb r3, [r0, #0x0]
- add r0, r4, #0x0
- add r0, #0x25
- ldrb r2, [r0, #0x0]
- mov r0, #0x7f
- bic r2, r0
- lsl r0, r6, #0x18
- lsr r1, r0, #0x18
- mov r0, #0x7f
- and r0, r1
- add r1, r2, #0x0
- orr r1, r0
- add r0, r4, #0x0
- add r0, #0x25
- strb r1, [r0, #0x0]
- add r0, r4, #0x0
- add r0, #0x26
- strb r3, [r0, #0x0]
- add r0, r4, #0x0
- add r0, #0x27
- strb r3, [r0, #0x0]
- add r0, r4, #0x0
- add r0, #0x29
- strb r3, [r0, #0x0]
- add r1, r3, #0x0
-_0201BEF4:
- add r0, r4, r3
- add r3, r3, #0x1
- strb r1, [r0, #0x1c]
- cmp r3, #0x7
- blt _0201BEF4
- add r3, r7, #0x0
- add r2, r4, #0x0
- ldmia r3!, {r0-r1}
- stmia r2!, {r0-r1}
- ldmia r3!, {r0-r1}
- stmia r2!, {r0-r1}
- ldmia r3!, {r0-r1}
- stmia r2!, {r0-r1}
- ldr r0, [r4, #0x0]
- bl FUN_02021F2C
- str r0, [r4, #0x0]
- ldr r0, _0201BFD4 ; =0x021C570C
- str r5, [r4, #0x18]
- mov r1, #0x0
- strb r1, [r0, #0x0]
- add r0, r4, #0x0
- bl FUN_0201C1A8
- cmp r6, #0xff
- beq _0201BF74
- cmp r6, #0x0
- beq _0201BF74
- add r0, r4, #0x0
- add r0, #0x25
- ldrb r2, [r0, #0x0]
- mov r1, #0x7f
- add r0, r2, #0x0
- bic r0, r1
- lsl r1, r2, #0x19
- lsr r1, r1, #0x19
- add r1, #0xff
- lsl r1, r1, #0x18
- lsr r2, r1, #0x18
- mov r1, #0x7f
- and r1, r2
- orr r1, r0
- add r0, r4, #0x0
- add r0, #0x25
- strb r1, [r0, #0x0]
- add r0, r4, #0x0
- add r0, #0x25
- ldrb r1, [r0, #0x0]
- mov r0, #0x80
- mov r2, #0x1
- orr r1, r0
- add r0, r4, #0x0
- add r0, #0x25
- strb r1, [r0, #0x0]
- ldr r0, _0201BFD8 ; =FUN_0201BFDC
- add r1, r4, #0x0
- bl FUN_0201BCC8
- add r1, r4, #0x0
- add r1, #0x28
- strb r0, [r1, #0x0]
- add r4, #0x28
- ldrb r0, [r4, #0x0]
- pop {r3-r7, pc}
-_0201BF74:
- add r0, r4, #0x0
- add r0, #0x25
- ldrb r1, [r0, #0x0]
- mov r0, #0x7f
- mov r5, #0x0
- bic r1, r0
- add r0, r4, #0x0
- add r0, #0x25
- strb r1, [r0, #0x0]
- add r0, r4, #0x0
- add r0, #0x25
- ldrb r1, [r0, #0x0]
- mov r0, #0x80
- bic r1, r0
- add r0, r4, #0x0
- add r0, #0x25
- strb r1, [r0, #0x0]
- ldrb r0, [r7, #0x11]
- ldrb r1, [r7, #0x12]
- ldrb r2, [r7, #0x13]
- bl FUN_0201C05C
- mov r7, #0x1
- lsl r7, r7, #0xa
-_0201BFA4:
- add r0, r4, #0x0
- bl FUN_0201C048
- cmp r0, #0x1
- beq _0201BFB4
- add r5, r5, #0x1
- cmp r5, r7
- blo _0201BFA4
-_0201BFB4:
- cmp r6, #0xff
- beq _0201BFBE
- ldr r0, [r4, #0x4]
- bl FUN_020191D0
-_0201BFBE:
- add r0, r4, #0x0
- bl FUN_0201C238
- add r0, r4, #0x0
- bl FUN_02016A18
- mov r0, #0x8
- pop {r3-r7, pc}
- nop
-_0201BFD0: .word 0x02105BB4
-_0201BFD4: .word 0x021C570C
-_0201BFD8: .word FUN_0201BFDC
-
- thumb_func_start FUN_0201BFDC
-FUN_0201BFDC: ; 0x0201BFDC
- push {r4, lr}
- ldr r0, _0201C044 ; =0x021C570C
- add r4, r1, #0x0
- ldrb r0, [r0, #0x0]
- cmp r0, #0x0
- bne _0201C042
- add r0, r4, #0x0
- add r0, #0x29
- ldrb r0, [r0, #0x0]
- cmp r0, #0x0
- bne _0201C036
- mov r0, #0x0
- strh r0, [r4, #0x2a]
- ldrb r0, [r4, #0x11]
- ldrb r1, [r4, #0x12]
- ldrb r2, [r4, #0x13]
- bl FUN_0201C05C
- add r0, r4, #0x0
- bl FUN_0201C048
- cmp r0, #0x0
- beq _0201C014
- cmp r0, #0x1
- beq _0201C02C
- cmp r0, #0x3
- beq _0201C01A
- pop {r4, pc}
-_0201C014:
- ldr r0, [r4, #0x4]
- bl FUN_020191D0
-_0201C01A:
- ldr r2, [r4, #0x18]
- cmp r2, #0x0
- beq _0201C042
- ldrh r1, [r4, #0x2a]
- add r0, r4, #0x0
- blx r2
- add r4, #0x29
- strb r0, [r4, #0x0]
- pop {r4, pc}
-_0201C02C:
- add r4, #0x28
- ldrb r0, [r4, #0x0]
- bl FUN_0201BCFC
- pop {r4, pc}
-_0201C036:
- ldrh r1, [r4, #0x2a]
- ldr r2, [r4, #0x18]
- add r0, r4, #0x0
- blx r2
- add r4, #0x29
- strb r0, [r4, #0x0]
-_0201C042:
- pop {r4, pc}
- .balign 4
-_0201C044: .word 0x021C570C
-
- thumb_func_start FUN_0201C048
-FUN_0201C048: ; 0x0201C048
- push {r4, lr}
- add r4, r0, #0x0
-_0201C04C:
- ldrb r0, [r4, #0x9]
- add r1, r4, #0x0
- bl FUN_02002DB0
- cmp r0, #0x2
- beq _0201C04C
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0201C05C
-FUN_0201C05C: ; 0x0201C05C
- push {r3-r7, lr}
- sub sp, #0x30
- ldr r3, _0201C0F8 ; =0x021C570C
- mov r5, #0x0
- str r5, [sp, #0x20]
- str r0, [sp, #0x24]
- str r2, [sp, #0x28]
- str r1, [sp, #0x2c]
- strh r1, [r3, #0x6]
- strh r0, [r3, #0x2]
- add r0, sp, #0x20
- strh r2, [r3, #0x4]
- str r5, [sp, #0x14]
- str r0, [sp, #0x8]
- mov r12, r0
- mov lr, r0
- str r0, [sp, #0x18]
-_0201C07E:
- mov r0, #0x0
- str r0, [sp, #0x10]
- ldr r0, [sp, #0x18]
- str r0, [sp, #0x4]
- ldr r0, [sp, #0x8]
- ldr r0, [r0, #0x0]
- str r0, [sp, #0x1c]
-_0201C08C:
- mov r0, #0x0
- str r0, [sp, #0xc]
- mov r0, lr
- str r0, [sp, #0x0]
- ldr r0, [sp, #0x4]
- ldr r0, [r0, #0x0]
- lsl r7, r0, #0x4
-_0201C09A:
- ldr r0, [sp, #0x0]
- mov r3, #0x0
- ldr r0, [r0, #0x0]
- mov r4, r12
- lsl r6, r0, #0x8
-_0201C0A4:
- ldr r0, [r4, #0x0]
- add r1, r7, #0x0
- lsl r0, r0, #0xc
- orr r0, r6
- orr r1, r0
- ldr r0, [sp, #0x1c]
- add r3, r3, #0x1
- add r2, r0, #0x0
- orr r2, r1
- lsl r1, r5, #0x1
- ldr r0, _0201C0FC ; =0x021C5734
- add r5, r5, #0x1
- add r4, r4, #0x4
- strh r2, [r0, r1]
- cmp r3, #0x4
- blt _0201C0A4
- ldr r0, [sp, #0x0]
- add r0, r0, #0x4
- str r0, [sp, #0x0]
- ldr r0, [sp, #0xc]
- add r0, r0, #0x1
- str r0, [sp, #0xc]
- cmp r0, #0x4
- blt _0201C09A
- ldr r0, [sp, #0x4]
- add r0, r0, #0x4
- str r0, [sp, #0x4]
- ldr r0, [sp, #0x10]
- add r0, r0, #0x1
- str r0, [sp, #0x10]
- cmp r0, #0x4
- blt _0201C08C
- ldr r0, [sp, #0x8]
- add r0, r0, #0x4
- str r0, [sp, #0x8]
- ldr r0, [sp, #0x14]
- add r0, r0, #0x1
- str r0, [sp, #0x14]
- cmp r0, #0x4
- blt _0201C07E
- add sp, #0x30
- pop {r3-r7, pc}
- .balign 4
-_0201C0F8: .word 0x021C570C
-_0201C0FC: .word 0x021C5734
-
- thumb_func_start FUN_0201C100
-FUN_0201C100: ; 0x0201C100
- ldrh r2, [r0, #0x0]
- lsr r2, r2, #0x8
- lsl r3, r2, #0x1
- ldr r2, _0201C1A4 ; =0x021C5734
- ldrh r3, [r2, r3]
- strh r3, [r1, #0x0]
- ldrh r3, [r0, #0x0]
- lsl r3, r3, #0x18
- lsr r3, r3, #0x17
- ldrh r3, [r2, r3]
- strh r3, [r1, #0x2]
- ldrh r3, [r0, #0x2]
- lsr r3, r3, #0x8
- lsl r3, r3, #0x1
- ldrh r3, [r2, r3]
- strh r3, [r1, #0x4]
- ldrh r3, [r0, #0x2]
- lsl r3, r3, #0x18
- lsr r3, r3, #0x17
- ldrh r3, [r2, r3]
- strh r3, [r1, #0x6]
- ldrh r3, [r0, #0x4]
- lsr r3, r3, #0x8
- lsl r3, r3, #0x1
- ldrh r3, [r2, r3]
- strh r3, [r1, #0x8]
- ldrh r3, [r0, #0x4]
- lsl r3, r3, #0x18
- lsr r3, r3, #0x17
- ldrh r3, [r2, r3]
- strh r3, [r1, #0xa]
- ldrh r3, [r0, #0x6]
- lsr r3, r3, #0x8
- lsl r3, r3, #0x1
- ldrh r3, [r2, r3]
- strh r3, [r1, #0xc]
- ldrh r3, [r0, #0x6]
- lsl r3, r3, #0x18
- lsr r3, r3, #0x17
- ldrh r3, [r2, r3]
- strh r3, [r1, #0xe]
- ldrh r3, [r0, #0x8]
- lsr r3, r3, #0x8
- lsl r3, r3, #0x1
- ldrh r3, [r2, r3]
- strh r3, [r1, #0x10]
- ldrh r3, [r0, #0x8]
- lsl r3, r3, #0x18
- lsr r3, r3, #0x17
- ldrh r3, [r2, r3]
- strh r3, [r1, #0x12]
- ldrh r3, [r0, #0xa]
- lsr r3, r3, #0x8
- lsl r3, r3, #0x1
- ldrh r3, [r2, r3]
- strh r3, [r1, #0x14]
- ldrh r3, [r0, #0xa]
- lsl r3, r3, #0x18
- lsr r3, r3, #0x17
- ldrh r3, [r2, r3]
- strh r3, [r1, #0x16]
- ldrh r3, [r0, #0xc]
- lsr r3, r3, #0x8
- lsl r3, r3, #0x1
- ldrh r3, [r2, r3]
- strh r3, [r1, #0x18]
- ldrh r3, [r0, #0xc]
- lsl r3, r3, #0x18
- lsr r3, r3, #0x17
- ldrh r3, [r2, r3]
- strh r3, [r1, #0x1a]
- ldrh r3, [r0, #0xe]
- lsr r3, r3, #0x8
- lsl r3, r3, #0x1
- ldrh r3, [r2, r3]
- strh r3, [r1, #0x1c]
- ldrh r0, [r0, #0xe]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x17
- ldrh r0, [r2, r0]
- strh r0, [r1, #0x1e]
- bx lr
- .balign 4
-_0201C1A4: .word 0x021C5734
-
- thumb_func_start FUN_0201C1A8
-FUN_0201C1A8: ; 0x0201C1A8
- mov r1, #0x0
- str r1, [r0, #0x2c]
- bx lr
- .balign 4
-
- thumb_func_start FUN_0201C1B0
-FUN_0201C1B0: ; 0x0201C1B0
- push {r3-r5, lr}
- sub sp, #0x8
- mov r1, #0x6
- mov r0, #0x0
- lsl r1, r1, #0x8
- bl FUN_02016998
- mov r2, #0x0
- add r5, r0, #0x0
- str r2, [sp, #0x0]
- mov r0, #0xe
- mov r1, #0x5
- add r3, sp, #0x4
- bl FUN_02006BB0
- add r4, r0, #0x0
- ldr r0, [sp, #0x4]
- mov r2, #0x6
- ldr r0, [r0, #0x14]
- add r1, r5, #0x0
- lsl r2, r2, #0x8
- bl MIi_CpuCopy32
- add r0, r4, #0x0
- bl FUN_02016A18
- add r0, r5, #0x0
- add sp, #0x8
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0201C1EC
-FUN_0201C1EC: ; 0x0201C1EC
- push {r3-r7, lr}
- sub sp, #0x18
- add r4, r0, #0x0
- ldr r0, [r4, #0x2c]
- add r7, r3, #0x0
- ldr r5, [r4, #0x4]
- cmp r0, #0x0
- bne _0201C202
- bl FUN_0201C1B0
- str r0, [r4, #0x2c]
-_0201C202:
- mov r0, #0x6
- lsl r0, r0, #0x6
- add r6, r7, #0x0
- mul r6, r0
- add r0, r5, #0x0
- ldr r4, [r4, #0x2c]
- bl FUN_0201AB0C
- sub r0, r0, #0x3
- lsl r0, r0, #0x13
- mov r1, #0x18
- lsr r2, r0, #0x10
- str r1, [sp, #0x0]
- mov r0, #0x20
- str r0, [sp, #0x4]
- str r2, [sp, #0x8]
- mov r2, #0x0
- str r2, [sp, #0xc]
- str r1, [sp, #0x10]
- str r0, [sp, #0x14]
- add r0, r5, #0x0
- add r1, r4, r6
- add r3, r2, #0x0
- bl FUN_02019658
- add sp, #0x18
- pop {r3-r7, pc}
-
- thumb_func_start FUN_0201C238
-FUN_0201C238: ; 0x0201C238
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, [r4, #0x2c]
- cmp r0, #0x0
- beq _0201C24A
- bl FUN_02016A18
- mov r0, #0x0
- str r0, [r4, #0x2c]
-_0201C24A:
- pop {r4, pc}
-
- thumb_func_start FUN_0201C24C
-FUN_0201C24C: ; 0x0201C24C
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldr r0, _0201C298 ; =0x021C5934
- add r4, r1, #0x0
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _0201C25E
- bl ErrorHandling
-_0201C25E:
- add r0, r4, #0x0
- mov r1, #0xc
- bl FUN_02016998
- ldr r1, _0201C298 ; =0x021C5934
- cmp r0, #0x0
- str r0, [r1, #0x0]
- bne _0201C272
- bl ErrorHandling
-_0201C272:
- add r0, r4, #0x0
- lsl r1, r5, #0x4
- bl FUN_02016998
- ldr r1, _0201C298 ; =0x021C5934
- ldr r2, [r1, #0x0]
- str r0, [r2, #0x8]
- ldr r0, [r1, #0x0]
- mov r2, #0x0
- str r5, [r0, #0x0]
- ldr r0, [r1, #0x0]
- str r2, [r0, #0x4]
- ldr r1, [r1, #0x0]
- ldr r0, [r1, #0x8]
- ldr r1, [r1, #0x0]
- bl FUN_020AEF1C
- pop {r3-r5, pc}
- nop
-_0201C298: .word 0x021C5934
-
- thumb_func_start FUN_0201C29C
-FUN_0201C29C: ; 0x0201C29C
- push {r3, lr}
- ldr r0, _0201C2C4 ; =0x021C5934
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- bne _0201C2AA
- bl ErrorHandling
-_0201C2AA:
- ldr r0, _0201C2C4 ; =0x021C5934
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x8]
- bl FUN_02016A18
- ldr r0, _0201C2C4 ; =0x021C5934
- ldr r0, [r0, #0x0]
- bl FUN_02016A18
- ldr r0, _0201C2C4 ; =0x021C5934
- mov r1, #0x0
- str r1, [r0, #0x0]
- pop {r3, pc}
- .balign 4
-_0201C2C4: .word 0x021C5934
-
- thumb_func_start FUN_0201C2C8
-FUN_0201C2C8: ; 0x0201C2C8
- push {r3-r7, lr}
- add r5, r0, #0x0
- ldr r0, _0201C308 ; =0x021C5934
- add r4, r1, #0x0
- ldr r0, [r0, #0x0]
- add r6, r2, #0x0
- add r7, r3, #0x0
- cmp r0, #0x0
- bne _0201C2DE
- bl ErrorHandling
-_0201C2DE:
- ldr r1, _0201C308 ; =0x021C5934
- ldr r0, [r1, #0x0]
- ldr r2, [r0, #0x4]
- add r2, r2, #0x1
- str r2, [r0, #0x4]
- ldr r0, [r1, #0x0]
- ldr r1, [r0, #0x4]
- ldr r0, [r0, #0x0]
- cmp r1, r0
- blo _0201C2FA
- bl ErrorHandling
- mov r0, #0x0
- pop {r3-r7, pc}
-_0201C2FA:
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r2, r6, #0x0
- add r3, r7, #0x0
- bl FUN_020AEE40
- pop {r3-r7, pc}
- .balign 4
-_0201C308: .word 0x021C5934
-
- thumb_func_start FUN_0201C30C
-FUN_0201C30C: ; 0x0201C30C
- push {r3, lr}
- ldr r0, _0201C324 ; =0x021C5934
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _0201C322
- bl FUN_020AEEB8
- ldr r0, _0201C324 ; =0x021C5934
- mov r1, #0x0
- ldr r0, [r0, #0x0]
- str r1, [r0, #0x4]
-_0201C322:
- pop {r3, pc}
- .balign 4
-_0201C324: .word 0x021C5934
-
- thumb_func_start FUN_0201C328
-FUN_0201C328: ; 0x0201C328
- push {r3-r5, lr}
- add r4, r0, #0x0
- add r0, r1, #0x0
- mov r1, #0x30
- mul r1, r4
- bl FUN_02016998
- ldr r2, _0201C344 ; =FUN_0201C358
- add r1, r4, #0x0
- add r5, r0, #0x0
- bl FUN_020B4568
- add r0, r5, #0x0
- pop {r3-r5, pc}
- .balign 4
-_0201C344: .word FUN_0201C358
-
- thumb_func_start FUN_0201C348
-FUN_0201C348: ; 0x0201C348
- ldr r3, _0201C34C ; =FUN_020B442C
- bx r3
- .balign 4
-_0201C34C: .word FUN_020B442C
-
- thumb_func_start FUN_0201C350
-FUN_0201C350: ; 0x0201C350
- ldr r3, _0201C354 ; =FUN_02016A18
- bx r3
- .balign 4
-_0201C354: .word FUN_02016A18
-
- thumb_func_start FUN_0201C358
-FUN_0201C358: ; 0x0201C358
- push {r3, lr}
- bl FUN_0201C2C8
- pop {r3, pc}
-
- thumb_func_start FUN_0201C360
-FUN_0201C360: ; 0x0201C360
- push {r4-r6, lr}
- add r6, r1, #0x0
- add r5, r0, #0x0
- add r0, r6, #0x0
- mov r1, #0x8
- bl FUN_02016998
- mov r1, #0x14
- add r4, r0, #0x0
- add r0, r6, #0x0
- mul r1, r5
- bl FUN_02016998
- str r0, [r4, #0x0]
- mov r6, #0x0
- str r5, [r4, #0x4]
- cmp r5, #0x0
- ble _0201C398
- add r5, r6, #0x0
-_0201C386:
- ldr r0, [r4, #0x0]
- add r0, r0, r5
- bl FUN_0201C444
- ldr r0, [r4, #0x4]
- add r6, r6, #0x1
- add r5, #0x14
- cmp r6, r0
- blt _0201C386
-_0201C398:
- add r0, r4, #0x0
- pop {r4-r6, pc}
-
- thumb_func_start FUN_0201C39C
-FUN_0201C39C: ; 0x0201C39C
- push {r4, lr}
- add r4, r0, #0x0
- bl FUN_0201C414
- ldr r0, [r4, #0x0]
- bl FUN_02016A18
- add r0, r4, #0x0
- bl FUN_02016A18
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0201C3B4
-FUN_0201C3B4: ; 0x0201C3B4
- push {r3-r7, lr}
- add r5, r0, #0x0
- ldr r0, [r5, #0x4]
- mov r4, #0x0
- add r7, r2, #0x0
- mov r12, r1
- add r6, r3, #0x0
- add r2, r4, #0x0
- cmp r0, #0x0
- ble _0201C3E2
- ldr r5, [r5, #0x0]
- add r3, r5, #0x0
-_0201C3CC:
- ldr r1, [r3, #0x0]
- cmp r1, #0x0
- bne _0201C3DA
- mov r0, #0x14
- mul r0, r2
- add r4, r5, r0
- b _0201C3E2
-_0201C3DA:
- add r2, r2, #0x1
- add r3, #0x14
- cmp r2, r0
- blt _0201C3CC
-_0201C3E2:
- cmp r4, #0x0
- bne _0201C3EA
- mov r0, #0x0
- pop {r3-r7, pc}
-_0201C3EA:
- mov r0, r12
- str r0, [r4, #0x0]
- str r7, [r4, #0x4]
- ldr r1, [sp, #0x1c]
- ldr r0, [sp, #0x18]
- str r6, [r4, #0x8]
- str r0, [r4, #0xc]
- mov r0, #0xff
- strb r0, [r4, #0x10]
- lsl r1, r1, #0x4
- strb r0, [r4, #0x11]
- add r0, r4, #0x0
- lsr r1, r1, #0x10
- bl FUN_0201C454
- add r0, r4, #0x0
- pop {r3-r7, pc}
-
- thumb_func_start FUN_0201C40C
-FUN_0201C40C: ; 0x0201C40C
- ldr r3, _0201C410 ; =FUN_0201C444
- bx r3
- .balign 4
-_0201C410: .word FUN_0201C444
-
- thumb_func_start FUN_0201C414
-FUN_0201C414: ; 0x0201C414
- push {r4-r6, lr}
- add r5, r0, #0x0
- ldr r0, [r5, #0x4]
- mov r6, #0x0
- cmp r0, #0x0
- ble _0201C434
- add r4, r6, #0x0
-_0201C422:
- ldr r0, [r5, #0x0]
- add r0, r0, r4
- bl FUN_0201C444
- ldr r0, [r5, #0x4]
- add r6, r6, #0x1
- add r4, #0x14
- cmp r6, r0
- blt _0201C422
-_0201C434:
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_0201C438
-FUN_0201C438: ; 0x0201C438
- ldr r3, _0201C440 ; =FUN_0201C454
- lsl r1, r1, #0x4
- lsr r1, r1, #0x10
- bx r3
- .balign 4
-_0201C440: .word FUN_0201C454
-
- thumb_func_start FUN_0201C444
-FUN_0201C444: ; 0x0201C444
- mov r1, #0x0
- str r1, [r0, #0x0]
- str r1, [r0, #0x4]
- str r1, [r0, #0x8]
- str r1, [r0, #0xc]
- strb r1, [r0, #0x10]
- strb r1, [r0, #0x11]
- bx lr
-
- thumb_func_start FUN_0201C454
-FUN_0201C454: ; 0x0201C454
- push {r3-r4, lr}
- sub sp, #0x4
- add r4, r0, #0x0
- ldr r0, [r4, #0x0]
- bl FUN_02022244
- add r2, sp, #0x0
- strb r0, [r2, #0x0]
- lsr r0, r0, #0x8
- strb r0, [r2, #0x1]
- ldrb r0, [r2, #0x0]
- add r1, sp, #0x0
- add r1, #0x2
- strb r0, [r2, #0x2]
- ldrb r0, [r2, #0x1]
- strb r0, [r2, #0x3]
- ldrb r3, [r4, #0x10]
- ldrb r0, [r2, #0x2]
- cmp r3, r0
- beq _0201C482
- add r0, r4, #0x0
- bl FUN_0201C49C
-_0201C482:
- add r0, sp, #0x0
- ldrb r1, [r4, #0x11]
- ldrb r0, [r0, #0x3]
- cmp r1, r0
- beq _0201C496
- add r1, sp, #0x0
- add r0, r4, #0x0
- add r1, #0x2
- bl FUN_0201C4C8
-_0201C496:
- add sp, #0x4
- pop {r3-r4, pc}
- .balign 4
-
- thumb_func_start FUN_0201C49C
-FUN_0201C49C: ; 0x0201C49C
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- bl FUN_0201C4F4
- ldr r3, [r5, #0x8]
- add r2, r0, #0x0
- lsl r1, r3, #0x10
- ldr r6, _0201C4C4 ; =0x7FFF0000
- mov r0, #0x0
- and r3, r6
- lsr r3, r3, #0x10
- lsr r1, r1, #0xd
- lsl r3, r3, #0x4
- bl FUN_0201C2C8
- ldrb r0, [r4, #0x0]
- strb r0, [r5, #0x10]
- pop {r4-r6, pc}
- nop
-_0201C4C4: .word 0x7FFF0000
-
- thumb_func_start FUN_0201C4C8
-FUN_0201C4C8: ; 0x0201C4C8
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- bl FUN_0201C500
- ldr r3, [r5, #0xc]
- add r2, r0, #0x0
- lsl r1, r3, #0x10
- ldr r6, _0201C4F0 ; =0xFFFF0000
- mov r0, #0x1
- and r3, r6
- lsr r3, r3, #0x10
- lsr r1, r1, #0xd
- lsl r3, r3, #0x3
- bl FUN_0201C2C8
- ldrb r0, [r4, #0x1]
- strb r0, [r5, #0x11]
- pop {r4-r6, pc}
- nop
-_0201C4F0: .word 0xFFFF0000
-
- thumb_func_start FUN_0201C4F4
-FUN_0201C4F4: ; 0x0201C4F4
- ldr r3, _0201C4FC ; =FUN_0201C50C
- ldr r0, [r0, #0x4]
- ldrb r1, [r1, #0x0]
- bx r3
- .balign 4
-_0201C4FC: .word FUN_0201C50C
-
- thumb_func_start FUN_0201C500
-FUN_0201C500: ; 0x0201C500
- ldr r3, _0201C508 ; =FUN_0201C540
- ldr r0, [r0, #0x4]
- ldrb r1, [r1, #0x1]
- bx r3
- .balign 4
-_0201C508: .word FUN_0201C540
-
- thumb_func_start FUN_0201C50C
-FUN_0201C50C: ; 0x0201C50C
- push {r3-r4}
- add r2, r0, #0x0
- add r2, #0x42
- ldrh r2, [r2, #0x0]
- add r4, r0, #0x0
- add r4, #0x3c
- add r3, r4, r2
- ldrh r2, [r4, r2]
- add r3, r3, #0x4
- mul r1, r2
- add r3, r3, r1
- bne _0201C52A
- mov r0, #0x0
- pop {r3-r4}
- bx lr
-_0201C52A:
- ldr r1, [r0, #0x14]
- add r2, r0, r1
- ldr r1, [r3, #0x0]
- ldr r0, [r0, #0x8]
- lsl r1, r1, #0x10
- lsr r1, r1, #0x10
- add r0, r1, r0
- lsl r0, r0, #0x3
- add r0, r2, r0
- pop {r3-r4}
- bx lr
-
- thumb_func_start FUN_0201C540
-FUN_0201C540: ; 0x0201C540
- push {r3-r4}
- ldrh r2, [r0, #0x34]
- add r4, r0, r2
- ldrh r2, [r4, #0x6]
- add r3, r4, r2
- ldrh r2, [r4, r2]
- add r3, r3, #0x4
- mul r1, r2
- add r2, r3, r1
- bne _0201C55A
- mov r0, #0x0
- pop {r3-r4}
- bx lr
-_0201C55A:
- ldr r1, [r0, #0x38]
- add r1, r0, r1
- ldrh r0, [r2, #0x0]
- lsl r0, r0, #0x3
- add r0, r1, r0
- pop {r3-r4}
- bx lr
-
- thumb_func_start FUN_0201C568
-FUN_0201C568: ; 0x0201C568
- ldr r1, [r1, #0x0]
- ldr r0, [r0, #0x8]
- lsl r1, r1, #0x10
- lsl r0, r0, #0x10
- lsr r1, r1, #0xd
- lsr r0, r0, #0xd
- add r0, r1, r0
- bx lr
-
- thumb_func_start FUN_0201C578
-FUN_0201C578: ; 0x0201C578
- push {r4, lr}
- sub sp, #0x10
- add r4, r0, #0x0
- add r0, sp, #0x0
- bl FUN_0201C750
- add r0, r4, #0x0
- add r0, #0x3c
- add r1, sp, #0x0
- bl FUN_020BC2A0
- add r1, r0, #0x0
- bne _0201C598
- add sp, #0x10
- mov r0, #0x0
- pop {r4, pc}
-_0201C598:
- add r0, r4, #0x0
- bl FUN_0201C568
- add sp, #0x10
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0201C5A4
-FUN_0201C5A4: ; 0x0201C5A4
- push {r3, lr}
- ldr r0, [r1, #0x0]
- mov r1, #0x7
- lsl r1, r1, #0x1a
- and r1, r0
- lsr r1, r1, #0x1a
- cmp r1, #0x4
- bhi _0201C5DA
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #0x6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0201C5C0: ; jump table (using 16-bit offset)
- .short _0201C5DA - _0201C5C0 - 2; case 0
- .short _0201C5D6 - _0201C5C0 - 2; case 1
- .short _0201C5CA - _0201C5C0 - 2; case 2
- .short _0201C5CE - _0201C5C0 - 2; case 3
- .short _0201C5D2 - _0201C5C0 - 2; case 4
-_0201C5CA:
- mov r1, #0x4
- b _0201C5DE
-_0201C5CE:
- mov r1, #0x2
- b _0201C5DE
-_0201C5D2:
- mov r1, #0x1
- b _0201C5DE
-_0201C5D6:
- mov r1, #0x1
- b _0201C5DE
-_0201C5DA:
- mov r0, #0x0
- pop {r3, pc}
-_0201C5DE:
- mov r3, #0x7
- lsl r3, r3, #0x14
- add r2, r0, #0x0
- and r2, r3
- lsl r3, r3, #0x3
- and r0, r3
- lsr r2, r2, #0x14
- lsr r0, r0, #0x17
- lsl r2, r2, #0x4
- lsl r0, r0, #0x4
- mul r0, r2
- bl _u32_div_f
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_0201C5FC
-FUN_0201C5FC: ; 0x0201C5FC
- push {r4, lr}
- sub sp, #0x10
- add r4, r0, #0x0
- add r0, sp, #0x0
- bl FUN_0201C750
- add r0, r4, #0x0
- add r0, #0x3c
- add r1, sp, #0x0
- bl FUN_020BC2A0
- add r1, r0, #0x0
- add r0, r4, #0x0
- bl FUN_0201C5A4
- add sp, #0x10
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0201C620
-FUN_0201C620: ; 0x0201C620
- ldrb r3, [r0, #0x0]
- strb r3, [r1, #0x0]
- ldrb r0, [r0, #0x1]
- strb r0, [r2, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_0201C62C
-FUN_0201C62C: ; 0x0201C62C
- ldrb r3, [r0, #0x2]
- strb r3, [r1, #0x0]
- ldrb r0, [r0, #0x3]
- strb r0, [r2, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_0201C638
-FUN_0201C638: ; 0x0201C638
- push {r4-r5}
- ldr r5, _0201C6B0 ; =0xFFFFFFF8
- ldr r4, [sp, #0xc]
- add r5, sp
- ldrb r5, [r5, #0x18]
- cmp r5, #0x3
- bhi _0201C678
- add r5, r5, r5
- add r5, pc
- ldrh r5, [r5, #0x6]
- lsl r5, r5, #0x10
- asr r5, r5, #0x10
- add pc, r5
-_0201C652: ; jump table (using 16-bit offset)
- .short _0201C65A - _0201C652 - 2; case 0
- .short _0201C662 - _0201C652 - 2; case 1
- .short _0201C66A - _0201C652 - 2; case 2
- .short _0201C672 - _0201C652 - 2; case 3
-_0201C65A:
- lsl r4, r4, #0x3
- add r4, r0, r4
- ldrb r4, [r4, #0x4]
- b _0201C678
-_0201C662:
- lsl r4, r4, #0x3
- add r4, r0, r4
- ldrb r4, [r4, #0x5]
- b _0201C678
-_0201C66A:
- lsl r4, r4, #0x3
- add r4, r0, r4
- ldrb r4, [r4, #0x6]
- b _0201C678
-_0201C672:
- lsl r4, r4, #0x3
- add r4, r0, r4
- ldrb r4, [r4, #0x7]
-_0201C678:
- cmp r1, #0x0
- beq _0201C682
- lsl r5, r4, #0x3
- ldrb r5, [r0, r5]
- strb r5, [r1, #0x0]
-_0201C682:
- cmp r2, #0x0
- beq _0201C68E
- lsl r1, r4, #0x3
- add r1, r0, r1
- ldrb r1, [r1, #0x1]
- strb r1, [r2, #0x0]
-_0201C68E:
- cmp r3, #0x0
- beq _0201C69A
- lsl r1, r4, #0x3
- add r1, r0, r1
- ldrb r1, [r1, #0x2]
- strb r1, [r3, #0x0]
-_0201C69A:
- ldr r2, [sp, #0x8]
- cmp r2, #0x0
- beq _0201C6A8
- lsl r1, r4, #0x3
- add r0, r0, r1
- ldrb r0, [r0, #0x3]
- strb r0, [r2, #0x0]
-_0201C6A8:
- add r0, r4, #0x0
- pop {r4-r5}
- bx lr
- nop
-_0201C6B0: .word 0xFFFFFFF8
-
- thumb_func_start FUN_0201C6B4
-FUN_0201C6B4: ; 0x0201C6B4
- mov r2, #0x0
- ldrsb r1, [r0, r2]
- cmp r1, #0x0
- beq _0201C6C4
-_0201C6BC:
- add r2, r2, #0x1
- ldrsb r1, [r0, r2]
- cmp r1, #0x0
- bne _0201C6BC
-_0201C6C4:
- add r0, r2, #0x0
- bx lr
-
- thumb_func_start FUN_0201C6C8
-FUN_0201C6C8: ; 0x0201C6C8
- push {r4-r5}
- mov r4, #0x1
- mov r3, #0x0
- lsl r4, r4, #0x8
-_0201C6D0:
- ldrsb r5, [r0, r3]
- strb r5, [r1, r3]
- ldrsb r5, [r0, r3]
- cmp r2, r5
- beq _0201C6DE
- cmp r5, #0x0
- bne _0201C6FE
-_0201C6DE:
- mov r4, #0x0
- strb r4, [r1, r3]
- cmp r2, #0xd
- bne _0201C6F6
- add r1, r3, #0x1
- ldrsb r1, [r0, r1]
- cmp r1, #0xa
- bne _0201C6F6
- add r1, r3, #0x2
- add r0, r0, r1
- pop {r4-r5}
- bx lr
-_0201C6F6:
- add r1, r3, #0x1
- add r0, r0, r1
- pop {r4-r5}
- bx lr
-_0201C6FE:
- add r3, r3, #0x1
- cmp r3, r4
- blt _0201C6D0
- mov r0, #0x0
- pop {r4-r5}
- bx lr
- .balign 4
-
- thumb_func_start FUN_0201C70C
-FUN_0201C70C: ; 0x0201C70C
- push {r4-r6, lr}
- add r4, r0, #0x0
- bl FUN_0201C6B4
- mov r5, #0x1
- mov r6, #0x0
- sub r3, r0, #0x1
- bmi _0201C74A
- sub r1, r6, #0x1
- mov r0, #0xa
-_0201C720:
- ldrsb r2, [r4, r3]
- cmp r2, #0x30
- blt _0201C732
- cmp r2, #0x39
- bgt _0201C732
- sub r2, #0x30
- mul r2, r5
- add r6, r6, r2
- b _0201C744
-_0201C732:
- cmp r3, #0x0
- bne _0201C73E
- cmp r2, #0x2d
- bne _0201C744
- mul r6, r1
- b _0201C744
-_0201C73E:
- mov r0, #0x0
- mvn r0, r0
- pop {r4-r6, pc}
-_0201C744:
- mul r5, r0
- sub r3, r3, #0x1
- bpl _0201C720
-_0201C74A:
- add r0, r6, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_0201C750
-FUN_0201C750: ; 0x0201C750
- push {r3-r5, lr}
- mov r2, #0x0
- add r4, r1, #0x0
- add r5, r0, #0x0
- add r1, r2, #0x0
-_0201C75A:
- lsl r0, r2, #0x2
- str r1, [r5, r0]
- add r0, r2, #0x1
- lsl r0, r0, #0x18
- lsr r2, r0, #0x18
- cmp r2, #0x4
- blo _0201C75A
- add r0, r4, #0x0
- bl FUN_0201C6B4
- lsl r0, r0, #0x18
- lsr r1, r0, #0x18
- ldr r2, _0201C788 ; =0x00000000
- beq _0201C784
-_0201C776:
- ldrsb r0, [r4, r2]
- strb r0, [r5, r2]
- add r0, r2, #0x1
- lsl r0, r0, #0x18
- lsr r2, r0, #0x18
- cmp r2, r1
- blo _0201C776
-_0201C784:
- pop {r3-r5, pc}
- nop
-_0201C788: .word 0x00000000
-
- thumb_func_start FUN_0201C78C
-FUN_0201C78C: ; 0x0201C78C
- ldr r1, _0201C79C ; =0x00000121
- cmp r0, r1
- bhs _0201C796
- mov r0, #0x1
- bx lr
-_0201C796:
- mov r0, #0x0
- bx lr
- nop
-_0201C79C: .word 0x00000121
-
- thumb_func_start FUN_0201C7A0
-FUN_0201C7A0: ; 0x0201C7A0
- cmp r0, r1
- blt _0201C7A6
- add r0, r1, #0x0
-_0201C7A6:
- bx lr
-
- thumb_func_start FUN_0201C7A8
-FUN_0201C7A8: ; 0x0201C7A8
- cmp r0, r1
- bgt _0201C7AE
- add r0, r1, #0x0
-_0201C7AE:
- bx lr
-
- thumb_func_start FUN_0201C7B0
-FUN_0201C7B0: ; 0x0201C7B0
- push {r3-r7, lr}
- sub sp, #0x30
- add r4, r1, #0x0
- add r1, sp, #0x24
- bl VEC_Normalize
- add r0, r4, #0x0
- add r1, sp, #0x18
- bl VEC_Normalize
- ldr r0, [sp, #0x24]
- ldr r4, [sp, #0x18]
- str r0, [sp, #0x0]
- asr r0, r0, #0x1f
- str r0, [sp, #0x4]
- ldr r0, [sp, #0x20]
- asr r6, r4, #0x1f
- str r0, [sp, #0x8]
- asr r0, r0, #0x1f
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x2c]
- ldr r2, [sp, #0x8]
- asr r7, r0, #0x1f
- ldr r3, [sp, #0xc]
- add r1, r7, #0x0
- str r0, [sp, #0x10]
- bl _ll_mul
- str r0, [sp, #0x14]
- add r5, r1, #0x0
- ldr r0, [sp, #0x0]
- ldr r1, [sp, #0x4]
- add r2, r4, #0x0
- add r3, r6, #0x0
- bl _ll_mul
- mov r2, #0x2
- ldr r3, [sp, #0x14]
- lsl r2, r2, #0xa
- add r3, r3, r2
- ldr r2, _0201C874 ; =0x00000000
- adc r5, r2
- lsl r2, r5, #0x14
- lsr r3, r3, #0xc
- orr r3, r2
- mov r2, #0x2
- lsl r2, r2, #0xa
- add r0, r0, r2
- ldr r2, _0201C874 ; =0x00000000
- adc r1, r2
- lsl r1, r1, #0x14
- lsr r0, r0, #0xc
- orr r0, r1
- add r5, r3, r0
- ldr r0, [sp, #0x10]
- add r1, r7, #0x0
- add r2, r4, #0x0
- add r3, r6, #0x0
- bl _ll_mul
- add r6, r0, #0x0
- add r4, r1, #0x0
- ldr r0, [sp, #0x0]
- ldr r1, [sp, #0x4]
- ldr r2, [sp, #0x8]
- ldr r3, [sp, #0xc]
- bl _ll_mul
- mov r2, #0x2
- mov r3, #0x0
- lsl r2, r2, #0xa
- add r6, r6, r2
- adc r4, r3
- lsl r4, r4, #0x14
- lsr r6, r6, #0xc
- orr r6, r4
- add r4, r0, r2
- adc r1, r3
- lsl r0, r1, #0x14
- lsr r1, r4, #0xc
- orr r1, r0
- sub r0, r6, r1
- cmp r5, #0x0
- bne _0201C86A
- cmp r0, #0x0
- ble _0201C862
- add sp, #0x30
- lsl r0, r2, #0x3
- pop {r3-r7, pc}
-_0201C862:
- mov r0, #0x3
- add sp, #0x30
- lsl r0, r0, #0xe
- pop {r3-r7, pc}
-_0201C86A:
- add r1, r5, #0x0
- bl FX_Atan2
- add sp, #0x30
- pop {r3-r7, pc}
- .balign 4
-_0201C874: .word 0x00000000
-
- thumb_func_start FUN_0201C878
-FUN_0201C878: ; 0x0201C878
- push {r0-r3}
- push {r4-r7, lr}
- sub sp, #0x54
- ldr r0, [sp, #0x7c]
- ldr r2, [sp, #0x80]
- str r0, [sp, #0x8]
- ldr r0, [sp, #0x94]
- ldr r1, [sp, #0x8c]
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x88]
- ldr r4, [sp, #0x70]
- str r0, [sp, #0x10]
- sub r0, r2, r1
- str r0, [sp, #0x14]
- asr r0, r0, #0x1f
- str r0, [sp, #0x18]
- ldr r0, [sp, #0x8]
- asr r0, r0, #0x1f
- str r0, [sp, #0x1c]
- ldr r0, [sp, #0x74]
- sub r3, r0, r2
- sub r0, r1, r0
- str r3, [sp, #0x20]
- asr r3, r3, #0x1f
- str r3, [sp, #0x24]
- ldr r3, [sp, #0xc]
- str r0, [sp, #0x2c]
- asr r0, r0, #0x1f
- str r0, [sp, #0x30]
- ldr r0, [sp, #0x10]
- asr r3, r3, #0x1f
- str r3, [sp, #0x28]
- asr r0, r0, #0x1f
- ldr r3, [sp, #0x68]
- str r0, [sp, #0x34]
- asr r0, r4, #0x1f
- str r0, [sp, #0x38]
- sub r2, r2, r3
- ldr r0, [sp, #0x8]
- ldr r1, [sp, #0x1c]
- asr r3, r2, #0x1f
- bl _ll_mul
- add r7, r0, #0x0
- add r6, r1, #0x0
- ldr r3, [sp, #0x68]
- ldr r2, [sp, #0x74]
- ldr r0, [sp, #0x10]
- sub r2, r3, r2
- ldr r1, [sp, #0x34]
- asr r3, r2, #0x1f
- bl _ll_mul
- add r5, r1, #0x0
- str r0, [sp, #0x3c]
- ldr r1, [sp, #0x38]
- ldr r2, [sp, #0x20]
- ldr r3, [sp, #0x24]
- add r0, r4, #0x0
- bl _ll_mul
- mov r2, #0x2
- str r0, [sp, #0x4c]
- add r0, r1, #0x0
- mov r1, #0x0
- lsl r2, r2, #0xa
- add r3, r7, r2
- adc r6, r1
- lsl r2, r6, #0x14
- lsr r3, r3, #0xc
- orr r3, r2
- mov r2, #0x2
- ldr r6, [sp, #0x3c]
- lsl r2, r2, #0xa
- add r2, r6, r2
- adc r5, r1
- mov r6, #0x2
- lsl r5, r5, #0x14
- lsr r2, r2, #0xc
- orr r2, r5
- ldr r5, [sp, #0x4c]
- lsl r6, r6, #0xa
- add r5, r5, r6
- adc r0, r1
- lsl r0, r0, #0x14
- lsr r1, r5, #0xc
- orr r1, r0
- add r0, r2, r1
- add r0, r3, r0
- str r0, [sp, #0x4]
- ldr r3, [sp, #0x8c]
- ldr r2, [sp, #0x68]
- ldr r0, [sp, #0x10]
- sub r2, r3, r2
- ldr r1, [sp, #0x34]
- asr r3, r2, #0x1f
- bl _ll_mul
- add r7, r0, #0x0
- add r6, r1, #0x0
- ldr r3, [sp, #0x68]
- ldr r2, [sp, #0x80]
- ldr r0, [sp, #0xc]
- sub r2, r3, r2
- ldr r1, [sp, #0x28]
- asr r3, r2, #0x1f
- bl _ll_mul
- str r0, [sp, #0x40]
- add r5, r1, #0x0
- ldr r1, [sp, #0x38]
- ldr r2, [sp, #0x14]
- ldr r3, [sp, #0x18]
- add r0, r4, #0x0
- bl _ll_mul
- mov r2, #0x2
- str r0, [sp, #0x50]
- add r0, r1, #0x0
- mov r1, #0x0
- lsl r2, r2, #0xa
- add r3, r7, r2
- adc r6, r1
- lsl r2, r6, #0x14
- lsr r3, r3, #0xc
- orr r3, r2
- mov r2, #0x2
- ldr r6, [sp, #0x40]
- lsl r2, r2, #0xa
- add r2, r6, r2
- adc r5, r1
- mov r6, #0x2
- lsl r5, r5, #0x14
- lsr r2, r2, #0xc
- orr r2, r5
- ldr r5, [sp, #0x50]
- lsl r6, r6, #0xa
- add r5, r5, r6
- adc r0, r1
- lsl r0, r0, #0x14
- lsr r1, r5, #0xc
- orr r1, r0
- add r0, r2, r1
- add r0, r3, r0
- str r0, [sp, #0x0]
- ldr r3, [sp, #0x74]
- ldr r2, [sp, #0x68]
- ldr r0, [sp, #0xc]
- sub r2, r3, r2
- ldr r1, [sp, #0x28]
- asr r3, r2, #0x1f
- bl _ll_mul
- add r7, r0, #0x0
- add r6, r1, #0x0
- ldr r3, [sp, #0x68]
- ldr r2, [sp, #0x8c]
- ldr r0, [sp, #0x8]
- sub r2, r3, r2
- ldr r1, [sp, #0x1c]
- asr r3, r2, #0x1f
- bl _ll_mul
- add r5, r1, #0x0
- str r0, [sp, #0x44]
- ldr r1, [sp, #0x38]
- ldr r2, [sp, #0x2c]
- ldr r3, [sp, #0x30]
- add r0, r4, #0x0
- bl _ll_mul
- mov r3, #0x2
- mov r2, #0x0
- lsl r3, r3, #0xa
- add r4, r7, r3
- adc r6, r2
- lsl r3, r6, #0x14
- lsr r4, r4, #0xc
- orr r4, r3
- mov r3, #0x2
- ldr r6, [sp, #0x44]
- lsl r3, r3, #0xa
- add r3, r6, r3
- adc r5, r2
- lsl r5, r5, #0x14
- lsr r3, r3, #0xc
- orr r3, r5
- mov r5, #0x2
- lsl r5, r5, #0xa
- add r5, r0, r5
- adc r1, r2
- lsl r0, r1, #0x14
- lsr r1, r5, #0xc
- orr r1, r0
- add r0, r3, r1
- add r6, r4, r0
- ldr r0, [sp, #0x10]
- ldr r1, [sp, #0x34]
- ldr r2, [sp, #0x2c]
- ldr r3, [sp, #0x30]
- bl _ll_mul
- add r7, r0, #0x0
- add r5, r1, #0x0
- ldr r0, [sp, #0xc]
- ldr r1, [sp, #0x28]
- ldr r2, [sp, #0x20]
- ldr r3, [sp, #0x24]
- bl _ll_mul
- str r0, [sp, #0x48]
- add r4, r1, #0x0
- ldr r0, [sp, #0x8]
- ldr r1, [sp, #0x1c]
- ldr r2, [sp, #0x14]
- ldr r3, [sp, #0x18]
- bl _ll_mul
- mov r12, r0
- mov r0, #0x2
- add r2, r1, #0x0
- mov r1, #0x0
- lsl r0, r0, #0xa
- add r0, r7, r0
- adc r5, r1
- lsl r3, r5, #0x14
- lsr r0, r0, #0xc
- orr r0, r3
- mov r3, #0x2
- ldr r5, [sp, #0x48]
- lsl r3, r3, #0xa
- add r3, r5, r3
- adc r4, r1
- lsl r4, r4, #0x14
- lsr r3, r3, #0xc
- orr r3, r4
- mov r4, #0x2
- lsl r4, r4, #0xa
- mov r5, r12
- add r4, r5, r4
- adc r2, r1
- lsl r2, r2, #0x14
- lsr r4, r4, #0xc
- orr r4, r2
- add r2, r3, r4
- add r0, r0, r2
- bpl _0201CA72
- add sp, #0x54
- add r0, r1, #0x0
- pop {r4-r7}
- pop {r3}
- add sp, #0x10
- bx r3
-_0201CA72:
- ldr r0, [sp, #0x4]
- cmp r0, #0x0
- bge _0201CA84
- add sp, #0x54
- add r0, r1, #0x0
- pop {r4-r7}
- pop {r3}
- add sp, #0x10
- bx r3
-_0201CA84:
- ldr r0, [sp, #0x0]
- cmp r0, #0x0
- bge _0201CA96
- add sp, #0x54
- add r0, r1, #0x0
- pop {r4-r7}
- pop {r3}
- add sp, #0x10
- bx r3
-_0201CA96:
- cmp r6, #0x0
- blt _0201CA9C
- mov r1, #0x1
-_0201CA9C:
- add r0, r1, #0x0
- add sp, #0x54
- pop {r4-r7}
- pop {r3}
- add sp, #0x10
- bx r3
-
- thumb_func_start FUN_0201CAA8
-FUN_0201CAA8: ; 0x0201CAA8
- push {r4-r5, lr}
- sub sp, #0x24
- add r4, r1, #0x0
- ldr r1, [r4, #0x0]
- ldr r3, _0201CB1C ; =0x020FFA38
- lsl r1, r1, #0x10
- lsr r1, r1, #0x10
- asr r1, r1, #0x4
- lsl r2, r1, #0x1
- lsl r1, r2, #0x1
- add r2, r2, #0x1
- lsl r2, r2, #0x1
- ldrsh r1, [r3, r1]
- ldrsh r2, [r3, r2]
- add r5, r0, #0x0
- bl MTX_RotX33_
- ldr r0, [r4, #0x4]
- ldr r3, _0201CB1C ; =0x020FFA38
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- asr r0, r0, #0x4
- lsl r2, r0, #0x1
- lsl r1, r2, #0x1
- add r2, r2, #0x1
- lsl r2, r2, #0x1
- ldrsh r1, [r3, r1]
- ldrsh r2, [r3, r2]
- add r0, sp, #0x0
- bl MTX_RotY33_
- add r0, r5, #0x0
- add r1, sp, #0x0
- add r2, r5, #0x0
- bl MTX_Concat33
- ldr r0, [r4, #0x8]
- ldr r3, _0201CB1C ; =0x020FFA38
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- asr r0, r0, #0x4
- lsl r2, r0, #0x1
- lsl r1, r2, #0x1
- add r2, r2, #0x1
- lsl r2, r2, #0x1
- ldrsh r1, [r3, r1]
- ldrsh r2, [r3, r2]
- add r0, sp, #0x0
- bl MTX_RotZ33_
- add r0, r5, #0x0
- add r1, sp, #0x0
- add r2, r5, #0x0
- bl MTX_Concat33
- add sp, #0x24
- pop {r4-r5, pc}
- nop
-_0201CB1C: .word 0x020FFA38
-
- thumb_func_start FUN_0201CB20
-FUN_0201CB20: ; 0x0201CB20
- push {r4-r7, lr}
- sub sp, #0x24
- add r6, r1, #0x0
- add r5, r2, #0x0
- lsl r1, r6, #0x2
- ldr r2, _0201CB78 ; =0x020EDF50
- add r6, #0x5a
- add r4, r3, #0x0
- lsl r3, r6, #0x2
- ldr r1, [r2, r1]
- ldr r2, [r2, r3]
- add r7, r0, #0x0
- bl MTX_RotX33_
- lsl r1, r5, #0x2
- ldr r3, _0201CB78 ; =0x020EDF50
- add r5, #0x5a
- lsl r2, r5, #0x2
- ldr r1, [r3, r1]
- ldr r2, [r3, r2]
- add r0, sp, #0x0
- bl MTX_RotY33_
- add r0, r7, #0x0
- add r1, sp, #0x0
- add r2, r7, #0x0
- bl MTX_Concat33
- lsl r1, r4, #0x2
- ldr r3, _0201CB78 ; =0x020EDF50
- add r4, #0x5a
- lsl r2, r4, #0x2
- ldr r1, [r3, r1]
- ldr r2, [r3, r2]
- add r0, sp, #0x0
- bl MTX_RotZ33_
- add r0, r7, #0x0
- add r1, sp, #0x0
- add r2, r7, #0x0
- bl MTX_Concat33
- add sp, #0x24
- pop {r4-r7, pc}
- .balign 4
-_0201CB78: .word 0x020EDF50
-
- thumb_func_start FUN_0201CB7C
-FUN_0201CB7C: ; 0x0201CB7C
- push {r3-r7, lr}
- asr r0, r0, #0x4
- add r7, r2, #0x0
- lsl r2, r0, #0x1
- add r6, r1, #0x0
- lsl r0, r2, #0x1
- ldr r1, _0201CBE8 ; =0x020FFA38
- add r2, r2, #0x1
- lsl r2, r2, #0x1
- ldrsh r0, [r1, r0]
- ldrsh r1, [r1, r2]
- add r5, r3, #0x0
- ldr r4, [sp, #0x18]
- bl FX_Div
- add r2, r0, #0x0
- asr r1, r6, #0x1f
- add r0, r6, #0x0
- asr r3, r2, #0x1f
- bl _ll_mul
- mov r6, #0x2
- mov r2, #0x0
- lsl r6, r6, #0xa
- add r0, r0, r6
- adc r1, r2
- lsl r1, r1, #0x14
- lsr r0, r0, #0xc
- orr r0, r1
- asr r3, r0, #0x1f
- lsr r1, r0, #0x13
- lsl r3, r3, #0xd
- orr r3, r1
- lsl r0, r0, #0xd
- add r0, r0, r6
- adc r3, r2
- lsl r1, r3, #0x14
- lsr r0, r0, #0xc
- orr r0, r1
- asr r1, r0, #0x1f
- asr r3, r7, #0x1f
- add r2, r7, #0x0
- str r0, [r4, #0x0]
- bl _ll_mul
- mov r3, #0x0
- add r2, r6, #0x0
- add r2, r0, r2
- adc r1, r3
- lsl r0, r1, #0x14
- lsr r1, r2, #0xc
- orr r1, r0
- str r1, [r5, #0x0]
- pop {r3-r7, pc}
- .balign 4
-_0201CBE8: .word 0x020FFA38
-
- thumb_func_start FUN_0201CBEC
-FUN_0201CBEC: ; 0x0201CBEC
- push {r3, lr}
- sub r0, r0, r2
- sub r2, r1, r3
- add r1, r0, #0x0
- mul r1, r0
- add r0, r2, #0x0
- mul r0, r2
- add r0, r1, r0
- lsl r0, r0, #0xc
- bl FX_Sqrt
- asr r0, r0, #0xc
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_0201CC08
-FUN_0201CC08: ; 0x0201CC08
- push {r3, lr}
- ldr r0, _0201CC20 ; =0x021C5978
- ldrh r0, [r0, #0x1a]
- cmp r0, #0x0
- beq _0201CC16
- bl ErrorHandling
-_0201CC16:
- ldr r0, _0201CC20 ; =0x021C5978
- mov r1, #0x0
- strh r1, [r0, #0x18]
- strh r1, [r0, #0x1a]
- pop {r3, pc}
- .balign 4
-_0201CC20: .word 0x021C5978
-
- thumb_func_start FUN_0201CC24
-FUN_0201CC24: ; 0x0201CC24
- push {r4, lr}
- sub sp, #0x8
- add r4, r0, #0x0
- ldr r0, _0201CC74 ; =0x021C5978
- ldrh r0, [r0, #0x1a]
- cmp r0, #0x0
- beq _0201CC36
- bl ErrorHandling
-_0201CC36:
- cmp r4, #0x5
- bhs _0201CC3E
- cmp r4, #0x0
- bne _0201CC44
-_0201CC3E:
- add sp, #0x8
- mov r0, #0x0
- pop {r4, pc}
-_0201CC44:
- ldr r0, _0201CC74 ; =0x021C5978
- ldrh r0, [r0, #0x18]
- cmp r0, #0x0
- beq _0201CC52
- add sp, #0x8
- mov r0, #0x0
- pop {r4, pc}
-_0201CC52:
- add r0, r4, #0x0
- bl FUN_0201CE2C
- cmp r0, #0x1
- bne _0201CC70
- mov r2, #0x0
- str r2, [sp, #0x0]
- lsl r0, r4, #0x1
- str r0, [sp, #0x4]
- mov r0, #0x2
- mov r1, #0x1
- add r3, r2, #0x0
- bl FUN_0201CC78
- mov r0, #0x1
-_0201CC70:
- add sp, #0x8
- pop {r4, pc}
- .balign 4
-_0201CC74: .word 0x021C5978
-
- thumb_func_start FUN_0201CC78
-FUN_0201CC78: ; 0x0201CC78
- push {r4, lr}
- ldr r4, _0201CC9C ; =0x021C5978
- strh r0, [r4, #0x18]
- ldr r0, _0201CCA0 ; =0x021C4918
- strb r1, [r0, #0x4]
- ldr r0, _0201CCA4 ; =0x021C5938
- ldr r1, [sp, #0xc]
- str r2, [r0, #0x0]
- str r3, [r0, #0x4]
- str r1, [r0, #0x8]
- ldr r1, [sp, #0x8]
- str r1, [r0, #0x54]
- ldr r0, _0201CCA8 ; =0x021C5944
- mov r1, #0x9
- bl FUN_0201CCAC
- pop {r4, pc}
- nop
-_0201CC9C: .word 0x021C5978
-_0201CCA0: .word 0x021C4918
-_0201CCA4: .word 0x021C5938
-_0201CCA8: .word 0x021C5944
-
- thumb_func_start FUN_0201CCAC
-FUN_0201CCAC: ; 0x0201CCAC
- mov r3, #0x0
- cmp r1, #0x0
- ble _0201CCBE
- add r2, r3, #0x0
-_0201CCB4:
- add r3, r3, #0x1
- strh r2, [r0, #0x4]
- add r0, #0x8
- cmp r3, r1
- blt _0201CCB4
-_0201CCBE:
- bx lr
-
- thumb_func_start FUN_0201CCC0
-FUN_0201CCC0: ; 0x0201CCC0
- push {r4-r6, lr}
- ldr r0, _0201CD00 ; =0x021C5978
- mov r5, #0x0
- ldrh r0, [r0, #0x18]
- cmp r0, #0x0
- bne _0201CCD0
- mov r0, #0x1
- pop {r4-r6, pc}
-_0201CCD0:
- mov r4, #0x4
- add r6, r4, #0x0
-_0201CCD4:
- bl TP_RequestAutoSamplingStopAsync
- add r0, r4, #0x0
- bl TP_WaitBusy
- add r0, r6, #0x0
- bl TP_CheckError
- cmp r0, #0x0
- beq _0201CCEA
- add r5, r5, #0x1
-_0201CCEA:
- cmp r0, #0x0
- beq _0201CCF2
- cmp r5, #0x5
- bls _0201CCD4
-_0201CCF2:
- cmp r5, #0x5
- bls _0201CCFA
- mov r0, #0x2
- pop {r4-r6, pc}
-_0201CCFA:
- mov r0, #0x1
- pop {r4-r6, pc}
- nop
-_0201CD00: .word 0x021C5978
-
- thumb_func_start FUN_0201CD04
-FUN_0201CD04: ; 0x0201CD04
- push {r4, lr}
- sub sp, #0x8
- ldr r0, _0201CD34 ; =0x021C5978
- ldrh r0, [r0, #0x1a]
- cmp r0, #0x0
- beq _0201CD14
- bl ErrorHandling
-_0201CD14:
- bl FUN_0201CCC0
- add r4, r0, #0x0
- cmp r4, #0x1
- bne _0201CD2E
- mov r0, #0x0
- str r0, [sp, #0x0]
- add r1, r0, #0x0
- add r2, r0, #0x0
- add r3, r0, #0x0
- str r0, [sp, #0x4]
- bl FUN_0201CC78
-_0201CD2E:
- add r0, r4, #0x0
- add sp, #0x8
- pop {r4, pc}
- .balign 4
-_0201CD34: .word 0x021C5978
-
- thumb_func_start FUN_0201CD38
-FUN_0201CD38: ; 0x0201CD38
- push {r3-r7, lr}
- add r4, r0, #0x0
- ldr r0, _0201CD8C ; =0x021C5978
- add r6, r1, #0x0
- ldrh r0, [r0, #0x1a]
- add r7, r2, #0x0
- mov r5, #0x3
- cmp r0, #0x0
- beq _0201CD4E
- bl ErrorHandling
-_0201CD4E:
- ldr r0, _0201CD8C ; =0x021C5978
- ldrh r0, [r0, #0x18]
- cmp r0, #0x0
- beq _0201CD88
- bl TP_GetLatestIndexInAuto
- add r5, r0, #0x0
- ldr r0, _0201CD90 ; =0x021C5944
- mov r1, #0x9
- bl FUN_0201CD94
- cmp r4, #0x0
- beq _0201CD70
- add r0, r4, #0x0
- add r1, r5, #0x0
- bl FUN_0201CFD0
-_0201CD70:
- ldr r0, _0201CD8C ; =0x021C5978
- ldrh r0, [r0, #0x18]
- cmp r0, #0x1
- bne _0201CD86
- add r0, r6, #0x0
- add r1, r5, #0x0
- add r2, r7, #0x0
- bl FUN_0201CE70
- add r5, r0, #0x0
- b _0201CD88
-_0201CD86:
- mov r5, #0x1
-_0201CD88:
- add r0, r5, #0x0
- pop {r3-r7, pc}
- .balign 4
-_0201CD8C: .word 0x021C5978
-_0201CD90: .word 0x021C5944
-
- thumb_func_start FUN_0201CD94
-FUN_0201CD94: ; 0x0201CD94
- push {r4-r7, lr}
- sub sp, #0xc
- add r5, r0, #0x0
- mov r7, #0x0
- str r1, [sp, #0x0]
- add r0, r1, #0x0
- beq _0201CDCA
- add r4, r5, #0x0
- add r6, sp, #0x4
-_0201CDA6:
- add r0, sp, #0x4
- add r1, r5, #0x0
- bl TP_GetCalibratedPoint
- ldrh r0, [r6, #0x0]
- add r7, r7, #0x1
- add r5, #0x8
- strh r0, [r4, #0x0]
- ldrh r0, [r6, #0x2]
- strh r0, [r4, #0x2]
- ldrh r0, [r6, #0x4]
- strh r0, [r4, #0x4]
- ldrh r0, [r6, #0x6]
- strh r0, [r4, #0x6]
- ldr r0, [sp, #0x0]
- add r4, #0x8
- cmp r7, r0
- blo _0201CDA6
-_0201CDCA:
- add sp, #0xc
- pop {r4-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0201CDD0
-FUN_0201CDD0: ; 0x0201CDD0
- push {r3, lr}
- ldr r0, _0201CDFC ; =0x021C5978
- ldrh r1, [r0, #0x1a]
- cmp r1, #0x0
- beq _0201CDF8
- ldrh r0, [r0, #0x18]
- cmp r0, #0x0
- beq _0201CDF8
- ldr r0, _0201CE00 ; =0x021C5938
- ldr r0, [r0, #0x8]
- lsr r0, r0, #0x1
- bl FUN_0201CE2C
- cmp r0, #0x1
- beq _0201CDF2
- bl ErrorHandling
-_0201CDF2:
- ldr r0, _0201CDFC ; =0x021C5978
- mov r1, #0x0
- strh r1, [r0, #0x1a]
-_0201CDF8:
- pop {r3, pc}
- nop
-_0201CDFC: .word 0x021C5978
-_0201CE00: .word 0x021C5938
-
- thumb_func_start FUN_0201CE04
-FUN_0201CE04: ; 0x0201CE04
- push {r3, lr}
- ldr r0, _0201CE28 ; =0x021C5978
- ldrh r1, [r0, #0x1a]
- cmp r1, #0x1
- beq _0201CE26
- ldrh r0, [r0, #0x18]
- cmp r0, #0x0
- beq _0201CE26
- bl FUN_0201CCC0
- cmp r0, #0x1
- beq _0201CE20
- bl ErrorHandling
-_0201CE20:
- ldr r0, _0201CE28 ; =0x021C5978
- mov r1, #0x1
- strh r1, [r0, #0x1a]
-_0201CE26:
- pop {r3, pc}
- .balign 4
-_0201CE28: .word 0x021C5978
-
- thumb_func_start FUN_0201CE2C
-FUN_0201CE2C: ; 0x0201CE2C
- push {r3-r7, lr}
- mov r5, #0x0
- lsl r0, r0, #0x10
- ldr r7, _0201CE6C ; =0x021C5944
- add r6, r5, #0x0
- lsr r4, r0, #0x10
-_0201CE38:
- add r0, r6, #0x0
- add r1, r4, #0x0
- add r2, r7, #0x0
- mov r3, #0x9
- bl TP_RequestAutoSamplingStartAsync
- mov r0, #0x2
- bl TP_WaitBusy
- mov r0, #0x2
- bl TP_CheckError
- cmp r0, #0x0
- beq _0201CE56
- add r5, r5, #0x1
-_0201CE56:
- cmp r0, #0x0
- beq _0201CE5E
- cmp r5, #0x5
- ble _0201CE38
-_0201CE5E:
- cmp r5, #0x5
- ble _0201CE66
- mov r0, #0x2
- pop {r3-r7, pc}
-_0201CE66:
- mov r0, #0x1
- pop {r3-r7, pc}
- nop
-_0201CE6C: .word 0x021C5944
-
- thumb_func_start FUN_0201CE70
-FUN_0201CE70: ; 0x0201CE70
- push {r3, lr}
- cmp r0, #0x5
- bhi _0201CE9A
- add r3, r0, r0
- add r3, pc
- ldrh r3, [r3, #0x6]
- lsl r3, r3, #0x10
- asr r3, r3, #0x10
- add pc, r3
-_0201CE82: ; jump table (using 16-bit offset)
- .short _0201CE9A - _0201CE82 - 2; case 0
- .short _0201CE8E - _0201CE82 - 2; case 1
- .short _0201CE9A - _0201CE82 - 2; case 2
- .short _0201CE8E - _0201CE82 - 2; case 3
- .short _0201CE94 - _0201CE82 - 2; case 4
- .short _0201CE94 - _0201CE82 - 2; case 5
-_0201CE8E:
- bl FUN_0201CEA0
- pop {r3, pc}
-_0201CE94:
- bl FUN_0201CF58
- pop {r3, pc}
-_0201CE9A:
- mov r0, #0x1
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_0201CEA0
-FUN_0201CEA0: ; 0x0201CEA0
- push {r3-r7, lr}
- sub sp, #0x8
- ldr r5, _0201CF50 ; =0x021C5938
- str r1, [sp, #0x4]
- ldr r1, [r5, #0x8]
- str r0, [sp, #0x0]
- add r7, r2, #0x0
- mov r4, #0x0
- cmp r1, #0x0
- bls _0201CF46
-_0201CEB4:
- ldr r0, [sp, #0x4]
- sub r0, r0, r1
- add r0, r4, r0
- add r0, r0, #0x1
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- bpl _0201CEC8
- add r0, #0x9
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
-_0201CEC8:
- lsl r1, r0, #0x3
- ldr r0, _0201CF54 ; =0x021C5938
- add r1, r0, r1
- ldrh r0, [r1, #0x10]
- cmp r0, #0x1
- bne _0201CF3E
- ldrh r0, [r1, #0x12]
- cmp r0, #0x0
- bne _0201CF3E
- ldr r2, [r5, #0x54]
- ldr r0, [r5, #0x0]
- lsl r2, r2, #0x3
- add r2, r0, r2
- add r0, r2, #0x0
- sub r0, #0x8
- ldrh r3, [r1, #0xc]
- ldrh r0, [r0, #0x0]
- cmp r0, r3
- blt _0201CEF2
- sub r3, r0, r3
- b _0201CEF4
-_0201CEF2:
- sub r3, r3, r0
-_0201CEF4:
- sub r6, r2, #0x6
- ldrh r0, [r1, #0xe]
- ldrh r6, [r6, #0x0]
- cmp r6, r0
- blt _0201CF02
- sub r0, r6, r0
- b _0201CF04
-_0201CF02:
- sub r0, r0, r6
-_0201CF04:
- cmp r3, r7
- bhs _0201CF0C
- cmp r0, r7
- blo _0201CF3E
-_0201CF0C:
- ldrh r0, [r1, #0xc]
- strh r0, [r2, #0x0]
- ldrh r0, [r1, #0xe]
- strh r0, [r2, #0x2]
- ldrh r0, [r1, #0x10]
- strh r0, [r2, #0x4]
- ldrh r0, [r1, #0x12]
- strh r0, [r2, #0x6]
- ldr r0, [r5, #0x54]
- add r0, r0, #0x1
- str r0, [r5, #0x54]
- ldr r1, [r5, #0x4]
- cmp r0, r1
- blo _0201CF3E
- ldr r2, [sp, #0x0]
- cmp r2, #0x1
- bne _0201CF36
- bl _u32_div_f
- str r1, [r5, #0x54]
- b _0201CF3E
-_0201CF36:
- mov r0, #0x0
- add sp, #0x8
- mvn r0, r0
- pop {r3-r7, pc}
-_0201CF3E:
- ldr r1, [r5, #0x8]
- add r4, r4, #0x1
- cmp r4, r1
- blo _0201CEB4
-_0201CF46:
- ldr r0, _0201CF50 ; =0x021C5938
- ldr r0, [r0, #0x54]
- add sp, #0x8
- pop {r3-r7, pc}
- nop
-_0201CF50: .word 0x021C5938
-_0201CF54: .word 0x021C5938
-
- thumb_func_start FUN_0201CF58
-FUN_0201CF58: ; 0x0201CF58
- push {r3-r7, lr}
- ldr r5, _0201CFC8 ; =0x021C5938
- str r1, [sp, #0x0]
- ldr r1, [r5, #0x8]
- add r7, r0, #0x0
- mov r4, #0x0
- cmp r1, #0x0
- bls _0201CFC0
-_0201CF68:
- ldr r0, [sp, #0x0]
- sub r0, r0, r1
- add r0, r4, r0
- add r0, r0, #0x1
- lsl r0, r0, #0x10
- asr r1, r0, #0x10
- bpl _0201CF7C
- add r1, #0x9
- lsl r0, r1, #0x10
- asr r1, r0, #0x10
-_0201CF7C:
- ldr r0, [r5, #0x54]
- lsl r1, r1, #0x3
- lsl r3, r0, #0x3
- ldr r0, _0201CFCC ; =0x021C5938
- ldr r6, [r5, #0x0]
- add r2, r0, r1
- ldrh r0, [r2, #0xc]
- add r1, r6, r3
- strh r0, [r6, r3]
- ldrh r0, [r2, #0xe]
- strh r0, [r1, #0x2]
- ldrh r0, [r2, #0x10]
- strh r0, [r1, #0x4]
- ldrh r0, [r2, #0x12]
- strh r0, [r1, #0x6]
- ldr r0, [r5, #0x54]
- add r0, r0, #0x1
- str r0, [r5, #0x54]
- ldr r1, [r5, #0x4]
- cmp r0, r1
- blo _0201CFB8
- cmp r7, #0x4
- bne _0201CFB2
- bl _u32_div_f
- str r1, [r5, #0x54]
- b _0201CFB8
-_0201CFB2:
- mov r0, #0x0
- mvn r0, r0
- pop {r3-r7, pc}
-_0201CFB8:
- ldr r1, [r5, #0x8]
- add r4, r4, #0x1
- cmp r4, r1
- blo _0201CF68
-_0201CFC0:
- ldr r0, _0201CFC8 ; =0x021C5938
- ldr r0, [r0, #0x54]
- pop {r3-r7, pc}
- nop
-_0201CFC8: .word 0x021C5938
-_0201CFCC: .word 0x021C5938
-
- thumb_func_start FUN_0201CFD0
-FUN_0201CFD0: ; 0x0201CFD0
- push {r4-r7}
- mov r2, #0x0
- strh r2, [r0, #0x0]
- add r3, r0, #0x0
- add r6, r2, #0x0
-_0201CFDA:
- strh r6, [r3, #0x8]
- strh r6, [r3, #0x6]
- strh r6, [r3, #0x2]
- strh r6, [r3, #0x4]
- add r2, r2, #0x1
- add r3, #0x8
- cmp r2, #0x8
- blt _0201CFDA
- ldr r2, _0201D038 ; =0x021C5938
- ldr r3, [r2, #0x8]
- cmp r3, #0x0
- bls _0201D034
- ldr r4, _0201D03C ; =0x021C5938
-_0201CFF4:
- sub r3, r1, r3
- add r3, r6, r3
- add r3, r3, #0x1
- lsl r3, r3, #0x10
- asr r3, r3, #0x10
- bpl _0201D006
- add r3, #0x9
- lsl r3, r3, #0x10
- asr r3, r3, #0x10
-_0201D006:
- lsl r3, r3, #0x3
- add r5, r4, r3
- ldrh r3, [r5, #0x12]
- cmp r3, #0x0
- bne _0201D02C
- ldrh r3, [r0, #0x0]
- ldrh r7, [r5, #0xc]
- lsl r3, r3, #0x3
- add r3, r0, r3
- strh r7, [r3, #0x2]
- ldrh r7, [r5, #0xe]
- strh r7, [r3, #0x4]
- ldrh r7, [r5, #0x10]
- strh r7, [r3, #0x6]
- ldrh r5, [r5, #0x12]
- strh r5, [r3, #0x8]
- ldrh r3, [r0, #0x0]
- add r3, r3, #0x1
- strh r3, [r0, #0x0]
-_0201D02C:
- ldr r3, [r2, #0x8]
- add r6, r6, #0x1
- cmp r6, r3
- blo _0201CFF4
-_0201D034:
- pop {r4-r7}
- bx lr
- .balign 4
-_0201D038: .word 0x021C5938
-_0201D03C: .word 0x021C5938
-
- thumb_func_start FUN_0201D040
-FUN_0201D040: ; 0x0201D040
- ldr r1, _0201D054 ; =0x04001000
- ldr r2, [r1, #0x0]
- ldr r1, _0201D058 ; =0x00300010
- lsl r3, r1, #0x16
- ldr r3, [r3, #0x0]
- and r2, r1
- and r1, r3
- ldr r3, _0201D05C ; =FUN_0201D060
- bx r3
- nop
-_0201D054: .word 0x04001000
-_0201D058: .word 0x00300010
-_0201D05C: .word FUN_0201D060
-
- thumb_func_start FUN_0201D060
-FUN_0201D060: ; 0x0201D060
- push {r3-r7, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- ldr r0, _0201D120 ; =0x021C5994
- str r1, [sp, #0x0]
- ldr r0, [r0, #0x0]
- str r2, [sp, #0x4]
- cmp r0, #0x0
- bne _0201D11A
- ldr r0, [r5, #0xc]
- mov r1, #0x3c
- bl FUN_02016998
- add r1, r0, #0x0
- ldr r0, _0201D120 ; =0x021C5994
- mov r2, #0x3c
- str r1, [r0, #0x0]
- mov r0, #0x0
- bl MIi_CpuClear32
- ldr r1, _0201D120 ; =0x021C5994
- ldr r2, [r5, #0x0]
- ldr r0, [r1, #0x0]
- str r2, [r0, #0x4]
- ldr r1, [r1, #0x0]
- ldr r0, [r5, #0xc]
- ldr r2, [r1, #0x4]
- mov r1, #0x54
- mul r1, r2
- bl FUN_02016998
- ldr r7, _0201D120 ; =0x021C5994
- mov r6, #0x0
- ldr r1, [r7, #0x0]
- str r0, [r1, #0x0]
- ldr r0, [r5, #0x0]
- cmp r0, #0x0
- ble _0201D0C2
- add r4, r6, #0x0
-_0201D0AE:
- ldr r0, [r7, #0x0]
- ldr r0, [r0, #0x0]
- add r0, r0, r4
- bl FUN_0201D690
- ldr r0, [r5, #0x0]
- add r6, r6, #0x1
- add r4, #0x54
- cmp r6, r0
- blt _0201D0AE
-_0201D0C2:
- ldr r0, [sp, #0x0]
- bl FUN_0201DED0
- ldr r1, _0201D120 ; =0x021C5994
- ldr r1, [r1, #0x0]
- str r0, [r1, #0x2c]
- ldr r0, [sp, #0x4]
- bl FUN_0201DED0
- ldr r2, _0201D120 ; =0x021C5994
- mov r3, #0x1
- ldr r1, [r2, #0x0]
- lsl r3, r3, #0x1a
- str r0, [r1, #0x30]
- ldr r0, [r3, #0x0]
- ldr r1, _0201D124 ; =0xFFCFFFEF
- add r4, r0, #0x0
- ldr r0, [sp, #0x0]
- and r4, r1
- orr r0, r4
- str r0, [r3, #0x0]
- ldr r3, _0201D128 ; =0x04001000
- ldr r0, [r3, #0x0]
- and r1, r0
- ldr r0, [sp, #0x4]
- orr r0, r1
- str r0, [r3, #0x0]
- ldr r1, [r2, #0x0]
- ldr r0, [r5, #0x4]
- ldr r1, [r1, #0x2c]
- bl FUN_0201DF2C
- ldr r1, _0201D120 ; =0x021C5994
- add r4, r0, #0x0
- ldr r1, [r1, #0x0]
- ldr r0, [r5, #0x8]
- ldr r1, [r1, #0x30]
- bl FUN_0201DF2C
- add r1, r0, #0x0
- ldr r2, [r5, #0xc]
- add r0, r4, #0x0
- bl FUN_0201DC58
-_0201D11A:
- add sp, #0x8
- pop {r3-r7, pc}
- nop
-_0201D120: .word 0x021C5994
-_0201D124: .word 0xFFCFFFEF
-_0201D128: .word 0x04001000
-
- thumb_func_start FUN_0201D12C
-FUN_0201D12C: ; 0x0201D12C
- push {r3, lr}
- ldr r0, _0201D164 ; =0x021C5994
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _0201D162
- ldr r0, [r0, #0x34]
- bl FUN_0201DCC0
- ldr r0, _0201D164 ; =0x021C5994
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x38]
- bl FUN_0201DCC0
- bl FUN_0201D374
- ldr r0, _0201D164 ; =0x021C5994
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x0]
- bl FUN_02016A18
- ldr r0, _0201D164 ; =0x021C5994
- ldr r0, [r0, #0x0]
- bl FUN_02016A18
- ldr r0, _0201D164 ; =0x021C5994
- mov r1, #0x0
- str r1, [r0, #0x0]
-_0201D162:
- pop {r3, pc}
- .balign 4
-_0201D164: .word 0x021C5994
-
- thumb_func_start FUN_0201D168
-FUN_0201D168: ; 0x0201D168
- push {r3, lr}
- ldr r0, _0201D190 ; =0x021C5994
- mov r2, #0x0
- ldr r1, [r0, #0x0]
- str r2, [r1, #0xc]
- ldr r1, [r0, #0x0]
- str r2, [r1, #0x10]
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x34]
- bl FUN_0201DD00
- ldr r0, _0201D190 ; =0x021C5994
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x38]
- bl FUN_0201DD00
- bl FUN_0201DAE8
- pop {r3, pc}
- nop
-_0201D190: .word 0x021C5994
-
- thumb_func_start FUN_0201D194
-FUN_0201D194: ; 0x0201D194
- push {r3-r4, lr}
- sub sp, #0xc
- add r4, r0, #0x0
- add r3, r1, #0x0
- cmp r2, #0x1
- add r0, sp, #0x4
- bne _0201D1CA
- str r0, [sp, #0x0]
- ldr r0, _0201D1F4 ; =0x021C5994
- add r2, r3, #0x0
- ldr r0, [r0, #0x0]
- add r1, r4, #0x0
- ldr r0, [r0, #0x1c]
- add r3, sp, #0x8
- bl FUN_0201DFF0
- ldr r3, [sp, #0x4]
- cmp r3, #0x0
- ble _0201D1F0
- mov r2, #0x0
- str r2, [sp, #0x0]
- ldr r1, [sp, #0x8]
- mov r0, #0x1
- bl FUN_0201D948
- add sp, #0xc
- pop {r3-r4, pc}
-_0201D1CA:
- str r0, [sp, #0x0]
- ldr r0, _0201D1F4 ; =0x021C5994
- add r2, r3, #0x0
- ldr r0, [r0, #0x0]
- add r1, r4, #0x0
- ldr r0, [r0, #0x20]
- add r3, sp, #0x8
- bl FUN_0201DFF0
- ldr r0, [sp, #0x4]
- cmp r0, #0x0
- ble _0201D1F0
- str r0, [sp, #0x0]
- mov r1, #0x0
- ldr r2, [sp, #0x8]
- mov r0, #0x2
- add r3, r1, #0x0
- bl FUN_0201D948
-_0201D1F0:
- add sp, #0xc
- pop {r3-r4, pc}
- .balign 4
-_0201D1F4: .word 0x021C5994
-
- thumb_func_start FUN_0201D1F8
-FUN_0201D1F8: ; 0x0201D1F8
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldr r0, [r5, #0x8]
- bl FUN_0201D2AC
- cmp r0, #0x1
- bne _0201D20A
- bl ErrorHandling
-_0201D20A:
- bl FUN_0201DAAC
- add r4, r0, #0x0
- bne _0201D21A
- bl ErrorHandling
- mov r0, #0x0
- pop {r3-r5, pc}
-_0201D21A:
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_0201D6B4
- cmp r0, #0x0
- bne _0201D22A
- mov r0, #0x0
- pop {r3-r5, pc}
-_0201D22A:
- add r0, r4, #0x0
- bl FUN_0201D724
- cmp r0, #0x0
- bne _0201D23E
- ldr r0, [r4, #0xc]
- bl FUN_0201D324
- mov r0, #0x0
- pop {r3-r5, pc}
-_0201D23E:
- ldr r0, _0201D24C ; =0x021C5994
- ldr r1, [r0, #0x0]
- ldr r0, [r1, #0x8]
- add r0, r0, #0x1
- str r0, [r1, #0x8]
- mov r0, #0x1
- pop {r3-r5, pc}
- .balign 4
-_0201D24C: .word 0x021C5994
-
- thumb_func_start FUN_0201D250
-FUN_0201D250: ; 0x0201D250
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldr r0, [r5, #0x8]
- bl FUN_0201D2AC
- cmp r0, #0x1
- bne _0201D262
- bl ErrorHandling
-_0201D262:
- bl FUN_0201DAAC
- add r4, r0, #0x0
- bne _0201D272
- bl ErrorHandling
- mov r0, #0x0
- pop {r3-r5, pc}
-_0201D272:
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_0201D6B4
- cmp r0, #0x0
- bne _0201D282
- mov r0, #0x0
- pop {r3-r5, pc}
-_0201D282:
- mov r0, #0x1
- str r0, [r4, #0x40]
- add r0, r4, #0x0
- bl FUN_0201D724
- cmp r0, #0x0
- bne _0201D29A
- ldr r0, [r4, #0xc]
- bl FUN_0201D324
- mov r0, #0x0
- pop {r3-r5, pc}
-_0201D29A:
- ldr r0, _0201D2A8 ; =0x021C5994
- ldr r1, [r0, #0x0]
- ldr r0, [r1, #0x8]
- add r0, r0, #0x1
- str r0, [r1, #0x8]
- mov r0, #0x1
- pop {r3-r5, pc}
- .balign 4
-_0201D2A8: .word 0x021C5994
-
- thumb_func_start FUN_0201D2AC
-FUN_0201D2AC: ; 0x0201D2AC
- push {r3-r4}
- ldr r1, _0201D2D8 ; =0x021C5994
- mov r2, #0x0
- ldr r4, [r1, #0x0]
- ldr r1, [r4, #0x4]
- cmp r1, #0x0
- ble _0201D2D2
- ldr r3, [r4, #0x0]
-_0201D2BC:
- ldr r1, [r3, #0xc]
- cmp r0, r1
- bne _0201D2C8
- mov r0, #0x1
- pop {r3-r4}
- bx lr
-_0201D2C8:
- ldr r1, [r4, #0x4]
- add r2, r2, #0x1
- add r3, #0x54
- cmp r2, r1
- blt _0201D2BC
-_0201D2D2:
- mov r0, #0x0
- pop {r3-r4}
- bx lr
- .balign 4
-_0201D2D8: .word 0x021C5994
-
- thumb_func_start FUN_0201D2DC
-FUN_0201D2DC: ; 0x0201D2DC
- push {r3-r5, lr}
- add r4, r0, #0x0
- add r5, r1, #0x0
- bne _0201D2E8
- bl ErrorHandling
-_0201D2E8:
- add r0, r4, #0x0
- bl FUN_0201D7F8
- add r4, r0, #0x0
- bne _0201D2F6
- bl ErrorHandling
-_0201D2F6:
- str r5, [r4, #0x0]
- ldr r1, [r4, #0x4]
- mov r0, #0x1
- tst r0, r1
- beq _0201D30C
- ldr r1, [r4, #0x34]
- ldr r2, [r5, #0x14]
- ldr r3, [r5, #0x10]
- mov r0, #0x13
- bl FUN_0201C2C8
-_0201D30C:
- ldr r1, [r4, #0x4]
- mov r0, #0x2
- tst r0, r1
- beq _0201D320
- ldr r1, [r4, #0x38]
- ldr r2, [r5, #0x14]
- ldr r3, [r5, #0x10]
- mov r0, #0x23
- bl FUN_0201C2C8
-_0201D320:
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0201D324
-FUN_0201D324: ; 0x0201D324
- push {r3-r7, lr}
- add r6, r0, #0x0
- mov r5, #0x1
- mov r7, #0x0
-_0201D32C:
- add r0, r6, #0x0
- bl FUN_0201D7F8
- add r4, r0, #0x0
- bne _0201D33A
- bl ErrorHandling
-_0201D33A:
- add r0, r4, #0x0
- add r0, #0x3c
- ldrb r0, [r0, #0x0]
- cmp r0, #0x4
- bne _0201D34E
- add r0, r4, #0x0
- add r0, #0x10
- bl FUN_0201D4F0
- b _0201D350
-_0201D34E:
- add r5, r7, #0x0
-_0201D350:
- cmp r5, #0x0
- bne _0201D32C
- add r0, r4, #0x0
- add r0, #0x3c
- ldrb r0, [r0, #0x0]
- cmp r0, #0x0
- beq _0201D36E
- add r0, r4, #0x0
- bl FUN_0201D7E0
- ldr r0, _0201D370 ; =0x021C5994
- ldr r1, [r0, #0x0]
- ldr r0, [r1, #0x8]
- sub r0, r0, #0x1
- str r0, [r1, #0x8]
-_0201D36E:
- pop {r3-r7, pc}
- .balign 4
-_0201D370: .word 0x021C5994
-
- thumb_func_start FUN_0201D374
-FUN_0201D374: ; 0x0201D374
- push {r4-r6, lr}
- ldr r6, _0201D3AC ; =0x021C5994
- mov r4, #0x0
- ldr r1, [r6, #0x0]
- ldr r0, [r1, #0x4]
- cmp r0, #0x0
- ble _0201D3AA
- add r5, r4, #0x0
-_0201D384:
- ldr r1, [r1, #0x0]
- add r0, r1, r5
- add r0, #0x3c
- ldrb r0, [r0, #0x0]
- cmp r0, #0x0
- beq _0201D39E
- add r0, r1, r5
- bl FUN_0201D7E0
- ldr r1, [r6, #0x0]
- ldr r0, [r1, #0x8]
- sub r0, r0, #0x1
- str r0, [r1, #0x8]
-_0201D39E:
- ldr r1, [r6, #0x0]
- add r4, r4, #0x1
- ldr r0, [r1, #0x4]
- add r5, #0x54
- cmp r4, r0
- blt _0201D384
-_0201D3AA:
- pop {r4-r6, pc}
- .balign 4
-_0201D3AC: .word 0x021C5994
-
- thumb_func_start FUN_0201D3B0
-FUN_0201D3B0: ; 0x0201D3B0
- push {r4, lr}
- bl FUN_0201D7F8
- add r4, r0, #0x0
- bne _0201D3BE
- bl ErrorHandling
-_0201D3BE:
- add r0, r4, #0x0
- add r0, #0x3c
- ldrb r0, [r0, #0x0]
- cmp r0, #0x0
- bne _0201D3CC
- mov r0, #0x0
- pop {r4, pc}
-_0201D3CC:
- add r4, #0x10
- add r0, r4, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0201D3D4
-FUN_0201D3D4: ; 0x0201D3D4
- push {r3-r5, lr}
- sub sp, #0x18
- add r5, r1, #0x0
- bl FUN_0201D7F8
- add r4, r0, #0x0
- bne _0201D3E6
- bl ErrorHandling
-_0201D3E6:
- add r0, r4, #0x0
- add r0, #0x3c
- ldrb r0, [r0, #0x0]
- cmp r0, #0x0
- bne _0201D3F6
- add sp, #0x18
- mov r0, #0x0
- pop {r3-r5, pc}
-_0201D3F6:
- add r0, sp, #0xc
- str r0, [sp, #0x0]
- add r0, sp, #0x8
- str r0, [sp, #0x4]
- ldr r0, [r4, #0x4]
- add r1, sp, #0x14
- add r2, sp, #0x10
- add r3, r5, #0x0
- bl FUN_0201D86C
- add r0, r4, #0x0
- add r0, #0x3c
- ldrb r0, [r0, #0x0]
- cmp r0, #0x3
- bne _0201D41A
- add sp, #0x18
- mov r0, #0x0
- pop {r3-r5, pc}
-_0201D41A:
- add r0, r4, #0x0
- mov r1, #0x3
- add r0, #0x3c
- strb r1, [r0, #0x0]
- ldr r1, [sp, #0x14]
- ldr r2, [sp, #0x10]
- add r0, r4, #0x0
- bl FUN_0201D918
- mov r0, #0x1
- str r0, [r4, #0x48]
- ldr r0, [sp, #0xc]
- str r0, [r4, #0x4c]
- ldr r0, [sp, #0x8]
- str r0, [r4, #0x50]
- add r0, r4, #0x0
- bl FUN_0201DA38
- ldr r0, [sp, #0x8]
- str r0, [sp, #0x0]
- ldr r0, [r4, #0x4]
- ldr r1, [sp, #0x14]
- ldr r2, [sp, #0x10]
- ldr r3, [sp, #0xc]
- bl FUN_0201D948
- add r4, #0x10
- add r0, r4, #0x0
- add sp, #0x18
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0201D458
-FUN_0201D458: ; 0x0201D458
- push {r3-r5, lr}
- sub sp, #0x18
- bl FUN_0201D6D8
- add r4, r0, #0x0
- bne _0201D468
- bl ErrorHandling
-_0201D468:
- bl FUN_0201DAAC
- add r5, r0, #0x0
- bne _0201D474
- bl ErrorHandling
-_0201D474:
- add r0, r4, #0x0
- add r0, #0x3c
- ldrb r0, [r0, #0x0]
- cmp r0, #0x3
- beq _0201D484
- add sp, #0x18
- mov r0, #0x0
- pop {r3-r5, pc}
-_0201D484:
- add r3, r5, #0x0
- mov r2, #0xa
-_0201D488:
- ldmia r4!, {r0-r1}
- stmia r3!, {r0-r1}
- sub r2, r2, #0x1
- bne _0201D488
- ldr r0, [r4, #0x0]
- mov r1, #0x4
- str r0, [r3, #0x0]
- add r0, r5, #0x0
- add r0, #0x3c
- strb r1, [r0, #0x0]
- ldr r0, [r5, #0x4]
- mov r1, #0x1
- tst r1, r0
- beq _0201D4A8
- ldr r3, [r5, #0x4c]
- b _0201D4AA
-_0201D4A8:
- ldr r3, [r5, #0x50]
-_0201D4AA:
- add r1, sp, #0xc
- str r1, [sp, #0x0]
- add r1, sp, #0x8
- str r1, [sp, #0x4]
- add r1, sp, #0x14
- add r2, sp, #0x10
- bl FUN_0201D86C
- ldr r1, [sp, #0x14]
- ldr r2, [sp, #0x10]
- add r0, r5, #0x0
- bl FUN_0201D918
- mov r0, #0x1
- str r0, [r5, #0x48]
- ldr r0, [sp, #0xc]
- str r0, [r5, #0x4c]
- ldr r0, [sp, #0x8]
- str r0, [r5, #0x50]
- add r0, r5, #0x0
- bl FUN_0201DA38
- ldr r0, [sp, #0x8]
- str r0, [sp, #0x0]
- ldr r0, [r5, #0x4]
- ldr r1, [sp, #0x14]
- ldr r2, [sp, #0x10]
- ldr r3, [sp, #0xc]
- bl FUN_0201D948
- add r5, #0x10
- add r0, r5, #0x0
- add sp, #0x18
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0201D4F0
-FUN_0201D4F0: ; 0x0201D4F0
- push {r4-r6, lr}
- ldr r2, _0201D564 ; =0x021C5994
- mov r1, #0x0
- ldr r5, [r2, #0x0]
- ldr r4, [r5, #0x4]
- cmp r4, #0x0
- ble _0201D52E
- ldr r2, [r5, #0x0]
- add r3, r1, #0x0
-_0201D502:
- add r6, r2, #0x0
- add r6, #0x3c
- ldrb r6, [r6, #0x0]
- cmp r6, #0x3
- beq _0201D518
- ldr r6, [r5, #0x0]
- add r6, r6, r3
- add r6, #0x3c
- ldrb r6, [r6, #0x0]
- cmp r6, #0x4
- bne _0201D522
-_0201D518:
- ldr r6, [r5, #0x0]
- add r6, r6, r3
- add r6, #0x10
- cmp r6, r0
- beq _0201D52E
-_0201D522:
- ldr r6, [r5, #0x4]
- add r1, r1, #0x1
- add r2, #0x54
- add r3, #0x54
- cmp r1, r6
- blt _0201D502
-_0201D52E:
- cmp r1, r4
- bge _0201D562
- mov r0, #0x54
- add r4, r1, #0x0
- mul r4, r0
- ldr r0, [r5, #0x0]
- add r0, r0, r4
- bl FUN_0201DE4C
- ldr r0, _0201D564 ; =0x021C5994
- ldr r1, [r0, #0x0]
- ldr r2, [r1, #0x0]
- add r2, #0x3c
- ldrb r1, [r2, r4]
- cmp r1, #0x3
- bne _0201D554
- mov r0, #0x2
- strb r0, [r2, r4]
- pop {r4-r6, pc}
-_0201D554:
- mov r1, #0x0
- strb r1, [r2, r4]
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x0]
- add r0, r0, r4
- bl FUN_0201D690
-_0201D562:
- pop {r4-r6, pc}
- .balign 4
-_0201D564: .word 0x021C5994
-
- thumb_func_start FUN_0201D568
-FUN_0201D568: ; 0x0201D568
- push {r3-r7, lr}
- sub sp, #0x18
- add r6, r0, #0x0
- add r5, r2, #0x0
- add r4, r3, #0x0
- cmp r1, #0x0
- bne _0201D5A0
- add r1, r5, #0x0
- add r2, sp, #0x14
- add r3, sp, #0x10
- bl FUN_0201DF44
- add r7, r0, #0x0
- beq _0201D5E0
- add r0, r6, #0x0
- add r1, r5, #0x0
- bl FUN_0201DF94
- str r5, [r4, #0x8]
- str r6, [r4, #0x0]
- cmp r5, #0x1
- bne _0201D59A
- ldr r0, [sp, #0x14]
- str r0, [r4, #0x4]
- b _0201D5E0
-_0201D59A:
- ldr r0, [sp, #0x10]
- str r0, [r4, #0x4]
- b _0201D5E0
-_0201D5A0:
- add r0, sp, #0xc
- str r0, [sp, #0x0]
- add r0, sp, #0x8
- str r0, [sp, #0x4]
- add r0, r5, #0x0
- add r1, sp, #0x14
- add r2, sp, #0x10
- add r3, r6, #0x0
- bl FUN_0201D86C
- add r7, r0, #0x0
- beq _0201D5E0
- ldr r0, [sp, #0x8]
- str r0, [sp, #0x0]
- ldr r1, [sp, #0x14]
- ldr r2, [sp, #0x10]
- ldr r3, [sp, #0xc]
- add r0, r5, #0x0
- bl FUN_0201D948
- str r5, [r4, #0x8]
- cmp r5, #0x1
- bne _0201D5D8
- ldr r0, [sp, #0xc]
- str r0, [r4, #0x0]
- ldr r0, [sp, #0x14]
- str r0, [r4, #0x4]
- b _0201D5E0
-_0201D5D8:
- ldr r0, [sp, #0x8]
- str r0, [r4, #0x0]
- ldr r0, [sp, #0x10]
- str r0, [r4, #0x4]
-_0201D5E0:
- add r0, r7, #0x0
- add sp, #0x18
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0201D5E8
-FUN_0201D5E8: ; 0x0201D5E8
- push {r3-r5, lr}
- add r4, r0, #0x0
- ldr r1, [r4, #0x8]
- mov r0, #0x1
- tst r0, r1
- beq _0201D61E
- ldr r1, _0201D654 ; =0x021C5994
- ldr r0, [r4, #0x0]
- ldr r1, [r1, #0x0]
- ldr r1, [r1, #0x2c]
- bl FUN_0201DF2C
- add r5, r0, #0x0
- ldr r0, _0201D654 ; =0x021C5994
- ldr r1, [r4, #0x4]
- ldr r2, [r0, #0x0]
- ldr r0, [r2, #0x1c]
- sub r0, r1, r0
- ldr r1, [r2, #0x2c]
- bl FUN_0201DF2C
- ldr r2, _0201D654 ; =0x021C5994
- add r1, r5, #0x0
- ldr r2, [r2, #0x0]
- ldr r2, [r2, #0x34]
- bl FUN_0201DDFC
-_0201D61E:
- ldr r1, [r4, #0x8]
- mov r0, #0x2
- tst r0, r1
- beq _0201D650
- ldr r1, _0201D654 ; =0x021C5994
- ldr r0, [r4, #0x0]
- ldr r1, [r1, #0x0]
- ldr r1, [r1, #0x30]
- bl FUN_0201DF2C
- add r5, r0, #0x0
- ldr r0, _0201D654 ; =0x021C5994
- ldr r1, [r4, #0x4]
- ldr r2, [r0, #0x0]
- ldr r0, [r2, #0x20]
- sub r0, r1, r0
- ldr r1, [r2, #0x30]
- bl FUN_0201DF2C
- ldr r2, _0201D654 ; =0x021C5994
- add r1, r5, #0x0
- ldr r2, [r2, #0x0]
- ldr r2, [r2, #0x38]
- bl FUN_0201DDFC
-_0201D650:
- pop {r3-r5, pc}
- nop
-_0201D654: .word 0x021C5994
-
- thumb_func_start FUN_0201D658
-FUN_0201D658: ; 0x0201D658
- push {r3, lr}
- ldr r0, _0201D670 ; =0x021C5994
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- bne _0201D666
- bl ErrorHandling
-_0201D666:
- ldr r1, _0201D670 ; =0x021C5994
- mov r2, #0x0
- ldr r0, [r1, #0x0]
- str r2, [r1, #0x0]
- pop {r3, pc}
- .balign 4
-_0201D670: .word 0x021C5994
-
- thumb_func_start FUN_0201D674
-FUN_0201D674: ; 0x0201D674
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, _0201D68C ; =0x021C5994
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _0201D684
- bl ErrorHandling
-_0201D684:
- ldr r0, _0201D68C ; =0x021C5994
- str r4, [r0, #0x0]
- pop {r4, pc}
- nop
-_0201D68C: .word 0x021C5994
-
- thumb_func_start FUN_0201D690
-FUN_0201D690: ; 0x0201D690
- mov r2, #0x0
- str r2, [r0, #0x0]
- str r2, [r0, #0x4]
- strb r2, [r0, #0x8]
- sub r1, r2, #0x1
- str r1, [r0, #0xc]
- str r2, [r0, #0x34]
- add r1, r0, #0x0
- str r2, [r0, #0x38]
- add r1, #0x3c
- strb r2, [r1, #0x0]
- str r2, [r0, #0x40]
- ldr r3, _0201D6B0 ; =FUN_020B1A24
- add r0, #0x10
- bx r3
- nop
-_0201D6B0: .word FUN_020B1A24
-
- thumb_func_start FUN_0201D6B4
-FUN_0201D6B4: ; 0x0201D6B4
- ldr r2, [r0, #0x0]
- str r2, [r1, #0x0]
- ldr r2, [r0, #0x8]
- str r2, [r1, #0xc]
- ldr r2, [r0, #0x4]
- str r2, [r1, #0x4]
- ldr r2, [r1, #0x0]
- ldr r2, [r2, #0xc]
- lsr r2, r2, #0x8
- strb r2, [r1, #0x8]
- ldr r0, [r0, #0xc]
- str r0, [r1, #0x44]
- mov r0, #0x0
- str r0, [r1, #0x48]
- str r0, [r1, #0x4c]
- str r0, [r1, #0x50]
- mov r0, #0x1
- bx lr
-
- thumb_func_start FUN_0201D6D8
-FUN_0201D6D8: ; 0x0201D6D8
- push {r3-r6}
- ldr r2, _0201D720 ; =0x021C5994
- mov r1, #0x0
- ldr r5, [r2, #0x0]
- ldr r4, [r5, #0x4]
- cmp r4, #0x0
- ble _0201D70A
- ldr r2, [r5, #0x0]
- add r3, r1, #0x0
-_0201D6EA:
- add r6, r2, #0x0
- add r6, #0x3c
- ldrb r6, [r6, #0x0]
- cmp r6, #0x0
- beq _0201D6FE
- ldr r6, [r5, #0x0]
- add r6, r6, r3
- add r6, #0x10
- cmp r6, r0
- beq _0201D70A
-_0201D6FE:
- ldr r6, [r5, #0x4]
- add r1, r1, #0x1
- add r2, #0x54
- add r3, #0x54
- cmp r1, r6
- blt _0201D6EA
-_0201D70A:
- cmp r1, r4
- blt _0201D714
- mov r0, #0x0
- pop {r3-r6}
- bx lr
-_0201D714:
- mov r0, #0x54
- ldr r2, [r5, #0x0]
- mul r0, r1
- add r0, r2, r0
- pop {r3-r6}
- bx lr
- .balign 4
-_0201D720: .word 0x021C5994
-
- thumb_func_start FUN_0201D724
-FUN_0201D724: ; 0x0201D724
- push {r3, lr}
- ldrb r1, [r0, #0x8]
- mov r2, #0x1
- cmp r1, #0x0
- beq _0201D736
- mov r1, #0x2
- add r0, #0x3c
- strb r1, [r0, #0x0]
- b _0201D750
-_0201D736:
- add r1, r0, #0x0
- add r1, #0x3c
- strb r2, [r1, #0x0]
- ldr r1, [r0, #0x44]
- cmp r1, #0x0
- bne _0201D74A
- bl FUN_0201D754
- add r2, r0, #0x0
- b _0201D750
-_0201D74A:
- bl FUN_0201D788
- add r2, r0, #0x0
-_0201D750:
- add r0, r2, #0x0
- pop {r3, pc}
-
- thumb_func_start FUN_0201D754
-FUN_0201D754: ; 0x0201D754
- push {r3-r5, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- ldr r0, [r5, #0x0]
- ldr r1, [r5, #0x4]
- ldr r0, [r0, #0x10]
- add r2, sp, #0x4
- add r3, sp, #0x0
- bl FUN_0201DF44
- add r4, r0, #0x0
- beq _0201D780
- ldr r1, [sp, #0x4]
- ldr r2, [sp, #0x0]
- add r0, r5, #0x0
- bl FUN_0201D858
- ldr r0, [r5, #0x0]
- ldr r1, [r5, #0x4]
- ldr r0, [r0, #0x10]
- bl FUN_0201DF94
-_0201D780:
- add r0, r4, #0x0
- add sp, #0x8
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0201D788
-FUN_0201D788: ; 0x0201D788
- push {r4, lr}
- sub sp, #0x18
- add r4, r0, #0x0
- add r0, sp, #0xc
- str r0, [sp, #0x0]
- add r0, sp, #0x8
- str r0, [sp, #0x4]
- ldr r3, [r4, #0x0]
- ldr r0, [r4, #0x4]
- ldr r3, [r3, #0x10]
- add r1, sp, #0x14
- add r2, sp, #0x10
- bl FUN_0201D86C
- cmp r0, #0x0
- bne _0201D7AE
- add sp, #0x18
- mov r0, #0x0
- pop {r4, pc}
-_0201D7AE:
- ldr r1, [sp, #0x14]
- ldr r2, [sp, #0x10]
- add r0, r4, #0x0
- bl FUN_0201D918
- mov r0, #0x1
- str r0, [r4, #0x48]
- ldr r0, [sp, #0xc]
- str r0, [r4, #0x4c]
- ldr r0, [sp, #0x8]
- str r0, [r4, #0x50]
- add r0, r4, #0x0
- bl FUN_0201D9B0
- ldr r0, [sp, #0x8]
- str r0, [sp, #0x0]
- ldr r0, [r4, #0x4]
- ldr r1, [sp, #0x14]
- ldr r2, [sp, #0x10]
- ldr r3, [sp, #0xc]
- bl FUN_0201D948
- mov r0, #0x1
- add sp, #0x18
- pop {r4, pc}
-
- thumb_func_start FUN_0201D7E0
-FUN_0201D7E0: ; 0x0201D7E0
- push {r4, lr}
- add r4, r0, #0x0
- ldr r1, [r4, #0x48]
- cmp r1, #0x0
- beq _0201D7EE
- bl FUN_0201DE4C
-_0201D7EE:
- add r0, r4, #0x0
- bl FUN_0201D690
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0201D7F8
-FUN_0201D7F8: ; 0x0201D7F8
- push {r4-r5}
- ldr r2, _0201D82C ; =0x021C5994
- mov r1, #0x0
- ldr r5, [r2, #0x0]
- ldr r2, [r5, #0x4]
- cmp r2, #0x0
- ble _0201D824
- ldr r2, [r5, #0x0]
- add r4, r2, #0x0
-_0201D80A:
- ldr r3, [r4, #0xc]
- cmp r0, r3
- bne _0201D81A
- mov r0, #0x54
- mul r0, r1
- add r0, r2, r0
- pop {r4-r5}
- bx lr
-_0201D81A:
- ldr r3, [r5, #0x4]
- add r1, r1, #0x1
- add r4, #0x54
- cmp r1, r3
- blt _0201D80A
-_0201D824:
- mov r0, #0x0
- pop {r4-r5}
- bx lr
- nop
-_0201D82C: .word 0x021C5994
-
- thumb_func_start FUN_0201D830
-FUN_0201D830: ; 0x0201D830
- cmp r1, #0x1
- bne _0201D83C
- mov r1, #0x1
- lsl r1, r1, #0x1a
- ldr r2, [r1, #0x0]
- b _0201D840
-_0201D83C:
- ldr r1, _0201D850 ; =0x04001000
- ldr r2, [r1, #0x0]
-_0201D840:
- ldr r1, _0201D854 ; =0x00300010
- and r2, r1
- ldr r1, [r0, #0x0]
- str r2, [r1, #0x8]
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x8]
- bx lr
- nop
-_0201D850: .word 0x04001000
-_0201D854: .word 0x00300010
-
- thumb_func_start FUN_0201D858
-FUN_0201D858: ; 0x0201D858
- push {r3, lr}
- str r1, [r0, #0x34]
- str r2, [r0, #0x38]
- ldrb r1, [r0, #0x8]
- cmp r1, #0x0
- bne _0201D868
- bl FUN_0201D9B0
-_0201D868:
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_0201D86C
-FUN_0201D86C: ; 0x0201D86C
- push {r3-r7, lr}
- add r5, r0, #0x0
- ldr r0, [sp, #0x1c]
- add r6, r2, #0x0
- str r0, [sp, #0x1c]
- mov r2, #0x1
- add r0, r5, #0x0
- add r4, r1, #0x0
- str r3, [sp, #0x0]
- ldr r7, [sp, #0x18]
- tst r0, r2
- beq _0201D8C4
- ldr r1, _0201D914 ; =0x021C5994
- add r0, r3, #0x0
- ldr r1, [r1, #0x0]
- ldr r1, [r1, #0x2c]
- bl FUN_0201DF10
- ldr r1, _0201D914 ; =0x021C5994
- str r0, [r7, #0x0]
- ldr r1, [r1, #0x0]
- ldr r1, [r1, #0x2c]
- bl FUN_0201DF2C
- ldr r1, _0201D914 ; =0x021C5994
- ldr r1, [r1, #0x0]
- ldr r1, [r1, #0x34]
- bl FUN_0201DD74
- mov r1, #0x0
- mvn r1, r1
- str r0, [r4, #0x0]
- cmp r0, r1
- bne _0201D8B8
- bl ErrorHandling
- mov r0, #0x0
- pop {r3-r7, pc}
-_0201D8B8:
- ldr r1, _0201D914 ; =0x021C5994
- ldr r1, [r1, #0x0]
- ldr r1, [r1, #0x2c]
- bl FUN_0201DF3C
- str r0, [r4, #0x0]
-_0201D8C4:
- mov r0, #0x2
- tst r0, r5
- beq _0201D90E
- ldr r1, _0201D914 ; =0x021C5994
- ldr r0, [sp, #0x0]
- ldr r1, [r1, #0x0]
- mov r2, #0x1
- ldr r1, [r1, #0x30]
- bl FUN_0201DF10
- ldr r1, [sp, #0x1c]
- str r0, [r1, #0x0]
- ldr r1, _0201D914 ; =0x021C5994
- ldr r1, [r1, #0x0]
- ldr r1, [r1, #0x30]
- bl FUN_0201DF2C
- ldr r1, _0201D914 ; =0x021C5994
- ldr r1, [r1, #0x0]
- ldr r1, [r1, #0x38]
- bl FUN_0201DD74
- mov r1, #0x0
- mvn r1, r1
- str r0, [r6, #0x0]
- cmp r0, r1
- bne _0201D902
- bl ErrorHandling
- mov r0, #0x0
- pop {r3-r7, pc}
-_0201D902:
- ldr r1, _0201D914 ; =0x021C5994
- ldr r1, [r1, #0x0]
- ldr r1, [r1, #0x30]
- bl FUN_0201DF3C
- str r0, [r6, #0x0]
-_0201D90E:
- mov r0, #0x1
- pop {r3-r7, pc}
- nop
-_0201D914: .word 0x021C5994
-
- thumb_func_start FUN_0201D918
-FUN_0201D918: ; 0x0201D918
- push {r3-r4}
- ldr r4, [r0, #0x4]
- mov r3, #0x1
- tst r3, r4
- beq _0201D92C
- ldr r3, _0201D944 ; =0x021C5994
- ldr r3, [r3, #0x0]
- ldr r3, [r3, #0x1c]
- add r1, r1, r3
- str r1, [r0, #0x34]
-_0201D92C:
- ldr r3, [r0, #0x4]
- mov r1, #0x2
- tst r1, r3
- beq _0201D93E
- ldr r1, _0201D944 ; =0x021C5994
- ldr r1, [r1, #0x0]
- ldr r1, [r1, #0x20]
- add r1, r2, r1
- str r1, [r0, #0x38]
-_0201D93E:
- pop {r3-r4}
- bx lr
- nop
-_0201D944: .word 0x021C5994
-
- thumb_func_start FUN_0201D948
-FUN_0201D948: ; 0x0201D948
- push {r3-r7, lr}
- add r5, r0, #0x0
- mov r0, #0x1
- add r4, r1, #0x0
- add r6, r2, #0x0
- tst r0, r5
- beq _0201D97C
- ldr r1, _0201D9AC ; =0x021C5994
- add r0, r3, #0x0
- ldr r1, [r1, #0x0]
- ldr r1, [r1, #0x2c]
- bl FUN_0201DF2C
- ldr r1, _0201D9AC ; =0x021C5994
- add r7, r0, #0x0
- ldr r1, [r1, #0x0]
- add r0, r4, #0x0
- ldr r1, [r1, #0x2c]
- bl FUN_0201DF2C
- ldr r2, _0201D9AC ; =0x021C5994
- add r1, r7, #0x0
- ldr r2, [r2, #0x0]
- ldr r2, [r2, #0x34]
- bl FUN_0201DD18
-_0201D97C:
- mov r0, #0x2
- tst r0, r5
- beq _0201D9A8
- ldr r1, _0201D9AC ; =0x021C5994
- ldr r0, [sp, #0x18]
- ldr r1, [r1, #0x0]
- ldr r1, [r1, #0x30]
- bl FUN_0201DF2C
- ldr r1, _0201D9AC ; =0x021C5994
- add r4, r0, #0x0
- ldr r1, [r1, #0x0]
- add r0, r6, #0x0
- ldr r1, [r1, #0x30]
- bl FUN_0201DF2C
- ldr r2, _0201D9AC ; =0x021C5994
- add r1, r4, #0x0
- ldr r2, [r2, #0x0]
- ldr r2, [r2, #0x38]
- bl FUN_0201DD18
-_0201D9A8:
- pop {r3-r7, pc}
- nop
-_0201D9AC: .word 0x021C5994
-
- thumb_func_start FUN_0201D9B0
-FUN_0201D9B0: ; 0x0201D9B0
- push {r4, lr}
- add r4, r0, #0x0
- add r0, #0x10
- bl FUN_020B1A24
- ldr r1, [r4, #0x4]
- cmp r1, #0x3
- beq _0201D9C8
- add r0, r4, #0x0
- bl FUN_0201D9DC
- pop {r4, pc}
-_0201D9C8:
- add r0, r4, #0x0
- mov r1, #0x1
- bl FUN_0201D9DC
- add r0, r4, #0x0
- mov r1, #0x2
- bl FUN_0201D9DC
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0201D9DC
-FUN_0201D9DC: ; 0x0201D9DC
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldr r2, [r5, #0x40]
- add r4, r1, #0x0
- cmp r2, #0x0
- beq _0201D9EE
- bl FUN_0201D830
- b _0201D9F0
-_0201D9EE:
- add r0, r4, #0x0
-_0201D9F0:
- cmp r4, #0x1
- bne _0201D9FE
- mov r2, #0x1
- lsl r2, r2, #0x1a
- ldr r1, [r5, #0x34]
- ldr r2, [r2, #0x0]
- b _0201DA04
-_0201D9FE:
- ldr r2, _0201DA34 ; =0x04001000
- ldr r1, [r5, #0x38]
- ldr r2, [r2, #0x0]
-_0201DA04:
- cmp r0, #0x0
- ldr r0, [r5, #0x0]
- bne _0201DA16
- add r5, #0x10
- add r2, r4, #0x0
- add r3, r5, #0x0
- bl FUN_020B1528
- b _0201DA20
-_0201DA16:
- add r5, #0x10
- add r2, r4, #0x0
- add r3, r5, #0x0
- bl FUN_020B1768
-_0201DA20:
- cmp r4, #0x1
- bne _0201DA2C
- mov r0, #0x1
- lsl r0, r0, #0x1a
- ldr r0, [r0, #0x0]
- pop {r3-r5, pc}
-_0201DA2C:
- ldr r0, _0201DA34 ; =0x04001000
- ldr r0, [r0, #0x0]
- pop {r3-r5, pc}
- nop
-_0201DA34: .word 0x04001000
-
- thumb_func_start FUN_0201DA38
-FUN_0201DA38: ; 0x0201DA38
- push {r4, lr}
- add r4, r0, #0x0
- add r0, #0x10
- bl FUN_020B1A24
- ldr r1, [r4, #0x4]
- cmp r1, #0x3
- beq _0201DA50
- add r0, r4, #0x0
- bl FUN_0201DA64
- pop {r4, pc}
-_0201DA50:
- add r0, r4, #0x0
- mov r1, #0x1
- bl FUN_0201DA64
- add r0, r4, #0x0
- mov r1, #0x2
- bl FUN_0201DA64
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0201DA64
-FUN_0201DA64: ; 0x0201DA64
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldr r2, [r5, #0x40]
- add r4, r1, #0x0
- cmp r2, #0x0
- beq _0201DA74
- bl FUN_0201D830
-_0201DA74:
- cmp r4, #0x1
- bne _0201DA82
- mov r0, #0x1
- lsl r0, r0, #0x1a
- ldr r1, [r5, #0x34]
- ldr r0, [r0, #0x0]
- b _0201DA88
-_0201DA82:
- ldr r0, _0201DAA8 ; =0x04001000
- ldr r1, [r5, #0x38]
- ldr r0, [r0, #0x0]
-_0201DA88:
- ldr r0, [r5, #0x0]
- add r5, #0x10
- add r2, r4, #0x0
- add r3, r5, #0x0
- bl FUN_020B1340
- cmp r4, #0x1
- bne _0201DAA0
- mov r0, #0x1
- lsl r0, r0, #0x1a
- ldr r0, [r0, #0x0]
- pop {r3-r5, pc}
-_0201DAA0:
- ldr r0, _0201DAA8 ; =0x04001000
- ldr r0, [r0, #0x0]
- pop {r3-r5, pc}
- nop
-_0201DAA8: .word 0x04001000
-
- thumb_func_start FUN_0201DAAC
-FUN_0201DAAC: ; 0x0201DAAC
- push {r3-r4}
- ldr r1, _0201DAE4 ; =0x021C5994
- mov r0, #0x0
- ldr r4, [r1, #0x0]
- ldr r1, [r4, #0x4]
- cmp r1, #0x0
- ble _0201DADC
- ldr r1, [r4, #0x0]
- add r3, r1, #0x0
-_0201DABE:
- add r2, r3, #0x0
- add r2, #0x3c
- ldrb r2, [r2, #0x0]
- cmp r2, #0x0
- bne _0201DAD2
- mov r2, #0x54
- mul r2, r0
- add r0, r1, r2
- pop {r3-r4}
- bx lr
-_0201DAD2:
- ldr r2, [r4, #0x4]
- add r0, r0, #0x1
- add r3, #0x54
- cmp r0, r2
- blt _0201DABE
-_0201DADC:
- mov r0, #0x0
- pop {r3-r4}
- bx lr
- nop
-_0201DAE4: .word 0x021C5994
-
- thumb_func_start FUN_0201DAE8
-FUN_0201DAE8: ; 0x0201DAE8
- push {r3, lr}
- bl GX_GetBankForOBJ
- cmp r0, #0x30
- bgt _0201DB18
- bge _0201DB60
- cmp r0, #0x10
- bgt _0201DB12
- bge _0201DB54
- cmp r0, #0x3
- bhi _0201DB90
- add r1, r0, r0
- add r1, pc
- ldrh r1, [r1, #0x6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0201DB0A: ; jump table (using 16-bit offset)
- .short _0201DB32 - _0201DB0A - 2; case 0
- .short _0201DB78 - _0201DB0A - 2; case 1
- .short _0201DB78 - _0201DB0A - 2; case 2
- .short _0201DB84 - _0201DB0A - 2; case 3
-_0201DB12:
- cmp r0, #0x20
- beq _0201DB3C
- b _0201DB90
-_0201DB18:
- cmp r0, #0x50
- bgt _0201DB24
- bge _0201DB60
- cmp r0, #0x40
- beq _0201DB3C
- b _0201DB90
-_0201DB24:
- cmp r0, #0x60
- bgt _0201DB2C
- beq _0201DB48
- b _0201DB90
-_0201DB2C:
- cmp r0, #0x70
- beq _0201DB6C
- b _0201DB90
-_0201DB32:
- ldr r0, _0201DC38 ; =0x021C5994
- mov r1, #0x0
- ldr r0, [r0, #0x0]
- str r1, [r0, #0x14]
- b _0201DB98
-_0201DB3C:
- ldr r0, _0201DC38 ; =0x021C5994
- mov r1, #0x1
- ldr r0, [r0, #0x0]
- lsl r1, r1, #0xe
- str r1, [r0, #0x14]
- b _0201DB98
-_0201DB48:
- ldr r0, _0201DC38 ; =0x021C5994
- mov r1, #0x2
- ldr r0, [r0, #0x0]
- lsl r1, r1, #0xe
- str r1, [r0, #0x14]
- b _0201DB98
-_0201DB54:
- ldr r0, _0201DC38 ; =0x021C5994
- mov r1, #0x1
- ldr r0, [r0, #0x0]
- lsl r1, r1, #0x10
- str r1, [r0, #0x14]
- b _0201DB98
-_0201DB60:
- ldr r0, _0201DC38 ; =0x021C5994
- mov r1, #0x5
- ldr r0, [r0, #0x0]
- lsl r1, r1, #0xe
- str r1, [r0, #0x14]
- b _0201DB98
-_0201DB6C:
- ldr r0, _0201DC38 ; =0x021C5994
- mov r1, #0x6
- ldr r0, [r0, #0x0]
- lsl r1, r1, #0xe
- str r1, [r0, #0x14]
- b _0201DB98
-_0201DB78:
- ldr r0, _0201DC38 ; =0x021C5994
- mov r1, #0x2
- ldr r0, [r0, #0x0]
- lsl r1, r1, #0x10
- str r1, [r0, #0x14]
- b _0201DB98
-_0201DB84:
- ldr r0, _0201DC38 ; =0x021C5994
- mov r1, #0x1
- ldr r0, [r0, #0x0]
- lsl r1, r1, #0x12
- str r1, [r0, #0x14]
- b _0201DB98
-_0201DB90:
- ldr r0, _0201DC38 ; =0x021C5994
- mov r1, #0x0
- ldr r0, [r0, #0x0]
- str r1, [r0, #0x14]
-_0201DB98:
- bl GX_GetBankForSubOBJ
- cmp r0, #0x0
- beq _0201DBAE
- cmp r0, #0x8
- beq _0201DBC2
- mov r1, #0x1
- lsl r1, r1, #0x8
- cmp r0, r1
- beq _0201DBB8
- b _0201DBCE
-_0201DBAE:
- ldr r0, _0201DC38 ; =0x021C5994
- mov r1, #0x0
- ldr r0, [r0, #0x0]
- str r1, [r0, #0x18]
- b _0201DBD6
-_0201DBB8:
- ldr r0, _0201DC38 ; =0x021C5994
- lsl r1, r1, #0x6
- ldr r0, [r0, #0x0]
- str r1, [r0, #0x18]
- b _0201DBD6
-_0201DBC2:
- ldr r0, _0201DC38 ; =0x021C5994
- mov r1, #0x2
- ldr r0, [r0, #0x0]
- lsl r1, r1, #0x10
- str r1, [r0, #0x18]
- b _0201DBD6
-_0201DBCE:
- ldr r0, _0201DC38 ; =0x021C5994
- mov r1, #0x0
- ldr r0, [r0, #0x0]
- str r1, [r0, #0x18]
-_0201DBD6:
- ldr r0, _0201DC38 ; =0x021C5994
- ldr r1, [r0, #0x0]
- ldr r0, [r1, #0x24]
- ldr r1, [r1, #0x2c]
- bl FUN_0201DF3C
- ldr r1, _0201DC38 ; =0x021C5994
- ldr r3, [r1, #0x0]
- ldr r2, [r3, #0x14]
- sub r0, r2, r0
- str r0, [r3, #0x1c]
- ldr r1, [r1, #0x0]
- ldr r0, [r1, #0x28]
- ldr r1, [r1, #0x30]
- bl FUN_0201DF3C
- ldr r1, _0201DC38 ; =0x021C5994
- ldr r3, [r1, #0x0]
- ldr r2, [r3, #0x18]
- sub r0, r2, r0
- str r0, [r3, #0x20]
- ldr r1, [r1, #0x0]
- mov r2, #0x0
- ldr r0, [r1, #0x1c]
- cmp r0, #0x0
- blt _0201DC12
- ldr r0, [r1, #0x20]
- cmp r0, #0x0
- blt _0201DC12
- mov r2, #0x1
-_0201DC12:
- cmp r2, #0x0
- bne _0201DC1A
- bl ErrorHandling
-_0201DC1A:
- ldr r0, _0201DC38 ; =0x021C5994
- mov r2, #0x0
- ldr r1, [r0, #0x0]
- ldr r0, [r1, #0x1c]
- cmp r0, #0x0
- blt _0201DC2E
- ldr r0, [r1, #0x20]
- cmp r0, #0x0
- blt _0201DC2E
- mov r2, #0x1
-_0201DC2E:
- cmp r2, #0x0
- bne _0201DC36
- bl ErrorHandling
-_0201DC36:
- pop {r3, pc}
- .balign 4
-_0201DC38: .word 0x021C5994
-
- thumb_func_start FUN_0201DC3C
-FUN_0201DC3C: ; 0x0201DC3C
- push {r3, lr}
- ldr r0, _0201DC54 ; =0x021C5994
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x34]
- bl FUN_0201DD00
- ldr r0, _0201DC54 ; =0x021C5994
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x38]
- bl FUN_0201DD00
- pop {r3, pc}
- .balign 4
-_0201DC54: .word 0x021C5994
-
- thumb_func_start FUN_0201DC58
-FUN_0201DC58: ; 0x0201DC58
- push {r4-r6, lr}
- add r5, r0, #0x0
- ldr r0, _0201DCBC ; =0x021C5994
- add r4, r1, #0x0
- ldr r1, [r0, #0x0]
- add r6, r2, #0x0
- str r5, [r1, #0x24]
- ldr r1, [r0, #0x0]
- str r4, [r1, #0x28]
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x34]
- cmp r0, #0x0
- beq _0201DC76
- bl FUN_02016A18
-_0201DC76:
- ldr r0, _0201DCBC ; =0x021C5994
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x38]
- cmp r0, #0x0
- beq _0201DC84
- bl FUN_02016A18
-_0201DC84:
- ldr r0, _0201DCBC ; =0x021C5994
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x24]
- cmp r0, #0x0
- beq _0201DC9C
- add r0, r6, #0x0
- lsr r1, r5, #0x3
- bl FUN_02016998
- ldr r1, _0201DCBC ; =0x021C5994
- ldr r1, [r1, #0x0]
- str r0, [r1, #0x34]
-_0201DC9C:
- ldr r0, _0201DCBC ; =0x021C5994
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x28]
- cmp r0, #0x0
- beq _0201DCB4
- add r0, r6, #0x0
- lsr r1, r4, #0x3
- bl FUN_02016998
- ldr r1, _0201DCBC ; =0x021C5994
- ldr r1, [r1, #0x0]
- str r0, [r1, #0x38]
-_0201DCB4:
- bl FUN_0201DC3C
- pop {r4-r6, pc}
- nop
-_0201DCBC: .word 0x021C5994
-
- thumb_func_start FUN_0201DCC0
-FUN_0201DCC0: ; 0x0201DCC0
- push {r3, lr}
- cmp r0, #0x0
- beq _0201DCE2
- ldr r1, _0201DCE4 ; =0x021C5994
- ldr r2, [r1, #0x0]
- ldr r1, [r2, #0x34]
- cmp r0, r1
- bne _0201DCDA
- mov r1, #0x0
- str r1, [r2, #0x24]
- bl FUN_02016A18
- pop {r3, pc}
-_0201DCDA:
- mov r1, #0x0
- str r1, [r2, #0x28]
- bl FUN_02016A18
-_0201DCE2:
- pop {r3, pc}
- .balign 4
-_0201DCE4: .word 0x021C5994
-
- thumb_func_start FUN_0201DCE8
-FUN_0201DCE8: ; 0x0201DCE8
- ldr r1, _0201DCFC ; =0x021C5994
- ldr r2, [r1, #0x0]
- ldr r1, [r2, #0x34]
- cmp r0, r1
- bne _0201DCF6
- ldr r0, [r2, #0x24]
- bx lr
-_0201DCF6:
- ldr r0, [r2, #0x28]
- bx lr
- nop
-_0201DCFC: .word 0x021C5994
-
- thumb_func_start FUN_0201DD00
-FUN_0201DD00: ; 0x0201DD00
- push {r4, lr}
- add r4, r0, #0x0
- beq _0201DD16
- bl FUN_0201DCE8
- add r2, r0, #0x0
- add r0, r4, #0x0
- mov r1, #0x0
- lsr r2, r2, #0x3
- bl Call_FillMemWithValue
-_0201DD16:
- pop {r4, pc}
-
- thumb_func_start FUN_0201DD18
-FUN_0201DD18: ; 0x0201DD18
- push {r3-r7, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- add r6, r1, #0x0
- add r4, r2, #0x0
- beq _0201DD6E
- add r0, r4, #0x0
- bl FUN_0201DCE8
- add r6, r5, r6
- add r7, r0, #0x0
- cmp r5, r6
- bhs _0201DD6E
-_0201DD32:
- cmp r5, r7
- bhs _0201DD6E
- add r0, r5, #0x0
- add r1, sp, #0x4
- add r2, sp, #0x0
- bl FUN_0201DFE4
- add r0, sp, #0x0
- ldrb r1, [r0, #0x0]
- mov r0, #0x1
- lsl r0, r1
- ldr r1, [sp, #0x4]
- ldrb r1, [r4, r1]
- tst r0, r1
- beq _0201DD54
- bl ErrorHandling
-_0201DD54:
- add r2, sp, #0x0
- ldrb r3, [r2, #0x0]
- ldr r1, [sp, #0x4]
- mov r2, #0x1
- lsl r2, r3
- lsl r2, r2, #0x18
- ldrb r0, [r4, r1]
- lsr r2, r2, #0x18
- add r5, r5, #0x1
- orr r0, r2
- strb r0, [r4, r1]
- cmp r5, r6
- blo _0201DD32
-_0201DD6E:
- add sp, #0x8
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0201DD74
-FUN_0201DD74: ; 0x0201DD74
- push {r3-r7, lr}
- sub sp, #0x10
- add r7, r0, #0x0
- str r1, [sp, #0x0]
- cmp r1, #0x0
- beq _0201DDF2
- add r0, r1, #0x0
- bl FUN_0201DCE8
- mov r6, #0x0
- str r0, [sp, #0x4]
- cmp r0, #0x0
- bls _0201DDF2
-_0201DD8E:
- add r0, r6, #0x0
- add r1, sp, #0xc
- add r2, sp, #0x8
- bl FUN_0201DFE4
- add r0, sp, #0x8
- ldrb r1, [r0, #0x0]
- mov r0, #0x1
- mov r4, #0x0
- lsl r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- b _0201DDD0
-_0201DDA8:
- add r5, r6, r4
- add r0, r5, #0x0
- add r1, sp, #0xc
- add r2, sp, #0x8
- bl FUN_0201DFE4
- add r0, sp, #0x8
- ldrb r1, [r0, #0x0]
- mov r0, #0x1
- lsl r0, r1
- lsl r0, r0, #0x18
- ldr r1, [sp, #0x4]
- lsr r0, r0, #0x18
- cmp r5, r1
- blo _0201DDCE
- mov r0, #0x0
- add sp, #0x10
- mvn r0, r0
- pop {r3-r7, pc}
-_0201DDCE:
- add r4, r4, #0x1
-_0201DDD0:
- ldr r2, [sp, #0xc]
- ldr r1, [sp, #0x0]
- ldrb r1, [r1, r2]
- tst r0, r1
- bne _0201DDDE
- cmp r4, r7
- bls _0201DDA8
-_0201DDDE:
- cmp r4, r7
- bls _0201DDE8
- add sp, #0x10
- add r0, r6, #0x0
- pop {r3-r7, pc}
-_0201DDE8:
- add r0, r6, r4
- add r6, r0, #0x1
- ldr r0, [sp, #0x4]
- cmp r6, r0
- blo _0201DD8E
-_0201DDF2:
- mov r0, #0x0
- mvn r0, r0
- add sp, #0x10
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0201DDFC
-FUN_0201DDFC: ; 0x0201DDFC
- push {r3-r7, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- add r4, r2, #0x0
- beq _0201DE46
- add r6, r5, r1
- cmp r5, r6
- bhs _0201DE46
- add r7, sp, #0x0
-_0201DE0E:
- add r0, r5, #0x0
- add r1, sp, #0x4
- add r2, sp, #0x0
- bl FUN_0201DFE4
- ldrb r1, [r7, #0x0]
- mov r0, #0x1
- lsl r0, r1
- ldr r1, [sp, #0x4]
- ldrb r1, [r4, r1]
- tst r0, r1
- bne _0201DE2A
- bl ErrorHandling
-_0201DE2A:
- ldrb r0, [r7, #0x0]
- mov r1, #0x1
- ldr r3, [sp, #0x4]
- lsl r1, r0
- mov r0, #0xff
- eor r0, r1
- lsl r0, r0, #0x18
- ldrb r2, [r4, r3]
- lsr r0, r0, #0x18
- add r5, r5, #0x1
- and r0, r2
- strb r0, [r4, r3]
- cmp r5, r6
- blo _0201DE0E
-_0201DE46:
- add sp, #0x8
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0201DE4C
-FUN_0201DE4C: ; 0x0201DE4C
- push {r3-r5, lr}
- add r4, r0, #0x0
- ldr r0, [r4, #0x4]
- mov r1, #0x1
- tst r0, r1
- beq _0201DE8A
- add r0, r4, #0x0
- add r0, #0x10
- bl FUN_020B1A14
- ldr r1, _0201DECC ; =0x021C5994
- ldr r2, [r1, #0x0]
- ldr r1, [r2, #0x1c]
- sub r0, r0, r1
- ldr r1, [r2, #0x2c]
- bl FUN_0201DF2C
- ldr r1, _0201DECC ; =0x021C5994
- add r5, r0, #0x0
- ldr r1, [r1, #0x0]
- ldr r0, [r4, #0x4c]
- ldr r1, [r1, #0x2c]
- bl FUN_0201DF2C
- ldr r2, _0201DECC ; =0x021C5994
- add r1, r0, #0x0
- ldr r2, [r2, #0x0]
- add r0, r5, #0x0
- ldr r2, [r2, #0x34]
- bl FUN_0201DDFC
-_0201DE8A:
- ldr r0, [r4, #0x4]
- mov r1, #0x2
- tst r0, r1
- beq _0201DEC4
- add r0, r4, #0x0
- add r0, #0x10
- bl FUN_020B1A14
- ldr r1, _0201DECC ; =0x021C5994
- ldr r2, [r1, #0x0]
- ldr r1, [r2, #0x20]
- sub r0, r0, r1
- ldr r1, [r2, #0x30]
- bl FUN_0201DF2C
- ldr r1, _0201DECC ; =0x021C5994
- add r5, r0, #0x0
- ldr r1, [r1, #0x0]
- ldr r0, [r4, #0x50]
- ldr r1, [r1, #0x30]
- bl FUN_0201DF2C
- ldr r2, _0201DECC ; =0x021C5994
- add r1, r0, #0x0
- ldr r2, [r2, #0x0]
- add r0, r5, #0x0
- ldr r2, [r2, #0x38]
- bl FUN_0201DDFC
-_0201DEC4:
- mov r0, #0x0
- str r0, [r4, #0x48]
- pop {r3-r5, pc}
- nop
-_0201DECC: .word 0x021C5994
-
- thumb_func_start FUN_0201DED0
-FUN_0201DED0: ; 0x0201DED0
- ldr r1, _0201DF04 ; =0x00100010
- cmp r0, r1
- bgt _0201DEDE
- bge _0201DEF4
- cmp r0, #0x10
- beq _0201DEF0
- b _0201DF00
-_0201DEDE:
- ldr r1, _0201DF08 ; =0x00200010
- cmp r0, r1
- bgt _0201DEE8
- beq _0201DEF8
- b _0201DF00
-_0201DEE8:
- ldr r1, _0201DF0C ; =0x00300010
- cmp r0, r1
- beq _0201DEFC
- b _0201DF00
-_0201DEF0:
- mov r0, #0x1
- bx lr
-_0201DEF4:
- mov r0, #0x2
- bx lr
-_0201DEF8:
- mov r0, #0x4
- bx lr
-_0201DEFC:
- mov r0, #0x8
- bx lr
-_0201DF00:
- mov r0, #0x1
- bx lr
- .balign 4
-_0201DF04: .word 0x00100010
-_0201DF08: .word 0x00200010
-_0201DF0C: .word 0x00300010
-
- thumb_func_start FUN_0201DF10
-FUN_0201DF10: ; 0x0201DF10
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- add r6, r2, #0x0
- bl _s32_div_f
- cmp r1, #0x0
- beq _0201DF28
- sub r5, r5, r1
- cmp r6, #0x1
- bne _0201DF28
- add r5, r5, r4
-_0201DF28:
- add r0, r5, #0x0
- pop {r4-r6, pc}
-
- thumb_func_start FUN_0201DF2C
-FUN_0201DF2C: ; 0x0201DF2C
- asr r2, r0, #0x4
- lsr r2, r2, #0x1b
- add r2, r0, r2
- ldr r3, _0201DF38 ; =_s32_div_f
- asr r0, r2, #0x5
- bx r3
- .balign 4
-_0201DF38: .word _s32_div_f
-
- thumb_func_start FUN_0201DF3C
-FUN_0201DF3C: ; 0x0201DF3C
- mul r1, r0
- lsl r0, r1, #0x5
- bx lr
- .balign 4
-
- thumb_func_start FUN_0201DF44
-FUN_0201DF44: ; 0x0201DF44
- push {r3-r7, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- add r1, r2, #0x0
- mov r0, #0x1
- add r2, r4, #0x0
- add r7, r3, #0x0
- tst r2, r0
- beq _0201DF6E
- ldr r2, _0201DF90 ; =0x021C5994
- ldr r2, [r2, #0x0]
- ldr r6, [r2, #0xc]
- ldr r2, [r2, #0x1c]
- add r3, r6, r5
- cmp r3, r2
- bls _0201DF6C
- bl ErrorHandling
- mov r0, #0x0
- b _0201DF6E
-_0201DF6C:
- str r6, [r1, #0x0]
-_0201DF6E:
- mov r1, #0x2
- tst r1, r4
- beq _0201DF8C
- ldr r1, _0201DF90 ; =0x021C5994
- ldr r1, [r1, #0x0]
- ldr r3, [r1, #0x10]
- ldr r1, [r1, #0x20]
- add r2, r3, r5
- cmp r2, r1
- bls _0201DF8A
- bl ErrorHandling
- mov r0, #0x0
- pop {r3-r7, pc}
-_0201DF8A:
- str r3, [r7, #0x0]
-_0201DF8C:
- pop {r3-r7, pc}
- nop
-_0201DF90: .word 0x021C5994
-
- thumb_func_start FUN_0201DF94
-FUN_0201DF94: ; 0x0201DF94
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- mov r2, #0x1
- add r0, r4, #0x0
- tst r0, r2
- beq _0201DFBC
- ldr r0, _0201DFE0 ; =0x021C5994
- ldr r3, [r0, #0x0]
- ldr r1, [r3, #0xc]
- add r1, r1, r5
- str r1, [r3, #0xc]
- ldr r1, [r0, #0x0]
- ldr r0, [r1, #0xc]
- ldr r1, [r1, #0x2c]
- bl FUN_0201DF10
- ldr r1, _0201DFE0 ; =0x021C5994
- ldr r1, [r1, #0x0]
- str r0, [r1, #0xc]
-_0201DFBC:
- mov r0, #0x2
- tst r0, r4
- beq _0201DFDE
- ldr r0, _0201DFE0 ; =0x021C5994
- ldr r2, [r0, #0x0]
- ldr r1, [r2, #0x10]
- add r1, r1, r5
- str r1, [r2, #0x10]
- ldr r1, [r0, #0x0]
- mov r2, #0x1
- ldr r0, [r1, #0x10]
- ldr r1, [r1, #0x30]
- bl FUN_0201DF10
- ldr r1, _0201DFE0 ; =0x021C5994
- ldr r1, [r1, #0x0]
- str r0, [r1, #0x10]
-_0201DFDE:
- pop {r3-r5, pc}
- .balign 4
-_0201DFE0: .word 0x021C5994
-
- thumb_func_start FUN_0201DFE4
-FUN_0201DFE4: ; 0x0201DFE4
- asr r3, r0, #0x3
- str r3, [r1, #0x0]
- mov r1, #0x7
- and r0, r1
- strb r0, [r2, #0x0]
- bx lr
-
- thumb_func_start FUN_0201DFF0
-FUN_0201DFF0: ; 0x0201DFF0
- push {r3-r4}
- sub r0, r1, r0
- ldr r4, [sp, #0x8]
- str r0, [r3, #0x0]
- bpl _0201E006
- add r0, r2, r0
- str r0, [r4, #0x0]
- mov r0, #0x0
- str r0, [r3, #0x0]
- pop {r3-r4}
- bx lr
-_0201E006:
- str r2, [r4, #0x0]
- pop {r3-r4}
- bx lr
-
- thumb_func_start FUN_0201E00C
-FUN_0201E00C: ; 0x0201E00C
- push {r3-r7, lr}
- add r6, r0, #0x0
- ldr r0, _0201E064 ; =0x021C5998
- add r4, r1, #0x0
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- bne _0201E060
- add r0, r4, #0x0
- mov r1, #0x28
- bl FUN_02016998
- add r1, r0, #0x0
- ldr r0, _0201E064 ; =0x021C5998
- mov r2, #0x28
- str r1, [r0, #0x0]
- mov r0, #0x0
- bl MIi_CpuClear32
- ldr r0, _0201E064 ; =0x021C5998
- mov r1, #0x30
- ldr r0, [r0, #0x0]
- mul r1, r6
- str r6, [r0, #0x4]
- add r0, r4, #0x0
- bl FUN_02016998
- ldr r7, _0201E064 ; =0x021C5998
- mov r4, #0x0
- ldr r1, [r7, #0x0]
- cmp r6, #0x0
- str r0, [r1, #0x0]
- ble _0201E060
- add r5, r4, #0x0
-_0201E04E:
- ldr r0, [r7, #0x0]
- ldr r0, [r0, #0x0]
- add r0, r0, r5
- bl FUN_0201E2F8
- add r4, r4, #0x1
- add r5, #0x30
- cmp r4, r6
- blt _0201E04E
-_0201E060:
- pop {r3-r7, pc}
- nop
-_0201E064: .word 0x021C5998
-
- thumb_func_start FUN_0201E068
-FUN_0201E068: ; 0x0201E068
- cmp r1, #0x1
- bne _0201E078
- ldr r1, _0201E088 ; =0x021C5998
- ldr r2, [r1, #0x0]
- ldrh r1, [r2, #0x24]
- orr r0, r1
- strh r0, [r2, #0x24]
- bx lr
-_0201E078:
- cmp r1, #0x2
- bne _0201E086
- ldr r1, _0201E088 ; =0x021C5998
- ldr r2, [r1, #0x0]
- ldrh r1, [r2, #0x26]
- orr r0, r1
- strh r0, [r2, #0x26]
-_0201E086:
- bx lr
- .balign 4
-_0201E088: .word 0x021C5998
-
- thumb_func_start FUN_0201E08C
-FUN_0201E08C: ; 0x0201E08C
- push {r3, lr}
- ldr r0, _0201E0B4 ; =0x021C5998
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _0201E0B2
- bl FUN_0201E1F0
- ldr r0, _0201E0B4 ; =0x021C5998
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x0]
- bl FUN_02016A18
- ldr r0, _0201E0B4 ; =0x021C5998
- ldr r0, [r0, #0x0]
- bl FUN_02016A18
- ldr r0, _0201E0B4 ; =0x021C5998
- mov r1, #0x0
- str r1, [r0, #0x0]
-_0201E0B2:
- pop {r3, pc}
- .balign 4
-_0201E0B4: .word 0x021C5998
-
- thumb_func_start FUN_0201E0B8
-FUN_0201E0B8: ; 0x0201E0B8
- bx lr
- .balign 4
-
- thumb_func_start FUN_0201E0BC
-FUN_0201E0BC: ; 0x0201E0BC
- push {r3, lr}
- ldr r0, _0201E0E0 ; =0x021C5998
- mov r2, #0x0
- ldr r1, [r0, #0x0]
- str r2, [r1, #0xc]
- ldr r1, [r0, #0x0]
- str r2, [r1, #0x10]
- ldr r1, [r0, #0x0]
- str r2, [r1, #0x14]
- ldr r0, [r0, #0x0]
- str r2, [r0, #0x18]
- bl FUN_0201E464
- ldr r0, _0201E0E0 ; =0x021C5998
- ldr r0, [r0, #0x0]
- bl FUN_0201E574
- pop {r3, pc}
- .balign 4
-_0201E0E0: .word 0x021C5998
-
- thumb_func_start FUN_0201E0E4
-FUN_0201E0E4: ; 0x0201E0E4
- push {r3-r5, lr}
- add r5, r0, #0x0
- bl FUN_0201E428
- add r4, r0, #0x0
- bne _0201E0F8
- bl ErrorHandling
- mov r0, #0x0
- pop {r3-r5, pc}
-_0201E0F8:
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_0201E2C4
- cmp r0, #0x0
- bne _0201E108
- mov r0, #0x0
- pop {r3-r5, pc}
-_0201E108:
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_0201E314
- cmp r0, #0x0
- bne _0201E11E
- ldr r0, [r5, #0xc]
- bl FUN_0201E1C8
- mov r0, #0x0
- pop {r3-r5, pc}
-_0201E11E:
- add r0, r4, #0x0
- bl FUN_0201E57C
- mov r0, #0x1
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0201E128
-FUN_0201E128: ; 0x0201E128
- push {r3-r5, lr}
- add r5, r0, #0x0
- bl FUN_0201E428
- add r4, r0, #0x0
- bne _0201E13C
- bl ErrorHandling
- mov r0, #0x0
- pop {r3-r5, pc}
-_0201E13C:
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_0201E2C4
- cmp r0, #0x0
- bne _0201E14C
- mov r0, #0x0
- pop {r3-r5, pc}
-_0201E14C:
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_0201E36C
- cmp r0, #0x0
- bne _0201E162
- ldr r0, [r5, #0xc]
- bl FUN_0201E1C8
- mov r0, #0x0
- pop {r3-r5, pc}
-_0201E162:
- mov r0, #0x1
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0201E168
-FUN_0201E168: ; 0x0201E168
- push {r3-r5, lr}
- add r4, r0, #0x0
- add r5, r1, #0x0
- bne _0201E174
- bl ErrorHandling
-_0201E174:
- add r0, r4, #0x0
- bl FUN_0201E3F0
- add r4, r0, #0x0
- bne _0201E182
- bl ErrorHandling
-_0201E182:
- str r5, [r4, #0x0]
- ldr r1, [r4, #0x4]
- mov r0, #0x1
- tst r0, r1
- beq _0201E19A
- ldr r3, [r4, #0x8]
- ldr r1, [r4, #0x24]
- ldr r2, [r5, #0xc]
- mov r0, #0xe
- lsl r3, r3, #0x5
- bl FUN_0201C2C8
-_0201E19A:
- ldr r1, [r4, #0x4]
- mov r0, #0x2
- tst r0, r1
- beq _0201E1B0
- ldr r3, [r4, #0x8]
- ldr r1, [r4, #0x28]
- ldr r2, [r5, #0xc]
- mov r0, #0x1e
- lsl r3, r3, #0x5
- bl FUN_0201C2C8
-_0201E1B0:
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0201E1B4
-FUN_0201E1B4: ; 0x0201E1B4
- push {r3, lr}
- bl FUN_0201E3F0
- cmp r0, #0x0
- beq _0201E1C2
- mov r0, #0x1
- pop {r3, pc}
-_0201E1C2:
- mov r0, #0x0
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_0201E1C8
-FUN_0201E1C8: ; 0x0201E1C8
- push {r4, lr}
- bl FUN_0201E3F0
- add r4, r0, #0x0
- bne _0201E1D6
- bl ErrorHandling
-_0201E1D6:
- add r0, r4, #0x0
- add r0, #0x2c
- ldrb r0, [r0, #0x0]
- cmp r0, #0x1
- bne _0201E1EC
- add r0, r4, #0x0
- bl FUN_0201E5B8
- add r0, r4, #0x0
- bl FUN_0201E2BC
-_0201E1EC:
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0201E1F0
-FUN_0201E1F0: ; 0x0201E1F0
- push {r4-r6, lr}
- ldr r6, _0201E22C ; =0x021C5998
- mov r4, #0x0
- ldr r1, [r6, #0x0]
- ldr r0, [r1, #0x4]
- cmp r0, #0x0
- ble _0201E228
- add r5, r4, #0x0
-_0201E200:
- ldr r1, [r1, #0x0]
- add r0, r1, r5
- add r0, #0x2c
- ldrb r0, [r0, #0x0]
- cmp r0, #0x1
- bne _0201E21C
- add r0, r1, r5
- bl FUN_0201E5B8
- ldr r0, [r6, #0x0]
- ldr r0, [r0, #0x0]
- add r0, r0, r5
- bl FUN_0201E2BC
-_0201E21C:
- ldr r1, [r6, #0x0]
- add r4, r4, #0x1
- ldr r0, [r1, #0x4]
- add r5, #0x30
- cmp r4, r0
- blt _0201E200
-_0201E228:
- pop {r4-r6, pc}
- nop
-_0201E22C: .word 0x021C5998
-
- thumb_func_start FUN_0201E230
-FUN_0201E230: ; 0x0201E230
- push {r3, lr}
- bl FUN_0201E3F0
- cmp r0, #0x0
- bne _0201E244
- bne _0201E240
- bl ErrorHandling
-_0201E240:
- mov r0, #0x0
- pop {r3, pc}
-_0201E244:
- add r1, r0, #0x0
- add r1, #0x2c
- ldrb r1, [r1, #0x0]
- cmp r1, #0x1
- bne _0201E252
- add r0, #0x10
- pop {r3, pc}
-_0201E252:
- mov r0, #0x0
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_0201E258
-FUN_0201E258: ; 0x0201E258
- push {r4, lr}
- add r4, r1, #0x0
- bl FUN_0201E3F0
- cmp r0, #0x0
- bne _0201E26E
- bne _0201E26A
- bl ErrorHandling
-_0201E26A:
- mov r0, #0x0
- pop {r4, pc}
-_0201E26E:
- add r1, r0, #0x0
- add r1, #0x2c
- ldrb r1, [r1, #0x0]
- cmp r1, #0x1
- beq _0201E27C
- mov r0, #0x0
- pop {r4, pc}
-_0201E27C:
- ldr r1, [r0, #0x0]
- ldr r1, [r1, #0x4]
- cmp r1, #0x0
- beq _0201E288
- mov r1, #0x1
- str r1, [r4, #0x18]
-_0201E288:
- add r0, #0x10
- pop {r4, pc}
-
- thumb_func_start FUN_0201E28C
-FUN_0201E28C: ; 0x0201E28C
- push {r4, lr}
- ldr r2, [r0, #0x4]
- cmp r2, #0x0
- beq _0201E29A
- mov r4, #0x2
- lsl r4, r4, #0x8
- b _0201E2A6
-_0201E29A:
- ldr r2, [r0, #0x0]
- cmp r2, #0x4
- bne _0201E2A4
- mov r4, #0x0
- b _0201E2A6
-_0201E2A4:
- mov r4, #0x20
-_0201E2A6:
- cmp r4, #0x0
- beq _0201E2B6
- bl FUN_020B19C4
- add r1, r4, #0x0
- bl _u32_div_f
- pop {r4, pc}
-_0201E2B6:
- mov r0, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0201E2BC
-FUN_0201E2BC: ; 0x0201E2BC
- ldr r3, _0201E2C0 ; =FUN_0201E2F8
- bx r3
- .balign 4
-_0201E2C0: .word FUN_0201E2F8
-
- thumb_func_start FUN_0201E2C4
-FUN_0201E2C4: ; 0x0201E2C4
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldr r0, [r5, #0x0]
- add r4, r1, #0x0
- str r0, [r4, #0x0]
- ldr r0, [r5, #0xc]
- bl FUN_0201E1B4
- cmp r0, #0x1
- bne _0201E2E0
- bl ErrorHandling
- mov r0, #0x0
- pop {r3-r5, pc}
-_0201E2E0:
- ldr r0, [r5, #0xc]
- add r1, r4, #0x0
- str r0, [r4, #0xc]
- ldr r0, [r5, #0x4]
- add r1, #0x2c
- str r0, [r4, #0x4]
- mov r0, #0x1
- strb r0, [r1, #0x0]
- ldr r1, [r5, #0x8]
- str r1, [r4, #0x8]
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0201E2F8
-FUN_0201E2F8: ; 0x0201E2F8
- push {r4, lr}
- mov r1, #0x0
- mov r2, #0x30
- add r4, r0, #0x0
- bl Call_FillMemWithValue
- mov r0, #0x0
- mvn r0, r0
- str r0, [r4, #0xc]
- add r4, #0x10
- add r0, r4, #0x0
- bl FUN_020B19DC
- pop {r4, pc}
-
- thumb_func_start FUN_0201E314
-FUN_0201E314: ; 0x0201E314
- push {r3-r6, lr}
- sub sp, #0x4
- add r6, r1, #0x0
- ldr r0, [r6, #0x0]
- ldr r0, [r0, #0x4]
- cmp r0, #0x0
- beq _0201E334
- ldr r0, _0201E368 ; =0x021C5998
- ldr r0, [r0, #0x0]
- add r4, r0, #0x0
- add r5, r0, #0x0
- ldr r3, [r0, #0x1c]
- add r4, #0x14
- add r5, #0x18
- ldr r0, [r0, #0x20]
- b _0201E344
-_0201E334:
- ldr r0, _0201E368 ; =0x021C5998
- mov r3, #0x2
- ldr r5, [r0, #0x0]
- lsl r3, r3, #0x8
- add r4, r5, #0x0
- add r4, #0xc
- add r5, #0x10
- add r0, r3, #0x0
-_0201E344:
- str r0, [sp, #0x0]
- ldr r1, [r4, #0x0]
- ldr r2, [r5, #0x0]
- add r0, r6, #0x0
- bl FUN_0201E5F4
- add r0, r6, #0x0
- bl FUN_0201E4AC
- add r0, r6, #0x0
- add r1, r4, #0x0
- add r2, r5, #0x0
- bl FUN_0201E640
- mov r0, #0x1
- add sp, #0x4
- pop {r3-r6, pc}
- nop
-_0201E368: .word 0x021C5998
-
- thumb_func_start FUN_0201E36C
-FUN_0201E36C: ; 0x0201E36C
- push {r4-r6, lr}
- add r5, r1, #0x0
- ldr r0, [r5, #0x0]
- ldr r0, [r0, #0x4]
- cmp r0, #0x0
- beq _0201E37C
- bl ErrorHandling
-_0201E37C:
- ldr r1, [r5, #0x4]
- mov r0, #0x1
- tst r0, r1
- beq _0201E39E
- ldr r0, _0201E3EC ; =0x021C5998
- ldr r1, [r5, #0x8]
- ldr r0, [r0, #0x0]
- ldrh r0, [r0, #0x24]
- bl FUN_0201E534
- add r6, r0, #0x0
- mov r0, #0x0
- mvn r0, r0
- cmp r6, r0
- bne _0201E39E
- mov r0, #0x0
- pop {r4-r6, pc}
-_0201E39E:
- ldr r1, [r5, #0x4]
- mov r0, #0x2
- tst r0, r1
- beq _0201E3C0
- ldr r0, _0201E3EC ; =0x021C5998
- ldr r1, [r5, #0x8]
- ldr r0, [r0, #0x0]
- ldrh r0, [r0, #0x26]
- bl FUN_0201E534
- add r4, r0, #0x0
- mov r0, #0x0
- mvn r0, r0
- cmp r4, r0
- bne _0201E3C0
- mov r0, #0x0
- pop {r4-r6, pc}
-_0201E3C0:
- ldr r1, [r5, #0x4]
- mov r0, #0x1
- tst r0, r1
- beq _0201E3CA
- str r6, [r5, #0x24]
-_0201E3CA:
- ldr r1, [r5, #0x4]
- mov r0, #0x2
- tst r0, r1
- beq _0201E3D4
- str r4, [r5, #0x28]
-_0201E3D4:
- ldr r0, [r5, #0x8]
- lsl r1, r0, #0x5
- ldr r0, [r5, #0x0]
- str r1, [r0, #0x8]
- add r0, r5, #0x0
- bl FUN_0201E4BC
- add r0, r5, #0x0
- bl FUN_0201E57C
- mov r0, #0x1
- pop {r4-r6, pc}
- .balign 4
-_0201E3EC: .word 0x021C5998
-
- thumb_func_start FUN_0201E3F0
-FUN_0201E3F0: ; 0x0201E3F0
- push {r4-r5}
- ldr r2, _0201E424 ; =0x021C5998
- mov r1, #0x0
- ldr r5, [r2, #0x0]
- ldr r2, [r5, #0x4]
- cmp r2, #0x0
- ble _0201E41C
- ldr r2, [r5, #0x0]
- add r4, r2, #0x0
-_0201E402:
- ldr r3, [r4, #0xc]
- cmp r0, r3
- bne _0201E412
- mov r0, #0x30
- mul r0, r1
- add r0, r2, r0
- pop {r4-r5}
- bx lr
-_0201E412:
- ldr r3, [r5, #0x4]
- add r1, r1, #0x1
- add r4, #0x30
- cmp r1, r3
- blt _0201E402
-_0201E41C:
- mov r0, #0x0
- pop {r4-r5}
- bx lr
- nop
-_0201E424: .word 0x021C5998
-
- thumb_func_start FUN_0201E428
-FUN_0201E428: ; 0x0201E428
- push {r3-r4}
- ldr r1, _0201E460 ; =0x021C5998
- mov r0, #0x0
- ldr r4, [r1, #0x0]
- ldr r1, [r4, #0x4]
- cmp r1, #0x0
- ble _0201E458
- ldr r1, [r4, #0x0]
- add r3, r1, #0x0
-_0201E43A:
- add r2, r3, #0x0
- add r2, #0x2c
- ldrb r2, [r2, #0x0]
- cmp r2, #0x0
- bne _0201E44E
- mov r2, #0x30
- mul r2, r0
- add r0, r1, r2
- pop {r3-r4}
- bx lr
-_0201E44E:
- ldr r2, [r4, #0x4]
- add r0, r0, #0x1
- add r3, #0x30
- cmp r0, r2
- blt _0201E43A
-_0201E458:
- mov r0, #0x0
- pop {r3-r4}
- bx lr
- nop
-_0201E460: .word 0x021C5998
-
- thumb_func_start FUN_0201E464
-FUN_0201E464: ; 0x0201E464
- push {r3, lr}
- bl GX_GetBankForOBJExtPltt
- cmp r0, #0x20
- beq _0201E472
- cmp r0, #0x40
- bne _0201E47E
-_0201E472:
- ldr r0, _0201E4A8 ; =0x021C5998
- mov r1, #0x2
- ldr r0, [r0, #0x0]
- lsl r1, r1, #0xc
- str r1, [r0, #0x1c]
- b _0201E486
-_0201E47E:
- ldr r0, _0201E4A8 ; =0x021C5998
- mov r1, #0x0
- ldr r0, [r0, #0x0]
- str r1, [r0, #0x1c]
-_0201E486:
- bl GX_GetBankForSubOBJExtPltt
- mov r1, #0x1
- lsl r1, r1, #0x8
- cmp r0, r1
- bne _0201E49C
- ldr r0, _0201E4A8 ; =0x021C5998
- lsl r1, r1, #0x5
- ldr r0, [r0, #0x0]
- str r1, [r0, #0x20]
- pop {r3, pc}
-_0201E49C:
- ldr r0, _0201E4A8 ; =0x021C5998
- mov r1, #0x0
- ldr r0, [r0, #0x0]
- str r1, [r0, #0x20]
- pop {r3, pc}
- nop
-_0201E4A8: .word 0x021C5998
-
- thumb_func_start FUN_0201E4AC
-FUN_0201E4AC: ; 0x0201E4AC
- ldr r1, [r0, #0x8]
- ldr r3, _0201E4B8 ; =FUN_0201E4BC
- lsl r2, r1, #0x5
- ldr r1, [r0, #0x0]
- str r2, [r1, #0x8]
- bx r3
- .balign 4
-_0201E4B8: .word FUN_0201E4BC
-
- thumb_func_start FUN_0201E4BC
-FUN_0201E4BC: ; 0x0201E4BC
- push {r4, lr}
- add r4, r0, #0x0
- add r0, #0x10
- bl FUN_020B19DC
- ldr r0, [r4, #0x4]
- mov r2, #0x1
- tst r0, r2
- beq _0201E4DA
- add r3, r4, #0x0
- ldr r0, [r4, #0x0]
- ldr r1, [r4, #0x24]
- add r3, #0x10
- bl FUN_020B1240
-_0201E4DA:
- ldr r0, [r4, #0x4]
- mov r2, #0x2
- tst r0, r2
- beq _0201E4EE
- ldr r0, [r4, #0x0]
- ldr r1, [r4, #0x28]
- add r4, #0x10
- add r3, r4, #0x0
- bl FUN_020B1240
-_0201E4EE:
- pop {r4, pc}
-
- thumb_func_start FUN_0201E4F0
-FUN_0201E4F0: ; 0x0201E4F0
- push {r4-r7}
- mov r3, #0x0
- cmp r1, #0x0
- ble _0201E50E
- mov r5, #0x1
-_0201E4FA:
- ldrh r7, [r0, #0x0]
- add r4, r2, r3
- add r6, r5, #0x0
- lsl r6, r4
- add r4, r7, #0x0
- orr r4, r6
- add r3, r3, #0x1
- strh r4, [r0, #0x0]
- cmp r3, r1
- blt _0201E4FA
-_0201E50E:
- pop {r4-r7}
- bx lr
- .balign 4
-
- thumb_func_start FUN_0201E514
-FUN_0201E514: ; 0x0201E514
- push {r4-r7}
- mov r4, #0x0
- cmp r1, #0x0
- ble _0201E530
- mov r6, #0x1
-_0201E51E:
- add r5, r2, r4
- add r7, r6, #0x0
- ldrh r3, [r0, #0x0]
- lsl r7, r5
- bic r3, r7
- add r4, r4, #0x1
- strh r3, [r0, #0x0]
- cmp r4, r1
- blt _0201E51E
-_0201E530:
- pop {r4-r7}
- bx lr
-
- thumb_func_start FUN_0201E534
-FUN_0201E534: ; 0x0201E534
- push {r4-r7}
- mov r3, #0x0
- mov r6, #0x1
- add r2, r3, #0x0
-_0201E53C:
- add r4, r2, #0x0
- b _0201E546
-_0201E540:
- cmp r5, #0x10
- bge _0201E554
- add r4, r4, #0x1
-_0201E546:
- add r5, r3, r4
- add r7, r6, #0x0
- lsl r7, r5
- tst r7, r0
- bne _0201E554
- cmp r4, r1
- blt _0201E540
-_0201E554:
- cmp r4, r1
- bge _0201E560
- add r3, r3, r4
- add r3, r3, #0x1
- cmp r3, #0x10
- blt _0201E53C
-_0201E560:
- cmp r3, #0x10
- blt _0201E56C
- mov r0, #0x0
- mvn r0, r0
- pop {r4-r7}
- bx lr
-_0201E56C:
- lsl r0, r3, #0x5
- pop {r4-r7}
- bx lr
- .balign 4
-
- thumb_func_start FUN_0201E574
-FUN_0201E574: ; 0x0201E574
- mov r1, #0x0
- strh r1, [r0, #0x24]
- strh r1, [r0, #0x26]
- bx lr
-
- thumb_func_start FUN_0201E57C
-FUN_0201E57C: ; 0x0201E57C
- push {r4, lr}
- add r4, r0, #0x0
- ldr r1, [r4, #0x4]
- mov r0, #0x1
- tst r0, r1
- beq _0201E598
- ldr r0, _0201E5B4 ; =0x021C5998
- ldr r2, [r4, #0x24]
- ldr r0, [r0, #0x0]
- ldr r1, [r4, #0x8]
- add r0, #0x24
- lsr r2, r2, #0x5
- bl FUN_0201E4F0
-_0201E598:
- ldr r1, [r4, #0x4]
- mov r0, #0x2
- tst r0, r1
- beq _0201E5B0
- ldr r0, _0201E5B4 ; =0x021C5998
- ldr r2, [r4, #0x28]
- ldr r0, [r0, #0x0]
- ldr r1, [r4, #0x8]
- add r0, #0x26
- lsr r2, r2, #0x5
- bl FUN_0201E4F0
-_0201E5B0:
- pop {r4, pc}
- nop
-_0201E5B4: .word 0x021C5998
-
- thumb_func_start FUN_0201E5B8
-FUN_0201E5B8: ; 0x0201E5B8
- push {r4, lr}
- add r4, r0, #0x0
- ldr r1, [r4, #0x4]
- mov r0, #0x1
- tst r0, r1
- beq _0201E5D4
- ldr r0, _0201E5F0 ; =0x021C5998
- ldr r2, [r4, #0x24]
- ldr r0, [r0, #0x0]
- ldr r1, [r4, #0x8]
- add r0, #0x24
- lsr r2, r2, #0x5
- bl FUN_0201E514
-_0201E5D4:
- ldr r1, [r4, #0x4]
- mov r0, #0x2
- tst r0, r1
- beq _0201E5EC
- ldr r0, _0201E5F0 ; =0x021C5998
- ldr r2, [r4, #0x28]
- ldr r0, [r0, #0x0]
- ldr r1, [r4, #0x8]
- add r0, #0x26
- lsr r2, r2, #0x5
- bl FUN_0201E514
-_0201E5EC:
- pop {r4, pc}
- nop
-_0201E5F0: .word 0x021C5998
-
- thumb_func_start FUN_0201E5F4
-FUN_0201E5F4: ; 0x0201E5F4
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r2, #0x0
- ldr r2, [r5, #0x4]
- mov r0, #0x1
- tst r2, r0
- beq _0201E61A
- ldr r2, [r5, #0x8]
- lsl r2, r2, #0x5
- add r2, r1, r2
- cmp r2, r3
- bls _0201E618
- bl ErrorHandling
- bl FUN_0201E0B8
- mov r0, #0x0
- b _0201E61A
-_0201E618:
- str r1, [r5, #0x24]
-_0201E61A:
- ldr r2, [r5, #0x4]
- mov r1, #0x2
- tst r1, r2
- beq _0201E63C
- ldr r1, [r5, #0x8]
- lsl r1, r1, #0x5
- add r2, r4, r1
- ldr r1, [sp, #0x10]
- cmp r2, r1
- bls _0201E63A
- bl ErrorHandling
- bl FUN_0201E0B8
- mov r0, #0x0
- pop {r3-r5, pc}
-_0201E63A:
- str r4, [r5, #0x28]
-_0201E63C:
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0201E640
-FUN_0201E640: ; 0x0201E640
- push {r3-r4}
- ldr r4, [r0, #0x4]
- mov r3, #0x1
- tst r3, r4
- beq _0201E654
- ldr r3, [r0, #0x8]
- ldr r4, [r1, #0x0]
- lsl r3, r3, #0x5
- add r3, r4, r3
- str r3, [r1, #0x0]
-_0201E654:
- ldr r3, [r0, #0x4]
- mov r1, #0x2
- tst r1, r3
- beq _0201E666
- ldr r0, [r0, #0x8]
- ldr r1, [r2, #0x0]
- lsl r0, r0, #0x5
- add r0, r1, r0
- str r0, [r2, #0x0]
-_0201E666:
- pop {r3-r4}
- bx lr
- .balign 4
-
- thumb_func_start FUN_0201E66C
-FUN_0201E66C: ; 0x0201E66C
- push {r4, lr}
- add r4, r0, #0x0
- bl GX_ResetBankForBG
- bl GX_ResetBankForBGExtPltt
- bl GX_ResetBankForSubBG
- bl FUN_020C6034
- bl GX_ResetBankForOBJ
- bl GX_ResetBankForOBJExtPltt
- bl FUN_020C605C
- bl GX_ResetBankForSubOBJ
- bl GX_ResetBankForTex
- bl GX_ResetBankForTexPltt
- ldr r0, [r4, #0x0]
- bl GX_SetBankForBG
- ldr r0, [r4, #0x4]
- bl GX_SetBankForBGExtPltt
- ldr r0, [r4, #0x8]
- bl GX_SetBankForSubBG
- ldr r0, [r4, #0xc]
- bl GX_SetBankForSubBGExtPltt
- ldr r0, [r4, #0x10]
- bl GX_SetBankForOBJ
- ldr r0, [r4, #0x14]
- bl GX_SetBankForOBJExtPltt
- ldr r0, [r4, #0x18]
- bl GX_SetBankForSubOBJ
- ldr r0, [r4, #0x1c]
- bl GX_SetBankForSubOBJExtPltt
- ldr r0, [r4, #0x20]
- bl GX_SetBankForTex
- ldr r0, [r4, #0x24]
- bl GX_SetBankForTexPltt
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0201E6D8
-FUN_0201E6D8: ; 0x0201E6D8
- ldr r0, _0201E6E0 ; =0x021C599C
- mov r1, #0x0
- str r1, [r0, #0x4]
- bx lr
- .balign 4
-_0201E6E0: .word 0x021C599C
-
- thumb_func_start FUN_0201E6E4
-FUN_0201E6E4: ; 0x0201E6E4
- cmp r1, #0x1
- bne _0201E6F2
- ldr r1, _0201E718 ; =0x021C599C
- ldr r1, [r1, #0x4]
- tst r1, r0
- beq _0201E6FA
- bx lr
-_0201E6F2:
- ldr r1, _0201E718 ; =0x021C599C
- ldr r1, [r1, #0x4]
- tst r1, r0
- beq _0201E714
-_0201E6FA:
- ldr r1, _0201E718 ; =0x021C599C
- ldr r2, [r1, #0x4]
- add r3, r2, #0x0
- eor r3, r0
- mov r2, #0x1
- lsl r2, r2, #0x1a
- str r3, [r1, #0x4]
- ldr r1, [r2, #0x0]
- ldr r0, _0201E71C ; =0xFFFFE0FF
- and r1, r0
- lsl r0, r3, #0x8
- orr r0, r1
- str r0, [r2, #0x0]
-_0201E714:
- bx lr
- nop
-_0201E718: .word 0x021C599C
-_0201E71C: .word 0xFFFFE0FF
-
- thumb_func_start FUN_0201E720
-FUN_0201E720: ; 0x0201E720
- ldr r1, _0201E738 ; =0x021C599C
- mov r3, #0x1
- str r0, [r1, #0x4]
- lsl r3, r3, #0x1a
- ldr r2, [r3, #0x0]
- ldr r1, _0201E73C ; =0xFFFFE0FF
- lsl r0, r0, #0x8
- and r1, r2
- orr r0, r1
- str r0, [r3, #0x0]
- bx lr
- nop
-_0201E738: .word 0x021C599C
-_0201E73C: .word 0xFFFFE0FF
-
- thumb_func_start FUN_0201E740
-FUN_0201E740: ; 0x0201E740
- ldr r0, _0201E748 ; =0x021C599C
- mov r1, #0x0
- str r1, [r0, #0x0]
- bx lr
- .balign 4
-_0201E748: .word 0x021C599C
-
- thumb_func_start FUN_0201E74C
-FUN_0201E74C: ; 0x0201E74C
- cmp r1, #0x1
- bne _0201E75A
- ldr r1, _0201E77C ; =0x021C599C
- ldr r1, [r1, #0x0]
- tst r1, r0
- beq _0201E762
- bx lr
-_0201E75A:
- ldr r1, _0201E77C ; =0x021C599C
- ldr r1, [r1, #0x0]
- tst r1, r0
- beq _0201E77A
-_0201E762:
- ldr r1, _0201E77C ; =0x021C599C
- ldr r2, [r1, #0x0]
- add r3, r2, #0x0
- eor r3, r0
- ldr r2, _0201E780 ; =0x04001000
- str r3, [r1, #0x0]
- ldr r1, [r2, #0x0]
- ldr r0, _0201E784 ; =0xFFFFE0FF
- and r1, r0
- lsl r0, r3, #0x8
- orr r0, r1
- str r0, [r2, #0x0]
-_0201E77A:
- bx lr
- .balign 4
-_0201E77C: .word 0x021C599C
-_0201E780: .word 0x04001000
-_0201E784: .word 0xFFFFE0FF
-
- thumb_func_start FUN_0201E788
-FUN_0201E788: ; 0x0201E788
- push {r3, lr}
- bl GX_DispOn
- ldr r2, _0201E79C ; =0x04001000
- mov r0, #0x1
- ldr r1, [r2, #0x0]
- lsl r0, r0, #0x10
- orr r0, r1
- str r0, [r2, #0x0]
- pop {r3, pc}
- .balign 4
-_0201E79C: .word 0x04001000
-
- thumb_func_start FUN_0201E7A0
-FUN_0201E7A0: ; 0x0201E7A0
- ldr r0, _0201E7C0 ; =0x021C4918
- ldr r2, _0201E7C4 ; =0x04000304
- ldrb r0, [r0, #0x5]
- cmp r0, #0x0
- bne _0201E7B4
- ldrh r1, [r2, #0x0]
- lsr r0, r2, #0xb
- orr r0, r1
- strh r0, [r2, #0x0]
- bx lr
-_0201E7B4:
- ldrh r1, [r2, #0x0]
- ldr r0, _0201E7C8 ; =0xFFFF7FFF
- and r0, r1
- strh r0, [r2, #0x0]
- bx lr
- nop
-_0201E7C0: .word 0x021C4918
-_0201E7C4: .word 0x04000304
-_0201E7C8: .word 0xFFFF7FFF
-
- thumb_func_start FUN_0201E7CC
-FUN_0201E7CC: ; 0x0201E7CC
- ldr r0, _0201E7D4 ; =0x021C599C
- ldr r0, [r0, #0x4]
- bx lr
- nop
-_0201E7D4: .word 0x021C599C
-
- thumb_func_start FUN_0201E7D8
-FUN_0201E7D8: ; 0x0201E7D8
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldrh r0, [r5, #0x3e]
- ldr r2, [r5, #0x38]
- ldrh r4, [r5, #0x3c]
- asr r0, r0, #0x4
- lsl r1, r0, #0x2
- ldr r0, _0201E8B4 ; =0x020FFA38
- asr r3, r2, #0x1f
- ldrsh r0, [r0, r1]
- asr r1, r0, #0x1f
- bl _ll_mul
- mov r2, #0x2
- mov r3, #0x0
- lsl r2, r2, #0xa
- add r0, r0, r2
- adc r1, r3
- asr r2, r4, #0x4
- lsl r2, r2, #0x1
- add r2, r2, #0x1
- lsl r3, r2, #0x1
- ldr r2, _0201E8B4 ; =0x020FFA38
- lsl r1, r1, #0x14
- ldrsh r2, [r2, r3]
- lsr r0, r0, #0xc
- orr r0, r1
- asr r1, r0, #0x1f
- asr r3, r2, #0x1f
- bl _ll_mul
- mov r2, #0x2
- mov r3, #0x0
- lsl r2, r2, #0xa
- add r2, r0, r2
- adc r1, r3
- lsl r0, r1, #0x14
- lsr r1, r2, #0xc
- orr r1, r0
- str r1, [r5, #0x14]
- ldrh r0, [r5, #0x3e]
- ldr r2, [r5, #0x38]
- asr r0, r0, #0x4
- lsl r0, r0, #0x1
- add r0, r0, #0x1
- lsl r1, r0, #0x1
- ldr r0, _0201E8B4 ; =0x020FFA38
- asr r3, r2, #0x1f
- ldrsh r0, [r0, r1]
- asr r1, r0, #0x1f
- bl _ll_mul
- mov r2, #0x2
- lsl r2, r2, #0xa
- mov r3, #0x0
- add r0, r0, r2
- adc r1, r3
- ldrh r2, [r5, #0x3c]
- lsl r1, r1, #0x14
- lsr r0, r0, #0xc
- asr r2, r2, #0x4
- lsl r2, r2, #0x1
- add r2, r2, #0x1
- lsl r3, r2, #0x1
- ldr r2, _0201E8B4 ; =0x020FFA38
- orr r0, r1
- ldrsh r2, [r2, r3]
- asr r1, r0, #0x1f
- asr r3, r2, #0x1f
- bl _ll_mul
- mov r2, #0x2
- mov r3, #0x0
- lsl r2, r2, #0xa
- add r2, r0, r2
- adc r1, r3
- lsl r0, r1, #0x14
- lsr r1, r2, #0xc
- orr r1, r0
- neg r0, r4
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r1, [r5, #0x1c]
- asr r0, r0, #0x4
- lsl r1, r0, #0x2
- ldr r0, _0201E8B4 ; =0x020FFA38
- ldr r2, [r5, #0x38]
- ldrsh r0, [r0, r1]
- asr r3, r2, #0x1f
- asr r1, r0, #0x1f
- bl _ll_mul
- mov r2, #0x2
- mov r3, #0x0
- lsl r2, r2, #0xa
- add r2, r0, r2
- adc r1, r3
- lsl r0, r1, #0x14
- lsr r1, r2, #0xc
- orr r1, r0
- add r0, r5, #0x0
- str r1, [r5, #0x18]
- add r0, #0x14
- add r5, #0x20
- add r1, r5, #0x0
- add r2, r0, #0x0
- bl VEC_Add
- pop {r3-r5, pc}
- nop
-_0201E8B4: .word 0x020FFA38
-
- thumb_func_start FUN_0201E8B8
-FUN_0201E8B8: ; 0x0201E8B8
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldrh r0, [r5, #0x3e]
- ldr r2, [r5, #0x38]
- ldrh r4, [r5, #0x3c]
- asr r0, r0, #0x4
- lsl r1, r0, #0x2
- ldr r0, _0201E998 ; =0x020FFA38
- asr r3, r2, #0x1f
- ldrsh r0, [r0, r1]
- asr r1, r0, #0x1f
- bl _ll_mul
- mov r2, #0x2
- mov r3, #0x0
- lsl r2, r2, #0xa
- add r0, r0, r2
- adc r1, r3
- asr r2, r4, #0x4
- lsl r2, r2, #0x1
- add r2, r2, #0x1
- lsl r3, r2, #0x1
- ldr r2, _0201E998 ; =0x020FFA38
- lsl r1, r1, #0x14
- ldrsh r2, [r2, r3]
- lsr r0, r0, #0xc
- orr r0, r1
- asr r1, r0, #0x1f
- asr r3, r2, #0x1f
- bl _ll_mul
- mov r2, #0x2
- mov r3, #0x0
- lsl r2, r2, #0xa
- add r2, r0, r2
- adc r1, r3
- lsl r0, r1, #0x14
- lsr r1, r2, #0xc
- orr r1, r0
- neg r0, r1
- str r0, [r5, #0x20]
- ldrh r0, [r5, #0x3e]
- ldr r2, [r5, #0x38]
- asr r0, r0, #0x4
- lsl r0, r0, #0x1
- add r0, r0, #0x1
- lsl r1, r0, #0x1
- ldr r0, _0201E998 ; =0x020FFA38
- asr r3, r2, #0x1f
- ldrsh r0, [r0, r1]
- asr r1, r0, #0x1f
- bl _ll_mul
- mov r2, #0x2
- lsl r2, r2, #0xa
- mov r3, #0x0
- add r0, r0, r2
- adc r1, r3
- ldrh r2, [r5, #0x3c]
- lsl r1, r1, #0x14
- lsr r0, r0, #0xc
- asr r2, r2, #0x4
- lsl r2, r2, #0x1
- add r2, r2, #0x1
- lsl r3, r2, #0x1
- ldr r2, _0201E998 ; =0x020FFA38
- orr r0, r1
- ldrsh r2, [r2, r3]
- asr r1, r0, #0x1f
- asr r3, r2, #0x1f
- bl _ll_mul
- mov r2, #0x2
- mov r3, #0x0
- lsl r2, r2, #0xa
- add r2, r0, r2
- adc r1, r3
- lsl r0, r1, #0x14
- lsr r1, r2, #0xc
- orr r1, r0
- neg r0, r1
- str r0, [r5, #0x28]
- neg r0, r4
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- asr r0, r0, #0x4
- lsl r1, r0, #0x2
- ldr r0, _0201E998 ; =0x020FFA38
- ldr r2, [r5, #0x38]
- ldrsh r0, [r0, r1]
- asr r3, r2, #0x1f
- asr r1, r0, #0x1f
- bl _ll_mul
- mov r2, #0x2
- mov r3, #0x0
- lsl r2, r2, #0xa
- add r2, r0, r2
- adc r1, r3
- lsl r0, r1, #0x14
- lsr r1, r2, #0xc
- orr r1, r0
- neg r0, r1
- str r0, [r5, #0x24]
- add r0, r5, #0x0
- add r0, #0x20
- add r5, #0x14
- add r1, r5, #0x0
- add r2, r0, #0x0
- bl VEC_Add
- pop {r3-r5, pc}
- .balign 4
-_0201E998: .word 0x020FFA38
-
- thumb_func_start FUN_0201E99C
-FUN_0201E99C: ; 0x0201E99C
- add r2, r1, #0x0
- add r2, #0x46
- strh r0, [r2, #0x0]
- asr r0, r0, #0x4
- lsl r3, r0, #0x1
- ldr r2, _0201E9E0 ; =0x020FFA38
- lsl r0, r3, #0x1
- ldrsh r0, [r2, r0]
- str r0, [r1, #0x0]
- add r0, r3, #0x1
- lsl r0, r0, #0x1
- ldrsh r0, [r2, r0]
- mov r2, #0x0
- str r0, [r1, #0x4]
- ldr r0, _0201E9E4 ; =0x00001555
- str r0, [r1, #0x8]
- mov r0, #0x96
- lsl r0, r0, #0xc
- str r0, [r1, #0xc]
- mov r0, #0xe1
- lsl r0, r0, #0xe
- str r0, [r1, #0x10]
- mov r0, #0x1
- str r2, [r1, #0x2c]
- lsl r0, r0, #0xc
- str r0, [r1, #0x30]
- str r2, [r1, #0x34]
- str r2, [r1, #0x54]
- str r2, [r1, #0x58]
- str r2, [r1, #0x5c]
- str r2, [r1, #0x60]
- str r2, [r1, #0x64]
- bx lr
- nop
-_0201E9E0: .word 0x020FFA38
-_0201E9E4: .word 0x00001555
-
- thumb_func_start FUN_0201E9E8
-FUN_0201E9E8: ; 0x0201E9E8
- ldr r2, [r0, #0x58]
- cmp r2, #0x0
- bne _0201E9F2
- mov r2, #0x0
- str r2, [r1, #0x0]
-_0201E9F2:
- ldr r2, [r0, #0x5c]
- cmp r2, #0x0
- bne _0201E9FC
- mov r2, #0x0
- str r2, [r1, #0x4]
-_0201E9FC:
- ldr r0, [r0, #0x60]
- cmp r0, #0x0
- bne _0201EA06
- mov r0, #0x0
- str r0, [r1, #0x8]
-_0201EA06:
- bx lr
-
- thumb_func_start FUN_0201EA08
-FUN_0201EA08: ; 0x0201EA08
- push {r3-r7, lr}
- add r5, r0, #0x0
- ldr r7, [r5, #0x64]
- add r4, r1, #0x0
- add r6, r2, #0x0
- cmp r7, #0x0
- bne _0201EA20
- ldmia r4!, {r0-r1}
- stmia r6!, {r0-r1}
- ldr r0, [r4, #0x0]
- str r0, [r6, #0x0]
- pop {r3-r7, pc}
-_0201EA20:
- add r0, r7, #0x0
- str r0, [sp, #0x0]
- add r0, #0x8
- str r0, [sp, #0x0]
- ldr r0, [r7, #0x10]
- cmp r0, #0x0
- bne _0201EA48
- add r3, r4, #0x0
- ldmia r3!, {r0-r1}
- stmia r2!, {r0-r1}
- ldr r0, [r3, #0x0]
- str r0, [r2, #0x0]
- ldr r0, [r5, #0x64]
- ldr r2, [r7, #0x4]
- ldr r1, [r0, #0xc]
- cmp r2, r1
- bne _0201EA5C
- mov r1, #0x1
- str r1, [r0, #0x10]
- b _0201EA5C
-_0201EA48:
- ldr r2, [r7, #0x4]
- mov r1, #0xc
- mul r1, r2
- ldr r0, [r7, #0x20]
- add r2, r6, #0x0
- add r3, r0, r1
- ldmia r3!, {r0-r1}
- stmia r2!, {r0-r1}
- ldr r0, [r3, #0x0]
- str r0, [r2, #0x0]
-_0201EA5C:
- ldr r1, [r5, #0x64]
- ldr r0, [r7, #0x4]
- ldr r1, [r1, #0x0]
- add r0, r0, #0x1
- bl _s32_div_f
- str r1, [r7, #0x4]
- ldr r1, [sp, #0x0]
- ldr r0, [r5, #0x64]
- ldr r2, [r1, #0x0]
- mov r1, #0xc
- ldr r0, [r0, #0x20]
- mul r1, r2
- add r3, r4, #0x0
- add r2, r0, r1
- ldmia r3!, {r0-r1}
- stmia r2!, {r0-r1}
- ldr r0, [r3, #0x0]
- str r0, [r2, #0x0]
- ldr r0, [sp, #0x0]
- ldr r1, [r5, #0x64]
- ldr r0, [r0, #0x0]
- ldr r1, [r1, #0x0]
- add r0, r0, #0x1
- bl _s32_div_f
- ldr r0, [sp, #0x0]
- str r1, [r0, #0x0]
- ldr r0, [r5, #0x64]
- ldr r0, [r0, #0x14]
- cmp r0, #0x0
- bne _0201EAA0
- ldr r0, [r4, #0x0]
- str r0, [r6, #0x0]
-_0201EAA0:
- ldr r0, [r5, #0x64]
- ldr r0, [r0, #0x18]
- cmp r0, #0x0
- bne _0201EAAC
- ldr r0, [r4, #0x4]
- str r0, [r6, #0x4]
-_0201EAAC:
- ldr r0, [r5, #0x64]
- ldr r0, [r0, #0x1c]
- cmp r0, #0x0
- bne _0201EAB8
- ldr r0, [r4, #0x8]
- str r0, [r6, #0x8]
-_0201EAB8:
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0201EABC
-FUN_0201EABC: ; 0x0201EABC
- push {r3-r7, lr}
- add r5, r0, #0x0
- ldr r0, [sp, #0x18]
- add r7, r1, #0x0
- str r0, [sp, #0x18]
- ldr r0, [r0, #0x54]
- add r6, r2, #0x0
- str r3, [sp, #0x0]
- cmp r0, #0x0
- beq _0201EB46
- add r0, r7, #0x1
- cmp r0, r5
- ble _0201EADA
- bl ErrorHandling
-_0201EADA:
- ldr r0, [sp, #0x0]
- mov r1, #0x24
- bl FUN_02016998
- add r4, r0, #0x0
- mov r1, #0xc
- ldr r0, [sp, #0x0]
- mul r1, r5
- bl FUN_02016998
- mov r1, #0x0
- str r0, [r4, #0x20]
- cmp r5, #0x0
- ble _0201EB12
- add r2, r1, #0x0
- add r0, r1, #0x0
-_0201EAFA:
- ldr r3, [r4, #0x20]
- add r1, r1, #0x1
- str r0, [r3, r2]
- ldr r3, [r4, #0x20]
- add r3, r3, r2
- str r0, [r3, #0x4]
- ldr r3, [r4, #0x20]
- add r3, r3, r2
- str r0, [r3, #0x8]
- add r2, #0xc
- cmp r1, r5
- blt _0201EAFA
-_0201EB12:
- str r5, [r4, #0x0]
- mov r0, #0x0
- str r0, [r4, #0x4]
- str r7, [r4, #0x8]
- str r7, [r4, #0xc]
- str r0, [r4, #0x10]
- str r0, [r4, #0x14]
- str r0, [r4, #0x18]
- str r0, [r4, #0x1c]
- mov r0, #0x1
- add r1, r6, #0x0
- tst r1, r0
- beq _0201EB2E
- str r0, [r4, #0x14]
-_0201EB2E:
- mov r0, #0x2
- tst r0, r6
- beq _0201EB38
- mov r0, #0x1
- str r0, [r4, #0x18]
-_0201EB38:
- mov r0, #0x4
- tst r0, r6
- beq _0201EB42
- mov r0, #0x1
- str r0, [r4, #0x1c]
-_0201EB42:
- ldr r0, [sp, #0x18]
- str r4, [r0, #0x64]
-_0201EB46:
- pop {r3-r7, pc}
-
- thumb_func_start FUN_0201EB48
-FUN_0201EB48: ; 0x0201EB48
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, [r4, #0x64]
- cmp r0, #0x0
- beq _0201EB62
- ldr r0, [r0, #0x20]
- bl FUN_02016A18
- ldr r0, [r4, #0x64]
- bl FUN_02016A18
- mov r0, #0x0
- str r0, [r4, #0x64]
-_0201EB62:
- pop {r4, pc}
-
- thumb_func_start FUN_0201EB64
-FUN_0201EB64: ; 0x0201EB64
- ldr r3, _0201EB6C ; =FUN_02016998
- mov r1, #0x68
- bx r3
- nop
-_0201EB6C: .word FUN_02016998
-
- thumb_func_start FUN_0201EB70
-FUN_0201EB70: ; 0x0201EB70
- ldr r3, _0201EB74 ; =FUN_02016A18
- bx r3
- .balign 4
-_0201EB74: .word FUN_02016A18
-
- thumb_func_start FUN_0201EB78
-FUN_0201EB78: ; 0x0201EB78
- push {r3-r4}
- add r4, r0, #0x0
- add r3, r1, #0x0
- mov r2, #0xd
-_0201EB80:
- ldmia r4!, {r0-r1}
- stmia r3!, {r0-r1}
- sub r2, r2, #0x1
- bne _0201EB80
- pop {r3-r4}
- bx lr
-
- thumb_func_start FUN_0201EB8C
-FUN_0201EB8C: ; 0x0201EB8C
- ldr r1, _0201EB94 ; =0x021C59A4
- str r0, [r1, #0x0]
- bx lr
- nop
-_0201EB94: .word 0x021C59A4
-
- thumb_func_start FUN_0201EB98
-FUN_0201EB98: ; 0x0201EB98
- ldr r0, _0201EBA0 ; =0x021C59A4
- mov r1, #0x0
- str r1, [r0, #0x0]
- bx lr
- .balign 4
-_0201EBA0: .word 0x021C59A4
-
- thumb_func_start FUN_0201EBA4
-FUN_0201EBA4: ; 0x0201EBA4
- push {r3-r6, lr}
- sub sp, #0x1c
- ldr r0, _0201EC40 ; =0x021C59A4
- ldr r1, [r0, #0x0]
- cmp r1, #0x0
- beq _0201EC3A
- ldr r0, [r1, #0x54]
- cmp r0, #0x0
- beq _0201EBEE
- add r1, #0x48
- add r2, sp, #0x10
- bl VEC_Subtract
- ldr r0, _0201EC40 ; =0x021C59A4
- add r1, sp, #0x10
- ldr r0, [r0, #0x0]
- bl FUN_0201E9E8
- ldr r0, _0201EC40 ; =0x021C59A4
- add r1, sp, #0x10
- ldr r0, [r0, #0x0]
- add r2, sp, #0x4
- bl FUN_0201EA08
- ldr r1, _0201EC40 ; =0x021C59A4
- add r0, sp, #0x4
- ldr r1, [r1, #0x0]
- bl FUN_0201EF70
- ldr r0, _0201EC40 ; =0x021C59A4
- ldr r3, [r0, #0x0]
- ldr r2, [r3, #0x54]
- add r3, #0x48
- ldmia r2!, {r0-r1}
- stmia r3!, {r0-r1}
- ldr r0, [r2, #0x0]
- str r0, [r3, #0x0]
-_0201EBEE:
- ldr r0, _0201EC40 ; =0x021C59A4
- ldr r5, _0201EC44 ; =0x021CEF58
- ldr r4, [r0, #0x0]
- add r3, r4, #0x0
- add r2, r4, #0x0
- add r4, #0x14
- add r6, r4, #0x0
- ldmia r6!, {r0-r1}
- stmia r5!, {r0-r1}
- ldr r0, [r6, #0x0]
- add r2, #0x2c
- str r0, [r5, #0x0]
- add r6, r2, #0x0
- ldr r5, _0201EC48 ; =0x021CEF64
- ldmia r6!, {r0-r1}
- stmia r5!, {r0-r1}
- ldr r0, [r6, #0x0]
- add r3, #0x20
- str r0, [r5, #0x0]
- add r6, r3, #0x0
- ldr r5, _0201EC4C ; =0x021CEF70
- ldmia r6!, {r0-r1}
- stmia r5!, {r0-r1}
- ldr r0, [r6, #0x0]
- add r1, r2, #0x0
- str r0, [r5, #0x0]
- ldr r0, _0201EC50 ; =0x021CED64
- add r2, r3, #0x0
- str r0, [sp, #0x0]
- add r0, r4, #0x0
- mov r3, #0x0
- bl G3i_LookAt_
- ldr r1, _0201EC54 ; =0x021CED98
- mov r0, #0xe8
- ldr r2, [r1, #0x7c]
- bic r2, r0
- str r2, [r1, #0x7c]
-_0201EC3A:
- add sp, #0x1c
- pop {r3-r6, pc}
- nop
-_0201EC40: .word 0x021C59A4
-_0201EC44: .word 0x021CEF58
-_0201EC48: .word 0x021CEF64
-_0201EC4C: .word 0x021CEF70
-_0201EC50: .word 0x021CED64
-_0201EC54: .word 0x021CED98
-
- thumb_func_start FUN_0201EC58
-FUN_0201EC58: ; 0x0201EC58
- add r3, r0, #0x0
- add r2, r1, #0x0
- ldmia r3!, {r0-r1}
- add r2, #0x2c
- stmia r2!, {r0-r1}
- ldr r0, [r3, #0x0]
- str r0, [r2, #0x0]
- bx lr
-
- thumb_func_start FUN_0201EC68
-FUN_0201EC68: ; 0x0201EC68
- push {r3-r4}
- add r3, r1, #0x0
- add r4, r0, #0x0
- str r4, [r3, #0x54]
- add r2, r3, #0x0
- ldmia r4!, {r0-r1}
- add r2, #0x48
- stmia r2!, {r0-r1}
- ldr r0, [r4, #0x0]
- str r0, [r2, #0x0]
- mov r0, #0x1
- str r0, [r3, #0x58]
- str r0, [r3, #0x5c]
- str r0, [r3, #0x60]
- pop {r3-r4}
- bx lr
-
- thumb_func_start FUN_0201EC88
-FUN_0201EC88: ; 0x0201EC88
- mov r1, #0x0
- str r1, [r0, #0x54]
- str r1, [r0, #0x58]
- str r1, [r0, #0x5c]
- str r1, [r0, #0x60]
- bx lr
-
- thumb_func_start FUN_0201EC94
-FUN_0201EC94: ; 0x0201EC94
- str r0, [r2, #0xc]
- add r0, r2, #0x0
- str r1, [r2, #0x10]
- add r0, #0x44
- ldr r3, _0201ECA4 ; =FUN_0201EE2C
- ldrb r0, [r0, #0x0]
- add r1, r2, #0x0
- bx r3
- .balign 4
-_0201ECA4: .word FUN_0201EE2C
-
- thumb_func_start FUN_0201ECA8
-FUN_0201ECA8: ; 0x0201ECA8
- push {r3-r7, lr}
- ldr r4, [sp, #0x20]
- add r5, r0, #0x0
- add r7, r1, #0x0
- add r0, r3, #0x0
- add r1, r4, #0x0
- add r6, r2, #0x0
- bl FUN_0201E99C
- add r3, r5, #0x0
- add r2, r4, #0x0
- ldmia r3!, {r0-r1}
- add r2, #0x20
- stmia r2!, {r0-r1}
- ldr r0, [r3, #0x0]
- str r0, [r2, #0x0]
- str r7, [r4, #0x38]
- ldrh r0, [r6, #0x0]
- strh r0, [r4, #0x3c]
- ldrh r0, [r6, #0x2]
- strh r0, [r4, #0x3e]
- add r0, r4, #0x0
- ldrh r1, [r6, #0x4]
- add r0, #0x40
- strh r1, [r0, #0x0]
- add r0, r4, #0x0
- ldrh r1, [r6, #0x6]
- add r0, #0x42
- strh r1, [r0, #0x0]
- add r0, r4, #0x0
- bl FUN_0201E7D8
- add r0, sp, #0x8
- ldrb r0, [r0, #0x10]
- add r1, r4, #0x0
- bl FUN_0201EE2C
- ldr r0, [sp, #0x1c]
- cmp r0, #0x0
- beq _0201ED0E
- str r5, [r4, #0x54]
- add r2, r4, #0x0
- ldmia r5!, {r0-r1}
- add r2, #0x48
- stmia r2!, {r0-r1}
- ldr r0, [r5, #0x0]
- str r0, [r2, #0x0]
- mov r0, #0x1
- str r0, [r4, #0x58]
- str r0, [r4, #0x5c]
- str r0, [r4, #0x60]
-_0201ED0E:
- pop {r3-r7, pc}
-
- thumb_func_start FUN_0201ED10
-FUN_0201ED10: ; 0x0201ED10
- push {r3-r7, lr}
- ldr r4, [sp, #0x1c]
- add r6, r0, #0x0
- add r7, r1, #0x0
- add r0, r3, #0x0
- add r1, r4, #0x0
- add r5, r2, #0x0
- bl FUN_0201E99C
- add r2, r4, #0x0
- ldmia r6!, {r0-r1}
- add r2, #0x14
- stmia r2!, {r0-r1}
- ldr r0, [r6, #0x0]
- str r0, [r2, #0x0]
- str r7, [r4, #0x38]
- ldrh r0, [r5, #0x0]
- strh r0, [r4, #0x3c]
- ldrh r0, [r5, #0x2]
- strh r0, [r4, #0x3e]
- add r0, r4, #0x0
- ldrh r1, [r5, #0x4]
- add r0, #0x40
- strh r1, [r0, #0x0]
- add r0, r4, #0x0
- ldrh r1, [r5, #0x6]
- add r0, #0x42
- strh r1, [r0, #0x0]
- add r0, r4, #0x0
- bl FUN_0201E8B8
- add r0, sp, #0x8
- ldrb r0, [r0, #0x10]
- add r1, r4, #0x0
- bl FUN_0201EE2C
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0201ED5C
-FUN_0201ED5C: ; 0x0201ED5C
- push {r4-r7, lr}
- sub sp, #0x3c
- ldr r4, [sp, #0x54]
- add r5, r0, #0x0
- add r6, r1, #0x0
- add r0, r2, #0x0
- add r1, r4, #0x0
- add r7, r3, #0x0
- bl FUN_0201E99C
- add r3, r5, #0x0
- add r2, r4, #0x0
- ldmia r3!, {r0-r1}
- add r2, #0x20
- stmia r2!, {r0-r1}
- ldr r0, [r3, #0x0]
- add r3, r6, #0x0
- str r0, [r2, #0x0]
- add r2, r4, #0x0
- ldmia r3!, {r0-r1}
- add r2, #0x14
- stmia r2!, {r0-r1}
- ldr r0, [r3, #0x0]
- add r1, r5, #0x0
- str r0, [r2, #0x0]
- add r0, r6, #0x0
- add r2, sp, #0x30
- bl VEC_Subtract
- add r0, sp, #0x30
- bl VEC_Mag
- str r0, [r4, #0x38]
- mov r6, #0x0
- add r0, sp, #0x24
- str r6, [r0, #0x0]
- str r6, [r0, #0x4]
- str r6, [r0, #0x8]
- add r0, sp, #0x18
- str r6, [r0, #0x0]
- str r6, [r0, #0x4]
- str r6, [r0, #0x8]
- add r0, sp, #0xc
- str r6, [r0, #0x0]
- str r6, [r0, #0x4]
- str r6, [r0, #0x8]
- mov r0, #0x1
- lsl r0, r0, #0xc
- add r3, sp, #0x30
- str r0, [sp, #0x8]
- ldmia r3!, {r0-r1}
- add r2, sp, #0xc
- stmia r2!, {r0-r1}
- ldr r0, [r3, #0x0]
- str r6, [sp, #0x0]
- str r0, [r2, #0x0]
- str r6, [sp, #0x4]
- str r6, [sp, #0x10]
- add r0, sp, #0x0
- add r1, sp, #0xc
- bl FUN_0201C7B0
- strh r0, [r4, #0x3e]
- add r1, r6, #0x0
- mov r0, #0x1
- lsl r0, r0, #0xc
- str r0, [sp, #0x0]
- ldr r0, [sp, #0x38]
- str r1, [sp, #0x4]
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x34]
- str r1, [sp, #0x8]
- str r0, [sp, #0x14]
- str r1, [sp, #0x10]
- add r0, sp, #0x0
- add r1, sp, #0xc
- bl FUN_0201C7B0
- strh r0, [r4, #0x3c]
- add r0, r4, #0x0
- add r1, r6, #0x0
- add r0, #0x40
- strh r1, [r0, #0x0]
- add r0, r7, #0x0
- add r1, r4, #0x0
- bl FUN_0201EE2C
- ldr r0, [sp, #0x50]
- cmp r0, #0x0
- beq _0201EE26
- str r5, [r4, #0x54]
- add r2, r4, #0x0
- ldmia r5!, {r0-r1}
- add r2, #0x48
- stmia r2!, {r0-r1}
- ldr r0, [r5, #0x0]
- str r0, [r2, #0x0]
- mov r0, #0x1
- str r0, [r4, #0x58]
- str r0, [r4, #0x5c]
- str r0, [r4, #0x60]
-_0201EE26:
- add sp, #0x3c
- pop {r4-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0201EE2C
-FUN_0201EE2C: ; 0x0201EE2C
- push {r3-r6, lr}
- sub sp, #0x14
- add r5, r1, #0x0
- cmp r0, #0x0
- bne _0201EE6C
- ldr r0, [r5, #0x10]
- str r0, [sp, #0x0]
- mov r0, #0x1
- lsl r0, r0, #0xc
- str r0, [sp, #0x4]
- mov r0, #0x0
- str r0, [sp, #0x8]
- ldr r0, _0201EEE4 ; =0x021CED20
- str r0, [sp, #0xc]
- ldr r0, [r5, #0x0]
- ldr r1, [r5, #0x4]
- ldr r2, [r5, #0x8]
- ldr r3, [r5, #0xc]
- bl G3i_PerspectiveW_
- ldr r1, _0201EEE8 ; =0x021CED98
- mov r0, #0x50
- ldr r2, [r1, #0x7c]
- add r5, #0x44
- bic r2, r0
- str r2, [r1, #0x7c]
- mov r1, #0x0
- ldr r0, _0201EEEC ; =0x02105BB8
- strb r1, [r5, #0x0]
- str r1, [r0, #0x0]
- add sp, #0x14
- pop {r3-r6, pc}
-_0201EE6C:
- ldr r4, [r5, #0x38]
- ldr r0, [r5, #0x0]
- ldr r1, [r5, #0x4]
- bl FX_Div
- asr r1, r0, #0x1f
- asr r3, r4, #0x1f
- add r2, r4, #0x0
- bl _ll_mul
- mov r2, #0x2
- mov r3, #0x0
- lsl r2, r2, #0xa
- add r2, r0, r2
- adc r1, r3
- lsr r4, r2, #0xc
- lsl r0, r1, #0x14
- orr r4, r0
- ldr r2, [r5, #0x8]
- asr r1, r4, #0x1f
- add r0, r4, #0x0
- asr r3, r2, #0x1f
- bl _ll_mul
- mov r6, #0x2
- mov r2, #0x0
- lsl r6, r6, #0xa
- add r3, r0, r6
- adc r1, r2
- lsl r0, r1, #0x14
- lsr r3, r3, #0xc
- orr r3, r0
- ldr r0, [r5, #0xc]
- neg r1, r4
- str r0, [sp, #0x0]
- ldr r0, [r5, #0x10]
- str r0, [sp, #0x4]
- lsl r0, r6, #0x1
- str r0, [sp, #0x8]
- str r2, [sp, #0xc]
- ldr r0, _0201EEE4 ; =0x021CED20
- neg r2, r3
- str r0, [sp, #0x10]
- add r0, r4, #0x0
- bl G3i_OrthoW_
- ldr r1, _0201EEE8 ; =0x021CED98
- mov r0, #0x50
- ldr r2, [r1, #0x7c]
- add r5, #0x44
- bic r2, r0
- str r2, [r1, #0x7c]
- mov r0, #0x1
- strb r0, [r5, #0x0]
- ldr r0, _0201EEEC ; =0x02105BB8
- mov r1, #0x0
- str r1, [r0, #0x0]
- add sp, #0x14
- pop {r3-r6, pc}
- nop
-_0201EEE4: .word 0x021CED20
-_0201EEE8: .word 0x021CED98
-_0201EEEC: .word 0x02105BB8
-
- thumb_func_start FUN_0201EEF0
-FUN_0201EEF0: ; 0x0201EEF0
- add r2, r1, #0x0
- add r2, #0x46
- strh r0, [r2, #0x0]
- add r0, r1, #0x0
- add r0, #0x46
- ldrh r0, [r0, #0x0]
- ldr r3, _0201EF24 ; =FUN_0201EE2C
- asr r0, r0, #0x4
- lsl r2, r0, #0x2
- ldr r0, _0201EF28 ; =0x020FFA38
- ldrsh r2, [r0, r2]
- str r2, [r1, #0x0]
- add r2, r1, #0x0
- add r2, #0x46
- ldrh r2, [r2, #0x0]
- asr r2, r2, #0x4
- lsl r2, r2, #0x1
- add r2, r2, #0x1
- lsl r2, r2, #0x1
- ldrsh r0, [r0, r2]
- str r0, [r1, #0x4]
- add r0, r1, #0x0
- add r0, #0x44
- ldrb r0, [r0, #0x0]
- bx r3
- nop
-_0201EF24: .word FUN_0201EE2C
-_0201EF28: .word 0x020FFA38
-
- thumb_func_start FUN_0201EF2C
-FUN_0201EF2C: ; 0x0201EF2C
- add r2, r1, #0x0
- add r2, #0x46
- ldrh r2, [r2, #0x0]
- ldr r3, _0201EF68 ; =FUN_0201EE2C
- add r2, r2, r0
- add r0, r1, #0x0
- add r0, #0x46
- strh r2, [r0, #0x0]
- add r0, r1, #0x0
- add r0, #0x46
- ldrh r0, [r0, #0x0]
- asr r0, r0, #0x4
- lsl r2, r0, #0x2
- ldr r0, _0201EF6C ; =0x020FFA38
- ldrsh r2, [r0, r2]
- str r2, [r1, #0x0]
- add r2, r1, #0x0
- add r2, #0x46
- ldrh r2, [r2, #0x0]
- asr r2, r2, #0x4
- lsl r2, r2, #0x1
- add r2, r2, #0x1
- lsl r2, r2, #0x1
- ldrsh r0, [r0, r2]
- str r0, [r1, #0x4]
- add r0, r1, #0x0
- add r0, #0x44
- ldrb r0, [r0, #0x0]
- bx r3
- nop
-_0201EF68: .word FUN_0201EE2C
-_0201EF6C: .word 0x020FFA38
-
- thumb_func_start FUN_0201EF70
-FUN_0201EF70: ; 0x0201EF70
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x14
- add r1, r5, #0x0
- add r2, r0, #0x0
- bl VEC_Add
- add r4, #0x20
- add r0, r4, #0x0
- add r1, r5, #0x0
- add r2, r4, #0x0
- bl VEC_Add
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0201EF90
-FUN_0201EF90: ; 0x0201EF90
- ldrh r2, [r0, #0x0]
- strh r2, [r1, #0x3c]
- ldrh r2, [r0, #0x2]
- strh r2, [r1, #0x3e]
- add r2, r1, #0x0
- ldrh r3, [r0, #0x4]
- add r2, #0x40
- strh r3, [r2, #0x0]
- ldrh r2, [r0, #0x6]
- add r0, r1, #0x0
- add r0, #0x42
- strh r2, [r0, #0x0]
- ldr r3, _0201EFB0 ; =FUN_0201E7D8
- add r0, r1, #0x0
- bx r3
- nop
-_0201EFB0: .word FUN_0201E7D8
-
- thumb_func_start FUN_0201EFB4
-FUN_0201EFB4: ; 0x0201EFB4
- ldrh r3, [r1, #0x3c]
- ldrh r2, [r0, #0x0]
- add r2, r3, r2
- strh r2, [r1, #0x3c]
- ldrh r3, [r1, #0x3e]
- ldrh r2, [r0, #0x2]
- add r2, r3, r2
- strh r2, [r1, #0x3e]
- add r2, r1, #0x0
- add r2, #0x40
- ldrh r2, [r2, #0x0]
- ldrh r0, [r0, #0x4]
- ldr r3, _0201EFDC ; =FUN_0201E8B8
- add r2, r2, r0
- add r0, r1, #0x0
- add r0, #0x40
- strh r2, [r0, #0x0]
- add r0, r1, #0x0
- bx r3
- nop
-_0201EFDC: .word FUN_0201E8B8
-
- thumb_func_start FUN_0201EFE0
-FUN_0201EFE0: ; 0x0201EFE0
- ldr r3, _0201EFE8 ; =FUN_0201E7D8
- str r0, [r1, #0x38]
- add r0, r1, #0x0
- bx r3
- .balign 4
-_0201EFE8: .word FUN_0201E7D8
-
- thumb_func_start FUN_0201EFEC
-FUN_0201EFEC: ; 0x0201EFEC
- push {r4, lr}
- add r3, r1, #0x0
- add r4, r0, #0x0
- add r2, r3, #0x0
- ldmia r4!, {r0-r1}
- add r2, #0x20
- stmia r2!, {r0-r1}
- ldr r0, [r4, #0x0]
- str r0, [r2, #0x0]
- add r0, r3, #0x0
- bl FUN_0201E7D8
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0201F008
-FUN_0201F008: ; 0x0201F008
- add r0, #0x46
- ldrh r0, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_0201F010
-FUN_0201F010: ; 0x0201F010
- ldr r0, [r0, #0x38]
- bx lr
-
- thumb_func_start FUN_0201F014
-FUN_0201F014: ; 0x0201F014
- ldrh r2, [r1, #0x3c]
- strh r2, [r0, #0x0]
- ldrh r2, [r1, #0x3e]
- strh r2, [r0, #0x2]
- add r2, r1, #0x0
- add r2, #0x40
- ldrh r2, [r2, #0x0]
- add r1, #0x42
- strh r2, [r0, #0x4]
- ldrh r1, [r1, #0x0]
- strh r1, [r0, #0x6]
- bx lr
-
- thumb_func_start FUN_0201F02C
-FUN_0201F02C: ; 0x0201F02C
- add r2, r1, #0x0
- add r2, #0x20
- add r3, r0, #0x0
- ldmia r2!, {r0-r1}
- stmia r3!, {r0-r1}
- ldr r0, [r2, #0x0]
- str r0, [r3, #0x0]
- bx lr
-
- thumb_func_start FUN_0201F03C
-FUN_0201F03C: ; 0x0201F03C
- add r2, r1, #0x0
- add r2, #0x14
- add r3, r0, #0x0
- ldmia r2!, {r0-r1}
- stmia r3!, {r0-r1}
- ldr r0, [r2, #0x0]
- str r0, [r3, #0x0]
- bx lr
-
- thumb_func_start FUN_0201F04C
-FUN_0201F04C: ; 0x0201F04C
- add r3, r0, #0x0
- add r2, r1, #0x0
- ldmia r3!, {r0-r1}
- add r2, #0x20
- stmia r2!, {r0-r1}
- ldr r0, [r3, #0x0]
- str r0, [r2, #0x0]
- bx lr
-
- thumb_func_start FUN_0201F05C
-FUN_0201F05C: ; 0x0201F05C
- add r3, r0, #0x0
- add r2, r1, #0x0
- ldmia r3!, {r0-r1}
- add r2, #0x14
- stmia r2!, {r0-r1}
- ldr r0, [r3, #0x0]
- str r0, [r2, #0x0]
- bx lr
-
- thumb_func_start FUN_0201F06C
-FUN_0201F06C: ; 0x0201F06C
- mov r2, #0x0
- strb r2, [r0, #0x0]
- strb r2, [r0, #0x1]
- str r2, [r0, #0x4]
- add r1, r0, #0x0
- str r2, [r0, #0x8]
- add r1, #0xc4
- str r2, [r1, #0x0]
- add r1, r0, #0x0
- add r1, #0xc8
- str r2, [r1, #0x0]
- add r1, r0, #0x0
- add r1, #0xcc
- str r2, [r1, #0x0]
- add r1, r0, #0x0
- add r1, #0xd0
- str r2, [r1, #0x0]
- strb r2, [r0, #0x3]
- bx lr
- .balign 4
-
- thumb_func_start FUN_0201F094
-FUN_0201F094: ; 0x0201F094
- mov r3, #0x0
- str r3, [r0, #0x1c]
- str r3, [r0, #0x20]
- str r3, [r0, #0x78]
- add r1, r0, #0x0
- str r3, [r0, #0x7c]
- add r1, #0x80
- str r3, [r1, #0x0]
- add r1, r0, #0x0
- add r1, #0x84
- add r2, r0, #0x0
- str r3, [r1, #0x0]
- add r2, #0x94
- mov r1, #0x10
-_0201F0B0:
- strb r3, [r2, #0x0]
- add r2, r2, #0x1
- sub r1, r1, #0x1
- bne _0201F0B0
- add r2, r0, #0x0
- mov r1, #0x0
- add r2, #0x88
- str r1, [r2, #0x0]
- add r2, r0, #0x0
- add r2, #0x8c
- str r1, [r2, #0x0]
- add r2, r0, #0x0
- add r2, #0x90
- str r1, [r2, #0x0]
- add r2, r0, #0x0
- add r2, #0xa4
- str r1, [r2, #0x0]
- str r1, [r0, #0x0]
- str r1, [r0, #0x4]
- mov r2, #0x1
- str r1, [r0, #0x8]
- lsl r2, r2, #0xc
- str r2, [r0, #0xc]
- str r2, [r0, #0x10]
- str r2, [r0, #0x14]
- add r2, r0, #0x0
- add r2, #0xaa
- strh r1, [r2, #0x0]
- add r2, r0, #0x0
- add r2, #0xa8
- strb r1, [r2, #0x0]
- add r2, r0, #0x0
- add r2, #0xb0
- str r1, [r2, #0x0]
- add r2, r0, #0x0
- add r2, #0xb4
- str r1, [r2, #0x0]
- strb r1, [r0, #0x18]
- bx lr
- .balign 4
-
- thumb_func_start FUN_0201F100
-FUN_0201F100: ; 0x0201F100
- push {r3-r7, lr}
- add r6, r0, #0x0
- ldr r0, _0201F13C ; =0x021C59A8
- add r4, r1, #0x0
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _0201F112
- bl ErrorHandling
-_0201F112:
- mov r1, #0xd4
- add r0, r4, #0x0
- mul r1, r6
- bl FUN_02016998
- ldr r7, _0201F13C ; =0x021C59A8
- mov r4, #0x0
- str r0, [r7, #0x0]
- str r6, [r7, #0x4]
- cmp r6, #0x0
- ble _0201F13A
- add r5, r4, #0x0
-_0201F12A:
- ldr r0, [r7, #0x0]
- add r0, r0, r5
- bl FUN_0201F06C
- add r4, r4, #0x1
- add r5, #0xd4
- cmp r4, r6
- blt _0201F12A
-_0201F13A:
- pop {r3-r7, pc}
- .balign 4
-_0201F13C: .word 0x021C59A8
-
- thumb_func_start FUN_0201F140
-FUN_0201F140: ; 0x0201F140
- push {r4-r6, lr}
- ldr r6, _0201F174 ; =0x021C59A8
- mov r4, #0x0
- ldr r0, [r6, #0x4]
- cmp r0, #0x0
- ble _0201F160
- add r5, r4, #0x0
-_0201F14E:
- ldr r0, [r6, #0x0]
- add r0, r0, r5
- bl FUN_0201F23C
- ldr r0, [r6, #0x4]
- add r4, r4, #0x1
- add r5, #0xd4
- cmp r4, r0
- blt _0201F14E
-_0201F160:
- ldr r0, _0201F174 ; =0x021C59A8
- ldr r0, [r0, #0x0]
- bl FUN_02016A18
- ldr r0, _0201F174 ; =0x021C59A8
- mov r1, #0x0
- str r1, [r0, #0x0]
- str r1, [r0, #0x4]
- pop {r4-r6, pc}
- nop
-_0201F174: .word 0x021C59A8
-
- thumb_func_start FUN_0201F178
-FUN_0201F178: ; 0x0201F178
- push {r3-r7, lr}
- ldr r6, _0201F1B0 ; =0x021C59A8
- mov r4, #0x0
- ldr r0, [r6, #0x4]
- cmp r0, #0x0
- ble _0201F1AC
- add r5, r4, #0x0
- mov r7, #0x2
-_0201F188:
- ldr r0, [r6, #0x0]
- add r0, r0, r5
- ldrb r1, [r0, #0x1]
- cmp r1, #0x1
- bne _0201F196
- bl FUN_0201F318
-_0201F196:
- ldr r0, [r6, #0x0]
- add r1, r0, r5
- ldrb r0, [r1, #0x3]
- cmp r0, #0x1
- bne _0201F1A2
- strb r7, [r1, #0x3]
-_0201F1A2:
- ldr r0, [r6, #0x4]
- add r4, r4, #0x1
- add r5, #0xd4
- cmp r4, r0
- blt _0201F188
-_0201F1AC:
- pop {r3-r7, pc}
- nop
-_0201F1B0: .word 0x021C59A8
-
- thumb_func_start FUN_0201F1B4
-FUN_0201F1B4: ; 0x0201F1B4
- push {r3-r5, lr}
- add r5, r0, #0x0
- bl FUN_0201F2E4
- add r4, r0, #0x0
- bne _0201F1C8
- bl ErrorHandling
- mov r0, #0x0
- pop {r3-r5, pc}
-_0201F1C8:
- mov r0, #0x1
- strb r0, [r4, #0x0]
- strb r0, [r4, #0x1]
- ldr r2, [r5, #0x0]
- mov r1, #0xb8
- ldr r0, [r5, #0x4]
- mul r1, r2
- bl FUN_02016998
- str r0, [r4, #0x4]
- ldr r0, [r5, #0x0]
- str r0, [r4, #0x8]
- add r0, r4, #0x0
- add r0, #0xc
- bl FUN_0201F094
- add r1, r4, #0x0
- add r0, r4, #0x0
- add r1, #0xc
- add r0, #0xbc
- str r1, [r0, #0x0]
- add r0, r4, #0x0
- add r0, #0xc0
- str r1, [r0, #0x0]
- ldr r1, [r5, #0x0]
- ldr r0, [r5, #0x4]
- lsl r1, r1, #0x2
- bl FUN_02016998
- add r1, r4, #0x0
- add r1, #0xc4
- str r0, [r1, #0x0]
- add r0, r4, #0x0
- bl FUN_0201FABC
- ldr r0, [r5, #0x4]
- mov r1, #0x10
- bl FUN_02016998
- add r1, r4, #0x0
- add r1, #0xcc
- str r0, [r1, #0x0]
- add r0, r4, #0x0
- add r0, #0xcc
- ldr r0, [r0, #0x0]
- ldr r1, [r5, #0x4]
- mov r2, #0x4
- bl FUN_02016B20
- ldr r0, [r5, #0x0]
- ldr r1, [r5, #0x4]
- bl FUN_0201C360
- add r1, r4, #0x0
- add r1, #0xd0
- str r0, [r1, #0x0]
- add r0, r4, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0201F23C
-FUN_0201F23C: ; 0x0201F23C
- push {r4, lr}
- add r4, r0, #0x0
- bne _0201F24A
- bl ErrorHandling
- mov r0, #0x0
- pop {r4, pc}
-_0201F24A:
- ldrb r1, [r4, #0x0]
- cmp r1, #0x0
- beq _0201F27E
- bl FUN_0201F284
- ldr r0, [r4, #0x4]
- bl FUN_02016A18
- add r0, r4, #0x0
- add r0, #0xc4
- ldr r0, [r0, #0x0]
- bl FUN_02016A18
- add r0, r4, #0x0
- add r0, #0xcc
- ldr r0, [r0, #0x0]
- bl FUN_02016A18
- add r0, r4, #0x0
- add r0, #0xd0
- ldr r0, [r0, #0x0]
- bl FUN_0201C39C
- add r0, r4, #0x0
- bl FUN_0201F06C
-_0201F27E:
- mov r0, #0x1
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0201F284
-FUN_0201F284: ; 0x0201F284
- push {r3-r5, lr}
- cmp r0, #0x0
- bne _0201F294
- bne _0201F290
- bl ErrorHandling
-_0201F290:
- mov r0, #0x0
- pop {r3-r5, pc}
-_0201F294:
- ldrb r1, [r0, #0x0]
- cmp r1, #0x0
- beq _0201F2BA
- add r1, r0, #0x0
- add r1, #0xbc
- add r4, r0, #0x0
- ldr r1, [r1, #0x0]
- add r4, #0xc
- cmp r1, r4
- beq _0201F2BA
-_0201F2A8:
- add r0, r1, #0x0
- add r0, #0xb0
- ldr r5, [r0, #0x0]
- add r0, r1, #0x0
- bl FUN_0201F744
- add r1, r5, #0x0
- cmp r5, r4
- bne _0201F2A8
-_0201F2BA:
- mov r0, #0x1
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0201F2C0
-FUN_0201F2C0: ; 0x0201F2C0
- push {r4, lr}
- add r4, r0, #0x0
- bne _0201F2CA
- bl ErrorHandling
-_0201F2CA:
- ldrb r0, [r4, #0x3]
- cmp r0, #0x0
- bne _0201F2D4
- mov r0, #0x0
- pop {r4, pc}
-_0201F2D4:
- mov r0, #0x1
- pop {r4, pc}
-
- thumb_func_start FUN_0201F2D8
-FUN_0201F2D8: ; 0x0201F2D8
- ldrb r1, [r0, #0x3]
- cmp r1, #0x2
- bne _0201F2E2
- mov r1, #0x0
- strb r1, [r0, #0x3]
-_0201F2E2:
- bx lr
-
- thumb_func_start FUN_0201F2E4
-FUN_0201F2E4: ; 0x0201F2E4
- push {r3-r4}
- ldr r0, _0201F314 ; =0x021C59A8
- mov r1, #0x0
- ldr r3, [r0, #0x4]
- cmp r3, #0x0
- ble _0201F30C
- ldr r4, [r0, #0x0]
- add r2, r4, #0x0
-_0201F2F4:
- ldrb r0, [r2, #0x0]
- cmp r0, #0x0
- bne _0201F304
- mov r0, #0xd4
- mul r0, r1
- add r0, r4, r0
- pop {r3-r4}
- bx lr
-_0201F304:
- add r1, r1, #0x1
- add r2, #0xd4
- cmp r1, r3
- blt _0201F2F4
-_0201F30C:
- mov r0, #0x0
- pop {r3-r4}
- bx lr
- nop
-_0201F314: .word 0x021C59A8
-
- thumb_func_start FUN_0201F318
-FUN_0201F318: ; 0x0201F318
- push {r3-r6, lr}
- sub sp, #0x24
- add r5, r0, #0x0
- bne _0201F324
- bl ErrorHandling
-_0201F324:
- add r0, sp, #0x0
- bl MTX_Identity33_
- add r0, r5, #0x0
- add r0, #0xbc
- ldr r4, [r0, #0x0]
- add r5, #0xc
- cmp r4, r5
- beq _0201F37E
- add r6, sp, #0x0
-_0201F338:
- ldrb r0, [r4, #0x18]
- cmp r0, #0x1
- bne _0201F376
- add r0, r4, #0x0
- bl FUN_0201FC54
- add r0, r4, #0x0
- add r0, #0xa8
- ldrb r0, [r0, #0x0]
- cmp r0, #0x3
- bne _0201F356
- add r0, r4, #0x0
- bl FUN_0201F90C
- b _0201F360
-_0201F356:
- cmp r0, #0x2
- bne _0201F360
- add r0, r4, #0x0
- bl FUN_0201F8F0
-_0201F360:
- add r0, r4, #0x0
- add r3, r4, #0x0
- add r0, #0x24
- add r1, r4, #0x0
- add r2, r6, #0x0
- add r3, #0xc
- bl FUN_0201B26C
- add r0, r4, #0x0
- bl FUN_0201FC70
-_0201F376:
- add r4, #0xb0
- ldr r4, [r4, #0x0]
- cmp r4, r5
- bne _0201F338
-_0201F37E:
- add sp, #0x24
- pop {r3-r6, pc}
- .balign 4
-
- thumb_func_start FUN_0201F384
-FUN_0201F384: ; 0x0201F384
- push {r4-r6, lr}
- add r5, r0, #0x0
- ldr r6, [r5, #0x1c]
- add r4, r1, #0x0
- add r0, r6, #0x0
- add r1, r5, #0x0
- bl FUN_0201F5B8
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_0201F5D4
- add r0, r6, #0x0
- add r1, r5, #0x0
- add r2, r4, #0x0
- bl FUN_0201F648
- add r0, r5, #0x0
- add r0, #0xa8
- ldrb r0, [r0, #0x0]
- cmp r0, #0x1
- bne _0201F3BA
- add r6, #0xc
- add r0, r6, #0x0
- add r1, r5, #0x0
- bl FUN_0201FB58
-_0201F3BA:
- add r0, r5, #0x0
- mov r1, #0x2
- add r0, #0xa8
- strb r1, [r0, #0x0]
- ldr r0, [r4, #0x8]
- mov r1, #0x0
- str r0, [r5, #0x20]
- add r0, r5, #0x0
- add r0, #0xaa
- strh r1, [r0, #0x0]
- add r5, #0xac
- str r1, [r5, #0x0]
- pop {r4-r6, pc}
-
- thumb_func_start FUN_0201F3D4
-FUN_0201F3D4: ; 0x0201F3D4
- push {r4-r6, lr}
- add r5, r0, #0x0
- ldr r6, [r5, #0x1c]
- add r4, r1, #0x0
- add r0, r6, #0x0
- add r1, r5, #0x0
- bl FUN_0201F5B8
- add r0, r5, #0x0
- add r0, #0xa8
- ldrb r0, [r0, #0x0]
- cmp r0, #0x2
- bne _0201F3FE
- add r0, r5, #0x0
- add r1, r5, #0x0
- add r2, r5, #0x0
- add r0, #0x88
- add r1, #0x8c
- add r2, #0x90
- bl FUN_0201F524
-_0201F3FE:
- add r0, r5, #0x0
- ldr r1, [r4, #0x1c]
- add r0, #0x88
- str r1, [r0, #0x0]
- add r0, r5, #0x0
- ldr r1, [r4, #0x20]
- add r0, #0x8c
- str r1, [r0, #0x0]
- add r0, r5, #0x0
- ldr r1, [r4, #0x24]
- add r0, #0x90
- str r1, [r0, #0x0]
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_0201F69C
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_0201F6C8
- add r0, r5, #0x0
- add r0, #0xa8
- ldrb r0, [r0, #0x0]
- cmp r0, #0x1
- bne _0201F43A
- add r6, #0xc
- add r0, r6, #0x0
- add r1, r5, #0x0
- bl FUN_0201FB58
-_0201F43A:
- add r0, r5, #0x0
- mov r1, #0x3
- add r0, #0xa8
- strb r1, [r0, #0x0]
- ldr r0, [r4, #0x8]
- mov r1, #0x0
- str r0, [r5, #0x20]
- add r0, r5, #0x0
- add r0, #0xaa
- strh r1, [r0, #0x0]
- add r5, #0xac
- str r1, [r5, #0x0]
- pop {r4-r6, pc}
-
- thumb_func_start FUN_0201F454
-FUN_0201F454: ; 0x0201F454
- push {r4-r7, lr}
- sub sp, #0xc
- add r5, r0, #0x0
- add r4, r1, #0x0
- add r6, r2, #0x0
- add r7, r3, #0x0
- bl FUN_020B7E1C
- str r0, [sp, #0x8]
- add r0, r5, #0x0
- bl FUN_020B7E10
- str r0, [sp, #0x4]
- add r0, r5, #0x0
- bl FUN_020B7CE4
- str r0, [sp, #0x0]
- ldr r0, [sp, #0x8]
- cmp r0, #0x0
- beq _0201F492
- ldr r3, _0201F4E4 ; =0x021064B8
- mov r1, #0x0
- ldr r3, [r3, #0x0]
- add r2, r1, #0x0
- blx r3
- str r0, [r4, #0x0]
- cmp r0, #0x0
- bne _0201F496
- bl ErrorHandling
- b _0201F496
-_0201F492:
- mov r0, #0x0
- str r0, [r4, #0x0]
-_0201F496:
- ldr r0, [sp, #0x4]
- cmp r0, #0x0
- beq _0201F4B2
- ldr r3, _0201F4E4 ; =0x021064B8
- mov r1, #0x1
- ldr r3, [r3, #0x0]
- mov r2, #0x0
- blx r3
- str r0, [r6, #0x0]
- cmp r0, #0x0
- bne _0201F4B6
- bl ErrorHandling
- b _0201F4B6
-_0201F4B2:
- mov r0, #0x0
- str r0, [r6, #0x0]
-_0201F4B6:
- ldr r0, [sp, #0x0]
- cmp r0, #0x0
- beq _0201F4DA
- ldr r3, _0201F4E8 ; =0x021064C0
- mov r1, #0x2
- ldrh r2, [r5, #0x20]
- lsl r1, r1, #0xe
- ldr r3, [r3, #0x0]
- and r1, r2
- mov r2, #0x0
- blx r3
- str r0, [r7, #0x0]
- cmp r0, #0x0
- bne _0201F4DE
- bl ErrorHandling
- add sp, #0xc
- pop {r4-r7, pc}
-_0201F4DA:
- mov r0, #0x0
- str r0, [r7, #0x0]
-_0201F4DE:
- add sp, #0xc
- pop {r4-r7, pc}
- nop
-_0201F4E4: .word 0x021064B8
-_0201F4E8: .word 0x021064C0
-
- thumb_func_start FUN_0201F4EC
-FUN_0201F4EC: ; 0x0201F4EC
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r3, #0x0
- bl FUN_020B7CF0
- add r0, r5, #0x0
- bl FUN_020B7C58
- str r0, [r4, #0x0]
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0201F500
-FUN_0201F500: ; 0x0201F500
- push {r3-r5, lr}
- add r4, r1, #0x0
- ldr r1, [r2, #0x0]
- ldr r2, [r3, #0x0]
- add r5, r0, #0x0
- bl FUN_020B7DFC
- ldr r1, [sp, #0x10]
- add r0, r5, #0x0
- ldr r1, [r1, #0x0]
- bl FUN_020B7CDC
- add r0, r4, #0x0
- add r1, r5, #0x0
- bl FUN_020B7790
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0201F524
-FUN_0201F524: ; 0x0201F524
- push {r3-r5, lr}
- ldr r0, [r0, #0x0]
- add r5, r1, #0x0
- add r4, r2, #0x0
- cmp r0, #0x0
- beq _0201F536
- ldr r1, _0201F550 ; =0x021064BC
- ldr r1, [r1, #0x0]
- blx r1
-_0201F536:
- ldr r0, [r5, #0x0]
- cmp r0, #0x0
- beq _0201F542
- ldr r1, _0201F550 ; =0x021064BC
- ldr r1, [r1, #0x0]
- blx r1
-_0201F542:
- ldr r0, [r4, #0x0]
- cmp r0, #0x0
- beq _0201F54E
- ldr r1, _0201F554 ; =0x021064C4
- ldr r1, [r1, #0x0]
- blx r1
-_0201F54E:
- pop {r3-r5, pc}
- .balign 4
-_0201F550: .word 0x021064BC
-_0201F554: .word 0x021064C4
-
- thumb_func_start FUN_0201F558
-FUN_0201F558: ; 0x0201F558
- push {r3-r7, lr}
- sub sp, #0x8
- add r4, r0, #0x0
- add r5, r1, #0x0
- cmp r4, #0x0
- beq _0201F568
- cmp r5, #0x0
- bne _0201F56E
-_0201F568:
- add sp, #0x8
- mov r0, #0x0
- pop {r3-r7, pc}
-_0201F56E:
- bl FUN_020B7E1C
- str r0, [sp, #0x0]
- add r0, r4, #0x0
- bl FUN_020B7E10
- str r0, [sp, #0x4]
- add r0, r4, #0x0
- bl FUN_020B7CE4
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl FUN_020B7E1C
- add r6, r0, #0x0
- add r0, r5, #0x0
- bl FUN_020B7E10
- add r7, r0, #0x0
- add r0, r5, #0x0
- bl FUN_020B7CE4
- ldr r1, [sp, #0x0]
- cmp r1, r6
- bne _0201F5AA
- ldr r1, [sp, #0x4]
- cmp r1, r7
- bne _0201F5AA
- cmp r4, r0
- beq _0201F5B0
-_0201F5AA:
- add sp, #0x8
- mov r0, #0x0
- pop {r3-r7, pc}
-_0201F5B0:
- mov r0, #0x1
- add sp, #0x8
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0201F5B8
-FUN_0201F5B8: ; 0x0201F5B8
- push {r4, lr}
- add r4, r1, #0x0
- add r0, r4, #0x0
- add r0, #0xa4
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _0201F5D0
- bl FUN_0201C40C
- mov r0, #0x0
- add r4, #0xa4
- str r0, [r4, #0x0]
-_0201F5D0:
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0201F5D4
-FUN_0201F5D4: ; 0x0201F5D4
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r0, #0x80
- ldr r4, [r0, #0x0]
- add r0, r1, #0x0
- add r1, r5, #0x0
- add r2, r5, #0x0
- add r1, #0x7c
- add r2, #0x80
- bl FUN_0201FB9C
- str r0, [r5, #0x78]
- add r0, r5, #0x0
- ldr r1, [r5, #0x7c]
- add r0, #0x24
- bl FUN_020B80B4
- add r0, r5, #0x0
- add r0, #0xa8
- ldrb r0, [r0, #0x0]
- cmp r0, #0x3
- beq _0201F60E
- add r1, r5, #0x0
- add r1, #0x80
- ldr r1, [r1, #0x0]
- add r0, r4, #0x0
- bl FUN_0201F558
- b _0201F610
-_0201F60E:
- mov r0, #0x0
-_0201F610:
- cmp r0, #0x0
- bne _0201F644
- add r0, r5, #0x0
- add r0, #0xa8
- ldrb r0, [r0, #0x0]
- cmp r0, #0x2
- bne _0201F62E
- add r0, r5, #0x0
- add r1, r5, #0x0
- add r2, r5, #0x0
- add r0, #0x88
- add r1, #0x8c
- add r2, #0x90
- bl FUN_0201F524
-_0201F62E:
- add r0, r5, #0x0
- add r0, #0x80
- add r1, r5, #0x0
- add r2, r5, #0x0
- add r5, #0x90
- ldr r0, [r0, #0x0]
- add r1, #0x88
- add r2, #0x8c
- add r3, r5, #0x0
- bl FUN_0201F454
-_0201F644:
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0201F648
-FUN_0201F648: ; 0x0201F648
- push {r4-r6, lr}
- sub sp, #0x8
- add r4, r2, #0x0
- add r6, r0, #0x0
- add r5, r1, #0x0
- add r0, r4, #0x0
- bl FUN_0201FBCC
- add r1, r5, #0x0
- add r1, #0x84
- add r3, r5, #0x0
- add r3, #0x94
- str r0, [r1, #0x0]
- add r4, #0xc
- add r2, r3, #0x0
- ldmia r4!, {r0-r1}
- stmia r3!, {r0-r1}
- ldmia r4!, {r0-r1}
- stmia r3!, {r0-r1}
- add r0, r5, #0x0
- add r0, #0x90
- ldr r0, [r0, #0x0]
- add r1, r2, #0x0
- str r0, [sp, #0x0]
- add r0, r5, #0x0
- add r0, #0xac
- ldr r0, [r0, #0x0]
- add r2, r5, #0x0
- add r3, r5, #0x0
- str r0, [sp, #0x4]
- add r6, #0xd0
- add r2, #0x84
- add r3, #0x88
- ldr r0, [r6, #0x0]
- ldr r2, [r2, #0x0]
- ldr r3, [r3, #0x0]
- bl FUN_0201C3B4
- add r5, #0xa4
- str r0, [r5, #0x0]
- add sp, #0x8
- pop {r4-r6, pc}
-
- thumb_func_start FUN_0201F69C
-FUN_0201F69C: ; 0x0201F69C
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- add r1, r5, #0x0
- add r2, r5, #0x0
- add r0, r4, #0x0
- add r1, #0x7c
- add r2, #0x80
- bl FUN_0201FB9C
- str r0, [r5, #0x78]
- add r0, r5, #0x0
- ldr r1, [r5, #0x7c]
- add r0, #0x24
- bl FUN_020B80B4
- add r0, r4, #0x0
- bl FUN_0201FBCC
- add r5, #0x84
- str r0, [r5, #0x0]
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0201F6C8
-FUN_0201F6C8: ; 0x0201F6C8
- push {r3-r4}
- add r4, r0, #0x0
- add r2, r4, #0x0
- add r3, r1, #0x0
- add r3, #0xc
- add r2, #0x94
- ldmia r3!, {r0-r1}
- stmia r2!, {r0-r1}
- ldmia r3!, {r0-r1}
- stmia r2!, {r0-r1}
- mov r0, #0x0
- add r4, #0xa4
- str r0, [r4, #0x0]
- pop {r3-r4}
- bx lr
- .balign 4
-
- thumb_func_start FUN_0201F6E8
-FUN_0201F6E8: ; 0x0201F6E8
- push {r4-r6, lr}
- add r5, r0, #0x0
- ldr r6, [r5, #0x0]
- cmp r6, #0x0
- bne _0201F6F6
- mov r0, #0x0
- pop {r4-r6, pc}
-_0201F6F6:
- add r0, r6, #0x0
- bl FUN_0201FAF4
- add r4, r0, #0x0
- bne _0201F704
- mov r0, #0x0
- pop {r4-r6, pc}
-_0201F704:
- add r3, r5, #0x0
- str r6, [r4, #0x1c]
- add r3, #0x8
- ldmia r3!, {r0-r1}
- add r2, r4, #0x0
- stmia r2!, {r0-r1}
- ldr r0, [r3, #0x0]
- add r3, r5, #0x0
- str r0, [r2, #0x0]
- add r3, #0x14
- add r2, r4, #0x0
- ldmia r3!, {r0-r1}
- add r2, #0xc
- stmia r2!, {r0-r1}
- ldr r0, [r3, #0x0]
- mov r1, #0x0
- str r0, [r2, #0x0]
- add r0, r4, #0x0
- add r0, #0xaa
- strh r1, [r0, #0x0]
- mov r1, #0x1
- add r0, r4, #0x0
- strb r1, [r4, #0x18]
- add r0, #0xa8
- strb r1, [r0, #0x0]
- ldr r1, [r5, #0x4]
- add r0, r4, #0x0
- bl FUN_0201FBD8
- add r0, r4, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_0201F744
-FUN_0201F744: ; 0x0201F744
- push {r3-r5, lr}
- add r5, r0, #0x0
- bne _0201F74E
- bl ErrorHandling
-_0201F74E:
- add r0, r5, #0x0
- add r0, #0xa8
- ldrb r0, [r0, #0x0]
- cmp r0, #0x1
- bne _0201F75C
- bl ErrorHandling
-_0201F75C:
- add r0, r5, #0x0
- add r0, #0xa8
- ldrb r0, [r0, #0x0]
- ldr r4, [r5, #0x1c]
- cmp r0, #0x0
- bne _0201F76C
- mov r0, #0x0
- pop {r3-r5, pc}
-_0201F76C:
- add r0, r5, #0x0
- bl FUN_0201FB7C
- add r0, r5, #0x0
- add r0, #0xa8
- ldrb r0, [r0, #0x0]
- cmp r0, #0x2
- bne _0201F78C
- add r0, r5, #0x0
- add r1, r5, #0x0
- add r2, r5, #0x0
- add r0, #0x88
- add r1, #0x8c
- add r2, #0x90
- bl FUN_0201F524
-_0201F78C:
- add r0, r4, #0x0
- add r1, r5, #0x0
- bl FUN_0201F5B8
- add r0, r4, #0x0
- add r1, r5, #0x0
- bl FUN_0201FB20
- mov r0, #0x1
- strb r0, [r4, #0x3]
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0201F7A4
-FUN_0201F7A4: ; 0x0201F7A4
- push {r3-r4}
- add r4, r0, #0x0
- str r1, [r4, #0x0]
- str r2, [r4, #0x4]
- str r3, [r4, #0x8]
- ldr r3, [sp, #0x8]
- add r2, r4, #0x0
- add r2, #0xc
- ldmia r3!, {r0-r1}
- stmia r2!, {r0-r1}
- ldmia r3!, {r0-r1}
- stmia r2!, {r0-r1}
- mov r0, #0x0
- str r0, [r4, #0x1c]
- str r0, [r4, #0x20]
- str r0, [r4, #0x24]
- pop {r3-r4}
- bx lr
-
- thumb_func_start FUN_0201F7C8
-FUN_0201F7C8: ; 0x0201F7C8
- push {r3-r5, lr}
- add r4, r0, #0x0
- add r5, r1, #0x0
- cmp r4, #0x0
- bne _0201F7D6
- bl ErrorHandling
-_0201F7D6:
- ldmia r5!, {r0-r1}
- stmia r4!, {r0-r1}
- ldr r0, [r5, #0x0]
- str r0, [r4, #0x0]
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0201F7E0
-FUN_0201F7E0: ; 0x0201F7E0
- push {r4, lr}
- add r4, r0, #0x0
- bne _0201F7EA
- bl ErrorHandling
-_0201F7EA:
- add r0, r4, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0201F7F0
-FUN_0201F7F0: ; 0x0201F7F0
- push {r3-r5, lr}
- add r4, r0, #0x0
- add r5, r1, #0x0
- cmp r4, #0x0
- bne _0201F7FE
- bl ErrorHandling
-_0201F7FE:
- ldmia r5!, {r0-r1}
- add r4, #0xc
- stmia r4!, {r0-r1}
- ldr r0, [r5, #0x0]
- str r0, [r4, #0x0]
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0201F80C
-FUN_0201F80C: ; 0x0201F80C
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- cmp r5, #0x0
- bne _0201F81A
- bl ErrorHandling
-_0201F81A:
- strb r4, [r5, #0x18]
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0201F820
-FUN_0201F820: ; 0x0201F820
- push {r4, lr}
- add r4, r0, #0x0
- bne _0201F82A
- bl ErrorHandling
-_0201F82A:
- ldrb r0, [r4, #0x18]
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0201F830
-FUN_0201F830: ; 0x0201F830
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- cmp r5, #0x0
- bne _0201F83E
- bl ErrorHandling
-_0201F83E:
- add r5, #0xaa
- strh r4, [r5, #0x0]
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0201F844
-FUN_0201F844: ; 0x0201F844
- push {r4, lr}
- add r4, r0, #0x0
- bne _0201F84E
- bl ErrorHandling
-_0201F84E:
- add r4, #0xaa
- ldrh r0, [r4, #0x0]
- pop {r4, pc}
-
- thumb_func_start FUN_0201F854
-FUN_0201F854: ; 0x0201F854
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- cmp r5, #0x0
- bne _0201F862
- bl ErrorHandling
-_0201F862:
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_0201FBFC
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0201F86C
-FUN_0201F86C: ; 0x0201F86C
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- cmp r5, #0x0
- bne _0201F87A
- bl ErrorHandling
-_0201F87A:
- add r5, #0xac
- str r4, [r5, #0x0]
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0201F880
-FUN_0201F880: ; 0x0201F880
- push {r4, lr}
- add r4, r0, #0x0
- bne _0201F88A
- bl ErrorHandling
-_0201F88A:
- add r4, #0xac
- ldr r0, [r4, #0x0]
- pop {r4, pc}
-
- thumb_func_start FUN_0201F890
-FUN_0201F890: ; 0x0201F890
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- cmp r5, #0x0
- bne _0201F89E
- bl ErrorHandling
-_0201F89E:
- add r1, r5, #0x0
- add r1, #0xaa
- ldrh r1, [r1, #0x0]
- add r0, r5, #0x0
- bl FUN_0201FBEC
- add r1, r5, #0x0
- add r1, #0xac
- str r0, [r1, #0x0]
- add r0, r5, #0x0
- add r0, #0xac
- ldr r0, [r0, #0x0]
- add r5, #0xac
- add r0, r0, r4
- str r0, [r5, #0x0]
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0201F8C0
-FUN_0201F8C0: ; 0x0201F8C0
- push {r4, lr}
- add r4, r0, #0x0
- bne _0201F8CA
- bl ErrorHandling
-_0201F8CA:
- add r1, r4, #0x0
- add r1, #0xaa
- ldrh r1, [r1, #0x0]
- add r0, r4, #0x0
- bl FUN_0201FBEC
- add r4, #0xac
- ldr r1, [r4, #0x0]
- sub r0, r1, r0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0201F8E0
-FUN_0201F8E0: ; 0x0201F8E0
- push {r4, lr}
- add r4, r0, #0x0
- bne _0201F8EA
- bl ErrorHandling
-_0201F8EA:
- ldr r0, [r4, #0x7c]
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0201F8F0
-FUN_0201F8F0: ; 0x0201F8F0
- push {r3, lr}
- add r1, r0, #0x0
- add r0, #0xa8
- ldrb r0, [r0, #0x0]
- cmp r0, #0x2
- bne _0201F90A
- add r0, r1, #0x0
- add r0, #0xa4
- add r1, #0xac
- ldr r0, [r0, #0x0]
- ldr r1, [r1, #0x0]
- bl FUN_0201C438
-_0201F90A:
- pop {r3, pc}
-
- thumb_func_start FUN_0201F90C
-FUN_0201F90C: ; 0x0201F90C
- push {r3-r4, lr}
- sub sp, #0x4
- add r4, r0, #0x0
- add r1, r4, #0x0
- add r1, #0xac
- ldr r1, [r1, #0x0]
- add r0, #0x94
- lsl r1, r1, #0x4
- lsr r1, r1, #0x10
- bl FUN_02022244
- add r2, sp, #0x0
- strb r0, [r2, #0x0]
- lsr r0, r0, #0x8
- strb r0, [r2, #0x1]
- ldrb r0, [r2, #0x0]
- add r1, r4, #0x0
- add r1, #0x84
- strb r0, [r2, #0x2]
- ldrb r0, [r2, #0x1]
- strb r0, [r2, #0x3]
- ldrb r2, [r2, #0x2]
- ldr r0, [r4, #0x7c]
- ldr r1, [r1, #0x0]
- bl FUN_0201F954
- add r2, sp, #0x0
- ldr r0, [r4, #0x7c]
- add r4, #0x84
- ldrb r2, [r2, #0x3]
- ldr r1, [r4, #0x0]
- bl FUN_0201FA04
- add sp, #0x4
- pop {r3-r4, pc}
- .balign 4
-
- thumb_func_start FUN_0201F954
-FUN_0201F954: ; 0x0201F954
- push {r3-r7, lr}
- ldr r3, [r0, #0x8]
- mov r5, #0x0
- add r6, r0, r3
- ldrh r0, [r0, r3]
- add r3, r1, #0x0
- add r1, #0x42
- ldrh r1, [r1, #0x0]
- add r3, #0x3c
- add r4, r6, r0
- add r0, r3, r1
- ldrh r1, [r3, r1]
- mul r2, r1
- add r0, r0, r2
- ldr r0, [r0, #0x4]
- lsl r0, r0, #0x10
- lsr r7, r0, #0x10
- ldrb r0, [r4, #0x1]
- cmp r0, #0x0
- ble _0201F9A2
-_0201F97C:
- ldrh r0, [r4, #0x6]
- add r1, r4, r0
- ldrh r0, [r4, r0]
- add r2, r1, #0x4
- add r1, r0, #0x0
- mul r1, r5
- add r1, r2, r1
- ldrb r2, [r1, #0x3]
- mov r0, #0x1
- tst r0, r2
- beq _0201F99A
- add r0, r6, #0x0
- add r2, r7, #0x0
- bl FUN_0201F9A4
-_0201F99A:
- ldrb r0, [r4, #0x1]
- add r5, r5, #0x1
- cmp r5, r0
- blt _0201F97C
-_0201F9A2:
- pop {r3-r7, pc}
-
- thumb_func_start FUN_0201F9A4
-FUN_0201F9A4: ; 0x0201F9A4
- push {r4-r7, lr}
- sub sp, #0xc
- add r6, r0, #0x0
- add r0, r1, #0x0
- ldrh r0, [r0, #0x0]
- str r1, [sp, #0x0]
- add r7, r2, #0x0
- add r0, r6, r0
- str r0, [sp, #0x4]
- add r0, r1, #0x0
- ldrb r0, [r0, #0x2]
- mov r4, #0x0
- cmp r0, #0x0
- ble _0201F9FC
- add r0, r6, #0x4
- str r0, [sp, #0x8]
-_0201F9C4:
- ldrh r2, [r6, #0xa]
- ldr r0, [sp, #0x8]
- ldr r1, [sp, #0x8]
- add r0, r0, r2
- ldrh r2, [r1, r2]
- ldr r1, [sp, #0x4]
- ldrb r1, [r1, r4]
- mul r1, r2
- add r0, r0, r1
- ldr r0, [r0, #0x4]
- add r5, r6, r0
- ldr r0, [r5, #0x14]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- add r1, r0, r7
- ldr r0, _0201FA00 ; =0x0000FFFF
- cmp r1, r0
- bls _0201F9EC
- bl ErrorHandling
-_0201F9EC:
- ldr r0, [r5, #0x14]
- add r4, r4, #0x1
- add r0, r0, r7
- str r0, [r5, #0x14]
- ldr r0, [sp, #0x0]
- ldrb r0, [r0, #0x2]
- cmp r4, r0
- blt _0201F9C4
-_0201F9FC:
- add sp, #0xc
- pop {r4-r7, pc}
- .balign 4
-_0201FA00: .word 0x0000FFFF
-
- thumb_func_start FUN_0201FA04
-FUN_0201FA04: ; 0x0201FA04
- push {r3-r7, lr}
- ldr r3, [r0, #0x8]
- add r7, r0, r3
- ldrh r0, [r7, #0x2]
- add r4, r7, r0
- ldrh r0, [r1, #0x34]
- add r5, r1, r0
- ldrh r0, [r5, #0x6]
- add r1, r5, r0
- ldrh r0, [r5, r0]
- add r3, r1, #0x4
- add r1, r0, #0x0
- mul r1, r2
- add r0, r3, r1
- ldrh r6, [r3, r1]
- ldrh r1, [r0, #0x2]
- mov r0, #0x1
- tst r0, r1
- bne _0201FA2C
- lsr r6, r6, #0x1
-_0201FA2C:
- ldrb r0, [r4, #0x1]
- mov r5, #0x0
- cmp r0, #0x0
- bls _0201FA5A
-_0201FA34:
- ldrh r0, [r4, #0x6]
- add r1, r4, r0
- ldrh r0, [r4, r0]
- add r2, r1, #0x4
- add r1, r0, #0x0
- mul r1, r5
- add r1, r2, r1
- ldrb r2, [r1, #0x3]
- mov r0, #0x1
- tst r0, r2
- beq _0201FA52
- add r0, r7, #0x0
- add r2, r6, #0x0
- bl FUN_0201FA5C
-_0201FA52:
- ldrb r0, [r4, #0x1]
- add r5, r5, #0x1
- cmp r5, r0
- blo _0201FA34
-_0201FA5A:
- pop {r3-r7, pc}
-
- thumb_func_start FUN_0201FA5C
-FUN_0201FA5C: ; 0x0201FA5C
- push {r4-r7, lr}
- sub sp, #0xc
- add r6, r0, #0x0
- add r0, r1, #0x0
- ldrh r0, [r0, #0x0]
- str r1, [sp, #0x0]
- add r7, r2, #0x0
- add r0, r6, r0
- str r0, [sp, #0x4]
- add r0, r1, #0x0
- ldrb r0, [r0, #0x2]
- mov r4, #0x0
- cmp r0, #0x0
- bls _0201FAB4
- add r0, r6, #0x4
- str r0, [sp, #0x8]
-_0201FA7C:
- ldrh r2, [r6, #0xa]
- ldr r0, [sp, #0x8]
- ldr r1, [sp, #0x8]
- add r0, r0, r2
- ldrh r2, [r1, r2]
- ldr r1, [sp, #0x4]
- ldrb r1, [r1, r4]
- mul r1, r2
- add r0, r0, r1
- ldr r0, [r0, #0x4]
- add r5, r6, r0
- ldrh r1, [r5, #0x1c]
- ldr r0, _0201FAB8 ; =0x00001FFF
- and r0, r1
- add r1, r0, r7
- ldr r0, _0201FAB8 ; =0x00001FFF
- cmp r1, r0
- bls _0201FAA4
- bl ErrorHandling
-_0201FAA4:
- ldrh r0, [r5, #0x1c]
- add r4, r4, #0x1
- add r0, r0, r7
- strh r0, [r5, #0x1c]
- ldr r0, [sp, #0x0]
- ldrb r0, [r0, #0x2]
- cmp r4, r0
- blo _0201FA7C
-_0201FAB4:
- add sp, #0xc
- pop {r4-r7, pc}
- .balign 4
-_0201FAB8: .word 0x00001FFF
-
- thumb_func_start FUN_0201FABC
-FUN_0201FABC: ; 0x0201FABC
- push {r3-r7, lr}
- add r5, r0, #0x0
- ldr r0, [r5, #0x8]
- mov r7, #0x0
- cmp r0, #0x0
- ble _0201FAEC
- add r4, r7, #0x0
- add r6, r7, #0x0
-_0201FACC:
- ldr r0, [r5, #0x4]
- add r0, r0, r4
- bl FUN_0201F094
- ldr r0, [r5, #0x4]
- add r7, r7, #0x1
- add r1, r0, r4
- add r0, r5, #0x0
- add r0, #0xc4
- ldr r0, [r0, #0x0]
- add r4, #0xb8
- str r1, [r0, r6]
- ldr r0, [r5, #0x8]
- add r6, r6, #0x4
- cmp r7, r0
- blt _0201FACC
-_0201FAEC:
- mov r0, #0x0
- add r5, #0xc8
- str r0, [r5, #0x0]
- pop {r3-r7, pc}
-
- thumb_func_start FUN_0201FAF4
-FUN_0201FAF4: ; 0x0201FAF4
- add r1, r0, #0x0
- add r1, #0xc8
- ldr r3, [r1, #0x0]
- ldr r1, [r0, #0x8]
- cmp r3, r1
- blt _0201FB04
- mov r0, #0x0
- bx lr
-_0201FB04:
- add r1, r0, #0x0
- add r1, #0xc4
- ldr r2, [r1, #0x0]
- lsl r1, r3, #0x2
- ldr r2, [r2, r1]
- add r1, r0, #0x0
- add r1, #0xc8
- ldr r1, [r1, #0x0]
- add r0, #0xc8
- add r1, r1, #0x1
- str r1, [r0, #0x0]
- add r0, r2, #0x0
- bx lr
- .balign 4
-
- thumb_func_start FUN_0201FB20
-FUN_0201FB20: ; 0x0201FB20
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r0, #0xc8
- ldr r0, [r0, #0x0]
- add r4, r1, #0x0
- cmp r0, #0x0
- bgt _0201FB32
- mov r0, #0x0
- pop {r3-r5, pc}
-_0201FB32:
- add r0, r4, #0x0
- bl FUN_0201F094
- add r0, r5, #0x0
- add r0, #0xc8
- ldr r0, [r0, #0x0]
- sub r1, r0, #0x1
- add r0, r5, #0x0
- add r0, #0xc8
- str r1, [r0, #0x0]
- add r0, r5, #0x0
- add r0, #0xc4
- add r5, #0xc8
- ldr r1, [r0, #0x0]
- ldr r0, [r5, #0x0]
- lsl r0, r0, #0x2
- str r4, [r1, r0]
- mov r0, #0x1
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0201FB58
-FUN_0201FB58: ; 0x0201FB58
- add r2, r0, #0x0
- add r2, #0xb4
- ldr r3, [r2, #0x0]
- add r2, r1, #0x0
- add r2, #0xb4
- str r3, [r2, #0x0]
- add r2, r0, #0x0
- add r2, #0xb4
- ldr r2, [r2, #0x0]
- add r2, #0xb0
- str r1, [r2, #0x0]
- add r2, r1, #0x0
- add r2, #0xb0
- str r0, [r2, #0x0]
- add r0, #0xb4
- str r1, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_0201FB7C
-FUN_0201FB7C: ; 0x0201FB7C
- add r1, r0, #0x0
- add r1, #0xb0
- ldr r2, [r1, #0x0]
- add r1, r0, #0x0
- add r1, #0xb4
- ldr r1, [r1, #0x0]
- add r1, #0xb0
- str r2, [r1, #0x0]
- add r1, r0, #0x0
- add r0, #0xb0
- add r1, #0xb4
- ldr r0, [r0, #0x0]
- ldr r1, [r1, #0x0]
- add r0, #0xb4
- str r1, [r0, #0x0]
- bx lr
-
- thumb_func_start FUN_0201FB9C
-FUN_0201FB9C: ; 0x0201FB9C
- push {r3-r7, lr}
- add r6, r1, #0x0
- mov r1, #0x0
- add r5, r2, #0x0
- bl FUN_0201FC90
- add r7, r0, #0x0
- bl FUN_020BC13C
- add r4, r0, #0x0
- ldrh r0, [r4, #0xe]
- add r0, r4, r0
- ldr r0, [r0, #0xc]
- add r0, r4, r0
- str r0, [r6, #0x0]
- cmp r5, #0x0
- beq _0201FBC6
- add r0, r7, #0x0
- bl FUN_020BC0FC
- str r0, [r5, #0x0]
-_0201FBC6:
- add r0, r4, #0x0
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0201FBCC
-FUN_0201FBCC: ; 0x0201FBCC
- ldr r3, _0201FBD4 ; =FUN_0201FC90
- mov r1, #0x1
- bx r3
- nop
-_0201FBD4: .word FUN_0201FC90
-
- thumb_func_start FUN_0201FBD8
-FUN_0201FBD8: ; 0x0201FBD8
- push {r3, lr}
- ldr r2, [r1, #0x1c]
- cmp r2, #0x0
- bne _0201FBE6
- bl FUN_0201F384
- pop {r3, pc}
-_0201FBE6:
- bl FUN_0201F3D4
- pop {r3, pc}
-
- thumb_func_start FUN_0201FBEC
-FUN_0201FBEC: ; 0x0201FBEC
- push {r3, lr}
- ldr r0, [r0, #0x20]
- bl FUN_0201FCA8
- ldr r0, [r0, #0x0]
- lsl r0, r0, #0xc
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_0201FBFC
-FUN_0201FBFC: ; 0x0201FBFC
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- add r1, r5, #0x0
- add r1, #0xaa
- ldrh r1, [r1, #0x0]
- ldr r0, [r5, #0x20]
- bl FUN_0201FCA8
- add r5, #0xac
- add r1, r5, #0x0
- add r2, r4, #0x0
- bl FUN_0201FC1C
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0201FC1C
-FUN_0201FC1C: ; 0x0201FC1C
- push {r3-r6}
- ldr r4, [r0, #0x0]
- ldr r6, [r1, #0x0]
- lsl r4, r4, #0xc
- mov r3, #0x0
- cmp r4, r6
- bgt _0201FC32
- ldr r5, [r0, #0x4]
- lsl r5, r5, #0xc
- cmp r5, r6
- bge _0201FC36
-_0201FC32:
- str r4, [r1, #0x0]
- b _0201FC4E
-_0201FC36:
- add r2, r6, r2
- cmp r5, r2
- bge _0201FC4C
- ldr r0, [r0, #0x8]
- cmp r0, #0x0
- bne _0201FC46
- str r4, [r1, #0x0]
- b _0201FC4E
-_0201FC46:
- mov r3, #0x1
- str r5, [r1, #0x0]
- b _0201FC4E
-_0201FC4C:
- str r2, [r1, #0x0]
-_0201FC4E:
- add r0, r3, #0x0
- pop {r3-r6}
- bx lr
-
- thumb_func_start FUN_0201FC54
-FUN_0201FC54: ; 0x0201FC54
- push {r3, lr}
- add r3, r0, #0x0
- add r0, #0x90
- str r0, [sp, #0x0]
- add r0, r3, #0x0
- add r0, #0x80
- add r2, r3, #0x0
- ldr r1, [r3, #0x78]
- ldr r0, [r0, #0x0]
- add r2, #0x88
- add r3, #0x8c
- bl FUN_0201F500
- pop {r3, pc}
-
- thumb_func_start FUN_0201FC70
-FUN_0201FC70: ; 0x0201FC70
- push {r3-r4, lr}
- sub sp, #0xc
- add r4, r0, #0x0
- ldr r0, [r4, #0x78]
- bl FUN_020B772C
- add r4, #0x80
- ldr r0, [r4, #0x0]
- add r1, sp, #0x4
- add r2, sp, #0x8
- add r3, sp, #0x0
- bl FUN_0201F4EC
- add sp, #0xc
- pop {r3-r4, pc}
- .balign 4
-
- thumb_func_start FUN_0201FC90
-FUN_0201FC90: ; 0x0201FC90
- cmp r1, #0x0
- beq _0201FC9A
- cmp r1, #0x1
- beq _0201FC9E
- b _0201FCA2
-_0201FC9A:
- ldr r0, [r0, #0x0]
- bx lr
-_0201FC9E:
- ldr r0, [r0, #0x4]
- bx lr
-_0201FCA2:
- mov r0, #0x0
- bx lr
- .balign 4
-
- thumb_func_start FUN_0201FCA8
-FUN_0201FCA8: ; 0x0201FCA8
- mov r2, #0xc
- mul r2, r1
- add r0, r0, r2
- bx lr
-
- thumb_func_start FUN_0201FCB0
-FUN_0201FCB0: ; 0x0201FCB0
- push {r3-r5, lr}
- add r5, r0, #0x0
- bne _0201FCBA
- bl ErrorHandling
-_0201FCBA:
- ldr r0, [r5, #0x4]
- cmp r0, #0x0
- bne _0201FCC4
- bl ErrorHandling
-_0201FCC4:
- mov r1, #0x49
- ldr r0, [r5, #0x8]
- lsl r1, r1, #0x2
- bl FUN_02016998
- add r4, r0, #0x0
- bne _0201FCD6
- bl ErrorHandling
-_0201FCD6:
- add r0, r4, #0x0
- bl FUN_0201FE44
- ldr r2, [r5, #0x0]
- ldr r0, [r5, #0x8]
- lsl r1, r2, #0x6
- add r1, r2, r1
- lsl r1, r1, #0x2
- bl FUN_02016998
- str r0, [r4, #0x0]
- cmp r0, #0x0
- bne _0201FCF4
- bl ErrorHandling
-_0201FCF4:
- ldr r0, [r5, #0x0]
- str r0, [r4, #0x4]
- ldr r1, [r5, #0x0]
- ldr r0, [r5, #0x8]
- lsl r1, r1, #0x2
- bl FUN_02016998
- str r0, [r4, #0x8]
- cmp r0, #0x0
- bne _0201FD0C
- bl ErrorHandling
-_0201FD0C:
- add r0, r4, #0x0
- bl FUN_0202083C
- add r0, r4, #0x0
- add r0, #0x10
- bl FUN_0201FE6C
- add r2, r4, #0x0
- mov r1, #0x43
- lsl r1, r1, #0x2
- add r2, #0x10
- str r2, [r4, r1]
- add r0, r1, #0x4
- str r2, [r4, r0]
- ldr r0, [r5, #0x4]
- add r1, #0x8
- str r0, [r4, r1]
- ldr r0, [r5, #0x8]
- ldr r1, _0201FD54 ; =0x02105BBC
- bl FUN_020161A4
- mov r1, #0x46
- lsl r1, r1, #0x2
- str r0, [r4, r1]
- ldr r0, [r4, r1]
- add r1, r1, #0x4
- add r1, r4, r1
- bl thunk_FUN_020afda0_2
- mov r0, #0x12
- mov r1, #0x1
- lsl r0, r0, #0x4
- str r1, [r4, r0]
- add r0, r4, #0x0
- pop {r3-r5, pc}
- nop
-_0201FD54: .word 0x02105BBC
-
- thumb_func_start FUN_0201FD58
-FUN_0201FD58: ; 0x0201FD58
- push {r4, lr}
- add r4, r0, #0x0
- bne _0201FD62
- mov r0, #0x0
- pop {r4, pc}
-_0201FD62:
- ldr r1, [r4, #0x0]
- cmp r1, #0x0
- bne _0201FD6C
- mov r0, #0x1
- pop {r4, pc}
-_0201FD6C:
- bl FUN_0201FDB4
- mov r0, #0x46
- lsl r0, r0, #0x2
- ldr r0, [r4, r0]
- bl FUN_02016A18
- ldr r0, [r4, #0x8]
- bl FUN_02016A18
- ldr r0, [r4, #0x0]
- bl FUN_02016A18
- add r0, r4, #0x0
- bl FUN_0201FE44
- add r0, r4, #0x0
- bl FUN_02016A18
- mov r0, #0x1
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0201FD98
-FUN_0201FD98: ; 0x0201FD98
- cmp r0, #0x0
- bne _0201FDA0
- mov r0, #0x0
- bx lr
-_0201FDA0:
- ldr r2, [r0, #0x0]
- cmp r2, #0x0
- bne _0201FDAA
- mov r0, #0x0
- bx lr
-_0201FDAA:
- mov r2, #0x12
- lsl r2, r2, #0x4
- str r1, [r0, r2]
- mov r0, #0x1
- bx lr
-
- thumb_func_start FUN_0201FDB4
-FUN_0201FDB4: ; 0x0201FDB4
- push {r4-r6, lr}
- cmp r0, #0x0
- bne _0201FDBE
- mov r0, #0x0
- pop {r4-r6, pc}
-_0201FDBE:
- ldr r1, [r0, #0x0]
- cmp r1, #0x0
- bne _0201FDC8
- mov r0, #0x1
- pop {r4-r6, pc}
-_0201FDC8:
- mov r1, #0x11
- lsl r1, r1, #0x4
- add r4, r0, #0x0
- ldr r1, [r0, r1]
- add r4, #0x10
- cmp r1, r4
- beq _0201FDE8
- mov r6, #0x1
- lsl r6, r6, #0x8
-_0201FDDA:
- ldr r5, [r1, r6]
- add r0, r1, #0x0
- bl FUN_0201FFC8
- add r1, r5, #0x0
- cmp r5, r4
- bne _0201FDDA
-_0201FDE8:
- mov r0, #0x1
- pop {r4-r6, pc}
-
- thumb_func_start FUN_0201FDEC
-FUN_0201FDEC: ; 0x0201FDEC
- push {r3-r7, lr}
- add r5, r0, #0x0
- bne _0201FDF6
- bl ErrorHandling
-_0201FDF6:
- mov r0, #0x12
- lsl r0, r0, #0x4
- ldr r1, [r5, r0]
- cmp r1, #0x0
- beq _0201FE38
- sub r0, #0x10
- add r6, r5, #0x0
- ldr r4, [r5, r0]
- add r6, #0x10
- cmp r4, r6
- beq _0201FE38
- ldr r7, _0201FE3C ; =0x020EE658
-_0201FE0E:
- add r2, r4, #0x0
- add r2, #0x34
- ldrb r2, [r2, #0x0]
- add r0, r5, #0x0
- add r1, r4, #0x0
- lsl r2, r2, #0x2
- ldr r2, [r7, r2]
- blx r2
- add r1, r4, #0x0
- add r1, #0x35
- ldrb r1, [r1, #0x0]
- add r0, r4, #0x0
- lsl r2, r1, #0x2
- ldr r1, _0201FE40 ; =0x020EE660
- ldr r1, [r1, r2]
- blx r1
- mov r0, #0x1
- lsl r0, r0, #0x8
- ldr r4, [r4, r0]
- cmp r4, r6
- bne _0201FE0E
-_0201FE38:
- pop {r3-r7, pc}
- nop
-_0201FE3C: .word 0x020EE658
-_0201FE40: .word 0x020EE660
-
- thumb_func_start FUN_0201FE44
-FUN_0201FE44: ; 0x0201FE44
- push {r4, lr}
- add r4, r0, #0x0
- mov r1, #0x0
- str r1, [r4, #0x0]
- str r1, [r4, #0x4]
- str r1, [r4, #0x8]
- mov r0, #0x45
- str r1, [r4, #0xc]
- lsl r0, r0, #0x2
- str r1, [r4, r0]
- add r0, r4, #0x0
- add r0, #0x10
- bl FUN_0201FE6C
- mov r0, #0x12
- mov r1, #0x0
- lsl r0, r0, #0x4
- str r1, [r4, r0]
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0201FE6C
-FUN_0201FE6C: ; 0x0201FE6C
- push {r4, lr}
- mov r2, #0x41
- add r4, r0, #0x0
- mov r1, #0x0
- lsl r2, r2, #0x2
- str r1, [r4, #0x3c]
- bl Call_FillMemWithValue
- add r0, r4, #0x0
- add r0, #0xb4
- bl FUN_020B1A24
- add r0, r4, #0x0
- add r0, #0xd8
- bl FUN_020B19DC
- mov r0, #0x0
- str r0, [r4, #0x30]
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0201FE94
-FUN_0201FE94: ; 0x0201FE94
- push {r4-r6, lr}
- add r5, r0, #0x0
- ldr r0, [r5, #0x0]
- bl FUN_02020874
- add r4, r0, #0x0
- bne _0201FEA6
- mov r0, #0x0
- pop {r4-r6, pc}
-_0201FEA6:
- ldr r0, [r5, #0x0]
- add r6, r5, #0x0
- str r0, [r4, #0x3c]
- add r0, r4, #0x0
- mov r2, #0x0
- add r0, #0xf0
- add r6, #0x8
- strh r2, [r0, #0x0]
- ldmia r6!, {r0-r1}
- add r3, r4, #0x0
- stmia r3!, {r0-r1}
- ldr r0, [r6, #0x0]
- add r6, r5, #0x0
- str r0, [r3, #0x0]
- add r6, #0x14
- add r3, r4, #0x0
- ldmia r6!, {r0-r1}
- add r3, #0x18
- stmia r3!, {r0-r1}
- ldr r0, [r6, #0x0]
- str r0, [r3, #0x0]
- ldrh r0, [r5, #0x20]
- strh r0, [r4, #0x24]
- add r0, r4, #0x0
- ldr r1, [r5, #0x28]
- add r0, #0xf8
- str r1, [r0, #0x0]
- add r0, r4, #0x0
- ldr r1, [r5, #0x24]
- add r0, #0xf4
- strh r1, [r0, #0x0]
- add r0, r4, #0x0
- add r0, #0x26
- strb r2, [r0, #0x0]
- add r0, r4, #0x0
- add r0, #0x27
- strb r2, [r0, #0x0]
- str r2, [r4, #0x2c]
- add r0, r4, #0x0
- str r2, [r4, #0x30]
- mov r1, #0x11
- add r0, #0x28
- strb r1, [r0, #0x0]
- mov r0, #0x45
- ldr r1, [r5, #0x0]
- lsl r0, r0, #0x2
- ldr r0, [r1, r0]
- add r1, r4, #0x0
- add r1, #0x26
- ldrb r1, [r1, #0x0]
- bl FUN_020B502C
- add r0, r4, #0x0
- add r0, #0x27
- ldrb r2, [r0, #0x0]
- mov r0, #0x45
- ldr r1, [r5, #0x0]
- lsl r0, r0, #0x2
- ldr r0, [r1, r0]
- mov r1, #0x1
- mov r3, #0x2
- and r1, r2
- and r2, r3
- bl FUN_020B4F38
- add r0, r4, #0x0
- mov r2, #0x1
- add r0, #0x34
- strb r2, [r0, #0x0]
- add r0, r4, #0x0
- mov r1, #0x0
- add r0, #0x35
- strb r1, [r0, #0x0]
- lsl r0, r2, #0xd
- str r0, [r4, #0x38]
- ldr r0, [r5, #0x0]
- ldr r1, [r5, #0x4]
- ldr r3, [r5, #0x2c]
- add r2, r4, #0x0
- bl FUN_02020434
- cmp r0, #0x0
- bne _0201FF56
- add r0, r4, #0x0
- bl FUN_0201FFC8
- mov r0, #0x0
- pop {r4-r6, pc}
-_0201FF56:
- add r1, r4, #0x0
- add r1, #0xf8
- add r0, r4, #0x0
- ldr r1, [r1, #0x0]
- add r0, #0xd8
- bl FUN_020205E8
- add r1, r4, #0x0
- add r1, #0x2a
- strb r0, [r1, #0x0]
- add r0, r4, #0x0
- add r0, #0x2a
- ldrb r1, [r0, #0x0]
- add r0, r4, #0x0
- add r0, #0x29
- strb r1, [r0, #0x0]
- ldr r0, [r5, #0x0]
- add r1, r4, #0x0
- bl FUN_02020788
- add r0, r4, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_0201FF84
-FUN_0201FF84: ; 0x0201FF84
- push {r4, lr}
- sub sp, #0x30
- add r2, r0, #0x0
- ldr r0, [r2, #0x0]
- add r4, r2, #0x0
- str r0, [sp, #0x0]
- ldr r0, [r2, #0x4]
- add r4, #0x8
- str r0, [sp, #0x4]
- ldmia r4!, {r0-r1}
- add r3, sp, #0x8
- stmia r3!, {r0-r1}
- ldr r0, [r4, #0x0]
- mov r1, #0x0
- str r0, [r3, #0x0]
- mov r0, #0x1
- lsl r0, r0, #0xc
- str r0, [sp, #0x14]
- str r0, [sp, #0x18]
- str r0, [sp, #0x1c]
- add r0, sp, #0x0
- strh r1, [r0, #0x20]
- ldr r0, [r2, #0x14]
- str r0, [sp, #0x24]
- ldr r0, [r2, #0x18]
- str r0, [sp, #0x28]
- ldr r0, [r2, #0x1c]
- str r0, [sp, #0x2c]
- add r0, sp, #0x0
- bl FUN_0201FE94
- add sp, #0x30
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0201FFC8
-FUN_0201FFC8: ; 0x0201FFC8
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r1, r5, #0x0
- add r1, #0xec
- ldr r1, [r1, #0x0]
- cmp r1, #0x0
- beq _02020040
- add r1, r5, #0x0
- add r1, #0xfc
- ldr r1, [r1, #0x0]
- cmp r1, #0x0
- beq _0201FFE4
- bl FUN_02020820
-_0201FFE4:
- add r0, r5, #0x0
- add r0, #0xec
- ldr r0, [r0, #0x0]
- cmp r0, #0x3
- bne _0202000E
- add r1, r5, #0x0
- add r1, #0xf8
- add r0, r5, #0x0
- add r4, r5, #0x0
- ldr r1, [r1, #0x0]
- add r0, #0xb4
- add r4, #0x40
- bl FUN_020B1A14
- mov r1, #0x0
- mvn r1, r1
- cmp r0, r1
- beq _0202000E
- ldr r0, [r4, #0x5c]
- bl FUN_020B4358
-_0202000E:
- add r0, r5, #0x0
- add r0, #0xec
- ldr r0, [r0, #0x0]
- cmp r0, #0x2
- bne _02020030
- add r4, r5, #0x0
- add r4, #0x40
- ldr r0, [r4, #0x70]
- cmp r0, #0x0
- beq _02020026
- bl FUN_02016A18
-_02020026:
- ldr r0, [r4, #0x74]
- cmp r0, #0x0
- beq _02020030
- bl FUN_02016A18
-_02020030:
- add r0, r5, #0x0
- mov r1, #0x0
- add r0, #0xec
- str r1, [r0, #0x0]
- ldr r0, [r5, #0x3c]
- add r1, r5, #0x0
- bl FUN_02020890
-_02020040:
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02020044
-FUN_02020044: ; 0x02020044
- add r2, r1, #0x0
- add r3, r0, #0x0
- ldmia r2!, {r0-r1}
- stmia r3!, {r0-r1}
- ldr r0, [r2, #0x0]
- str r0, [r3, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02020054
-FUN_02020054: ; 0x02020054
- add r3, r1, #0x0
- add r2, r0, #0x0
- ldmia r3!, {r0-r1}
- add r2, #0xc
- stmia r2!, {r0-r1}
- ldr r0, [r3, #0x0]
- str r0, [r2, #0x0]
- bx lr
-
- thumb_func_start FUN_02020064
-FUN_02020064: ; 0x02020064
- add r3, r1, #0x0
- add r2, r0, #0x0
- ldmia r3!, {r0-r1}
- add r2, #0x18
- stmia r2!, {r0-r1}
- ldr r0, [r3, #0x0]
- str r0, [r2, #0x0]
- bx lr
-
- thumb_func_start FUN_02020074
-FUN_02020074: ; 0x02020074
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r2, #0x0
- bl FUN_02020064
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_020200EC
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02020088
-FUN_02020088: ; 0x02020088
- strh r1, [r0, #0x24]
- bx lr
-
- thumb_func_start FUN_0202008C
-FUN_0202008C: ; 0x0202008C
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r2, #0x0
- bl FUN_02020088
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_020200EC
- pop {r3-r5, pc}
-
- thumb_func_start FUN_020200A0
-FUN_020200A0: ; 0x020200A0
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- cmp r5, #0x0
- bne _020200AE
- bl ErrorHandling
-_020200AE:
- cmp r4, #0x2
- blt _020200B6
- bl ErrorHandling
-_020200B6:
- add r5, #0x34
- strb r4, [r5, #0x0]
- pop {r3-r5, pc}
-
- thumb_func_start FUN_020200BC
-FUN_020200BC: ; 0x020200BC
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- cmp r5, #0x0
- bne _020200CA
- bl ErrorHandling
-_020200CA:
- cmp r4, #0x2
- blt _020200D2
- bl ErrorHandling
-_020200D2:
- add r5, #0x35
- strb r4, [r5, #0x0]
- pop {r3-r5, pc}
-
- thumb_func_start FUN_020200D8
-FUN_020200D8: ; 0x020200D8
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- cmp r5, #0x0
- bne _020200E6
- bl ErrorHandling
-_020200E6:
- str r4, [r5, #0x38]
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_020200EC
-FUN_020200EC: ; 0x020200EC
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- cmp r5, #0x0
- bne _020200FA
- bl ErrorHandling
-_020200FA:
- add r5, #0x26
- strb r4, [r5, #0x0]
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02020100
-FUN_02020100: ; 0x02020100
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- cmp r5, #0x0
- bne _0202010E
- bl ErrorHandling
-_0202010E:
- add r0, r5, #0x0
- add r0, #0x27
- strb r4, [r0, #0x0]
- mov r0, #0x0
- add r5, #0x26
- strb r0, [r5, #0x0]
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0202011C
-FUN_0202011C: ; 0x0202011C
- bx lr
- .balign 4
-
- thumb_func_start FUN_02020120
-FUN_02020120: ; 0x02020120
- add r0, #0x18
- bx lr
-
- thumb_func_start FUN_02020124
-FUN_02020124: ; 0x02020124
- ldrh r0, [r0, #0x24]
- bx lr
-
- thumb_func_start FUN_02020128
-FUN_02020128: ; 0x02020128
- add r0, #0x34
- ldrb r0, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02020130
-FUN_02020130: ; 0x02020130
- push {r4, lr}
- lsl r2, r1, #0x10
- lsr r3, r2, #0x10
- add r2, r0, #0x0
- add r2, #0xf0
- strh r3, [r2, #0x0]
- add r2, r0, #0x0
- add r2, #0xec
- ldr r2, [r2, #0x0]
- cmp r2, #0x1
- beq _0202014A
- cmp r2, #0x3
- bne _02020168
-_0202014A:
- add r4, r0, #0x0
- add r4, #0x40
- lsl r1, r1, #0x10
- ldr r0, [r4, #0x4]
- lsr r1, r1, #0x10
- bl FUN_020AFC04
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x8
- bl FUN_020B1EE4
- mov r0, #0x1
- str r0, [r4, #0x10]
- pop {r4, pc}
-_02020168:
- add r4, r0, #0x0
- add r4, #0x40
- ldr r0, [r4, #0x6c]
- add r1, r3, #0x0
- bl FUN_020AFC04
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r0, #0x8
- bl FUN_020B242C
- mov r0, #0x1
- str r0, [r4, #0x10]
- pop {r4, pc}
-
- thumb_func_start FUN_02020184
-FUN_02020184: ; 0x02020184
- push {r3, lr}
- add r2, r0, #0x0
- add r2, #0xf0
- ldrh r2, [r2, #0x0]
- cmp r2, r1
- beq _02020194
- bl FUN_02020130
-_02020194:
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02020198
-FUN_02020198: ; 0x02020198
- push {r3-r5, lr}
- add r4, r0, #0x0
- add r0, #0xec
- ldr r0, [r0, #0x0]
- cmp r0, #0x1
- beq _020201A8
- cmp r0, #0x3
- bne _020201C2
-_020201A8:
- add r5, r4, #0x0
- add r5, #0x40
- add r0, r5, #0x0
- add r0, #0x8
- bl FUN_020B0448
- mov r0, #0x1
- str r0, [r5, #0x10]
- add r0, r4, #0x0
- mov r1, #0x0
- bl FUN_02020208
- pop {r3-r5, pc}
-_020201C2:
- add r5, r4, #0x0
- add r5, #0x40
- add r0, r5, #0x0
- add r0, #0x8
- bl FUN_020B0448
- mov r0, #0x1
- str r0, [r5, #0x10]
- add r0, r4, #0x0
- mov r1, #0x0
- bl FUN_02020208
- pop {r3-r5, pc}
-
- thumb_func_start FUN_020201DC
-FUN_020201DC: ; 0x020201DC
- add r0, #0xf0
- ldrh r0, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_020201E4
-FUN_020201E4: ; 0x020201E4
- push {r3, lr}
- add r2, r0, #0x0
- add r2, #0xec
- ldr r2, [r2, #0x0]
- cmp r2, #0x1
- beq _020201F4
- cmp r2, #0x3
- bne _020201FE
-_020201F4:
- add r0, #0x40
- add r0, #0x8
- bl FUN_020B1EC4
- pop {r3, pc}
-_020201FE:
- add r0, #0x40
- add r0, #0x8
- bl FUN_020B224C
- pop {r3, pc}
-
- thumb_func_start FUN_02020208
-FUN_02020208: ; 0x02020208
- push {r3, lr}
- add r2, r0, #0x0
- add r2, #0xec
- ldr r2, [r2, #0x0]
- cmp r2, #0x1
- beq _02020218
- cmp r2, #0x3
- bne _02020222
-_02020218:
- add r0, #0x40
- add r0, #0x8
- bl FUN_020B1EA4
- pop {r3, pc}
-_02020222:
- add r0, #0x40
- add r0, #0x8
- bl FUN_020B2194
- pop {r3, pc}
-
- thumb_func_start FUN_0202022C
-FUN_0202022C: ; 0x0202022C
- ldr r3, _02020234 ; =0x020B04FC
- add r0, #0x40
- add r0, #0x8
- bx r3
- .balign 4
-_02020234: .word 0x020B04FC
-
- thumb_func_start FUN_02020238
-FUN_02020238: ; 0x02020238
- add r0, #0xf2
- strb r1, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02020240
-FUN_02020240: ; 0x02020240
- add r0, #0xf2
- ldrb r0, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02020248
-FUN_02020248: ; 0x02020248
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- cmp r5, #0x0
- bne _02020256
- bl ErrorHandling
-_02020256:
- add r0, r5, #0x0
- add r0, #0x29
- strb r4, [r0, #0x0]
- add r0, r5, #0x0
- add r0, #0x28
- ldrb r1, [r0, #0x0]
- mov r0, #0x2
- orr r1, r0
- add r0, r5, #0x0
- add r0, #0x28
- strb r1, [r0, #0x0]
- add r0, r5, #0x0
- add r0, #0x28
- ldrb r1, [r0, #0x0]
- mov r0, #0x10
- add r5, #0x28
- bic r1, r0
- strb r1, [r5, #0x0]
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0202027C
-FUN_0202027C: ; 0x0202027C
- push {r4, lr}
- add r4, r0, #0x0
- bl FUN_02020248
- add r1, r4, #0x0
- add r1, #0xf8
- add r0, r4, #0x0
- ldr r1, [r1, #0x0]
- add r0, #0xd8
- bl FUN_020205E8
- add r1, r4, #0x0
- add r1, #0x29
- ldrb r1, [r1, #0x0]
- add r4, #0x29
- add r0, r1, r0
- strb r0, [r4, #0x0]
- pop {r4, pc}
-
- thumb_func_start FUN_020202A0
-FUN_020202A0: ; 0x020202A0
- add r0, #0x29
- ldrb r0, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_020202A8
-FUN_020202A8: ; 0x020202A8
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- cmp r5, #0x0
- bne _020202B6
- bl ErrorHandling
-_020202B6:
- add r0, r5, #0x0
- add r0, #0x2a
- strb r4, [r0, #0x0]
- add r0, r5, #0x0
- add r0, #0x28
- ldrb r1, [r0, #0x0]
- mov r0, #0x10
- orr r1, r0
- add r0, r5, #0x0
- add r0, #0x28
- strb r1, [r0, #0x0]
- add r0, r5, #0x0
- add r0, #0x28
- ldrb r1, [r0, #0x0]
- mov r0, #0x2
- add r5, #0x28
- bic r1, r0
- strb r1, [r5, #0x0]
- pop {r3-r5, pc}
-
- thumb_func_start FUN_020202DC
-FUN_020202DC: ; 0x020202DC
- push {r4, lr}
- add r4, r0, #0x0
- bl FUN_020202A8
- add r1, r4, #0x0
- add r1, #0xf8
- add r0, r4, #0x0
- ldr r1, [r1, #0x0]
- add r0, #0xd8
- bl FUN_020205E8
- add r1, r4, #0x0
- add r1, #0x2a
- ldrb r1, [r1, #0x0]
- add r4, #0x2a
- add r0, r1, r0
- strb r0, [r4, #0x0]
- pop {r4, pc}
-
- thumb_func_start FUN_02020300
-FUN_02020300: ; 0x02020300
- push {r4, lr}
- add r4, r0, #0x0
- bne _0202030A
- bl ErrorHandling
-_0202030A:
- add r4, #0x2a
- ldrb r0, [r4, #0x0]
- pop {r4, pc}
-
- thumb_func_start FUN_02020310
-FUN_02020310: ; 0x02020310
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r2, r5, #0x0
- ldr r4, [r5, #0x3c]
- add r2, #0xf4
- strh r1, [r2, #0x0]
- bl FUN_02020820
- add r0, r4, #0x0
- add r1, r5, #0x0
- bl FUN_02020788
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0202032C
-FUN_0202032C: ; 0x0202032C
- add r0, #0xf4
- ldrh r0, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02020334
-FUN_02020334: ; 0x02020334
- push {r3-r4}
- add r3, r0, #0x0
- add r4, r1, #0x0
- add r3, #0xb4
- mov r2, #0x4
-_0202033E:
- ldmia r4!, {r0-r1}
- stmia r3!, {r0-r1}
- sub r2, r2, #0x1
- bne _0202033E
- ldr r0, [r4, #0x0]
- str r0, [r3, #0x0]
- pop {r3-r4}
- bx lr
- .balign 4
-
- thumb_func_start FUN_02020350
-FUN_02020350: ; 0x02020350
- add r0, #0xb4
- bx lr
-
- thumb_func_start FUN_02020354
-FUN_02020354: ; 0x02020354
- add r0, #0xd8
- bx lr
-
- thumb_func_start FUN_02020358
-FUN_02020358: ; 0x02020358
- str r1, [r0, #0x2c]
- cmp r1, #0x1
- bne _0202036E
- add r1, r0, #0x0
- add r1, #0x28
- ldrb r2, [r1, #0x0]
- mov r1, #0x4
- add r0, #0x28
- orr r1, r2
- strb r1, [r0, #0x0]
- bx lr
-_0202036E:
- add r1, r0, #0x0
- add r1, #0x28
- ldrb r2, [r1, #0x0]
- mov r1, #0x4
- eor r1, r2
- add r0, #0x28
- strb r1, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02020380
-FUN_02020380: ; 0x02020380
- add r0, #0xf8
- ldr r0, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02020388
-FUN_02020388: ; 0x02020388
- push {r4, lr}
- add r4, r0, #0x0
- bne _02020392
- bl ErrorHandling
-_02020392:
- ldr r0, [r4, #0x50]
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02020398
-FUN_02020398: ; 0x02020398
- push {r3-r5, lr}
- add r4, r0, #0x0
- add r5, r1, #0x0
- cmp r4, #0x0
- bne _020203A6
- bl ErrorHandling
-_020203A6:
- str r5, [r4, #0x30]
- cmp r5, #0x0
- bne _020203BC
- add r0, r4, #0x0
- add r0, #0x28
- ldrb r1, [r0, #0x0]
- mov r0, #0x8
- add r4, #0x28
- eor r0, r1
- strb r0, [r4, #0x0]
- pop {r3-r5, pc}
-_020203BC:
- add r0, r4, #0x0
- add r0, #0x28
- ldrb r1, [r0, #0x0]
- mov r0, #0x8
- orr r0, r1
- add r4, #0x28
- strb r0, [r4, #0x0]
- pop {r3-r5, pc}
-
- thumb_func_start FUN_020203CC
-FUN_020203CC: ; 0x020203CC
- push {r4, lr}
- mov r1, #0x1
- lsl r1, r1, #0xa
- bl FUN_02016998
- add r4, r0, #0x0
- mov r0, #0xb
- mov r2, #0x1
- lsl r0, r0, #0x6
- add r1, r4, #0x0
- lsl r2, r2, #0xa
- bl MIi_CpuClear16
- mov r1, #0x1
- add r0, r4, #0x0
- lsl r1, r1, #0xa
- bl DC_FlushRange
- mov r2, #0x1
- add r0, r4, #0x0
- mov r1, #0x0
- lsl r2, r2, #0xa
- bl GX_LoadOAM
- add r0, r4, #0x0
- bl FUN_02016A18
- pop {r4, pc}
-
- thumb_func_start FUN_02020404
-FUN_02020404: ; 0x02020404
- push {r4, lr}
- mov r1, #0x1
- lsl r1, r1, #0xa
- bl FUN_02016998
- add r4, r0, #0x0
- mov r0, #0xb
- mov r2, #0x1
- lsl r0, r0, #0x6
- add r1, r4, #0x0
- lsl r2, r2, #0xa
- bl MIi_CpuClear16
- mov r2, #0x1
- add r0, r4, #0x0
- mov r1, #0x0
- lsl r2, r2, #0xa
- bl GXS_LoadOAM
- add r0, r4, #0x0
- bl FUN_02016A18
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02020434
-FUN_02020434: ; 0x02020434
- push {r3-r7, lr}
- add r5, r1, #0x0
- str r0, [sp, #0x0]
- add r4, r2, #0x0
- add r0, r5, #0x0
- add r7, r3, #0x0
- bl FUN_020204DC
- add r1, r4, #0x0
- add r1, #0xec
- str r0, [r1, #0x0]
- add r3, r4, #0x0
- ldr r6, [r5, #0x0]
- add r3, #0xb4
- mov r2, #0x4
-_02020452:
- ldmia r6!, {r0-r1}
- stmia r3!, {r0-r1}
- sub r2, r2, #0x1
- bne _02020452
- ldr r0, [r6, #0x0]
- add r2, r4, #0x0
- str r0, [r3, #0x0]
- ldr r3, [r5, #0x8]
- add r2, #0xd8
- ldmia r3!, {r0-r1}
- stmia r2!, {r0-r1}
- ldmia r3!, {r0-r1}
- stmia r2!, {r0-r1}
- ldr r0, [r3, #0x0]
- add r1, r4, #0x0
- str r0, [r2, #0x0]
- ldr r0, [r5, #0xc]
- bl FUN_020204F4
- ldr r0, [r5, #0x10]
- cmp r0, #0x0
- beq _02020486
- add r1, r4, #0x0
- bl FUN_020204F8
- b _02020494
-_02020486:
- mov r1, #0x47
- ldr r0, [sp, #0x0]
- lsl r1, r1, #0x2
- ldr r0, [r0, r1]
- add r1, r4, #0x0
- bl FUN_020204F8
-_02020494:
- add r0, r4, #0x0
- add r0, #0xec
- ldr r0, [r0, #0x0]
- cmp r0, #0x2
- bne _020204B8
- ldr r0, [r5, #0x14]
- add r1, r4, #0x0
- bl FUN_020204FC
- ldr r0, [r5, #0x18]
- add r1, r4, #0x0
- bl FUN_02020504
- add r0, r4, #0x0
- add r1, r7, #0x0
- bl FUN_02020588
- b _020204D0
-_020204B8:
- cmp r0, #0x3
- bne _020204C8
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r2, r7, #0x0
- bl FUN_0202052C
- b _020204D0
-_020204C8:
- add r0, r4, #0x0
- add r1, r7, #0x0
- bl FUN_0202050C
-_020204D0:
- add r5, #0x20
- ldrb r0, [r5, #0x0]
- add r4, #0xf2
- strb r0, [r4, #0x0]
- mov r0, #0x1
- pop {r3-r7, pc}
-
- thumb_func_start FUN_020204DC
-FUN_020204DC: ; 0x020204DC
- ldr r1, [r0, #0x14]
- cmp r1, #0x0
- beq _020204E6
- mov r0, #0x2
- bx lr
-_020204E6:
- ldr r0, [r0, #0x1c]
- cmp r0, #0x1
- bne _020204F0
- mov r0, #0x3
- bx lr
-_020204F0:
- mov r0, #0x1
- bx lr
-
- thumb_func_start FUN_020204F4
-FUN_020204F4: ; 0x020204F4
- str r0, [r1, #0x40]
- bx lr
-
- thumb_func_start FUN_020204F8
-FUN_020204F8: ; 0x020204F8
- str r0, [r1, #0x44]
- bx lr
-
- thumb_func_start FUN_020204FC
-FUN_020204FC: ; 0x020204FC
- add r1, #0xa8
- str r0, [r1, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02020504
-FUN_02020504: ; 0x02020504
- add r1, #0xac
- str r0, [r1, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202050C
-FUN_0202050C: ; 0x0202050C
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r5, #0x0
- add r4, #0x40
- ldr r0, [r4, #0x4]
- mov r1, #0x0
- bl FUN_020AFC04
- add r4, #0x8
- add r1, r0, #0x0
- ldr r2, [r5, #0x40]
- add r0, r4, #0x0
- bl FUN_020B1F80
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0202052C
-FUN_0202052C: ; 0x0202052C
- push {r4-r7, lr}
- sub sp, #0x1c
- add r6, r1, #0x0
- add r4, r6, #0x0
- add r4, #0x40
- add r5, r0, #0x0
- bl FUN_020B43A4
- str r0, [r4, #0x5c]
- ldr r0, [r4, #0x4]
- mov r1, #0x0
- ldr r5, [r5, #0x4]
- bl FUN_020AFC04
- str r0, [sp, #0x18]
- add r0, r6, #0x0
- add r0, #0xb4
- mov r1, #0x1
- bl FUN_020B1A14
- add r7, r0, #0x0
- add r0, r6, #0x0
- add r0, #0xb4
- mov r1, #0x2
- bl FUN_020B1A14
- mov r1, #0x0
- mvn r1, r1
- str r1, [sp, #0x0]
- str r7, [sp, #0x4]
- str r0, [sp, #0x8]
- ldr r0, [r5, #0x14]
- ldr r1, [sp, #0x18]
- str r0, [sp, #0xc]
- mov r0, #0x0
- str r0, [sp, #0x10]
- ldr r0, [r5, #0x10]
- str r0, [sp, #0x14]
- add r0, r4, #0x0
- ldr r2, [r6, #0x40]
- ldr r3, [r4, #0x5c]
- add r0, #0x8
- bl FUN_020B1EFC
- add sp, #0x1c
- pop {r4-r7, pc}
-
- thumb_func_start FUN_02020588
-FUN_02020588: ; 0x02020588
- push {r3-r7, lr}
- sub sp, #0x10
- add r5, r0, #0x0
- add r4, r5, #0x0
- add r4, #0x40
- ldr r0, [r4, #0x6c]
- add r7, r1, #0x0
- mov r1, #0x0
- bl FUN_020AFC04
- str r0, [sp, #0xc]
- ldr r0, [r4, #0x68]
- bl FUN_020B23D8
- add r6, r0, #0x0
- mov r1, #0x28
- add r0, r7, #0x0
- mul r1, r6
- bl FUN_02016998
- mov r1, #0x54
- str r0, [r4, #0x70]
- add r0, r7, #0x0
- mul r1, r6
- bl FUN_02016998
- str r0, [r4, #0x74]
- ldr r0, [r4, #0x4]
- add r3, r6, #0x0
- str r0, [sp, #0x0]
- ldr r0, [r5, #0x40]
- str r0, [sp, #0x4]
- ldr r0, [r4, #0x68]
- str r0, [sp, #0x8]
- add r0, r4, #0x0
- ldr r1, [r4, #0x70]
- ldr r2, [r4, #0x74]
- add r0, #0x8
- bl FUN_020B20C8
- add r4, #0x8
- ldr r1, [sp, #0xc]
- add r0, r4, #0x0
- bl FUN_020B242C
- add sp, #0x10
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_020205E8
-FUN_020205E8: ; 0x020205E8
- push {r4, lr}
- ldr r2, [r0, #0x4]
- cmp r2, #0x0
- beq _020205F6
- mov r4, #0x2
- lsl r4, r4, #0x8
- b _02020602
-_020205F6:
- ldr r2, [r0, #0x0]
- cmp r2, #0x4
- bne _02020600
- mov r4, #0x0
- b _02020602
-_02020600:
- mov r4, #0x20
-_02020602:
- cmp r4, #0x0
- beq _02020612
- bl FUN_020B19C4
- add r1, r4, #0x0
- bl _u32_div_f
- pop {r4, pc}
-_02020612:
- mov r0, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02020618
-FUN_02020618: ; 0x02020618
- push {r3-r6, lr}
- sub sp, #0xc
- add r4, r1, #0x0
- add r3, r4, #0x0
- add r5, r0, #0x0
- ldmia r3!, {r0-r1}
- add r2, sp, #0x0
- stmia r2!, {r0-r1}
- ldr r0, [r3, #0x0]
- add r1, r4, #0x0
- str r0, [r2, #0x0]
- mov r0, #0x45
- lsl r0, r0, #0x2
- add r2, r4, #0x0
- ldr r0, [r5, r0]
- add r1, #0xb4
- add r2, #0xd8
- bl thunk_FUN_020b5040
- mov r0, #0x45
- lsl r0, r0, #0x2
- ldr r0, [r5, r0]
- bl FUN_020B326C
- bl FUN_020B2B58
- add r1, r4, #0x0
- mov r0, #0x45
- add r1, #0x26
- lsl r0, r0, #0x2
- ldrb r1, [r1, #0x0]
- ldr r0, [r5, r0]
- bl FUN_020B502C
- add r0, r4, #0x0
- add r0, #0x26
- ldrb r0, [r0, #0x0]
- cmp r0, #0x0
- bne _02020680
- add r0, r4, #0x0
- add r0, #0x27
- ldrb r2, [r0, #0x0]
- mov r0, #0x45
- lsl r0, r0, #0x2
- mov r1, #0x1
- ldr r0, [r5, r0]
- mov r3, #0x2
- and r1, r2
- and r2, r3
- bl FUN_020B4F38
- b _0202068E
-_02020680:
- mov r0, #0x45
- lsl r0, r0, #0x2
- mov r1, #0x0
- ldr r0, [r5, r0]
- add r2, r1, #0x0
- bl FUN_020B4F38
-_0202068E:
- ldr r0, [sp, #0x0]
- ldr r1, [sp, #0x4]
- ldr r2, [sp, #0x8]
- bl FUN_020B2A08
- add r0, r4, #0x0
- add r0, #0x26
- ldrb r0, [r0, #0x0]
- cmp r0, #0x0
- beq _020206DC
- ldr r0, [r4, #0xc]
- ldr r1, [r4, #0x10]
- ldr r2, [r4, #0x14]
- bl FUN_020B2A08
- ldr r0, [r4, #0x18]
- ldr r1, [r4, #0x1c]
- ldr r2, [r4, #0x20]
- bl FUN_020B28B4
- ldrh r0, [r4, #0x24]
- ldr r2, _02020770 ; =0x020FFA38
- asr r0, r0, #0x4
- lsl r1, r0, #0x1
- lsl r0, r1, #0x1
- add r1, r1, #0x1
- lsl r1, r1, #0x1
- ldrsh r0, [r2, r0]
- ldrsh r1, [r2, r1]
- bl FUN_020B2794
- ldr r0, [r4, #0xc]
- ldr r1, [r4, #0x10]
- ldr r2, [r4, #0x14]
- neg r0, r0
- neg r1, r1
- neg r2, r2
- bl FUN_020B2A08
-_020206DC:
- add r0, r4, #0x0
- add r0, #0x28
- ldrb r3, [r0, #0x0]
- mov r0, #0x45
- lsl r0, r0, #0x2
- ldr r2, [r5, r0]
- add r1, r2, #0x0
- add r1, #0x84
- ldr r1, [r1, #0x0]
- add r2, #0x84
- orr r1, r3
- str r1, [r2, #0x0]
- add r1, r4, #0x0
- add r1, #0x28
- ldrb r1, [r1, #0x0]
- mvn r6, r1
- ldr r1, [r5, r0]
- add r2, r1, #0x0
- add r2, #0x84
- ldr r3, [r2, #0x0]
- mvn r2, r6
- and r2, r3
- add r1, #0x84
- str r2, [r1, #0x0]
- add r1, r4, #0x0
- add r1, #0x29
- ldrb r2, [r1, #0x0]
- ldr r1, [r5, r0]
- add r1, #0x8a
- strh r2, [r1, #0x0]
- add r1, r4, #0x0
- add r1, #0x2a
- ldrb r2, [r1, #0x0]
- ldr r1, [r5, r0]
- add r1, #0x94
- strh r2, [r1, #0x0]
- ldr r1, [r5, r0]
- ldr r2, [r4, #0x2c]
- add r1, #0x90
- str r2, [r1, #0x0]
- ldr r1, [r5, r0]
- ldr r2, [r4, #0x30]
- add r1, #0x8c
- str r2, [r1, #0x0]
- add r1, r4, #0x0
- add r1, #0xf2
- ldr r0, [r5, r0]
- ldrb r1, [r1, #0x0]
- add r0, #0x88
- strh r1, [r0, #0x0]
- add r0, r4, #0x0
- add r0, #0xec
- ldr r0, [r0, #0x0]
- cmp r0, #0x1
- beq _0202074E
- cmp r0, #0x3
- bne _0202075A
-_0202074E:
- add r4, #0x40
- add r4, #0x8
- add r0, r4, #0x0
- bl FUN_020B317C
- b _02020764
-_0202075A:
- add r4, #0x40
- add r4, #0x8
- add r0, r4, #0x0
- bl FUN_020B2D9C
-_02020764:
- bl FUN_020B2B08
- bl FUN_020B31F0
- add sp, #0xc
- pop {r3-r6, pc}
- .balign 4
-_02020770: .word 0x020FFA38
-
- thumb_func_start FUN_02020774
-FUN_02020774: ; 0x02020774
- bx lr
- .balign 4
-
- thumb_func_start FUN_02020778
-FUN_02020778: ; 0x02020778
- ldr r3, _02020780 ; =FUN_020201E4
- ldr r1, [r0, #0x38]
- bx r3
- nop
-_02020780: .word FUN_020201E4
-
- thumb_func_start FUN_02020784
-FUN_02020784: ; 0x02020784
- bx lr
- .balign 4
-
- thumb_func_start FUN_02020788
-FUN_02020788: ; 0x02020788
- push {r4-r7}
- mov r2, #0x11
- lsl r2, r2, #0x4
- add r4, r0, #0x0
- ldr r5, [r0, r2]
- add r4, #0x10
- cmp r5, r4
- bne _020207AC
- str r1, [r0, r2]
- sub r3, r2, #0x4
- str r1, [r0, r3]
- add r0, r1, #0x0
- add r0, #0xfc
- str r4, [r0, #0x0]
- sub r2, #0x10
- str r4, [r1, r2]
- pop {r4-r7}
- bx lr
-_020207AC:
- add r3, r1, #0x0
- add r3, #0xf4
- ldrh r6, [r3, #0x0]
- sub r3, r2, #0x4
- ldr r3, [r0, r3]
- add r7, r3, #0x0
- add r7, #0xf4
- ldrh r7, [r7, #0x0]
- cmp r7, r6
- bhi _020207DE
- add r5, r1, #0x0
- add r5, #0xfc
- str r3, [r5, #0x0]
- sub r3, r2, #0x4
- ldr r5, [r0, r3]
- add r3, r2, #0x0
- sub r3, #0x10
- str r1, [r5, r3]
- add r3, r2, #0x0
- sub r3, #0x10
- str r4, [r1, r3]
- sub r2, r2, #0x4
- str r1, [r0, r2]
- pop {r4-r7}
- bx lr
-_020207DE:
- cmp r5, r4
- beq _0202081A
- add r0, r2, #0x0
- sub r0, #0x10
-_020207E6:
- add r2, r5, #0x0
- add r2, #0xf4
- ldrh r2, [r2, #0x0]
- cmp r2, r6
- bls _02020814
- add r0, r5, #0x0
- add r0, #0xfc
- mov r2, #0x1
- ldr r0, [r0, #0x0]
- lsl r2, r2, #0x8
- str r1, [r0, r2]
- add r0, r5, #0x0
- add r0, #0xfc
- ldr r3, [r0, #0x0]
- add r0, r1, #0x0
- add r0, #0xfc
- str r3, [r0, #0x0]
- add r0, r5, #0x0
- add r0, #0xfc
- str r1, [r0, #0x0]
- str r5, [r1, r2]
- pop {r4-r7}
- bx lr
-_02020814:
- ldr r5, [r5, r0]
- cmp r5, r4
- bne _020207E6
-_0202081A:
- pop {r4-r7}
- bx lr
- .balign 4
-
- thumb_func_start FUN_02020820
-FUN_02020820: ; 0x02020820
- mov r2, #0x1
- add r1, r0, #0x0
- lsl r2, r2, #0x8
- add r1, #0xfc
- ldr r3, [r0, r2]
- ldr r1, [r1, #0x0]
- str r3, [r1, r2]
- add r1, r0, #0x0
- add r1, #0xfc
- ldr r0, [r0, r2]
- ldr r1, [r1, #0x0]
- add r0, #0xfc
- str r1, [r0, #0x0]
- bx lr
-
- thumb_func_start FUN_0202083C
-FUN_0202083C: ; 0x0202083C
- push {r3-r7, lr}
- add r5, r0, #0x0
- ldr r0, [r5, #0x4]
- mov r7, #0x0
- cmp r0, #0x0
- ble _0202086C
- add r4, r7, #0x0
- add r6, r7, #0x0
-_0202084C:
- ldr r0, [r5, #0x0]
- add r0, r0, r4
- bl FUN_0201FE6C
- ldr r0, [r5, #0x0]
- add r7, r7, #0x1
- add r1, r0, r4
- ldr r0, [r5, #0x8]
- str r1, [r0, r6]
- mov r0, #0x41
- lsl r0, r0, #0x2
- add r4, r4, r0
- ldr r0, [r5, #0x4]
- add r6, r6, #0x4
- cmp r7, r0
- blt _0202084C
-_0202086C:
- mov r0, #0x0
- str r0, [r5, #0xc]
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02020874
-FUN_02020874: ; 0x02020874
- ldr r3, [r0, #0xc]
- ldr r1, [r0, #0x4]
- cmp r3, r1
- blt _02020880
- mov r0, #0x0
- bx lr
-_02020880:
- ldr r2, [r0, #0x8]
- lsl r1, r3, #0x2
- ldr r2, [r2, r1]
- add r1, r3, #0x1
- str r1, [r0, #0xc]
- add r0, r2, #0x0
- bx lr
- .balign 4
-
- thumb_func_start FUN_02020890
-FUN_02020890: ; 0x02020890
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldr r0, [r5, #0xc]
- add r4, r1, #0x0
- cmp r0, #0x0
- bgt _020208A0
- mov r0, #0x0
- pop {r3-r5, pc}
-_020208A0:
- add r0, r4, #0x0
- bl FUN_0201FE6C
- ldr r0, [r5, #0xc]
- sub r0, r0, #0x1
- str r0, [r5, #0xc]
- ldr r1, [r5, #0x8]
- lsl r0, r0, #0x2
- str r4, [r1, r0]
- mov r0, #0x1
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_020208B8
-FUN_020208B8: ; 0x020208B8
- push {r4-r7}
- ldrb r3, [r0, #0x0]
- mov r4, #0x0
- cmp r3, #0xff
- beq _020208FA
-_020208C2:
- ldrb r7, [r0, #0x2]
- ldrb r3, [r0, #0x3]
- ldrb r5, [r0, #0x0]
- sub r6, r1, r7
- sub r3, r3, r7
- cmp r6, r3
- bhs _020208D4
- mov r6, #0x1
- b _020208D6
-_020208D4:
- mov r6, #0x0
-_020208D6:
- ldrb r7, [r0, #0x1]
- sub r3, r2, r5
- sub r5, r7, r5
- cmp r3, r5
- bhs _020208E4
- mov r3, #0x1
- b _020208E6
-_020208E4:
- mov r3, #0x0
-_020208E6:
- tst r3, r6
- beq _020208F0
- add r0, r4, #0x0
- pop {r4-r7}
- bx lr
-_020208F0:
- add r0, r0, #0x4
- ldrb r3, [r0, #0x0]
- add r4, r4, #0x1
- cmp r3, #0xff
- bne _020208C2
-_020208FA:
- mov r0, #0x0
- mvn r0, r0
- pop {r4-r7}
- bx lr
- .balign 4
-
- thumb_func_start FUN_02020904
-FUN_02020904: ; 0x02020904
- push {r3-r4}
- ldrb r3, [r0, #0x1]
- sub r4, r3, r1
- ldrb r1, [r0, #0x2]
- sub r3, r1, r2
- ldrb r2, [r0, #0x3]
- add r1, r4, #0x0
- add r0, r3, #0x0
- mul r1, r4
- mul r0, r3
- add r1, r1, r0
- add r0, r2, #0x0
- mul r0, r2
- cmp r1, r0
- bhs _02020928
- mov r0, #0x1
- pop {r3-r4}
- bx lr
-_02020928:
- mov r0, #0x0
- pop {r3-r4}
- bx lr
- .balign 4
-
- thumb_func_start FUN_02020930
-FUN_02020930: ; 0x02020930
- push {r4-r5}
- ldrb r5, [r0, #0x2]
- ldrb r3, [r0, #0x0]
- sub r4, r1, r5
- ldrb r1, [r0, #0x3]
- sub r1, r1, r5
- cmp r4, r1
- bhs _02020944
- mov r4, #0x1
- b _02020946
-_02020944:
- mov r4, #0x0
-_02020946:
- ldrb r0, [r0, #0x1]
- sub r1, r2, r3
- sub r0, r0, r3
- cmp r1, r0
- bhs _02020954
- mov r0, #0x1
- b _02020956
-_02020954:
- mov r0, #0x0
-_02020956:
- tst r0, r4
- beq _02020960
- mov r0, #0x1
- pop {r4-r5}
- bx lr
-_02020960:
- mov r0, #0x0
- pop {r4-r5}
- bx lr
- .balign 4
-
- thumb_func_start FUN_02020968
-FUN_02020968: ; 0x02020968
- push {r3, lr}
- ldr r2, _02020984 ; =0x021C48F8
- ldrh r1, [r2, #0x22]
- cmp r1, #0x0
- beq _0202097C
- ldrh r1, [r2, #0x1c]
- ldrh r2, [r2, #0x1e]
- bl FUN_020208B8
- pop {r3, pc}
-_0202097C:
- mov r0, #0x0
- mvn r0, r0
- pop {r3, pc}
- nop
-_02020984: .word 0x021C48F8
-
- thumb_func_start FUN_02020988
-FUN_02020988: ; 0x02020988
- push {r3, lr}
- ldr r2, _020209A4 ; =0x021C48F8
- ldrh r1, [r2, #0x20]
- cmp r1, #0x0
- beq _0202099C
- ldrh r1, [r2, #0x1c]
- ldrh r2, [r2, #0x1e]
- bl FUN_020208B8
- pop {r3, pc}
-_0202099C:
- mov r0, #0x0
- mvn r0, r0
- pop {r3, pc}
- nop
-_020209A4: .word 0x021C48F8
-
- thumb_func_start FUN_020209A8
-FUN_020209A8: ; 0x020209A8
- push {r3-r7, lr}
- ldr r7, _020209F0 ; =0x021C48F8
- add r5, r0, #0x0
- ldrh r0, [r7, #0x22]
- cmp r0, #0x0
- beq _020209EA
- mov r6, #0x0
- add r4, r5, #0x0
-_020209B8:
- ldrb r0, [r5, #0x0]
- cmp r0, #0xfe
- bne _020209D0
- ldrh r1, [r7, #0x1c]
- ldrh r2, [r7, #0x1e]
- add r0, r4, #0x0
- bl FUN_02020904
- cmp r0, #0x0
- beq _020209E2
- add r0, r6, #0x0
- pop {r3-r7, pc}
-_020209D0:
- ldrh r1, [r7, #0x1c]
- ldrh r2, [r7, #0x1e]
- add r0, r4, #0x0
- bl FUN_02020930
- cmp r0, #0x0
- beq _020209E2
- add r0, r6, #0x0
- pop {r3-r7, pc}
-_020209E2:
- add r5, r5, #0x4
- add r4, r4, #0x4
- add r6, r6, #0x1
- b _020209B8
-_020209EA:
- mov r0, #0x0
- mvn r0, r0
- pop {r3-r7, pc}
- .balign 4
-_020209F0: .word 0x021C48F8
-
- thumb_func_start FUN_020209F4
-FUN_020209F4: ; 0x020209F4
- push {r3-r7, lr}
- ldr r7, _02020A3C ; =0x021C48F8
- add r5, r0, #0x0
- ldrh r0, [r7, #0x20]
- cmp r0, #0x0
- beq _02020A36
- mov r6, #0x0
- add r4, r5, #0x0
-_02020A04:
- ldrb r0, [r5, #0x0]
- cmp r0, #0xfe
- bne _02020A1C
- ldrh r1, [r7, #0x1c]
- ldrh r2, [r7, #0x1e]
- add r0, r4, #0x0
- bl FUN_02020904
- cmp r0, #0x0
- beq _02020A2E
- add r0, r6, #0x0
- pop {r3-r7, pc}
-_02020A1C:
- ldrh r1, [r7, #0x1c]
- ldrh r2, [r7, #0x1e]
- add r0, r4, #0x0
- bl FUN_02020930
- cmp r0, #0x0
- beq _02020A2E
- add r0, r6, #0x0
- pop {r3-r7, pc}
-_02020A2E:
- add r5, r5, #0x4
- add r4, r4, #0x4
- add r6, r6, #0x1
- b _02020A04
-_02020A36:
- mov r0, #0x0
- mvn r0, r0
- pop {r3-r7, pc}
- .balign 4
-_02020A3C: .word 0x021C48F8
-
- thumb_func_start FUN_02020A40
-FUN_02020A40: ; 0x02020A40
- push {r3, lr}
- ldr r2, _02020A68 ; =0x021C48F8
- ldrh r1, [r2, #0x22]
- cmp r1, #0x0
- beq _02020A62
- ldrb r1, [r0, #0x0]
- cmp r1, #0xfe
- ldrh r1, [r2, #0x1c]
- bne _02020A5A
- ldrh r2, [r2, #0x1e]
- bl FUN_02020904
- pop {r3, pc}
-_02020A5A:
- ldrh r2, [r2, #0x1e]
- bl FUN_02020930
- pop {r3, pc}
-_02020A62:
- mov r0, #0x0
- pop {r3, pc}
- nop
-_02020A68: .word 0x021C48F8
-
- thumb_func_start FUN_02020A6C
-FUN_02020A6C: ; 0x02020A6C
- push {r3, lr}
- ldr r2, _02020A94 ; =0x021C48F8
- ldrh r1, [r2, #0x20]
- cmp r1, #0x0
- beq _02020A8E
- ldrb r1, [r0, #0x0]
- cmp r1, #0xfe
- ldrh r1, [r2, #0x1c]
- bne _02020A86
- ldrh r2, [r2, #0x1e]
- bl FUN_02020904
- pop {r3, pc}
-_02020A86:
- ldrh r2, [r2, #0x1e]
- bl FUN_02020930
- pop {r3, pc}
-_02020A8E:
- mov r0, #0x0
- pop {r3, pc}
- nop
-_02020A94: .word 0x021C48F8
-
- thumb_func_start FUN_02020A98
-FUN_02020A98: ; 0x02020A98
- ldr r0, _02020AA0 ; =0x021C48F8
- ldrh r0, [r0, #0x22]
- bx lr
- nop
-_02020AA0: .word 0x021C48F8
-
- thumb_func_start FUN_02020AA4
-FUN_02020AA4: ; 0x02020AA4
- ldr r0, _02020AAC ; =0x021C48F8
- ldrh r0, [r0, #0x20]
- bx lr
- nop
-_02020AAC: .word 0x021C48F8
-
- thumb_func_start FUN_02020AB0
-FUN_02020AB0: ; 0x02020AB0
- ldr r2, _02020AC8 ; =0x021C48F8
- ldrh r3, [r2, #0x22]
- cmp r3, #0x0
- beq _02020AC4
- ldrh r3, [r2, #0x1c]
- str r3, [r0, #0x0]
- ldrh r0, [r2, #0x1e]
- str r0, [r1, #0x0]
- mov r0, #0x1
- bx lr
-_02020AC4:
- mov r0, #0x0
- bx lr
- .balign 4
-_02020AC8: .word 0x021C48F8
-
- thumb_func_start FUN_02020ACC
-FUN_02020ACC: ; 0x02020ACC
- ldr r2, _02020AE4 ; =0x021C48F8
- ldrh r3, [r2, #0x20]
- cmp r3, #0x0
- beq _02020AE0
- ldrh r3, [r2, #0x1c]
- str r3, [r0, #0x0]
- ldrh r0, [r2, #0x1e]
- str r0, [r1, #0x0]
- mov r0, #0x1
- bx lr
-_02020AE0:
- mov r0, #0x0
- bx lr
- .balign 4
-_02020AE4: .word 0x021C48F8
-
- thumb_func_start FUN_02020AE8
-FUN_02020AE8: ; 0x02020AE8
- push {r3, lr}
- ldrb r3, [r0, #0x0]
- cmp r3, #0xfe
- bne _02020AF6
- bl FUN_02020904
- pop {r3, pc}
-_02020AF6:
- bl FUN_02020930
- pop {r3, pc}
-
- thumb_func_start FUN_02020AFC
-FUN_02020AFC: ; 0x02020AFC
- push {r3, lr}
- ldr r0, _02020B24 ; =0x021C59B0
- mov r2, #0x0
- str r2, [r0, #0x4]
- str r2, [r0, #0x8]
- ldr r1, _02020B28 ; =0x0400010E
- str r2, [r0, #0x0]
- strh r2, [r1, #0x0]
- sub r0, r1, #0x2
- strh r2, [r0, #0x0]
- mov r0, #0xc1
- strh r0, [r1, #0x0]
- ldr r1, _02020B2C ; =FUN_02020B30
- mov r0, #0x40
- bl OS_SetIrqFunction
- mov r0, #0x40
- bl OS_EnableIrqMask
- pop {r3, pc}
- .balign 4
-_02020B24: .word 0x021C59B0
-_02020B28: .word 0x0400010E
-_02020B2C: .word FUN_02020B30
-
- thumb_func_start FUN_02020B30
-FUN_02020B30: ; 0x02020B30
- ldr r0, _02020B68 ; =0x021C59B0
- mov r3, #0x0
- ldr r1, [r0, #0x4]
- ldr r2, [r0, #0x8]
- add r1, r1, #0x1
- adc r2, r3
- str r1, [r0, #0x4]
- str r2, [r0, #0x8]
- ldr r1, [r0, #0x0]
- cmp r1, #0x0
- beq _02020B54
- ldr r2, _02020B6C ; =0x0400010E
- strh r3, [r2, #0x0]
- sub r1, r2, #0x2
- strh r3, [r1, #0x0]
- mov r1, #0xc1
- strh r1, [r2, #0x0]
- str r3, [r0, #0x0]
-_02020B54:
- ldr r3, _02020B70 ; =0x027E0000
- ldr r1, _02020B74 ; =0x00003FF8
- mov r0, #0x40
- ldr r2, [r3, r1]
- orr r2, r0
- str r2, [r3, r1]
- ldr r3, _02020B78 ; =OS_SetIrqFunction
- ldr r1, _02020B7C ; =FUN_02020B30
- bx r3
- nop
-_02020B68: .word 0x021C59B0
-_02020B6C: .word 0x0400010E
-_02020B70: .word 0x027E0000
-_02020B74: .word 0x00003FF8
-_02020B78: .word OS_SetIrqFunction
-_02020B7C: .word FUN_02020B30
-
- thumb_func_start FUN_02020B80
-FUN_02020B80: ; 0x02020B80
- push {r4-r5, lr}
- sub sp, #0xc
- bl OS_DisableInterrupts
- ldr r1, _02020BE4 ; =0x0400010C
- add r3, sp, #0x0
- ldrh r1, [r1, #0x0]
- ldr r2, _02020BE8 ; =0x0000FFFF
- strh r1, [r3, #0x0]
- ldr r1, _02020BEC ; =0x021C59B0
- ldr r5, [r1, #0x4]
- ldr r4, [r1, #0x8]
- mov r1, #0x0
- mvn r1, r1
- and r1, r5
- str r1, [sp, #0x4]
- and r2, r4
- ldr r1, _02020BF0 ; =0x04000214
- str r2, [sp, #0x8]
- ldr r2, [r1, #0x0]
- mov r1, #0x40
- tst r2, r1
- beq _02020BC4
- ldrh r2, [r3, #0x0]
- lsl r1, r1, #0x9
- tst r1, r2
- bne _02020BC4
- ldr r2, [sp, #0x4]
- mov r1, #0x0
- ldr r3, [sp, #0x8]
- add r2, r2, #0x1
- adc r3, r1
- str r2, [sp, #0x4]
- str r3, [sp, #0x8]
-_02020BC4:
- bl OS_RestoreInterrupts
- ldr r2, [sp, #0x4]
- ldr r1, [sp, #0x8]
- lsr r0, r2, #0x10
- lsl r1, r1, #0x10
- orr r1, r0
- add r0, sp, #0x0
- lsl r3, r2, #0x10
- ldrh r2, [r0, #0x0]
- asr r0, r2, #0x1f
- orr r1, r0
- add r0, r3, #0x0
- orr r0, r2
- add sp, #0xc
- pop {r4-r5, pc}
- .balign 4
-_02020BE4: .word 0x0400010C
-_02020BE8: .word 0x0000FFFF
-_02020BEC: .word 0x021C59B0
-_02020BF0: .word 0x04000214
-
- thumb_func_start FUN_02020BF4
-FUN_02020BF4: ; 0x02020BF4
- ldr r3, _02020BF8 ; =FUN_02020B80
- bx r3
- .balign 4
-_02020BF8: .word FUN_02020B80
-
- thumb_func_start FUN_02020BFC
-FUN_02020BFC: ; 0x02020BFC
- push {r3, lr}
- lsr r2, r0, #0x1a
- lsl r1, r1, #0x6
- orr r1, r2
- ldr r2, _02020C10 ; =0x000082EA
- lsl r0, r0, #0x6
- mov r3, #0x0
- bl _ll_udiv
- pop {r3, pc}
- .balign 4
-_02020C10: .word 0x000082EA
-
- thumb_func_start FUN_02020C14
-FUN_02020C14: ; 0x02020C14
- push {r3, lr}
- lsr r2, r0, #0x1a
- lsl r1, r1, #0x6
- orr r1, r2
- ldr r2, _02020C28 ; =0x01FF6210
- lsl r0, r0, #0x6
- mov r3, #0x0
- bl _ll_udiv
- pop {r3, pc}
- .balign 4
-_02020C28: .word 0x01FF6210
-
- thumb_func_start ErrorHandling
-ErrorHandling: ; 0x02020C2C
- push {r3, lr}
- bl FUN_02031810
- cmp r0, #0x0
- beq _02020C42
- bl OS_GetProcMode
- cmp r0, #0x12
- beq _02020C42
- bl FUN_0208A9B8
-_02020C42:
- pop {r3, pc}
-
- thumb_func_start FUN_02020C44
-FUN_02020C44: ; 0x02020C44
- push {r3-r7, lr}
- add r4, r1, #0x0
- add r7, r0, #0x0
- add r0, r4, #0x0
- mov r1, #0xc
- bl FUN_02016998
- add r6, r0, #0x0
- bne _02020C5A
- bl ErrorHandling
-_02020C5A:
- add r0, r4, #0x0
- lsl r1, r7, #0x3
- bl FUN_02016998
- str r0, [r6, #0x0]
- cmp r0, #0x0
- bne _02020C6C
- bl ErrorHandling
-_02020C6C:
- mov r4, #0x0
- cmp r7, #0x0
- ble _02020C84
- add r5, r4, #0x0
-_02020C74:
- ldr r0, [r6, #0x0]
- add r0, r0, r5
- bl FUN_02020E78
- add r4, r4, #0x1
- add r5, #0x8
- cmp r4, r7
- blt _02020C74
-_02020C84:
- str r7, [r6, #0x4]
- mov r0, #0x0
- str r0, [r6, #0x8]
- add r0, r6, #0x0
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02020C90
-FUN_02020C90: ; 0x02020C90
- push {r4, lr}
- add r4, r0, #0x0
- bne _02020C9A
- bl ErrorHandling
-_02020C9A:
- add r0, r4, #0x0
- bl FUN_02020D9C
- ldr r0, [r4, #0x0]
- bl FUN_02016A18
- add r0, r4, #0x0
- bl FUN_02016A18
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02020CB0
-FUN_02020CB0: ; 0x02020CB0
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- cmp r5, #0x0
- bne _02020CBE
- bl ErrorHandling
-_02020CBE:
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02020DD8
- cmp r0, #0x0
- bne _02020CCE
- mov r0, #0x1
- pop {r3-r5, pc}
-_02020CCE:
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02020CD4
-FUN_02020CD4: ; 0x02020CD4
- push {r3-r7, lr}
- add r5, r0, #0x0
- add r7, r1, #0x0
- add r6, r2, #0x0
- cmp r5, #0x0
- bne _02020CE4
- bl ErrorHandling
-_02020CE4:
- add r0, r5, #0x0
- bl FUN_02020E48
- add r4, r0, #0x0
- bne _02020CF2
- bl ErrorHandling
-_02020CF2:
- add r0, r5, #0x0
- add r1, r6, #0x0
- bl FUN_02020CB0
- cmp r0, #0x1
- beq _02020D02
- bl ErrorHandling
-_02020D02:
- str r7, [r4, #0x4]
- str r6, [r4, #0x0]
- ldr r0, [r5, #0x8]
- add r0, r0, #0x1
- str r0, [r5, #0x8]
- add r0, r4, #0x0
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02020D10
-FUN_02020D10: ; 0x02020D10
- push {r3-r7, lr}
- add r5, r0, #0x0
- add r6, r1, #0x0
- add r7, r2, #0x0
- str r3, [sp, #0x0]
- cmp r5, #0x0
- bne _02020D22
- bl ErrorHandling
-_02020D22:
- cmp r6, #0x0
- bne _02020D2A
- bl ErrorHandling
-_02020D2A:
- add r0, r5, #0x0
- bl FUN_02020E48
- add r4, r0, #0x0
- bne _02020D38
- bl ErrorHandling
-_02020D38:
- add r0, r5, #0x0
- add r1, r7, #0x0
- bl FUN_02020CB0
- cmp r0, #0x1
- beq _02020D48
- bl ErrorHandling
-_02020D48:
- ldr r0, [sp, #0x0]
- add r1, r6, #0x0
- bl FUN_020161A4
- str r0, [r4, #0x4]
- cmp r0, #0x0
- bne _02020D5A
- bl ErrorHandling
-_02020D5A:
- str r7, [r4, #0x0]
- ldr r0, [r5, #0x8]
- add r0, r0, #0x1
- str r0, [r5, #0x8]
- add r0, r4, #0x0
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02020D68
-FUN_02020D68: ; 0x02020D68
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- cmp r5, #0x0
- bne _02020D76
- bl ErrorHandling
-_02020D76:
- cmp r4, #0x0
- bne _02020D7E
- bl ErrorHandling
-_02020D7E:
- ldr r0, [r4, #0x4]
- cmp r0, #0x0
- beq _02020D8C
- bl FUN_02016A18
- mov r0, #0x0
- str r0, [r4, #0x4]
-_02020D8C:
- mov r0, #0x0
- mvn r0, r0
- str r0, [r4, #0x0]
- ldr r0, [r5, #0x8]
- sub r0, r0, #0x1
- str r0, [r5, #0x8]
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02020D9C
-FUN_02020D9C: ; 0x02020D9C
- push {r3-r7, lr}
- add r5, r0, #0x0
- bne _02020DA6
- bl ErrorHandling
-_02020DA6:
- ldr r0, [r5, #0x0]
- cmp r0, #0x0
- bne _02020DB0
- bl ErrorHandling
-_02020DB0:
- ldr r0, [r5, #0x4]
- mov r6, #0x0
- cmp r0, #0x0
- ble _02020DD6
- add r4, r6, #0x0
- sub r7, r6, #0x1
-_02020DBC:
- ldr r1, [r5, #0x0]
- ldr r0, [r1, r4]
- cmp r0, r7
- beq _02020DCC
- add r0, r5, #0x0
- add r1, r1, r4
- bl FUN_02020D68
-_02020DCC:
- ldr r0, [r5, #0x4]
- add r6, r6, #0x1
- add r4, #0x8
- cmp r6, r0
- blt _02020DBC
-_02020DD6:
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02020DD8
-FUN_02020DD8: ; 0x02020DD8
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- cmp r5, #0x0
- bne _02020DE6
- bl ErrorHandling
-_02020DE6:
- ldr r6, [r5, #0x4]
- mov r1, #0x0
- cmp r6, #0x0
- ble _02020E06
- ldr r3, [r5, #0x0]
- add r2, r3, #0x0
-_02020DF2:
- ldr r0, [r2, #0x0]
- cmp r4, r0
- bne _02020DFE
- lsl r0, r1, #0x3
- add r0, r3, r0
- pop {r4-r6, pc}
-_02020DFE:
- add r1, r1, #0x1
- add r2, #0x8
- cmp r1, r6
- blt _02020DF2
-_02020E06:
- mov r0, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02020E0C
-FUN_02020E0C: ; 0x02020E0C
- push {r4, lr}
- add r4, r0, #0x0
- bne _02020E16
- bl ErrorHandling
-_02020E16:
- ldr r0, [r4, #0x4]
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02020E1C
-FUN_02020E1C: ; 0x02020E1C
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- cmp r5, #0x0
- bne _02020E2A
- bl ErrorHandling
-_02020E2A:
- ldr r0, [r5, #0x4]
- cmp r0, #0x0
- beq _02020E34
- bl FUN_02016A18
-_02020E34:
- str r4, [r5, #0x4]
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02020E38
-FUN_02020E38: ; 0x02020E38
- push {r4, lr}
- add r4, r0, #0x0
- bne _02020E42
- bl ErrorHandling
-_02020E42:
- ldr r0, [r4, #0x0]
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02020E48
-FUN_02020E48: ; 0x02020E48
- push {r3-r5, lr}
- add r4, r0, #0x0
- bne _02020E52
- bl ErrorHandling
-_02020E52:
- ldr r5, [r4, #0x4]
- mov r2, #0x0
- cmp r5, #0x0
- ble _02020E74
- ldr r4, [r4, #0x0]
- sub r0, r2, #0x1
- add r3, r4, #0x0
-_02020E60:
- ldr r1, [r3, #0x0]
- cmp r1, r0
- bne _02020E6C
- lsl r0, r2, #0x3
- add r0, r4, r0
- pop {r3-r5, pc}
-_02020E6C:
- add r2, r2, #0x1
- add r3, #0x8
- cmp r2, r5
- blt _02020E60
-_02020E74:
- mov r0, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02020E78
-FUN_02020E78: ; 0x02020E78
- push {r4, lr}
- add r4, r0, #0x0
- bne _02020E82
- bl ErrorHandling
-_02020E82:
- mov r0, #0x0
- mvn r0, r0
- str r0, [r4, #0x0]
- mov r0, #0x0
- str r0, [r4, #0x4]
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02020E90
-FUN_02020E90: ; 0x02020E90
- push {r3-r7, lr}
- add r4, r1, #0x0
- add r6, r0, #0x0
- add r0, r4, #0x0
- mov r1, #0x8
- bl FUN_02016998
- add r7, r0, #0x0
- add r0, r6, #0x0
- add r1, r4, #0x0
- bl FUN_02020C44
- mov r1, #0x18
- str r0, [r7, #0x0]
- add r0, r4, #0x0
- mul r1, r6
- bl FUN_02016998
- mov r4, #0x0
- str r0, [r7, #0x4]
- cmp r6, #0x0
- ble _02020ECE
- add r5, r4, #0x0
-_02020EBE:
- ldr r0, [r7, #0x4]
- add r0, r0, r5
- bl FUN_0202120C
- add r4, r4, #0x1
- add r5, #0x18
- cmp r4, r6
- blt _02020EBE
-_02020ECE:
- add r0, r7, #0x0
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02020ED4
-FUN_02020ED4: ; 0x02020ED4
- push {r4, lr}
- add r4, r0, #0x0
- bne _02020EDE
- bl ErrorHandling
-_02020EDE:
- add r0, r4, #0x0
- bl FUN_02021010
- ldr r0, [r4, #0x0]
- bl FUN_02020C90
- ldr r0, [r4, #0x4]
- bl FUN_02016A18
- add r0, r4, #0x0
- bl FUN_02016A18
- pop {r4, pc}
-
- thumb_func_start FUN_02020EF8
-FUN_02020EF8: ; 0x02020EF8
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- cmp r5, #0x0
- bne _02020F06
- bl ErrorHandling
-_02020F06:
- ldr r0, [r5, #0x0]
- add r1, r4, #0x0
- bl FUN_02020CB0
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02020F10
-FUN_02020F10: ; 0x02020F10
- push {r3-r7, lr}
- add r5, r0, #0x0
- add r6, r1, #0x0
- add r7, r3, #0x0
- str r2, [sp, #0x0]
- cmp r5, #0x0
- bne _02020F22
- bl ErrorHandling
-_02020F22:
- add r0, r5, #0x0
- bl FUN_020211DC
- add r4, r0, #0x0
- strh r7, [r4, #0x16]
- ldrh r0, [r4, #0x16]
- cmp r0, #0x1
- bne _02020F40
- ldr r1, [sp, #0x18]
- add r0, r6, #0x0
- bl FUN_02021310
- add r1, r0, #0x0
- str r6, [r4, #0x10]
- b _02020F46
-_02020F40:
- mov r0, #0x0
- add r1, r6, #0x0
- str r0, [r4, #0x10]
-_02020F46:
- ldr r0, [r5, #0x0]
- ldr r2, [sp, #0x0]
- bl FUN_02020CD4
- str r0, [r4, #0x0]
- add r0, r4, #0x0
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02020F54
-FUN_02020F54: ; 0x02020F54
- push {r3-r4, lr}
- sub sp, #0x4
- ldr r4, [sp, #0x10]
- str r4, [sp, #0x0]
- bl FUN_02020F10
- add r4, r0, #0x0
- bl FUN_02021174
- add r0, r4, #0x0
- add sp, #0x4
- pop {r3-r4, pc}
-
- thumb_func_start FUN_02020F6C
-FUN_02020F6C: ; 0x02020F6C
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- cmp r5, #0x0
- bne _02020F7A
- bl ErrorHandling
-_02020F7A:
- cmp r4, #0x0
- bne _02020F82
- bl ErrorHandling
-_02020F82:
- ldrh r0, [r4, #0x16]
- cmp r0, #0x1
- bne _02020F98
- ldrh r0, [r4, #0x14]
- cmp r0, #0x0
- bne _02020F98
- ldr r0, [r4, #0x10]
- bl FUN_02016A18
- mov r0, #0x0
- strh r0, [r4, #0x16]
-_02020F98:
- ldr r1, [r4, #0x0]
- cmp r1, #0x0
- beq _02020FA4
- ldr r0, [r5, #0x0]
- bl FUN_02020D68
-_02020FA4:
- ldr r0, [r4, #0x4]
- cmp r0, #0x0
- beq _02020FB8
- ldr r1, _02020FE8 ; =0x021064BC
- ldr r1, [r1, #0x0]
- blx r1
- cmp r0, #0x0
- beq _02020FB8
- bl ErrorHandling
-_02020FB8:
- ldr r0, [r4, #0x8]
- cmp r0, #0x0
- beq _02020FCC
- ldr r1, _02020FE8 ; =0x021064BC
- ldr r1, [r1, #0x0]
- blx r1
- cmp r0, #0x0
- beq _02020FCC
- bl ErrorHandling
-_02020FCC:
- ldr r0, [r4, #0xc]
- cmp r0, #0x0
- beq _02020FE0
- ldr r1, _02020FEC ; =0x021064C4
- ldr r1, [r1, #0x0]
- blx r1
- cmp r0, #0x0
- beq _02020FE0
- bl ErrorHandling
-_02020FE0:
- add r0, r4, #0x0
- bl FUN_0202120C
- pop {r3-r5, pc}
- .balign 4
-_02020FE8: .word 0x021064BC
-_02020FEC: .word 0x021064C4
-
- thumb_func_start FUN_02020FF0
-FUN_02020FF0: ; 0x02020FF0
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- cmp r5, #0x0
- bne _02020FFE
- bl ErrorHandling
-_02020FFE:
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02021050
- add r1, r0, #0x0
- add r0, r5, #0x0
- bl FUN_02020F6C
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02021010
-FUN_02021010: ; 0x02021010
- push {r4-r6, lr}
- add r5, r0, #0x0
- bne _0202101A
- bl ErrorHandling
-_0202101A:
- ldr r0, [r5, #0x4]
- cmp r0, #0x0
- bne _02021024
- bl ErrorHandling
-_02021024:
- ldr r0, [r5, #0x0]
- mov r6, #0x0
- ldr r0, [r0, #0x4]
- cmp r0, #0x0
- ble _0202104C
- add r4, r6, #0x0
-_02021030:
- ldr r1, [r5, #0x4]
- ldr r0, [r1, r4]
- cmp r0, #0x0
- beq _02021040
- add r0, r5, #0x0
- add r1, r1, r4
- bl FUN_02020F6C
-_02021040:
- ldr r0, [r5, #0x0]
- add r6, r6, #0x1
- ldr r0, [r0, #0x4]
- add r4, #0x18
- cmp r6, r0
- blt _02021030
-_0202104C:
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02021050
-FUN_02021050: ; 0x02021050
- push {r3-r7, lr}
- add r6, r0, #0x0
- add r7, r1, #0x0
- cmp r6, #0x0
- bne _0202105E
- bl ErrorHandling
-_0202105E:
- ldr r0, [r6, #0x0]
- mov r4, #0x0
- ldr r0, [r0, #0x4]
- cmp r0, #0x0
- ble _02021092
- add r5, r4, #0x0
-_0202106A:
- ldr r1, [r6, #0x4]
- ldr r0, [r1, r5]
- cmp r0, #0x0
- beq _02021086
- add r0, r1, r5
- bl FUN_02021098
- cmp r0, r7
- bne _02021086
- mov r0, #0x18
- ldr r1, [r6, #0x4]
- mul r0, r4
- add r0, r1, r0
- pop {r3-r7, pc}
-_02021086:
- ldr r0, [r6, #0x0]
- add r4, r4, #0x1
- ldr r0, [r0, #0x4]
- add r5, #0x18
- cmp r4, r0
- blt _0202106A
-_02021092:
- mov r0, #0x0
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02021098
-FUN_02021098: ; 0x02021098
- push {r4, lr}
- add r4, r0, #0x0
- bne _020210A2
- bl ErrorHandling
-_020210A2:
- ldr r0, [r4, #0x0]
- bl FUN_02020E38
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_020210AC
-FUN_020210AC: ; 0x020210AC
- push {r4, lr}
- add r4, r0, #0x0
- bne _020210B6
- bl ErrorHandling
-_020210B6:
- add r0, r4, #0x0
- bl FUN_02021220
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_020210C0
-FUN_020210C0: ; 0x020210C0
- push {r4, lr}
- add r4, r0, #0x0
- bne _020210CA
- bl ErrorHandling
-_020210CA:
- ldrh r0, [r4, #0x14]
- cmp r0, #0x0
- beq _020210D4
- bl ErrorHandling
-_020210D4:
- ldr r0, [r4, #0xc]
- cmp r0, #0x0
- bne _020210E0
- bl ErrorHandling
- pop {r4, pc}
-_020210E0:
- add r0, r4, #0x0
- bl FUN_02021230
- add r1, r4, #0x0
- bl FUN_020212B8
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_020210F0
-FUN_020210F0: ; 0x020210F0
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- cmp r5, #0x0
- bne _020210FE
- bl ErrorHandling
-_020210FE:
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02021050
- bl FUN_020210C0
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0202110C
-FUN_0202110C: ; 0x0202110C
- push {r4, lr}
- add r4, r0, #0x0
- bne _02021116
- bl ErrorHandling
-_02021116:
- ldrh r0, [r4, #0x16]
- cmp r0, #0x0
- bne _02021122
- bl ErrorHandling
- pop {r4, pc}
-_02021122:
- ldrh r0, [r4, #0x14]
- cmp r0, #0x0
- beq _0202112E
- bl ErrorHandling
- pop {r4, pc}
-_0202112E:
- add r0, r4, #0x0
- bl FUN_02021230
- bl FUN_020212F8
- add r0, r4, #0x0
- bl FUN_02021220
- ldr r1, [r4, #0x4]
- ldr r2, [r4, #0x8]
- ldr r3, [r4, #0xc]
- bl FUN_020212E4
- ldr r0, [r4, #0x10]
- bl FUN_02016A18
- mov r0, #0x0
- str r0, [r4, #0x10]
- mov r0, #0x1
- strh r0, [r4, #0x14]
- pop {r4, pc}
-
- thumb_func_start FUN_02021158
-FUN_02021158: ; 0x02021158
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- cmp r5, #0x0
- bne _02021166
- bl ErrorHandling
-_02021166:
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02021050
- bl FUN_0202110C
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02021174
-FUN_02021174: ; 0x02021174
- push {r4, lr}
- add r4, r0, #0x0
- bne _0202117E
- bl ErrorHandling
-_0202117E:
- ldrh r0, [r4, #0x14]
- cmp r0, #0x0
- beq _02021188
- bl ErrorHandling
-_02021188:
- ldr r0, [r4, #0xc]
- cmp r0, #0x0
- beq _02021194
- bl ErrorHandling
- pop {r4, pc}
-_02021194:
- add r0, r4, #0x0
- bl FUN_02021230
- add r2, r4, #0x0
- add r1, r4, #0x4
- add r4, #0xc
- add r2, #0x8
- add r3, r4, #0x0
- bl FUN_02021248
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_020211AC
-FUN_020211AC: ; 0x020211AC
- push {r4, lr}
- add r4, r0, #0x0
- bne _020211B6
- bl ErrorHandling
-_020211B6:
- ldr r0, [r4, #0x4]
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_020211BC
-FUN_020211BC: ; 0x020211BC
- push {r4, lr}
- add r4, r0, #0x0
- bne _020211C6
- bl ErrorHandling
-_020211C6:
- ldr r0, [r4, #0x8]
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_020211CC
-FUN_020211CC: ; 0x020211CC
- push {r4, lr}
- add r4, r0, #0x0
- bne _020211D6
- bl ErrorHandling
-_020211D6:
- ldr r0, [r4, #0xc]
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_020211DC
-FUN_020211DC: ; 0x020211DC
- push {r3-r4}
- ldr r1, [r0, #0x0]
- mov r2, #0x0
- ldr r4, [r1, #0x4]
- cmp r4, #0x0
- ble _02021204
- ldr r3, [r0, #0x4]
-_020211EA:
- ldr r1, [r3, #0x0]
- cmp r1, #0x0
- bne _020211FC
- ldr r1, [r0, #0x4]
- mov r0, #0x18
- mul r0, r2
- add r0, r1, r0
- pop {r3-r4}
- bx lr
-_020211FC:
- add r2, r2, #0x1
- add r3, #0x18
- cmp r2, r4
- blt _020211EA
-_02021204:
- mov r0, #0x0
- pop {r3-r4}
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202120C
-FUN_0202120C: ; 0x0202120C
- mov r1, #0x0
- str r1, [r0, #0x0]
- str r1, [r0, #0x4]
- str r1, [r0, #0x8]
- str r1, [r0, #0xc]
- strh r1, [r0, #0x14]
- str r1, [r0, #0x10]
- strh r1, [r0, #0x14]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02021220
-FUN_02021220: ; 0x02021220
- push {r3, lr}
- ldr r0, [r0, #0x0]
- bl FUN_02020E0C
- bl FUN_020BC0FC
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02021230
-FUN_02021230: ; 0x02021230
- push {r3, lr}
- ldrh r1, [r0, #0x16]
- cmp r1, #0x0
- bne _02021240
- ldr r0, [r0, #0x0]
- bl FUN_02020E0C
- b _02021242
-_02021240:
- ldr r0, [r0, #0x10]
-_02021242:
- bl FUN_020BC0FC
- pop {r3, pc}
-
- thumb_func_start FUN_02021248
-FUN_02021248: ; 0x02021248
- push {r4-r7, lr}
- sub sp, #0xc
- add r5, r0, #0x0
- str r1, [sp, #0x0]
- str r2, [sp, #0x4]
- str r3, [sp, #0x8]
- bl FUN_020B7E1C
- add r7, r0, #0x0
- add r0, r5, #0x0
- bl FUN_020B7E10
- add r6, r0, #0x0
- add r0, r5, #0x0
- bl FUN_020B7CE4
- add r4, r0, #0x0
- cmp r7, #0x0
- beq _0202127E
- ldr r3, _020212B0 ; =0x021064B8
- mov r1, #0x0
- ldr r3, [r3, #0x0]
- add r0, r7, #0x0
- add r2, r1, #0x0
- blx r3
- ldr r1, [sp, #0x0]
- str r0, [r1, #0x0]
-_0202127E:
- cmp r6, #0x0
- beq _02021292
- ldr r3, _020212B0 ; =0x021064B8
- add r0, r6, #0x0
- ldr r3, [r3, #0x0]
- mov r1, #0x1
- mov r2, #0x0
- blx r3
- ldr r1, [sp, #0x4]
- str r0, [r1, #0x0]
-_02021292:
- cmp r4, #0x0
- beq _020212AC
- ldr r3, _020212B4 ; =0x021064C0
- mov r1, #0x2
- ldrh r2, [r5, #0x20]
- lsl r1, r1, #0xe
- ldr r3, [r3, #0x0]
- and r1, r2
- add r0, r4, #0x0
- mov r2, #0x0
- blx r3
- ldr r1, [sp, #0x8]
- str r0, [r1, #0x0]
-_020212AC:
- add sp, #0xc
- pop {r4-r7, pc}
- .balign 4
-_020212B0: .word 0x021064B8
-_020212B4: .word 0x021064C0
-
- thumb_func_start FUN_020212B8
-FUN_020212B8: ; 0x020212B8
- push {r4, lr}
- add r3, r1, #0x0
- ldr r1, [r3, #0x4]
- ldr r2, [r3, #0x8]
- ldr r3, [r3, #0xc]
- add r4, r0, #0x0
- bl FUN_020212E4
- ldr r1, [r4, #0x4]
- add r0, r4, #0x0
- bl DC_FlushRange
- add r0, r4, #0x0
- mov r1, #0x1
- bl FUN_020B7D28
- add r0, r4, #0x0
- mov r1, #0x1
- bl FUN_020B7C78
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_020212E4
-FUN_020212E4: ; 0x020212E4
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r3, #0x0
- bl FUN_020B7DFC
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_020B7CDC
- pop {r3-r5, pc}
-
- thumb_func_start FUN_020212F8
-FUN_020212F8: ; 0x020212F8
- push {r4, lr}
- sub sp, #0x8
- add r4, r0, #0x0
- add r1, sp, #0x4
- add r2, sp, #0x0
- bl FUN_020B7CF0
- add r0, r4, #0x0
- bl FUN_020B7C58
- add sp, #0x8
- pop {r4, pc}
-
- thumb_func_start FUN_02021310
-FUN_02021310: ; 0x02021310
- push {r4-r6, lr}
- add r6, r0, #0x0
- add r4, r1, #0x0
- bl FUN_02021334
- add r5, r0, #0x0
- add r0, r4, #0x0
- add r1, r5, #0x0
- bl FUN_02016998
- add r1, r6, #0x0
- add r2, r5, #0x0
- add r4, r0, #0x0
- bl memcpy
- add r0, r4, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02021334
-FUN_02021334: ; 0x02021334
- push {r3-r5, lr}
- add r5, r0, #0x0
- bl FUN_020BC0FC
- add r4, r0, #0x0
- bne _02021344
- bl ErrorHandling
-_02021344:
- ldr r0, [r4, #0x14]
- add r0, r4, r0
- sub r0, r0, r5
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0202134C
-FUN_0202134C: ; 0x0202134C
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- bl FUN_020B33A0
- add r5, #0x80
- str r4, [r5, #0x0]
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0202135C
-FUN_0202135C: ; 0x0202135C
- push {r3-r7, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- add r6, r2, #0x0
- add r7, r3, #0x0
- bl FUN_020B3334
- add r2, r5, #0x0
- ldmia r4!, {r0-r1}
- stmia r2!, {r0-r1}
- ldmia r4!, {r0-r1}
- stmia r2!, {r0-r1}
- str r6, [r5, #0x28]
- ldr r0, [sp, #0x18]
- str r7, [r5, #0x2c]
- str r0, [r5, #0x34]
- ldr r0, [sp, #0x1c]
- str r0, [r5, #0x14]
- ldr r0, [sp, #0x20]
- cmp r0, #0x0
- beq _0202138C
- add r1, r5, #0x0
- bl FUN_020B3390
-_0202138C:
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02021390
-FUN_02021390: ; 0x02021390
- add r3, r0, #0x0
- add r2, r1, #0x0
- ldmia r2!, {r0-r1}
- stmia r3!, {r0-r1}
- ldmia r2!, {r0-r1}
- stmia r3!, {r0-r1}
- bx lr
- .balign 4
-
- thumb_func_start FUN_020213A0
-FUN_020213A0: ; 0x020213A0
- push {r3-r7, lr}
- sub sp, #0x60
- add r5, r1, #0x0
- add r6, r2, #0x0
- ldr r4, [r5, #0x10]
- ldr r3, [r6, #0x0]
- add r2, r0, #0x0
- sub r3, r4, r3
- ldrh r1, [r0, #0x2]
- mov r0, #0x3f
- str r3, [sp, #0x18]
- and r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- lsl r0, r0, #0x1a
- ldr r4, [r5, #0x14]
- ldr r3, [r6, #0x4]
- add r2, #0x8
- sub r3, r4, r3
- str r3, [sp, #0x14]
- asr r3, r1, #0xb
- mov r1, #0x1
- and r1, r3
- lsr r0, r0, #0x18
- cmp r1, #0x1
- bne _020213F4
- mov r0, #0x6
- ldrsh r0, [r2, r0]
- lsl r4, r0, #0xc
- mov r0, #0x2
- ldrsh r0, [r2, r0]
- lsl r0, r0, #0xc
- str r0, [sp, #0x10]
- mov r0, #0x4
- ldrsh r0, [r2, r0]
- lsl r0, r0, #0xc
- str r0, [sp, #0xc]
- mov r0, #0x0
- ldrsh r0, [r2, r0]
- lsl r0, r0, #0xc
- str r0, [sp, #0x8]
- b _02021400
-_020213F4:
- neg r1, r0
- lsl r0, r0, #0xc
- lsl r4, r1, #0xc
- str r0, [sp, #0x10]
- str r4, [sp, #0xc]
- str r0, [sp, #0x8]
-_02021400:
- ldr r0, [r5, #0xc]
- str r0, [sp, #0x1c]
- asr r0, r0, #0x1f
- str r0, [sp, #0x20]
- asr r0, r4, #0x1f
- str r0, [sp, #0x24]
- ldr r0, [r5, #0x4]
- ldr r1, [sp, #0x24]
- str r0, [sp, #0x28]
- asr r0, r0, #0x1f
- str r0, [sp, #0x2c]
- ldr r2, [sp, #0x28]
- ldr r3, [sp, #0x2c]
- add r0, r4, #0x0
- bl _ll_mul
- add r7, r1, #0x0
- str r0, [sp, #0x30]
- ldr r1, [sp, #0x24]
- ldr r2, [sp, #0x1c]
- ldr r3, [sp, #0x20]
- add r0, r4, #0x0
- bl _ll_mul
- add r2, r0, #0x0
- add r3, r1, #0x0
- mov r0, #0x2
- ldr r1, [sp, #0x30]
- mov r4, #0x0
- lsl r0, r0, #0xa
- add r0, r1, r0
- adc r7, r4
- lsl r1, r7, #0x14
- lsr r0, r0, #0xc
- orr r0, r1
- mov r1, #0x2
- lsl r1, r1, #0xa
- add r2, r2, r1
- adc r3, r4
- lsl r1, r3, #0x14
- lsr r2, r2, #0xc
- orr r2, r1
- add r1, r0, r2
- ldr r0, [sp, #0x14]
- ldr r2, [sp, #0x28]
- add r0, r0, r1
- str r0, [sp, #0x5c]
- ldr r0, [sp, #0x10]
- ldr r3, [sp, #0x2c]
- asr r0, r0, #0x1f
- str r0, [sp, #0x34]
- ldr r0, [sp, #0x10]
- ldr r1, [sp, #0x34]
- bl _ll_mul
- str r0, [sp, #0x38]
- add r4, r1, #0x0
- ldr r0, [sp, #0x10]
- ldr r1, [sp, #0x34]
- ldr r2, [sp, #0x1c]
- ldr r3, [sp, #0x20]
- bl _ll_mul
- mov r2, #0x2
- ldr r3, [sp, #0x38]
- lsl r2, r2, #0xa
- add r2, r3, r2
- ldr r3, _0202158C ; =0x00000000
- adc r4, r3
- lsl r3, r4, #0x14
- lsr r2, r2, #0xc
- orr r2, r3
- mov r3, #0x2
- lsl r3, r3, #0xa
- add r3, r0, r3
- ldr r0, _0202158C ; =0x00000000
- adc r1, r0
- lsl r0, r1, #0x14
- lsr r1, r3, #0xc
- orr r1, r0
- ldr r0, [sp, #0x14]
- add r1, r2, r1
- add r4, r0, r1
- ldr r0, [r5, #0x8]
- str r0, [sp, #0x3c]
- asr r0, r0, #0x1f
- str r0, [sp, #0x40]
- ldr r0, [sp, #0xc]
- asr r0, r0, #0x1f
- str r0, [sp, #0x44]
- ldr r0, [r5, #0x0]
- ldr r1, [sp, #0x44]
- str r0, [sp, #0x48]
- asr r0, r0, #0x1f
- str r0, [sp, #0x4c]
- ldr r0, [sp, #0xc]
- ldr r2, [sp, #0x48]
- ldr r3, [sp, #0x4c]
- bl _ll_mul
- str r0, [sp, #0x50]
- add r5, r1, #0x0
- ldr r0, [sp, #0xc]
- ldr r1, [sp, #0x44]
- ldr r2, [sp, #0x3c]
- ldr r3, [sp, #0x40]
- bl _ll_mul
- mov r2, #0x2
- ldr r3, [sp, #0x50]
- lsl r2, r2, #0xa
- add r2, r3, r2
- ldr r3, _0202158C ; =0x00000000
- adc r5, r3
- lsl r3, r5, #0x14
- lsr r2, r2, #0xc
- orr r2, r3
- mov r3, #0x2
- lsl r3, r3, #0xa
- add r3, r0, r3
- ldr r0, _0202158C ; =0x00000000
- adc r1, r0
- lsl r0, r1, #0x14
- lsr r1, r3, #0xc
- orr r1, r0
- ldr r0, [sp, #0x18]
- add r1, r2, r1
- add r5, r0, r1
- ldr r0, [sp, #0x8]
- asr r0, r0, #0x1f
- str r0, [sp, #0x54]
- ldr r0, [sp, #0x8]
- ldr r1, [sp, #0x54]
- ldr r2, [sp, #0x48]
- ldr r3, [sp, #0x4c]
- bl _ll_mul
- str r0, [sp, #0x58]
- str r1, [sp, #0x4]
- ldr r0, [sp, #0x8]
- ldr r1, [sp, #0x54]
- ldr r2, [sp, #0x3c]
- ldr r3, [sp, #0x40]
- bl _ll_mul
- mov r12, r0
- add r2, r1, #0x0
- mov r0, #0x2
- ldr r1, [sp, #0x58]
- lsl r0, r0, #0xa
- add r3, r1, r0
- ldr r1, [sp, #0x4]
- ldr r0, _0202158C ; =0x00000000
- adc r1, r0
- str r1, [sp, #0x4]
- lsl r0, r1, #0x14
- lsr r1, r3, #0xc
- orr r1, r0
- mov r0, #0x2
- lsl r0, r0, #0xa
- mov r3, r12
- add r0, r3, r0
- ldr r3, _0202158C ; =0x00000000
- adc r2, r3
- lsl r2, r2, #0x14
- lsr r0, r0, #0xc
- orr r0, r2
- add r1, r1, r0
- ldr r0, [sp, #0x18]
- add r0, r0, r1
- ldr r1, [sp, #0x5c]
- cmp r4, r1
- bge _02021560
- add r1, r4, #0x0
- ldr r4, [sp, #0x5c]
- str r1, [sp, #0x5c]
-_02021560:
- cmp r0, r5
- bge _0202156A
- add r1, r0, #0x0
- add r0, r5, #0x0
- add r5, r1, #0x0
-_0202156A:
- cmp r4, #0x0
- ble _02021586
- ldr r2, [r6, #0xc]
- ldr r1, [sp, #0x5c]
- cmp r1, r2
- bge _02021586
- cmp r0, #0x0
- ble _02021586
- ldr r0, [r6, #0x8]
- cmp r5, r0
- bge _02021586
- add sp, #0x60
- mov r0, #0x1
- pop {r3-r7, pc}
-_02021586:
- mov r0, #0x0
- add sp, #0x60
- pop {r3-r7, pc}
- .balign 4
-_0202158C: .word 0x00000000
-
- thumb_func_start FUN_02021590
-FUN_02021590: ; 0x02021590
- push {r3-r7, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- add r6, r1, #0x0
- ldr r0, [sp, #0x20]
- mov r1, #0x78
- add r7, r2, #0x0
- str r3, [sp, #0x4]
- bl FUN_02016998
- add r4, r0, #0x0
- beq _020215C0
- ldr r1, [sp, #0x20]
- ldr r3, [sp, #0x4]
- str r1, [sp, #0x0]
- add r1, r5, #0x0
- add r2, r6, #0x0
- bl FUN_02021600
- ldr r2, [sp, #0x20]
- add r0, r4, #0x0
- add r1, r7, #0x0
- bl FUN_020216D4
-_020215C0:
- add r0, r4, #0x0
- add sp, #0x8
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_020215C8
-FUN_020215C8: ; 0x020215C8
- push {r4, lr}
- add r4, r0, #0x0
- bl FUN_02021728
- add r0, r4, #0x0
- bl FUN_020216B8
- add r0, r4, #0x0
- bl FUN_02016A18
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_020215E0
-FUN_020215E0: ; 0x020215E0
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- ldr r1, [r5, #0x0]
- add r6, r2, #0x0
- cmp r1, r4
- beq _020215FC
- bl FUN_02021728
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r2, r6, #0x0
- bl FUN_020216D4
-_020215FC:
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02021600
-FUN_02021600: ; 0x02021600
- push {r3-r6, lr}
- sub sp, #0x4
- add r5, r0, #0x0
- add r0, r1, #0x0
- ldr r1, [sp, #0x18]
- add r4, r2, #0x0
- add r6, r3, #0x0
- bl FUN_02006670
- str r0, [r5, #0x54]
- cmp r0, #0x0
- beq _020216A6
- add r1, r5, #0x0
- add r1, #0x5c
- str r1, [sp, #0x0]
- add r1, r4, #0x0
- mov r2, #0x0
- mov r3, #0x10
- bl FUN_02006814
- str r6, [r5, #0x6c]
- cmp r6, #0x0
- beq _02021638
- mov r0, #0x0
- str r0, [r5, #0x74]
- ldr r0, _020216AC ; =FUN_0202192C
- str r0, [r5, #0x70]
- b _02021660
-_02021638:
- ldr r0, [r5, #0x60]
- cmp r0, #0x0
- bne _02021642
- bl ErrorHandling
-_02021642:
- ldr r0, [sp, #0x18]
- ldr r1, [r5, #0x64]
- bl FUN_02016998
- str r0, [r5, #0x74]
- ldr r0, _020216B0 ; =FUN_02021924
- add r1, r4, #0x0
- str r0, [r5, #0x70]
- ldr r0, [r5, #0x74]
- str r0, [sp, #0x0]
- ldr r0, [r5, #0x54]
- ldr r2, [r5, #0x60]
- ldr r3, [r5, #0x64]
- bl FUN_02006814
-_02021660:
- add r0, r5, #0x0
- add r0, #0x6a
- ldrb r0, [r0, #0x0]
- cmp r0, #0x2
- bhi _02021674
- add r0, r5, #0x0
- add r0, #0x6b
- ldrb r0, [r0, #0x0]
- cmp r0, #0x2
- bls _02021678
-_02021674:
- bl ErrorHandling
-_02021678:
- add r0, r5, #0x0
- add r0, #0x6a
- ldrb r0, [r0, #0x0]
- ldr r2, _020216B4 ; =0x020EE668
- sub r0, r0, #0x1
- lsl r3, r0, #0x1
- add r0, r5, #0x0
- add r0, #0x6b
- ldrb r0, [r0, #0x0]
- sub r1, r0, #0x1
- add r0, r2, r3
- ldrb r0, [r1, r0]
- str r0, [r5, #0x8]
- add r0, r5, #0x0
- add r0, #0x6b
- ldrb r1, [r0, #0x0]
- add r0, r5, #0x0
- add r0, #0x6a
- ldrb r0, [r0, #0x0]
- lsl r0, r0, #0x4
- mul r0, r1
- str r0, [r5, #0xc]
- str r4, [r5, #0x58]
-_020216A6:
- add sp, #0x4
- pop {r3-r6, pc}
- nop
-_020216AC: .word FUN_0202192C
-_020216B0: .word FUN_02021924
-_020216B4: .word 0x020EE668
-
- thumb_func_start FUN_020216B8
-FUN_020216B8: ; 0x020216B8
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, [r4, #0x74]
- cmp r0, #0x0
- beq _020216C6
- bl FUN_02016A18
-_020216C6:
- ldr r0, [r4, #0x54]
- cmp r0, #0x0
- beq _020216D0
- bl FUN_020066F4
-_020216D0:
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_020216D4
-FUN_020216D4: ; 0x020216D4
- push {r3, lr}
- add r3, r1, #0x0
- add r1, r2, #0x0
- str r3, [r0, #0x0]
- ldr r2, _020216E8 ; =0x020EE66C
- lsl r3, r3, #0x2
- ldr r2, [r2, r3]
- blx r2
- pop {r3, pc}
- nop
-_020216E8: .word 0x020EE66C
-
- thumb_func_start FUN_020216EC
-FUN_020216EC: ; 0x020216EC
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldr r2, [r5, #0xc]
- ldr r0, [r5, #0x64]
- add r4, r2, #0x0
- mul r4, r0
- add r0, r1, #0x0
- add r1, r4, #0x0
- bl FUN_02016998
- str r0, [r5, #0x10]
- ldr r0, _02021718 ; =FUN_02021774
- add r3, r4, #0x0
- str r0, [r5, #0x4]
- ldr r0, [r5, #0x10]
- str r0, [sp, #0x0]
- ldr r0, [r5, #0x54]
- ldr r1, [r5, #0x58]
- ldr r2, [r5, #0x5c]
- bl FUN_02006814
- pop {r3-r5, pc}
- .balign 4
-_02021718: .word FUN_02021774
-
- thumb_func_start FUN_0202171C
-FUN_0202171C: ; 0x0202171C
- ldr r1, _02021724 ; =FUN_0202181C
- str r1, [r0, #0x4]
- bx lr
- nop
-_02021724: .word FUN_0202181C
-
- thumb_func_start FUN_02021728
-FUN_02021728: ; 0x02021728
- push {r3, lr}
- ldr r1, [r0, #0x0]
- lsl r2, r1, #0x2
- ldr r1, _02021738 ; =0x020EE674
- ldr r1, [r1, r2]
- blx r1
- pop {r3, pc}
- nop
-_02021738: .word 0x020EE674
-
- thumb_func_start FUN_0202173C
-FUN_0202173C: ; 0x0202173C
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, [r4, #0x10]
- bl FUN_02016A18
- mov r0, #0x0
- str r0, [r4, #0x10]
- pop {r4, pc}
-
- thumb_func_start FUN_0202174C
-FUN_0202174C: ; 0x0202174C
- bx lr
- .balign 4
-
- thumb_func_start FUN_02021750
-FUN_02021750: ; 0x02021750
- push {r3, lr}
- ldr r3, [r0, #0x64]
- cmp r1, r3
- bhi _02021764
- sub r1, r1, #0x1
- lsl r1, r1, #0x10
- ldr r3, [r0, #0x4]
- lsr r1, r1, #0x10
- blx r3
- pop {r3, pc}
-_02021764:
- add r0, r2, #0x0
- mov r1, #0x0
- add r0, #0x80
- strb r1, [r0, #0x0]
- add r2, #0x81
- strb r1, [r2, #0x0]
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02021774
-FUN_02021774: ; 0x02021774
- push {r3-r7, lr}
- str r1, [sp, #0x0]
- add r7, r0, #0x0
- ldr r0, [sp, #0x0]
- ldr r1, [r7, #0xc]
- add r5, r0, #0x0
- ldr r0, [r7, #0x8]
- add r6, r2, #0x0
- mul r5, r1
- ldr r4, [r7, #0x10]
- cmp r0, #0x3
- bhi _02021802
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02021798: ; jump table (using 16-bit offset)
- .short _020217A0 - _02021798 - 2; case 0
- .short _020217AA - _02021798 - 2; case 1
- .short _020217C0 - _02021798 - 2; case 2
- .short _020217D6 - _02021798 - 2; case 3
-_020217A0:
- add r0, r4, r5
- add r1, r6, #0x0
- bl FUN_0201C100
- b _02021802
-_020217AA:
- add r0, r4, r5
- add r1, r6, #0x0
- bl FUN_0201C100
- add r0, r4, r5
- add r1, r6, #0x0
- add r0, #0x10
- add r1, #0x40
- bl FUN_0201C100
- b _02021802
-_020217C0:
- add r0, r4, r5
- add r1, r6, #0x0
- bl FUN_0201C100
- add r0, r4, r5
- add r1, r6, #0x0
- add r0, #0x10
- add r1, #0x20
- bl FUN_0201C100
- b _02021802
-_020217D6:
- add r0, r4, r5
- add r1, r6, #0x0
- bl FUN_0201C100
- add r0, r4, r5
- add r1, r6, #0x0
- add r0, #0x10
- add r1, #0x20
- bl FUN_0201C100
- add r0, r4, r5
- add r1, r6, #0x0
- add r0, #0x20
- add r1, #0x40
- bl FUN_0201C100
- add r0, r4, r5
- add r1, r6, #0x0
- add r0, #0x30
- add r1, #0x60
- bl FUN_0201C100
-_02021802:
- ldr r1, [sp, #0x0]
- ldr r2, [r7, #0x70]
- add r0, r7, #0x0
- blx r2
- add r1, r6, #0x0
- add r1, #0x80
- add r7, #0x69
- strb r0, [r1, #0x0]
- ldrb r0, [r7, #0x0]
- add r6, #0x81
- strb r0, [r6, #0x0]
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0202181C
-FUN_0202181C: ; 0x0202181C
- push {r3-r7, lr}
- add r4, r0, #0x0
- ldr r6, [r4, #0xc]
- add r0, #0x14
- str r0, [sp, #0x0]
- add r7, r1, #0x0
- add r5, r2, #0x0
- add r2, r7, #0x0
- ldr r3, [r4, #0x5c]
- mul r2, r6
- add r2, r3, r2
- ldr r0, [r4, #0x54]
- ldr r1, [r4, #0x58]
- add r3, r6, #0x0
- bl FUN_02006814
- ldr r0, [r4, #0x8]
- cmp r0, #0x3
- bhi _020218C0
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0202184E: ; jump table (using 16-bit offset)
- .short _02021856 - _0202184E - 2; case 0
- .short _02021862 - _0202184E - 2; case 1
- .short _0202187A - _0202184E - 2; case 2
- .short _02021892 - _0202184E - 2; case 3
-_02021856:
- add r0, r4, #0x0
- add r0, #0x14
- add r1, r5, #0x0
- bl FUN_0201C100
- b _020218C0
-_02021862:
- add r0, r4, #0x0
- add r0, #0x14
- add r1, r5, #0x0
- bl FUN_0201C100
- add r0, r4, #0x0
- add r1, r5, #0x0
- add r0, #0x24
- add r1, #0x40
- bl FUN_0201C100
- b _020218C0
-_0202187A:
- add r0, r4, #0x0
- add r0, #0x14
- add r1, r5, #0x0
- bl FUN_0201C100
- add r0, r4, #0x0
- add r1, r5, #0x0
- add r0, #0x24
- add r1, #0x20
- bl FUN_0201C100
- b _020218C0
-_02021892:
- add r0, r4, #0x0
- add r0, #0x14
- add r1, r5, #0x0
- bl FUN_0201C100
- add r0, r4, #0x0
- add r1, r5, #0x0
- add r0, #0x24
- add r1, #0x20
- bl FUN_0201C100
- add r0, r4, #0x0
- add r1, r5, #0x0
- add r0, #0x34
- add r1, #0x40
- bl FUN_0201C100
- add r0, r4, #0x0
- add r1, r5, #0x0
- add r0, #0x44
- add r1, #0x60
- bl FUN_0201C100
-_020218C0:
- ldr r2, [r4, #0x70]
- add r0, r4, #0x0
- add r1, r7, #0x0
- blx r2
- add r1, r5, #0x0
- add r1, #0x80
- add r4, #0x69
- strb r0, [r1, #0x0]
- ldrb r0, [r4, #0x0]
- add r5, #0x81
- strb r0, [r5, #0x0]
- pop {r3-r7, pc}
-
- thumb_func_start FUN_020218D8
-FUN_020218D8: ; 0x020218D8
- push {r3-r7, lr}
- add r4, r1, #0x0
- ldrh r1, [r4, #0x0]
- add r5, r0, #0x0
- ldr r0, _0202191C ; =0x0000FFFF
- add r7, r2, #0x0
- mov r6, #0x0
- cmp r1, r0
- beq _02021916
-_020218EA:
- ldr r0, _02021920 ; =0x0000FFFE
- cmp r1, r0
- bne _02021900
- add r0, r4, #0x0
- bl FUN_0201B8B8
- add r4, r0, #0x0
- ldrh r1, [r4, #0x0]
- ldr r0, _0202191C ; =0x0000FFFF
- cmp r1, r0
- beq _02021916
-_02021900:
- ldr r2, [r5, #0x70]
- add r0, r5, #0x0
- sub r1, r1, #0x1
- blx r2
- add r4, r4, #0x2
- add r0, r7, r0
- add r6, r6, r0
- ldrh r1, [r4, #0x0]
- ldr r0, _0202191C ; =0x0000FFFF
- cmp r1, r0
- bne _020218EA
-_02021916:
- sub r0, r6, r7
- pop {r3-r7, pc}
- nop
-_0202191C: .word 0x0000FFFF
-_02021920: .word 0x0000FFFE
-
- thumb_func_start FUN_02021924
-FUN_02021924: ; 0x02021924
- ldr r0, [r0, #0x74]
- ldrb r0, [r0, r1]
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202192C
-FUN_0202192C: ; 0x0202192C
- add r0, #0x68
- ldrb r0, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02021934
-FUN_02021934: ; 0x02021934
- push {r3-r7, lr}
- add r5, r1, #0x0
- ldrh r1, [r5, #0x0]
- add r7, r0, #0x0
- mov r4, #0x0
- ldr r0, _02021994 ; =0x0000FFFF
- add r6, r2, #0x0
- str r4, [sp, #0x0]
- cmp r1, r0
- beq _02021986
-_02021948:
- ldr r0, _02021998 ; =0x0000FFFE
- cmp r1, r0
- bne _02021958
- add r0, r5, #0x0
- bl FUN_0201B8B8
- add r5, r0, #0x0
- b _0202197E
-_02021958:
- mov r0, #0xe
- lsl r0, r0, #0xc
- cmp r1, r0
- bne _02021970
- ldr r0, [sp, #0x0]
- sub r1, r4, r6
- cmp r0, r1
- bhs _0202196A
- str r1, [sp, #0x0]
-_0202196A:
- mov r4, #0x0
- add r5, r5, #0x2
- b _0202197E
-_02021970:
- ldr r2, [r7, #0x70]
- add r0, r7, #0x0
- sub r1, r1, #0x1
- blx r2
- add r0, r6, r0
- add r4, r4, r0
- add r5, r5, #0x2
-_0202197E:
- ldrh r1, [r5, #0x0]
- ldr r0, _02021994 ; =0x0000FFFF
- cmp r1, r0
- bne _02021948
-_02021986:
- ldr r0, [sp, #0x0]
- sub r1, r4, r6
- cmp r0, r1
- bhs _02021990
- str r1, [sp, #0x0]
-_02021990:
- ldr r0, [sp, #0x0]
- pop {r3-r7, pc}
- .balign 4
-_02021994: .word 0x0000FFFF
-_02021998: .word 0x0000FFFE
-
- thumb_func_start FUN_0202199C
-FUN_0202199C: ; 0x0202199C
- push {r3-r7, lr}
- add r5, r1, #0x0
- ldrh r1, [r5, #0x0]
- add r6, r0, #0x0
- ldr r0, _020219EC ; =0x0000FFFF
- mov r4, #0x0
- cmp r1, r0
- beq _020219E8
- sub r7, r0, #0x1
-_020219AE:
- cmp r1, r7
- bne _020219D4
- add r0, r5, #0x0
- bl FUN_0201B8E0
- ldr r1, _020219F0 ; =0x00000203
- cmp r0, r1
- bne _020219CA
- add r0, r5, #0x0
- mov r1, #0x0
- bl FUN_0201B914
- add r4, r0, #0x0
- sub r4, #0xc
-_020219CA:
- add r0, r5, #0x0
- bl FUN_0201B8B8
- add r5, r0, #0x0
- b _020219E0
-_020219D4:
- ldr r2, [r6, #0x70]
- add r0, r6, #0x0
- sub r1, r1, #0x1
- blx r2
- add r4, r4, r0
- add r5, r5, #0x2
-_020219E0:
- ldrh r1, [r5, #0x0]
- ldr r0, _020219EC ; =0x0000FFFF
- cmp r1, r0
- bne _020219AE
-_020219E8:
- add r0, r4, #0x0
- pop {r3-r7, pc}
- .balign 4
-_020219EC: .word 0x0000FFFF
-_020219F0: .word 0x00000203
-
- thumb_func_start FUN_020219F4
-FUN_020219F4: ; 0x020219F4
- push {r4, lr}
- add r4, r0, #0x0
- add r0, r1, #0x0
- lsl r1, r4, #0x1
- add r1, #0xa
- bl FUN_02016998
- cmp r0, #0x0
- beq _02021A14
- ldr r1, _02021A18 ; =0xB6F8D2EC
- str r1, [r0, #0x4]
- strh r4, [r0, #0x0]
- mov r1, #0x0
- strh r1, [r0, #0x2]
- ldr r1, _02021A1C ; =0x0000FFFF
- strh r1, [r0, #0x8]
-_02021A14:
- pop {r4, pc}
- nop
-_02021A18: .word 0xB6F8D2EC
-_02021A1C: .word 0x0000FFFF
-
- thumb_func_start FUN_02021A20
-FUN_02021A20: ; 0x02021A20
- push {r4, lr}
- add r4, r0, #0x0
- bne _02021A2A
- bl ErrorHandling
-_02021A2A:
- ldr r1, [r4, #0x4]
- ldr r0, _02021A44 ; =0xB6F8D2EC
- cmp r1, r0
- beq _02021A36
- bl ErrorHandling
-_02021A36:
- ldr r0, _02021A48 ; =0xB6F8D2ED
- str r0, [r4, #0x4]
- add r0, r4, #0x0
- bl FUN_02016A18
- pop {r4, pc}
- nop
-_02021A44: .word 0xB6F8D2EC
-_02021A48: .word 0xB6F8D2ED
-
- thumb_func_start FUN_02021A4C
-FUN_02021A4C: ; 0x02021A4C
- push {r4, lr}
- add r4, r0, #0x0
- bne _02021A56
- bl ErrorHandling
-_02021A56:
- ldr r1, [r4, #0x4]
- ldr r0, _02021A6C ; =0xB6F8D2EC
- cmp r1, r0
- beq _02021A62
- bl ErrorHandling
-_02021A62:
- mov r0, #0x0
- strh r0, [r4, #0x2]
- ldr r0, _02021A70 ; =0x0000FFFF
- strh r0, [r4, #0x8]
- pop {r4, pc}
- .balign 4
-_02021A6C: .word 0xB6F8D2EC
-_02021A70: .word 0x0000FFFF
-
- thumb_func_start FUN_02021A74
-FUN_02021A74: ; 0x02021A74
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- cmp r5, #0x0
- bne _02021A82
- bl ErrorHandling
-_02021A82:
- ldr r1, [r5, #0x4]
- ldr r0, _02021AC8 ; =0xB6F8D2EC
- cmp r1, r0
- beq _02021A8E
- bl ErrorHandling
-_02021A8E:
- cmp r4, #0x0
- bne _02021A96
- bl ErrorHandling
-_02021A96:
- ldr r1, [r4, #0x4]
- ldr r0, _02021AC8 ; =0xB6F8D2EC
- cmp r1, r0
- beq _02021AA2
- bl ErrorHandling
-_02021AA2:
- ldrh r2, [r4, #0x2]
- ldrh r0, [r5, #0x0]
- cmp r0, r2
- bls _02021AC0
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r2, r2, #0x1
- add r0, #0x8
- add r1, #0x8
- lsl r2, r2, #0x1
- bl memcpy
- ldrh r0, [r4, #0x2]
- strh r0, [r5, #0x2]
- pop {r3-r5, pc}
-_02021AC0:
- bl ErrorHandling
- pop {r3-r5, pc}
- nop
-_02021AC8: .word 0xB6F8D2EC
-
- thumb_func_start FUN_02021ACC
-FUN_02021ACC: ; 0x02021ACC
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- cmp r5, #0x0
- bne _02021ADA
- bl ErrorHandling
-_02021ADA:
- ldr r1, [r5, #0x4]
- ldr r0, _02021B00 ; =0xB6F8D2EC
- cmp r1, r0
- beq _02021AE6
- bl ErrorHandling
-_02021AE6:
- ldrh r0, [r5, #0x2]
- add r1, r4, #0x0
- add r0, r0, #0x1
- bl FUN_020219F4
- add r4, r0, #0x0
- beq _02021AFA
- add r1, r5, #0x0
- bl FUN_02021A74
-_02021AFA:
- add r0, r4, #0x0
- pop {r3-r5, pc}
- nop
-_02021B00: .word 0xB6F8D2EC
-
- thumb_func_start FUN_02021B04
-FUN_02021B04: ; 0x02021B04
- push {r3-r7, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- ldr r0, [sp, #0x20]
- add r6, r1, #0x0
- add r7, r3, #0x0
- str r2, [sp, #0x0]
- str r0, [sp, #0x20]
- cmp r5, #0x0
- bne _02021B1C
- bl ErrorHandling
-_02021B1C:
- ldr r1, [r5, #0x4]
- ldr r0, _02021C1C ; =0xB6F8D2EC
- cmp r1, r0
- beq _02021B28
- bl ErrorHandling
-_02021B28:
- cmp r6, #0x0
- bge _02021B30
- mov r4, #0x1
- b _02021B32
-_02021B30:
- mov r4, #0x0
-_02021B32:
- ldr r0, [sp, #0x0]
- ldrh r1, [r5, #0x0]
- add r0, r0, r4
- cmp r1, r0
- bls _02021C14
- ldr r0, [sp, #0x20]
- cmp r0, #0x0
- bne _02021B48
- ldr r0, _02021C20 ; =0x020EE67C
- str r0, [sp, #0x4]
- b _02021B4C
-_02021B48:
- ldr r0, _02021C24 ; =0x020EE690
- str r0, [sp, #0x4]
-_02021B4C:
- add r0, r5, #0x0
- bl FUN_02021A4C
- cmp r4, #0x0
- beq _02021B74
- mov r0, #0x0
- mvn r0, r0
- mul r6, r0
- ldr r0, [sp, #0x20]
- cmp r0, #0x0
- bne _02021B66
- mov r0, #0xf1
- b _02021B68
-_02021B66:
- ldr r0, _02021C28 ; =0x000001BE
-_02021B68:
- ldrh r2, [r5, #0x2]
- add r1, r2, #0x1
- strh r1, [r5, #0x2]
- lsl r1, r2, #0x1
- add r1, r5, r1
- strh r0, [r1, #0x8]
-_02021B74:
- ldr r0, [sp, #0x0]
- lsl r1, r0, #0x2
- ldr r0, _02021C2C ; =0x020EE6A0
- ldr r4, [r0, r1]
- cmp r4, #0x0
- beq _02021C06
-_02021B80:
- add r0, r6, #0x0
- add r1, r4, #0x0
- bl _u32_div_f
- lsl r0, r0, #0x10
- lsr r1, r0, #0x10
- add r0, r4, #0x0
- mul r0, r1
- sub r6, r6, r0
- cmp r7, #0x2
- bne _02021BB4
- cmp r1, #0xa
- bhs _02021BA2
- ldr r0, [sp, #0x4]
- lsl r1, r1, #0x1
- ldrh r1, [r0, r1]
- b _02021BA4
-_02021BA2:
- mov r1, #0xe2
-_02021BA4:
- ldrh r0, [r5, #0x2]
- add r2, r0, #0x0
- add r2, r2, #0x1
- lsl r0, r0, #0x1
- strh r2, [r5, #0x2]
- add r0, r5, r0
- strh r1, [r0, #0x8]
- b _02021BFA
-_02021BB4:
- cmp r1, #0x0
- bne _02021BBC
- cmp r4, #0x1
- bne _02021BDC
-_02021BBC:
- mov r7, #0x2
- cmp r1, #0xa
- bhs _02021BCA
- ldr r0, [sp, #0x4]
- lsl r1, r1, #0x1
- ldrh r1, [r0, r1]
- b _02021BCC
-_02021BCA:
- mov r1, #0xe2
-_02021BCC:
- ldrh r0, [r5, #0x2]
- add r2, r0, #0x0
- add r2, r2, #0x1
- lsl r0, r0, #0x1
- strh r2, [r5, #0x2]
- add r0, r5, r0
- strh r1, [r0, #0x8]
- b _02021BFA
-_02021BDC:
- cmp r7, #0x1
- bne _02021BFA
- ldr r0, [sp, #0x20]
- cmp r0, #0x0
- bne _02021BEA
- mov r1, #0x1
- b _02021BEC
-_02021BEA:
- ldr r1, _02021C30 ; =0x000001E2
-_02021BEC:
- ldrh r0, [r5, #0x2]
- add r2, r0, #0x0
- add r2, r2, #0x1
- lsl r0, r0, #0x1
- strh r2, [r5, #0x2]
- add r0, r5, r0
- strh r1, [r0, #0x8]
-_02021BFA:
- add r0, r4, #0x0
- mov r1, #0xa
- bl _u32_div_f
- add r4, r0, #0x0
- bne _02021B80
-_02021C06:
- ldrh r0, [r5, #0x2]
- ldr r1, _02021C34 ; =0x0000FFFF
- add sp, #0x8
- lsl r0, r0, #0x1
- add r0, r5, r0
- strh r1, [r0, #0x8]
- pop {r3-r7, pc}
-_02021C14:
- bl ErrorHandling
- add sp, #0x8
- pop {r3-r7, pc}
- .balign 4
-_02021C1C: .word 0xB6F8D2EC
-_02021C20: .word 0x020EE67C
-_02021C24: .word 0x020EE690
-_02021C28: .word 0x000001BE
-_02021C2C: .word 0x020EE6A0
-_02021C30: .word 0x000001E2
-_02021C34: .word 0x0000FFFF
-
- thumb_func_start FUN_02021C38
-FUN_02021C38: ; 0x02021C38
- push {r3-r7, lr}
- sub sp, #0x10
- str r1, [sp, #0x0]
- mov r1, #0x0
- str r1, [sp, #0x8]
- str r1, [sp, #0xc]
- add r5, r1, #0x0
- ldrh r1, [r0, #0x2]
- mov r7, #0x1
- cmp r1, #0x12
- bls _02021C56
- ldr r0, [sp, #0x8]
- add sp, #0x10
- add r1, r0, #0x0
- pop {r3-r7, pc}
-_02021C56:
- sub r1, r1, #0x1
- str r1, [sp, #0x4]
- bmi _02021CCC
- lsl r1, r1, #0x1
- add r4, r0, r1
-_02021C60:
- ldrh r6, [r4, #0x8]
- mov r3, #0xa
- mov r0, #0x0
- add r1, r6, #0x0
- sub r1, #0xa2
- asr r2, r1, #0x1f
- sub r3, r1, r3
- mov r12, r2
- mov r3, r12
- sbc r3, r0
- blo _02021C98
- ldr r0, _02021CDC ; =0x00000121
- mov r3, #0xa
- sub r1, r6, r0
- asr r2, r1, #0x1f
- mov r0, #0x0
- sub r3, r1, r3
- mov r12, r2
- mov r3, r12
- sbc r3, r0
- blo _02021C98
- ldr r0, [sp, #0x0]
- mov r1, #0x0
- str r1, [r0, #0x0]
- ldr r0, [sp, #0x8]
- ldr r1, [sp, #0xc]
- add sp, #0x10
- pop {r3-r7, pc}
-_02021C98:
- add r0, r1, #0x0
- add r1, r2, #0x0
- add r2, r7, #0x0
- add r3, r5, #0x0
- bl _ll_mul
- add r2, r1, #0x0
- ldr r1, [sp, #0x8]
- add r0, r1, r0
- str r0, [sp, #0x8]
- ldr r0, [sp, #0xc]
- adc r0, r2
- str r0, [sp, #0xc]
- add r0, r7, #0x0
- add r1, r5, #0x0
- mov r2, #0xa
- mov r3, #0x0
- bl _ll_mul
- add r7, r0, #0x0
- ldr r0, [sp, #0x4]
- add r5, r1, #0x0
- sub r4, r4, #0x2
- sub r0, r0, #0x1
- str r0, [sp, #0x4]
- bpl _02021C60
-_02021CCC:
- ldr r0, [sp, #0x0]
- mov r1, #0x1
- str r1, [r0, #0x0]
- ldr r0, [sp, #0x8]
- ldr r1, [sp, #0xc]
- add sp, #0x10
- pop {r3-r7, pc}
- nop
-_02021CDC: .word 0x00000121
-
- thumb_func_start FUN_02021CE0
-FUN_02021CE0: ; 0x02021CE0
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- cmp r5, #0x0
- bne _02021CEE
- bl ErrorHandling
-_02021CEE:
- ldr r1, [r5, #0x4]
- ldr r0, _02021D34 ; =0xB6F8D2EC
- cmp r1, r0
- beq _02021CFA
- bl ErrorHandling
-_02021CFA:
- cmp r4, #0x0
- bne _02021D02
- bl ErrorHandling
-_02021D02:
- ldr r1, [r4, #0x4]
- ldr r0, _02021D34 ; =0xB6F8D2EC
- cmp r1, r0
- beq _02021D0E
- bl ErrorHandling
-_02021D0E:
- ldrh r1, [r5, #0x8]
- ldrh r0, [r4, #0x8]
- cmp r1, r0
- bne _02021D2E
- ldr r0, _02021D38 ; =0x0000FFFF
-_02021D18:
- ldrh r1, [r5, #0x8]
- cmp r1, r0
- bne _02021D22
- mov r0, #0x0
- pop {r3-r5, pc}
-_02021D22:
- add r5, r5, #0x2
- add r4, r4, #0x2
- ldrh r2, [r5, #0x8]
- ldrh r1, [r4, #0x8]
- cmp r2, r1
- beq _02021D18
-_02021D2E:
- mov r0, #0x1
- pop {r3-r5, pc}
- nop
-_02021D34: .word 0xB6F8D2EC
-_02021D38: .word 0x0000FFFF
-
- thumb_func_start FUN_02021D3C
-FUN_02021D3C: ; 0x02021D3C
- push {r4, lr}
- add r4, r0, #0x0
- bne _02021D46
- bl ErrorHandling
-_02021D46:
- ldr r1, [r4, #0x4]
- ldr r0, _02021D58 ; =0xB6F8D2EC
- cmp r1, r0
- beq _02021D52
- bl ErrorHandling
-_02021D52:
- ldrh r0, [r4, #0x2]
- pop {r4, pc}
- nop
-_02021D58: .word 0xB6F8D2EC
-
- thumb_func_start FUN_02021D5C
-FUN_02021D5C: ; 0x02021D5C
- push {r3-r5, lr}
- add r4, r0, #0x0
- bne _02021D66
- bl ErrorHandling
-_02021D66:
- ldr r1, [r4, #0x4]
- ldr r0, _02021D98 ; =0xB6F8D2EC
- cmp r1, r0
- beq _02021D72
- bl ErrorHandling
-_02021D72:
- ldrh r1, [r4, #0x2]
- mov r3, #0x0
- mov r0, #0x1
- cmp r1, #0x0
- ble _02021D94
- mov r1, #0xe
- add r5, r4, #0x0
- lsl r1, r1, #0xc
-_02021D82:
- ldrh r2, [r5, #0x8]
- cmp r2, r1
- bne _02021D8A
- add r0, r0, #0x1
-_02021D8A:
- ldrh r2, [r4, #0x2]
- add r3, r3, #0x1
- add r5, r5, #0x2
- cmp r3, r2
- blt _02021D82
-_02021D94:
- pop {r3-r5, pc}
- nop
-_02021D98: .word 0xB6F8D2EC
-
- thumb_func_start FUN_02021D9C
-FUN_02021D9C: ; 0x02021D9C
- push {r3-r7, lr}
- add r5, r1, #0x0
- add r7, r0, #0x0
- add r6, r2, #0x0
- cmp r5, #0x0
- bne _02021DAC
- bl ErrorHandling
-_02021DAC:
- ldr r1, [r5, #0x4]
- ldr r0, _02021E24 ; =0xB6F8D2EC
- cmp r1, r0
- beq _02021DB8
- bl ErrorHandling
-_02021DB8:
- cmp r7, #0x0
- bne _02021DC0
- bl ErrorHandling
-_02021DC0:
- ldr r1, [r7, #0x4]
- ldr r0, _02021E24 ; =0xB6F8D2EC
- cmp r1, r0
- beq _02021DCC
- bl ErrorHandling
-_02021DCC:
- mov r4, #0x0
- cmp r6, #0x0
- beq _02021DF6
- ldrh r0, [r5, #0x2]
- cmp r0, #0x0
- ble _02021DF6
- mov r1, #0xe
- add r0, r5, #0x0
- lsl r1, r1, #0xc
-_02021DDE:
- ldrh r2, [r0, #0x8]
- cmp r2, r1
- bne _02021DEC
- sub r6, r6, #0x1
- bne _02021DEC
- add r4, r4, #0x1
- b _02021DF6
-_02021DEC:
- ldrh r2, [r5, #0x2]
- add r4, r4, #0x1
- add r0, r0, #0x2
- cmp r4, r2
- blt _02021DDE
-_02021DF6:
- add r0, r7, #0x0
- bl FUN_02021A4C
- ldrh r0, [r5, #0x2]
- cmp r4, r0
- bge _02021E20
- lsl r0, r4, #0x1
- add r6, r5, r0
-_02021E06:
- ldrh r1, [r6, #0x8]
- mov r0, #0xe
- lsl r0, r0, #0xc
- cmp r1, r0
- beq _02021E20
- add r0, r7, #0x0
- bl FUN_02021FB0
- ldrh r0, [r5, #0x2]
- add r4, r4, #0x1
- add r6, r6, #0x2
- cmp r4, r0
- blt _02021E06
-_02021E20:
- pop {r3-r7, pc}
- nop
-_02021E24: .word 0xB6F8D2EC
-
- thumb_func_start FUN_02021E28
-FUN_02021E28: ; 0x02021E28
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- cmp r5, #0x0
- bne _02021E36
- bl ErrorHandling
-_02021E36:
- ldr r1, [r5, #0x4]
- ldr r0, _02021E84 ; =0xB6F8D2EC
- cmp r1, r0
- beq _02021E42
- bl ErrorHandling
-_02021E42:
- mov r0, #0x0
- strh r0, [r5, #0x2]
- ldrh r1, [r4, #0x0]
- ldr r0, _02021E88 ; =0x0000FFFF
- cmp r1, r0
- beq _02021E76
- add r1, r0, #0x0
-_02021E50:
- ldrh r2, [r5, #0x0]
- ldrh r0, [r5, #0x2]
- sub r2, r2, #0x1
- cmp r0, r2
- blt _02021E60
- bl ErrorHandling
- b _02021E76
-_02021E60:
- add r2, r0, #0x0
- add r2, r2, #0x1
- strh r2, [r5, #0x2]
- ldrh r2, [r4, #0x0]
- lsl r0, r0, #0x1
- add r0, r5, r0
- add r4, r4, #0x2
- strh r2, [r0, #0x8]
- ldrh r0, [r4, #0x0]
- cmp r0, r1
- bne _02021E50
-_02021E76:
- ldrh r0, [r5, #0x2]
- ldr r1, _02021E88 ; =0x0000FFFF
- lsl r0, r0, #0x1
- add r0, r5, r0
- strh r1, [r0, #0x8]
- pop {r3-r5, pc}
- nop
-_02021E84: .word 0xB6F8D2EC
-_02021E88: .word 0x0000FFFF
-
- thumb_func_start FUN_02021E8C
-FUN_02021E8C: ; 0x02021E8C
- push {r3-r7, lr}
- add r5, r0, #0x0
- add r7, r1, #0x0
- add r4, r2, #0x0
- cmp r5, #0x0
- bne _02021E9C
- bl ErrorHandling
-_02021E9C:
- ldr r1, [r5, #0x4]
- ldr r0, _02021EE8 ; =0xB6F8D2EC
- cmp r1, r0
- beq _02021EA8
- bl ErrorHandling
-_02021EA8:
- ldrh r0, [r5, #0x0]
- cmp r4, r0
- bhi _02021EE2
- lsl r6, r4, #0x1
- add r0, r5, #0x0
- add r0, #0x8
- add r1, r7, #0x0
- add r2, r6, #0x0
- bl memcpy
- mov r2, #0x0
- cmp r4, #0x0
- bls _02021ED4
- ldr r0, _02021EEC ; =0x0000FFFF
- add r3, r5, #0x0
-_02021EC6:
- ldrh r1, [r3, #0x8]
- cmp r1, r0
- beq _02021ED4
- add r2, r2, #0x1
- add r3, r3, #0x2
- cmp r2, r4
- blo _02021EC6
-_02021ED4:
- strh r2, [r5, #0x2]
- cmp r2, r4
- bne _02021EE6
- ldr r1, _02021EEC ; =0x0000FFFF
- add r0, r5, r6
- strh r1, [r0, #0x6]
- pop {r3-r7, pc}
-_02021EE2:
- bl ErrorHandling
-_02021EE6:
- pop {r3-r7, pc}
- .balign 4
-_02021EE8: .word 0xB6F8D2EC
-_02021EEC: .word 0x0000FFFF
-
- thumb_func_start FUN_02021EF0
-FUN_02021EF0: ; 0x02021EF0
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r6, r1, #0x0
- add r4, r2, #0x0
- cmp r5, #0x0
- bne _02021F00
- bl ErrorHandling
-_02021F00:
- ldr r1, [r5, #0x4]
- ldr r0, _02021F28 ; =0xB6F8D2EC
- cmp r1, r0
- beq _02021F0C
- bl ErrorHandling
-_02021F0C:
- ldrh r0, [r5, #0x2]
- add r2, r0, #0x1
- cmp r2, r4
- bhi _02021F22
- add r5, #0x8
- add r0, r6, #0x0
- add r1, r5, #0x0
- lsl r2, r2, #0x1
- bl memcpy
- pop {r4-r6, pc}
-_02021F22:
- bl ErrorHandling
- pop {r4-r6, pc}
- .balign 4
-_02021F28: .word 0xB6F8D2EC
-
- thumb_func_start FUN_02021F2C
-FUN_02021F2C: ; 0x02021F2C
- push {r4, lr}
- add r4, r0, #0x0
- bne _02021F36
- bl ErrorHandling
-_02021F36:
- ldr r1, [r4, #0x4]
- ldr r0, _02021F48 ; =0xB6F8D2EC
- cmp r1, r0
- beq _02021F42
- bl ErrorHandling
-_02021F42:
- add r4, #0x8
- add r0, r4, #0x0
- pop {r4, pc}
- .balign 4
-_02021F48: .word 0xB6F8D2EC
-
- thumb_func_start FUN_02021F4C
-FUN_02021F4C: ; 0x02021F4C
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- cmp r5, #0x0
- bne _02021F5A
- bl ErrorHandling
-_02021F5A:
- ldr r1, [r5, #0x4]
- ldr r0, _02021FAC ; =0xB6F8D2EC
- cmp r1, r0
- beq _02021F66
- bl ErrorHandling
-_02021F66:
- cmp r4, #0x0
- bne _02021F6E
- bl ErrorHandling
-_02021F6E:
- ldr r1, [r4, #0x4]
- ldr r0, _02021FAC ; =0xB6F8D2EC
- cmp r1, r0
- beq _02021F7A
- bl ErrorHandling
-_02021F7A:
- ldrh r2, [r4, #0x2]
- ldrh r0, [r5, #0x2]
- add r1, r0, r2
- add r3, r1, #0x1
- ldrh r1, [r5, #0x0]
- cmp r3, r1
- bgt _02021FA6
- add r1, r5, #0x0
- add r1, #0x8
- lsl r0, r0, #0x1
- add r0, r1, r0
- add r1, r4, #0x0
- add r2, r2, #0x1
- add r1, #0x8
- lsl r2, r2, #0x1
- bl memcpy
- ldrh r1, [r5, #0x2]
- ldrh r0, [r4, #0x2]
- add r0, r1, r0
- strh r0, [r5, #0x2]
- pop {r3-r5, pc}
-_02021FA6:
- bl ErrorHandling
- pop {r3-r5, pc}
- .balign 4
-_02021FAC: .word 0xB6F8D2EC
-
- thumb_func_start FUN_02021FB0
-FUN_02021FB0: ; 0x02021FB0
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- cmp r5, #0x0
- bne _02021FBE
- bl ErrorHandling
-_02021FBE:
- ldr r1, [r5, #0x4]
- ldr r0, _02021FF0 ; =0xB6F8D2EC
- cmp r1, r0
- beq _02021FCA
- bl ErrorHandling
-_02021FCA:
- ldrh r2, [r5, #0x2]
- ldrh r0, [r5, #0x0]
- add r1, r2, #0x1
- cmp r1, r0
- bge _02021FE8
- lsl r0, r2, #0x1
- strh r1, [r5, #0x2]
- add r0, r5, r0
- strh r4, [r0, #0x8]
- ldrh r0, [r5, #0x2]
- ldr r1, _02021FF4 ; =0x0000FFFF
- lsl r0, r0, #0x1
- add r0, r5, r0
- strh r1, [r0, #0x8]
- pop {r3-r5, pc}
-_02021FE8:
- bl ErrorHandling
- pop {r3-r5, pc}
- nop
-_02021FF0: .word 0xB6F8D2EC
-_02021FF4: .word 0x0000FFFF
-
- thumb_func_start FUN_02021FF8
-FUN_02021FF8: ; 0x02021FF8
- push {r4, lr}
- add r4, r0, #0x0
- bne _02022002
- bl ErrorHandling
-_02022002:
- ldr r1, [r4, #0x4]
- ldr r0, _02022028 ; =0xB6F8D2EC
- cmp r1, r0
- beq _0202200E
- bl ErrorHandling
-_0202200E:
- ldrh r0, [r4, #0x2]
- cmp r0, #0x0
- beq _02022026
- ldrh r1, [r4, #0x8]
- ldr r0, _0202202C ; =0x00000145
- cmp r1, r0
- blo _02022026
- add r0, #0x19
- cmp r1, r0
- bhi _02022026
- sub r1, #0x1a
- strh r1, [r4, #0x8]
-_02022026:
- pop {r4, pc}
- .balign 4
-_02022028: .word 0xB6F8D2EC
-_0202202C: .word 0x00000145
-
- thumb_func_start FUN_02022030
-FUN_02022030: ; 0x02022030
- ldrh r1, [r0, #0x2]
- cmp r1, #0x0
- beq _02022044
- ldrh r1, [r0, #0x8]
- mov r0, #0xf1
- lsl r0, r0, #0x8
- cmp r1, r0
- bne _02022044
- mov r0, #0x1
- bx lr
-_02022044:
- mov r0, #0x0
- bx lr
-
- thumb_func_start FUN_02022048
-FUN_02022048: ; 0x02022048
- push {r3-r7, lr}
- add r4, r1, #0x0
- str r0, [sp, #0x0]
- add r0, r4, #0x0
- bl FUN_02022030
- cmp r0, #0x0
- beq _020220B2
- ldr r0, [sp, #0x0]
- ldr r1, [sp, #0x0]
- ldrh r0, [r0, #0x2]
- add r1, #0x8
- ldr r7, _020220BC ; =0x000001FF
- lsl r0, r0, #0x1
- add r3, r1, r0
- mov r0, #0x0
- add r4, #0xa
- add r1, r0, #0x0
-_0202206C:
- ldrh r2, [r4, #0x0]
- asr r2, r0
- and r2, r7
- lsl r2, r2, #0x10
- add r0, #0x9
- lsr r2, r2, #0x10
- cmp r0, #0xf
- blt _02022094
- add r4, r4, #0x2
- sub r0, #0xf
- beq _02022094
- ldrh r6, [r4, #0x0]
- mov r5, #0x9
- sub r5, r5, r0
- lsl r6, r5
- ldr r5, _020220BC ; =0x000001FF
- and r5, r6
- orr r2, r5
- lsl r2, r2, #0x10
- lsr r2, r2, #0x10
-_02022094:
- ldr r5, _020220BC ; =0x000001FF
- cmp r2, r5
- beq _020220A2
- strh r2, [r3, #0x0]
- add r3, r3, #0x2
- add r1, r1, #0x1
- b _0202206C
-_020220A2:
- ldr r0, _020220C0 ; =0x0000FFFF
- strh r0, [r3, #0x0]
- ldr r0, [sp, #0x0]
- ldrh r0, [r0, #0x2]
- add r1, r0, r1
- ldr r0, [sp, #0x0]
- strh r1, [r0, #0x2]
- pop {r3-r7, pc}
-_020220B2:
- ldr r0, [sp, #0x0]
- add r1, r4, #0x0
- bl FUN_02021F4C
- pop {r3-r7, pc}
- .balign 4
-_020220BC: .word 0x000001FF
-_020220C0: .word 0x0000FFFF
-
- thumb_func_start FUN_020220C4
-FUN_020220C4: ; 0x020220C4
- push {r3-r7, lr}
- add r7, r1, #0x0
- add r5, r0, #0x0
- add r6, r2, #0x0
- str r3, [sp, #0x0]
- cmp r7, #0x0
- bne _020220D6
- bl ErrorHandling
-_020220D6:
- ldr r0, [sp, #0x18]
- mov r1, #0x14
- bl FUN_02016998
- add r4, r0, #0x0
- beq _0202211C
- str r5, [r4, #0x0]
- str r7, [r4, #0x4]
- ldr r0, [sp, #0x0]
- str r6, [r4, #0x8]
- str r0, [r4, #0xc]
- ldr r0, [sp, #0x18]
- lsl r1, r7, #0x2
- bl FUN_02016998
- str r0, [r4, #0x10]
- cmp r0, #0x0
- beq _02022114
- mov r6, #0x0
- cmp r7, #0x0
- bls _0202211C
- add r5, r6, #0x0
-_02022102:
- ldr r0, [r4, #0x10]
- add r0, r0, r5
- bl FUN_02022120
- add r6, r6, #0x1
- add r5, r5, #0x4
- cmp r6, r7
- blo _02022102
- b _0202211C
-_02022114:
- add r0, r4, #0x0
- bl FUN_02016A18
- mov r4, #0x0
-_0202211C:
- add r0, r4, #0x0
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02022120
-FUN_02022120: ; 0x02022120
- mov r1, #0x0
- strb r1, [r0, #0x0]
- strb r1, [r0, #0x1]
- strh r1, [r0, #0x2]
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202212C
-FUN_0202212C: ; 0x0202212C
- push {r4, lr}
- add r4, r0, #0x0
- bne _02022136
- bl ErrorHandling
-_02022136:
- ldr r0, [r4, #0x10]
- bl FUN_02016A18
- add r0, r4, #0x0
- bl FUN_02016A18
- pop {r4, pc}
-
- thumb_func_start FUN_02022144
-FUN_02022144: ; 0x02022144
- push {r3-r7, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- bl FUN_02020A98
- str r0, [sp, #0x0]
- cmp r0, #0x0
- beq _02022190
- bl FUN_02020AA4
- str r0, [sp, #0x4]
- ldr r0, [r5, #0x4]
- mov r6, #0x0
- cmp r0, #0x0
- bls _020221AE
- add r4, r6, #0x0
-_02022164:
- ldr r0, [r5, #0x10]
- add r0, r0, r4
- ldrb r0, [r0, #0x1]
- cmp r0, #0x0
- ldr r0, [r5, #0x0]
- beq _02022178
- add r0, r0, r4
- bl FUN_02020A40
- b _0202217E
-_02022178:
- add r0, r0, r4
- bl FUN_02020A6C
-_0202217E:
- ldr r1, [r5, #0x10]
- add r6, r6, #0x1
- add r1, r1, r4
- strb r0, [r1, #0x1]
- ldr r0, [r5, #0x4]
- add r4, r4, #0x4
- cmp r6, r0
- blo _02022164
- b _020221AE
-_02022190:
- ldr r0, [r5, #0x4]
- mov r3, #0x0
- str r3, [sp, #0x4]
- cmp r0, #0x0
- bls _020221AE
- add r2, r3, #0x0
- add r1, r3, #0x0
-_0202219E:
- ldr r0, [r5, #0x10]
- add r3, r3, #0x1
- add r0, r0, r2
- strb r1, [r0, #0x1]
- ldr r0, [r5, #0x4]
- add r2, r2, #0x4
- cmp r3, r0
- blo _0202219E
-_020221AE:
- mov r4, #0x0
- cmp r0, #0x0
- bls _020221E4
- add r7, r4, #0x0
-_020221B6:
- ldr r3, [r5, #0x10]
- ldr r1, [sp, #0x0]
- add r0, r3, r7
- ldrb r3, [r3, r7]
- ldr r2, [sp, #0x4]
- lsl r6, r3, #0x2
- ldr r3, _020221E8 ; =0x020EE6CC
- ldr r3, [r3, r6]
- blx r3
- add r1, r0, #0x0
- mov r0, #0x0
- mvn r0, r0
- cmp r1, r0
- beq _020221DA
- ldr r2, [r5, #0xc]
- ldr r3, [r5, #0x8]
- add r0, r4, #0x0
- blx r3
-_020221DA:
- ldr r0, [r5, #0x4]
- add r4, r4, #0x1
- add r7, r7, #0x4
- cmp r4, r0
- blo _020221B6
-_020221E4:
- add sp, #0x8
- pop {r3-r7, pc}
- .balign 4
-_020221E8: .word 0x020EE6CC
-
- thumb_func_start FUN_020221EC
-FUN_020221EC: ; 0x020221EC
- push {r3, lr}
- ldrb r1, [r0, #0x1]
- cmp r1, #0x0
- beq _02022202
- cmp r2, #0x0
- beq _02022202
- mov r1, #0x1
- bl FUN_0202223C
- mov r0, #0x0
- pop {r3, pc}
-_02022202:
- mov r0, #0x0
- mvn r0, r0
- pop {r3, pc}
-
- thumb_func_start FUN_02022208
-FUN_02022208: ; 0x02022208
- push {r3, lr}
- ldrb r2, [r0, #0x1]
- cmp r2, #0x0
- beq _02022220
- ldrh r2, [r0, #0x2]
- ldr r1, _02022238 ; =0x0000FFFF
- cmp r2, r1
- bhs _0202221C
- add r1, r2, #0x1
- strh r1, [r0, #0x2]
-_0202221C:
- mov r0, #0x2
- pop {r3, pc}
-_02022220:
- cmp r1, #0x0
- beq _0202222E
- mov r1, #0x0
- bl FUN_0202223C
- mov r0, #0x3
- pop {r3, pc}
-_0202222E:
- mov r1, #0x0
- bl FUN_0202223C
- mov r0, #0x1
- pop {r3, pc}
- .balign 4
-_02022238: .word 0x0000FFFF
-
- thumb_func_start FUN_0202223C
-FUN_0202223C: ; 0x0202223C
- strb r1, [r0, #0x0]
- mov r1, #0x0
- strh r1, [r0, #0x2]
- bx lr
-
- thumb_func_start FUN_02022244
-FUN_02022244: ; 0x02022244
- push {r3-r4}
- ldr r3, [r0, #0xc]
- mov r2, #0x0
- sub r3, r3, #0x1
- beq _02022262
- ldr r4, [r0, #0x0]
-_02022250:
- ldrh r3, [r4, #0x2]
- cmp r3, r1
- bhi _02022262
- ldr r3, [r0, #0xc]
- add r2, r2, #0x1
- sub r3, r3, #0x1
- add r4, r4, #0x2
- cmp r2, r3
- blo _02022250
-_02022262:
- ldr r1, [r0, #0x4]
- ldrb r3, [r1, r2]
- add r1, sp, #0x0
- strb r3, [r1, #0x0]
- ldr r0, [r0, #0x8]
- ldrb r2, [r0, r2]
- strb r2, [r1, #0x1]
- ldrb r0, [r1, #0x0]
- lsl r1, r2, #0x8
- orr r0, r1
- pop {r3-r4}
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202227C
-FUN_0202227C: ; 0x0202227C
- ldr r2, [r0, #0x0]
- str r2, [r1, #0xc]
- add r2, r0, #0x4
- str r2, [r1, #0x0]
- ldr r0, [r1, #0xc]
- lsl r0, r0, #0x1
- add r2, r2, r0
- str r2, [r1, #0x4]
- ldr r0, [r1, #0xc]
- add r0, r2, r0
- str r0, [r1, #0x8]
- bx lr
-
- thumb_func_start FUN_02022294
-FUN_02022294: ; 0x02022294
- ldr r0, _020222A4 ; =0x021C59BC
- mov r1, #0x0
- str r1, [r0, #0x0]
- str r1, [r0, #0x4]
- str r1, [r0, #0x8]
- ldr r0, _020222A8 ; =0x021C59BC
- str r1, [r0, #0x0]
- bx lr
- .balign 4
-_020222A4: .word 0x021C59BC
-_020222A8: .word 0x021C59BC
-
- thumb_func_start FUN_020222AC
-FUN_020222AC: ; 0x020222AC
- ldr r3, _020222B0 ; =G3X_ResetMtxStack
- bx r3
- .balign 4
-_020222B0: .word G3X_ResetMtxStack
-
- thumb_func_start FUN_020222B4
-FUN_020222B4: ; 0x020222B4
- ldr r2, _020222C0 ; =0x021C59BC
- str r0, [r2, #0x4]
- str r1, [r2, #0x8]
- mov r0, #0x1
- str r0, [r2, #0x0]
- bx lr
- .balign 4
-_020222C0: .word 0x021C59BC
-
- thumb_func_start FUN_020222C4
-FUN_020222C4: ; 0x020222C4
- ldr r0, _020222E0 ; =0x021C59BC
- ldr r1, [r0, #0x0]
- cmp r1, #0x0
- beq _020222DC
- ldr r1, [r0, #0x8]
- ldr r2, [r0, #0x4]
- lsl r1, r1, #0x1
- orr r2, r1
- ldr r1, _020222E4 ; =0x04000540
- str r2, [r1, #0x0]
- mov r1, #0x0
- str r1, [r0, #0x0]
-_020222DC:
- bx lr
- nop
-_020222E0: .word 0x021C59BC
-_020222E4: .word 0x04000540
-
- thumb_func_start FUN_020222E8
-FUN_020222E8: ; 0x020222E8
- mov r0, #0x5
- lsl r0, r0, #0x18
- bx lr
- .balign 4
-
- thumb_func_start FUN_020222F0
-FUN_020222F0: ; 0x020222F0
- mov r0, #0x2
- lsl r0, r0, #0x8
- bx lr
- .balign 4
-
- thumb_func_start FUN_020222F8
-FUN_020222F8: ; 0x020222F8
- ldr r0, _020222FC ; =0x05000400
- bx lr
- .balign 4
-_020222FC: .word 0x05000400
-
- thumb_func_start FUN_02022300
-FUN_02022300: ; 0x02022300
- mov r0, #0x2
- lsl r0, r0, #0x8
- bx lr
- .balign 4
-
- thumb_func_start FUN_02022308
-FUN_02022308: ; 0x02022308
- ldr r0, _0202230C ; =0x05000200
- bx lr
- .balign 4
-_0202230C: .word 0x05000200
-
- thumb_func_start FUN_02022310
-FUN_02022310: ; 0x02022310
- ldr r0, _02022314 ; =0x05000600
- bx lr
- .balign 4
-_02022314: .word 0x05000600
-
- thumb_func_start FUN_02022318
-FUN_02022318: ; 0x02022318
- push {r3-r7, lr}
- sub sp, #0x8
- add r7, r1, #0x0
- mov r1, #0xc
- add r6, r0, #0x0
- add r5, r2, #0x0
- str r3, [sp, #0x4]
- bl FUN_02016998
- add r4, r0, #0x0
- str r6, [r4, #0x0]
- bl FUN_020BB7F4
- bl G3X_InitMtxStack
- mov r1, #0x2
- ldr r0, _020223B8 ; =0x04000540
- cmp r7, #0x0
- str r1, [r0, #0x0]
- bne _02022364
- lsl r0, r5, #0x7
- bl FUN_020AFA28
- add r6, r0, #0x0
- ldr r0, [r4, #0x0]
- add r1, r6, #0x0
- bl FUN_02016998
- str r0, [r4, #0x8]
- mov r0, #0x1
- str r0, [sp, #0x0]
- ldr r2, [r4, #0x8]
- lsl r0, r5, #0x11
- mov r1, #0x0
- add r3, r6, #0x0
- bl FUN_020AF9C4
- b _0202236E
-_02022364:
- lsl r0, r5, #0x10
- lsr r0, r0, #0x10
- mov r1, #0x1
- bl FUN_020AEB70
-_0202236E:
- ldr r0, [sp, #0x4]
- cmp r0, #0x0
- bne _02022398
- ldr r0, [sp, #0x20]
- lsl r0, r0, #0x8
- bl FUN_020AFBFC
- add r5, r0, #0x0
- ldr r0, [r4, #0x0]
- add r1, r5, #0x0
- bl FUN_02016998
- str r0, [r4, #0x4]
- ldr r0, [sp, #0x20]
- ldr r1, [r4, #0x4]
- lsl r0, r0, #0xd
- add r2, r5, #0x0
- mov r3, #0x1
- bl FUN_020AFBA8
- b _020223A4
-_02022398:
- ldr r0, [sp, #0x20]
- mov r1, #0x1
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x10
- bl FUN_020AEB70
-_020223A4:
- ldr r0, [sp, #0x24]
- cmp r0, #0x0
- beq _020223AE
- blx r0
- b _020223B2
-_020223AE:
- bl FUN_020223D4
-_020223B2:
- add r0, r4, #0x0
- add sp, #0x8
- pop {r3-r7, pc}
- .balign 4
-_020223B8: .word 0x04000540
-
- thumb_func_start FUN_020223BC
-FUN_020223BC: ; 0x020223BC
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, [r4, #0x4]
- bl FUN_02016A18
- ldr r0, [r4, #0x8]
- bl FUN_02016A18
- add r0, r4, #0x0
- bl FUN_02016A18
- pop {r4, pc}
-
- thumb_func_start FUN_020223D4
-FUN_020223D4: ; 0x020223D4
- push {r3, lr}
- mov r0, #0x1
- add r1, r0, #0x0
- bl FUN_0201E6E4
- ldr r0, _02022438 ; =0x04000008
- mov r1, #0x3
- ldrh r2, [r0, #0x0]
- bic r2, r1
- strh r2, [r0, #0x0]
- add r0, #0x58
- ldrh r2, [r0, #0x0]
- ldr r1, _0202243C ; =0xFFFFCFFD
- and r1, r2
- strh r1, [r0, #0x0]
- ldrh r1, [r0, #0x0]
- ldr r2, _02022440 ; =0x0000CFEF
- and r1, r2
- strh r1, [r0, #0x0]
- add r1, r2, #0x0
- ldrh r3, [r0, #0x0]
- add r1, #0xc
- and r1, r3
- strh r1, [r0, #0x0]
- add r1, r2, #0x0
- ldrh r3, [r0, #0x0]
- add r1, #0x8
- sub r2, #0x10
- and r1, r3
- strh r1, [r0, #0x0]
- ldrh r1, [r0, #0x0]
- and r1, r2
- strh r1, [r0, #0x0]
- mov r0, #0x0
- add r1, r0, #0x0
- add r2, r0, #0x0
- add r3, r0, #0x0
- bl G3X_SetFog
- mov r0, #0x0
- ldr r2, _02022444 ; =0x00007FFF
- add r1, r0, #0x0
- mov r3, #0x3f
- str r0, [sp, #0x0]
- bl G3X_SetClearColor
- ldr r1, _02022448 ; =0xBFFF0000
- ldr r0, _0202244C ; =0x04000580
- str r1, [r0, #0x0]
- pop {r3, pc}
- .balign 4
-_02022438: .word 0x04000008
-_0202243C: .word 0xFFFFCFFD
-_02022440: .word 0x0000CFEF
-_02022444: .word 0x00007FFF
-_02022448: .word 0xBFFF0000
-_0202244C: .word 0x04000580
-
- thumb_func_start FUN_02022450
-FUN_02022450: ; 0x02022450
- push {r3, lr}
- bl FS_IsAvailable
- cmp r0, #0x0
- bne _02022460
- bl OS_Terminate
- pop {r3, pc}
-_02022460:
- ldr r0, _020224BC ; =0x027FF00C
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- bne _0202248A
- bl CARD_Init
- mov r2, #0x16
- ldr r0, _020224C0 ; =0x027FFE00
- ldr r1, _020224C4 ; =0x027FF000
- lsl r2, r2, #0x4
- bl MI_CpuCopy8
- mov r2, #0x16
- ldr r0, _020224C0 ; =0x027FFE00
- ldr r1, _020224C8 ; =0x027FFA80
- lsl r2, r2, #0x4
- bl MI_CpuCopy8
- ldr r1, _020224CC ; =0x4A414441
- ldr r0, _020224BC ; =0x027FF00C
- str r1, [r0, #0x0]
-_0202248A:
- ldr r0, _020224D0 ; =0x020EE6D4
- mov r1, #0x3
- bl FS_FindArchive
- ldr r1, _020224C4 ; =0x027FF000
- ldr r2, [r1, #0x48]
- str r2, [r0, #0x2c]
- ldr r2, [r1, #0x4c]
- str r2, [r0, #0x30]
- ldr r2, [r1, #0x40]
- str r2, [r0, #0x34]
- ldr r2, [r1, #0x44]
- str r2, [r0, #0x38]
- ldr r2, [r1, #0xc]
- ldr r0, _020224CC ; =0x4A414441
- cmp r2, r0
- bne _020224B4
- ldrh r1, [r1, #0x10]
- ldr r0, _020224D4 ; =0x00003130
- cmp r1, r0
- beq _020224B8
-_020224B4:
- bl OS_Terminate
-_020224B8:
- pop {r3, pc}
- nop
-_020224BC: .word 0x027FF00C
-_020224C0: .word 0x027FFE00
-_020224C4: .word 0x027FF000
-_020224C8: .word 0x027FFA80
-_020224CC: .word 0x4A414441
-_020224D0: .word 0x020EE6D4
-_020224D4: .word 0x00003130
-
- thumb_func_start FUN_020224D8
-FUN_020224D8: ; 0x020224D8
- push {r4, lr}
- sub sp, #0x48
- add r4, r0, #0x0
- add r0, sp, #0x0
- bl FS_InitFile
- add r0, sp, #0x0
- add r1, r4, #0x0
- bl FS_OpenFile
- cmp r0, #0x0
- beq _020224FC
- ldr r1, [sp, #0x24]
- ldr r0, _02022500 ; =0x027FFC2C
- str r1, [r0, #0x0]
- mov r0, #0x0
- bl OS_ResetSystem
-_020224FC:
- add sp, #0x48
- pop {r4, pc}
- .balign 4
-_02022500: .word 0x027FFC2C
-
- thumb_func_start FUN_02022504
-FUN_02022504: ; 0x02022504
- ldr r3, _0202250C ; =FUN_02022610
- mov r1, #0x1b
- bx r3
- nop
-_0202250C: .word FUN_02022610
-
- thumb_func_start FUN_02022510
-FUN_02022510: ; 0x02022510
- ldr r3, _02022518 ; =FUN_02022610
- mov r1, #0x23
- bx r3
- nop
-_02022518: .word FUN_02022610
-
- thumb_func_start FUN_0202251C
-FUN_0202251C: ; 0x0202251C
- ldr r3, _02022524 ; =FUN_02022610
- mov r1, #0x1f
- bx r3
- nop
-_02022524: .word FUN_02022610
-
- thumb_func_start FUN_02022528
-FUN_02022528: ; 0x02022528
- ldr r3, _02022530 ; =FUN_02022610
- mov r1, #0x20
- bx r3
- nop
-_02022530: .word FUN_02022610
-
- thumb_func_start FUN_02022534
-FUN_02022534: ; 0x02022534
- push {r3, lr}
- add r3, r2, #0x0
- mov r2, #0x0
- bl FUN_02023408
- pop {r3, pc}
-
- thumb_func_start FUN_02022540
-FUN_02022540: ; 0x02022540
- ldr r3, _02022548 ; =FUN_020232BC
- add r2, r1, #0x0
- mov r1, #0x0
- bx r3
- .balign 4
-_02022548: .word FUN_020232BC
-
- thumb_func_start FUN_0202254C
-FUN_0202254C: ; 0x0202254C
- push {r4, lr}
- ldr r1, _020225E0 ; =0x000204A8
- mov r0, #0x1
- bl FUN_02016998
- add r4, r0, #0x0
- ldr r2, _020225E0 ; =0x000204A8
- mov r0, #0x0
- add r1, r4, #0x0
- bl MIi_CpuClearFast
- ldr r0, _020225E4 ; =0x021C59C8
- str r4, [r0, #0x0]
- bl FUN_02023570
- str r0, [r4, #0x0]
- mov r0, #0x0
- str r0, [r4, #0x4]
- mov r0, #0x1
- str r0, [r4, #0x8]
- str r0, [r4, #0xc]
- add r0, r4, #0x0
- ldr r1, _020225E8 ; =0x00001021
- add r0, #0x14
- bl MATHi_CRC16InitTable
- ldr r0, _020225EC ; =0x00020224
- add r0, r4, r0
- bl FUN_020230E4
- ldr r0, _020225F0 ; =0x00020464
- ldr r1, _020225EC ; =0x00020224
- add r0, r4, r0
- add r1, r4, r1
- bl FUN_02023160
- ldr r1, _020225F4 ; =0x00020218
- mov r0, #0x0
- add r1, r4, r1
- mov r2, #0x8
- bl MIi_CpuClearFast
- add r0, r4, #0x0
- bl FUN_02022AD8
- str r0, [r4, #0x10]
- cmp r0, #0x3
- bhi _020225DA
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_020225B8: ; jump table (using 16-bit offset)
- .short _020225D4 - _020225B8 - 2; case 0
- .short _020225C0 - _020225B8 - 2; case 1
- .short _020225C4 - _020225B8 - 2; case 2
- .short _020225D4 - _020225B8 - 2; case 3
-_020225C0:
- mov r0, #0x0
- str r0, [r4, #0xc]
-_020225C4:
- add r0, r4, #0x0
- bl FUN_02022D08
- mov r0, #0x1
- str r0, [r4, #0x4]
- mov r0, #0x0
- str r0, [r4, #0x8]
- b _020225DA
-_020225D4:
- add r0, r4, #0x0
- bl FUN_020227DC
-_020225DA:
- add r0, r4, #0x0
- pop {r4, pc}
- nop
-_020225E0: .word 0x000204A8
-_020225E4: .word 0x021C59C8
-_020225E8: .word 0x00001021
-_020225EC: .word 0x00020224
-_020225F0: .word 0x00020464
-_020225F4: .word 0x00020218
-
- thumb_func_start FUN_020225F8
-FUN_020225F8: ; 0x020225F8
- push {r3, lr}
- ldr r0, _0202260C ; =0x021C59C8
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- bne _02022606
- bl ErrorHandling
-_02022606:
- ldr r0, _0202260C ; =0x021C59C8
- ldr r0, [r0, #0x0]
- pop {r3, pc}
- .balign 4
-_0202260C: .word 0x021C59C8
-
- thumb_func_start FUN_02022610
-FUN_02022610: ; 0x02022610
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- cmp r4, #0x24
- blt _0202261E
- bl ErrorHandling
-_0202261E:
- mov r0, #0x85
- lsl r0, r0, #0x2
- add r2, r5, r0
- lsl r0, r4, #0x4
- add r1, r5, r0
- ldr r0, _02022630 ; =0x0002022C
- ldr r0, [r1, r0]
- add r0, r2, r0
- pop {r3-r5, pc}
- .balign 4
-_02022630: .word 0x0002022C
-
- thumb_func_start FUN_02022634
-FUN_02022634: ; 0x02022634
- ldr r3, _02022638 ; =FUN_02022610
- bx r3
- .balign 4
-_02022638: .word FUN_02022610
-
- thumb_func_start FUN_0202263C
-FUN_0202263C: ; 0x0202263C
- push {r3-r7, lr}
- mov r1, #0x1
- str r0, [sp, #0x0]
- mov r0, #0x3
- lsl r1, r1, #0xc
- bl FUN_020169D8
- add r6, r0, #0x0
- mov r0, #0x1
- bl FUN_02016444
- ldr r1, _020226F4 ; =0x00020220
- ldr r0, [sp, #0x0]
- ldrb r0, [r0, r1]
- cmp r0, #0x0
- bne _02022660
- mov r2, #0x1
- b _02022662
-_02022660:
- mov r2, #0x0
-_02022662:
- ldr r0, [sp, #0x0]
- mov r1, #0x0
- bl FUN_02023074
- ldr r1, _020226F8 ; =0x00020221
- ldr r0, [sp, #0x0]
- ldrb r0, [r0, r1]
- cmp r0, #0x0
- bne _02022678
- mov r2, #0x1
- b _0202267A
-_02022678:
- mov r2, #0x0
-_0202267A:
- ldr r0, [sp, #0x0]
- mov r1, #0x1
- bl FUN_02023074
- ldr r0, [sp, #0x0]
- ldr r3, _020226F4 ; =0x00020220
- add r2, r0, #0x0
- ldrb r2, [r2, r3]
- mov r1, #0x0
- bl FUN_02023074
- ldr r0, [sp, #0x0]
- ldr r3, _020226F8 ; =0x00020221
- add r2, r0, #0x0
- ldrb r2, [r2, r3]
- mov r1, #0x1
- bl FUN_02023074
- mov r0, #0x0
- mov r2, #0x1
- mvn r0, r0
- add r1, r6, #0x0
- lsl r2, r2, #0xc
- bl MIi_CpuClearFast
- mov r4, #0x0
- mov r7, #0x1
- add r5, r4, #0x0
- lsl r7, r7, #0xc
-_020226B4:
- add r0, r5, #0x0
- add r1, r6, #0x0
- add r2, r7, #0x0
- bl FUN_020235D0
- add r0, r4, #0x0
- add r0, #0x40
- lsl r0, r0, #0xc
- add r1, r6, #0x0
- add r2, r7, #0x0
- bl FUN_020235D0
- mov r0, #0x1
- lsl r0, r0, #0xc
- add r4, r4, #0x1
- add r5, r5, r0
- cmp r4, #0x40
- blt _020226B4
- add r0, r6, #0x0
- bl FUN_02016A18
- ldr r0, [sp, #0x0]
- bl FUN_020227DC
- ldr r0, [sp, #0x0]
- mov r1, #0x0
- str r1, [r0, #0x4]
- mov r0, #0x1
- bl FUN_02016454
- mov r0, #0x1
- pop {r3-r7, pc}
- .balign 4
-_020226F4: .word 0x00020220
-_020226F8: .word 0x00020221
-
- thumb_func_start FUN_020226FC
-FUN_020226FC: ; 0x020226FC
- push {r4, lr}
- add r4, r0, #0x0
- ldr r1, [r4, #0x0]
- cmp r1, #0x0
- bne _0202270A
- mov r0, #0x0
- pop {r4, pc}
-_0202270A:
- bl FUN_02022D08
- cmp r0, #0x0
- beq _0202271C
- mov r0, #0x1
- str r0, [r4, #0x4]
- mov r1, #0x0
- str r1, [r4, #0x8]
- pop {r4, pc}
-_0202271C:
- mov r0, #0x0
- pop {r4, pc}
-
- thumb_func_start FUN_02022720
-FUN_02022720: ; 0x02022720
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, [r4, #0x0]
- cmp r0, #0x0
- bne _0202272E
- mov r0, #0x3
- pop {r4, pc}
-_0202272E:
- ldr r0, [r4, #0x8]
- cmp r0, #0x0
- beq _02022784
- mov r0, #0x1
- bl FUN_02016444
- ldr r0, _02022798 ; =0x00020220
- ldrb r0, [r4, r0]
- cmp r0, #0x0
- bne _02022746
- mov r2, #0x1
- b _02022748
-_02022746:
- mov r2, #0x0
-_02022748:
- add r0, r4, #0x0
- mov r1, #0x0
- bl FUN_02023074
- ldr r0, _0202279C ; =0x00020221
- ldrb r0, [r4, r0]
- cmp r0, #0x0
- bne _0202275C
- mov r2, #0x1
- b _0202275E
-_0202275C:
- mov r2, #0x0
-_0202275E:
- add r0, r4, #0x0
- mov r1, #0x1
- bl FUN_02023074
- ldr r2, _02022798 ; =0x00020220
- add r0, r4, #0x0
- ldrb r2, [r4, r2]
- mov r1, #0x0
- bl FUN_02023074
- ldr r2, _0202279C ; =0x00020221
- add r0, r4, #0x0
- ldrb r2, [r4, r2]
- mov r1, #0x1
- bl FUN_02023074
- mov r0, #0x1
- bl FUN_02016454
-_02022784:
- add r0, r4, #0x0
- bl FUN_02023044
- cmp r0, #0x2
- bne _02022796
- mov r1, #0x1
- str r1, [r4, #0x4]
- mov r1, #0x0
- str r1, [r4, #0x8]
-_02022796:
- pop {r4, pc}
- .balign 4
-_02022798: .word 0x00020220
-_0202279C: .word 0x00020221
-
- thumb_func_start FUN_020227A0
-FUN_020227A0: ; 0x020227A0
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- cmp r4, #0x2
- blt _020227AE
- bl ErrorHandling
-_020227AE:
- ldr r0, [r5, #0x8]
- cmp r0, #0x0
- beq _020227B8
- bl ErrorHandling
-_020227B8:
- ldr r0, [r5, #0x4]
- cmp r0, #0x1
- beq _020227C2
- bl ErrorHandling
-_020227C2:
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02022840
-_020227CA:
- add r0, r5, #0x0
- bl FUN_02022854
- cmp r0, #0x0
- beq _020227CA
- cmp r0, #0x1
- beq _020227CA
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_020227DC
-FUN_020227DC: ; 0x020227DC
- add r2, r0, #0x0
- mov r0, #0x1
- str r0, [r2, #0x8]
- str r0, [r2, #0xc]
- mov r0, #0x85
- ldr r1, _020227F4 ; =0x00020224
- lsl r0, r0, #0x2
- ldr r3, _020227F8 ; =FUN_020231F4
- add r0, r2, r0
- add r1, r2, r1
- bx r3
- nop
-_020227F4: .word 0x00020224
-_020227F8: .word FUN_020231F4
-
- thumb_func_start FUN_020227FC
-FUN_020227FC: ; 0x020227FC
- ldr r0, [r0, #0x0]
- bx lr
-
- thumb_func_start FUN_02022800
-FUN_02022800: ; 0x02022800
- ldr r0, [r0, #0x10]
- bx lr
-
- thumb_func_start FUN_02022804
-FUN_02022804: ; 0x02022804
- ldr r0, [r0, #0x4]
- bx lr
-
- thumb_func_start FUN_02022808
-FUN_02022808: ; 0x02022808
- ldr r0, [r0, #0x8]
- bx lr
-
- thumb_func_start FUN_0202280C
-FUN_0202280C: ; 0x0202280C
- push {r4, lr}
- add r4, r0, #0x0
- bl FUN_02022808
- cmp r0, #0x0
- beq _02022826
- add r0, r4, #0x0
- bl FUN_02022804
- cmp r0, #0x0
- beq _02022826
- mov r0, #0x1
- pop {r4, pc}
-_02022826:
- mov r0, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0202282C
-FUN_0202282C: ; 0x0202282C
- ldr r0, [r0, #0xc]
- bx lr
-
- thumb_func_start FUN_02022830
-FUN_02022830: ; 0x02022830
- ldr r0, _0202283C ; =0x021C59C8
- mov r1, #0x1
- ldr r0, [r0, #0x0]
- str r1, [r0, #0xc]
- bx lr
- nop
-_0202283C: .word 0x021C59C8
-
- thumb_func_start FUN_02022840
-FUN_02022840: ; 0x02022840
- add r2, r1, #0x0
- ldr r1, _0202284C ; =0x0002047C
- ldr r3, _02022850 ; =FUN_02022DFC
- add r1, r0, r1
- bx r3
- nop
-_0202284C: .word 0x0002047C
-_02022850: .word FUN_02022DFC
-
- thumb_func_start FUN_02022854
-FUN_02022854: ; 0x02022854
- push {r3-r5, lr}
- ldr r1, _02022878 ; =0x0002047C
- add r5, r0, #0x0
- add r1, r5, r1
- bl FUN_02022E78
- add r4, r0, #0x0
- beq _02022874
- cmp r4, #0x1
- beq _02022874
- ldr r1, _02022878 ; =0x0002047C
- add r0, r5, #0x0
- add r1, r5, r1
- add r2, r4, #0x0
- bl FUN_02022F80
-_02022874:
- add r0, r4, #0x0
- pop {r3-r5, pc}
- .balign 4
-_02022878: .word 0x0002047C
-
- thumb_func_start FUN_0202287C
-FUN_0202287C: ; 0x0202287C
- ldr r1, _02022884 ; =0x0002047C
- ldr r3, _02022888 ; =FUN_02022FF0
- add r1, r0, r1
- bx r3
- .balign 4
-_02022884: .word 0x0002047C
-_02022888: .word FUN_02022FF0
-
- thumb_func_start FUN_0202288C
-FUN_0202288C: ; 0x0202288C
- mov r1, #0x0
- str r1, [r0, #0x0]
- str r1, [r0, #0x4]
- str r1, [r0, #0x8]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02022898
-FUN_02022898: ; 0x02022898
- ldr r3, _020228A0 ; =MATH_CalcCRC16CCITT
- add r0, #0x14
- sub r2, #0x14
- bx r3
- .balign 4
-_020228A0: .word MATH_CalcCRC16CCITT
-
- thumb_func_start FUN_020228A4
-FUN_020228A4: ; 0x020228A4
- cmp r0, #0x0
- bne _020228AC
- mov r2, #0x0
- b _020228B0
-_020228AC:
- mov r2, #0x1
- lsl r2, r2, #0x12
-_020228B0:
- ldr r0, [r1, #0x4]
- add r0, r2, r0
- bx lr
- .balign 4
-
- thumb_func_start FUN_020228B8
-FUN_020228B8: ; 0x020228B8
- push {r3-r5, lr}
- ldr r3, _020228DC ; =0x00020464
- add r3, r0, r3
- mov r0, #0xc
- mul r0, r2
- add r5, r3, r0
- ldr r0, [r5, #0x4]
- add r4, r1, r0
- ldr r0, [r5, #0x8]
- cmp r0, #0x0
- bne _020228D2
- bl ErrorHandling
-_020228D2:
- ldr r0, [r5, #0x8]
- add r0, r4, r0
- sub r0, #0x14
- pop {r3-r5, pc}
- nop
-_020228DC: .word 0x00020464
-
- thumb_func_start FUN_020228E0
-FUN_020228E0: ; 0x020228E0
- push {r3-r7, lr}
- ldr r4, _02022934 ; =0x00020464
- add r3, r0, #0x0
- add r3, r3, r4
- add r5, r2, #0x0
- mov r4, #0xc
- mul r4, r5
- str r0, [sp, #0x0]
- add r7, r1, #0x0
- add r6, r3, r4
- bl FUN_020228B8
- add r4, r0, #0x0
- ldr r2, [r6, #0x8]
- ldr r0, [r4, #0x8]
- ldr r1, [r6, #0x4]
- cmp r0, r2
- beq _02022908
- mov r0, #0x0
- pop {r3-r7, pc}
-_02022908:
- ldr r3, [r4, #0xc]
- ldr r0, _02022938 ; =0x20060623
- cmp r3, r0
- beq _02022914
- mov r0, #0x0
- pop {r3-r7, pc}
-_02022914:
- ldrb r0, [r4, #0x10]
- cmp r0, r5
- beq _0202291E
- mov r0, #0x0
- pop {r3-r7, pc}
-_0202291E:
- ldr r0, [sp, #0x0]
- add r1, r7, r1
- bl FUN_02022898
- ldrh r1, [r4, #0x12]
- cmp r1, r0
- bne _02022930
- mov r0, #0x1
- pop {r3-r7, pc}
-_02022930:
- mov r0, #0x0
- pop {r3-r7, pc}
- .balign 4
-_02022934: .word 0x00020464
-_02022938: .word 0x20060623
-
- thumb_func_start FUN_0202293C
-FUN_0202293C: ; 0x0202293C
- push {r3-r7, lr}
- add r7, r2, #0x0
- add r6, r1, #0x0
- add r5, r0, #0x0
- str r3, [sp, #0x0]
- add r0, r6, #0x0
- add r1, r7, #0x0
- add r2, r3, #0x0
- bl FUN_020228B8
- add r4, r0, #0x0
- ldr r2, [sp, #0x0]
- add r0, r6, #0x0
- add r1, r7, #0x0
- bl FUN_020228E0
- str r0, [r5, #0x0]
- ldr r0, [r4, #0x0]
- str r0, [r5, #0x4]
- ldr r0, [r4, #0x4]
- str r0, [r5, #0x8]
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02022968
-FUN_02022968: ; 0x02022968
- push {r3-r7, lr}
- ldr r3, _020229AC ; =0x00020464
- add r5, r0, #0x0
- add r7, r2, #0x0
- mov r4, #0xc
- add r3, r5, r3
- mul r4, r7
- str r1, [sp, #0x0]
- add r6, r3, r4
- bl FUN_020228B8
- ldr r2, _020229B0 ; =0x00020214
- add r4, r0, #0x0
- ldr r0, [r5, r2]
- ldr r1, [r6, #0x4]
- add r2, r2, #0x4
- str r0, [r4, #0x0]
- lsl r0, r7, #0x2
- add r0, r5, r0
- ldr r0, [r0, r2]
- ldr r2, [sp, #0x0]
- str r0, [r4, #0x4]
- ldr r0, [r6, #0x8]
- add r1, r2, r1
- str r0, [r4, #0x8]
- ldr r0, _020229B4 ; =0x20060623
- str r0, [r4, #0xc]
- strb r7, [r4, #0x10]
- ldr r2, [r6, #0x8]
- add r0, r5, #0x0
- bl FUN_02022898
- strh r0, [r4, #0x12]
- pop {r3-r7, pc}
- .balign 4
-_020229AC: .word 0x00020464
-_020229B0: .word 0x00020214
-_020229B4: .word 0x20060623
-
- thumb_func_start FUN_020229B8
-FUN_020229B8: ; 0x020229B8
- mov r2, #0x0
- mvn r2, r2
- cmp r0, r2
- bne _020229C8
- cmp r1, #0x0
- bne _020229C8
- add r0, r2, #0x0
- bx lr
-_020229C8:
- cmp r0, #0x0
- bne _020229D8
- mov r2, #0x0
- mvn r2, r2
- cmp r1, r2
- bne _020229D8
- mov r0, #0x1
- bx lr
-_020229D8:
- cmp r0, r1
- bls _020229E0
- mov r0, #0x1
- bx lr
-_020229E0:
- cmp r0, r1
- bhs _020229E8
- mov r0, #0x1
- b _020229EA
-_020229E8:
- mov r0, #0x0
-_020229EA:
- neg r0, r0
- bx lr
- .balign 4
-
- thumb_func_start FUN_020229F0
-FUN_020229F0: ; 0x020229F0
- push {r3-r7, lr}
- add r7, r0, #0x0
- add r6, r1, #0x0
- ldr r0, [r7, #0x4]
- ldr r1, [r6, #0x4]
- add r5, r2, #0x0
- add r4, r3, #0x0
- bl FUN_020229B8
- str r0, [sp, #0x0]
- ldr r0, [r7, #0x8]
- ldr r1, [r6, #0x8]
- bl FUN_020229B8
- ldr r2, [r7, #0x0]
- cmp r2, #0x0
- beq _02022A6A
- ldr r1, [r6, #0x0]
- cmp r1, #0x0
- beq _02022A6A
- ldr r1, [sp, #0x0]
- cmp r1, #0x0
- ble _02022A30
- cmp r0, #0x0
- bgt _02022A26
- bl ErrorHandling
-_02022A26:
- mov r0, #0x0
- str r0, [r5, #0x0]
- mov r0, #0x1
- str r0, [r4, #0x0]
- b _02022A66
-_02022A30:
- bge _02022A44
- cmp r0, #0x0
- blt _02022A3A
- bl ErrorHandling
-_02022A3A:
- mov r0, #0x1
- str r0, [r5, #0x0]
- mov r0, #0x0
- str r0, [r4, #0x0]
- b _02022A66
-_02022A44:
- cmp r0, #0x0
- ble _02022A52
- mov r0, #0x0
- str r0, [r5, #0x0]
- mov r0, #0x1
- str r0, [r4, #0x0]
- b _02022A66
-_02022A52:
- bge _02022A5E
- mov r0, #0x1
- str r0, [r5, #0x0]
- mov r0, #0x0
- str r0, [r4, #0x0]
- b _02022A66
-_02022A5E:
- mov r0, #0x0
- str r0, [r5, #0x0]
- mov r0, #0x1
- str r0, [r4, #0x0]
-_02022A66:
- mov r0, #0x2
- pop {r3-r7, pc}
-_02022A6A:
- cmp r2, #0x0
- beq _02022A80
- ldr r0, [r6, #0x0]
- cmp r0, #0x0
- bne _02022A80
- mov r0, #0x0
- str r0, [r5, #0x0]
- mov r0, #0x2
- str r0, [r4, #0x0]
- mov r0, #0x1
- pop {r3-r7, pc}
-_02022A80:
- cmp r2, #0x0
- bne _02022A94
- ldr r0, [r6, #0x0]
- cmp r0, #0x0
- beq _02022A94
- mov r0, #0x1
- str r0, [r5, #0x0]
- mov r1, #0x2
- str r1, [r4, #0x0]
- pop {r3-r7, pc}
-_02022A94:
- mov r0, #0x2
- str r0, [r5, #0x0]
- str r0, [r4, #0x0]
- mov r0, #0x0
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02022AA0
-FUN_02022AA0: ; 0x02022AA0
- push {r3-r6}
- mov r4, #0xc
- add r5, r3, #0x0
- mul r5, r4
- add r6, r1, r5
- ldr r5, [r6, #0x4]
- ldr r1, _02022AD4 ; =0x00020214
- str r5, [r0, r1]
- ldr r6, [r6, #0x8]
- add r5, r1, #0x4
- str r6, [r0, r5]
- ldr r5, [sp, #0x10]
- mul r4, r5
- add r2, r2, r4
- ldr r4, [r2, #0x8]
- add r2, r1, #0x0
- add r2, #0x8
- str r4, [r0, r2]
- add r2, r1, #0x0
- add r2, #0xc
- strb r3, [r0, r2]
- add r1, #0xd
- strb r5, [r0, r1]
- pop {r3-r6}
- bx lr
- nop
-_02022AD4: .word 0x00020214
-
- thumb_func_start FUN_02022AD8
-FUN_02022AD8: ; 0x02022AD8
- push {r3-r6, lr}
- sub sp, #0x44
- mov r1, #0x2
- add r5, r0, #0x0
- mov r0, #0x3
- lsl r1, r1, #0x10
- bl FUN_020169D8
- mov r1, #0x2
- add r6, r0, #0x0
- mov r0, #0x3
- lsl r1, r1, #0x10
- bl FUN_020169D8
- mov r2, #0x2
- add r4, r0, #0x0
- mov r0, #0x0
- add r1, r6, #0x0
- lsl r2, r2, #0x10
- bl FUN_020235EC
- cmp r0, #0x0
- add r0, sp, #0x2c
- beq _02022B20
- add r1, r5, #0x0
- add r2, r6, #0x0
- mov r3, #0x0
- bl FUN_0202293C
- add r0, sp, #0x14
- add r1, r5, #0x0
- add r2, r6, #0x0
- mov r3, #0x1
- bl FUN_0202293C
- b _02022B2A
-_02022B20:
- bl FUN_0202288C
- add r0, sp, #0x14
- bl FUN_0202288C
-_02022B2A:
- mov r0, #0x1
- lsl r0, r0, #0x12
- add r1, r4, #0x0
- lsr r2, r0, #0x1
- bl FUN_020235EC
- cmp r0, #0x0
- add r0, sp, #0x38
- beq _02022B54
- add r1, r5, #0x0
- add r2, r4, #0x0
- mov r3, #0x0
- bl FUN_0202293C
- add r0, sp, #0x20
- add r1, r5, #0x0
- add r2, r4, #0x0
- mov r3, #0x1
- bl FUN_0202293C
- b _02022B5E
-_02022B54:
- bl FUN_0202288C
- add r0, sp, #0x20
- bl FUN_0202288C
-_02022B5E:
- add r0, r6, #0x0
- bl FUN_02016A18
- add r0, r4, #0x0
- bl FUN_02016A18
- add r0, sp, #0x2c
- add r1, sp, #0x38
- add r2, sp, #0x10
- add r3, sp, #0x8
- bl FUN_020229F0
- add r4, r0, #0x0
- add r0, sp, #0x14
- add r1, sp, #0x20
- add r2, sp, #0xc
- add r3, sp, #0x4
- bl FUN_020229F0
- cmp r4, #0x0
- bne _02022B92
- cmp r0, #0x0
- bne _02022B92
- add sp, #0x44
- mov r0, #0x0
- pop {r3-r6, pc}
-_02022B92:
- cmp r4, #0x0
- beq _02022B9A
- cmp r0, #0x0
- bne _02022BA0
-_02022B9A:
- add sp, #0x44
- mov r0, #0x3
- pop {r3-r6, pc}
-_02022BA0:
- cmp r4, #0x2
- bne _02022BE4
- cmp r0, #0x2
- bne _02022BE4
- ldr r3, [sp, #0x10]
- ldr r1, [sp, #0xc]
- mov r2, #0xc
- add r4, r3, #0x0
- mul r4, r2
- add r0, sp, #0x30
- ldr r0, [r0, r4]
- add r4, r1, #0x0
- mul r4, r2
- add r2, sp, #0x18
- ldr r2, [r2, r4]
- cmp r0, r2
- str r1, [sp, #0x0]
- add r1, sp, #0x2c
- bne _02022BD4
- add r0, r5, #0x0
- add r2, sp, #0x14
- bl FUN_02022AA0
- add sp, #0x44
- mov r0, #0x1
- pop {r3-r6, pc}
-_02022BD4:
- ldr r3, [sp, #0x8]
- add r0, r5, #0x0
- add r2, sp, #0x14
- bl FUN_02022AA0
- add sp, #0x44
- mov r0, #0x2
- pop {r3-r6, pc}
-_02022BE4:
- cmp r4, #0x1
- bne _02022C3A
- cmp r0, #0x2
- bne _02022C3A
- ldr r3, [sp, #0x10]
- ldr r0, [sp, #0xc]
- mov r4, #0xc
- add r2, r3, #0x0
- add r6, r0, #0x0
- mul r2, r4
- add r1, sp, #0x30
- ldr r2, [r1, r2]
- mul r6, r4
- add r1, sp, #0x18
- ldr r6, [r1, r6]
- cmp r2, r6
- bne _02022C18
- str r0, [sp, #0x0]
- add r0, r5, #0x0
- add r1, sp, #0x2c
- add r2, sp, #0x14
- bl FUN_02022AA0
- add sp, #0x44
- mov r0, #0x2
- pop {r3-r6, pc}
-_02022C18:
- ldr r0, [sp, #0x4]
- mul r4, r0
- ldr r1, [r1, r4]
- cmp r2, r1
- bne _02022C34
- str r0, [sp, #0x0]
- add r0, r5, #0x0
- add r1, sp, #0x2c
- add r2, sp, #0x14
- bl FUN_02022AA0
- add sp, #0x44
- mov r0, #0x2
- pop {r3-r6, pc}
-_02022C34:
- add sp, #0x44
- mov r0, #0x3
- pop {r3-r6, pc}
-_02022C3A:
- cmp r4, #0x2
- bne _02022C7E
- cmp r0, #0x1
- bne _02022C7E
- ldr r3, [sp, #0x10]
- ldr r1, [sp, #0xc]
- mov r2, #0xc
- add r4, r3, #0x0
- mul r4, r2
- add r0, sp, #0x30
- ldr r0, [r0, r4]
- add r4, r1, #0x0
- mul r4, r2
- add r2, sp, #0x18
- ldr r2, [r2, r4]
- cmp r0, r2
- str r1, [sp, #0x0]
- add r1, sp, #0x2c
- bne _02022C6E
- add r0, r5, #0x0
- add r2, sp, #0x14
- bl FUN_02022AA0
- add sp, #0x44
- mov r0, #0x1
- pop {r3-r6, pc}
-_02022C6E:
- ldr r3, [sp, #0x8]
- add r0, r5, #0x0
- add r2, sp, #0x14
- bl FUN_02022AA0
- add sp, #0x44
- mov r0, #0x2
- pop {r3-r6, pc}
-_02022C7E:
- cmp r4, #0x1
- bne _02022CBC
- cmp r0, #0x1
- bne _02022CBC
- ldr r0, [sp, #0xc]
- ldr r2, [sp, #0x10]
- cmp r2, r0
- bne _02022CBC
- add r3, r2, #0x0
- mov r1, #0xc
- mul r3, r1
- add r2, sp, #0x30
- mul r1, r0
- add r0, sp, #0x18
- ldr r2, [r2, r3]
- ldr r0, [r0, r1]
- cmp r2, r0
- beq _02022CA6
- bl ErrorHandling
-_02022CA6:
- ldr r0, [sp, #0xc]
- add r1, sp, #0x2c
- str r0, [sp, #0x0]
- ldr r3, [sp, #0x10]
- add r0, r5, #0x0
- add r2, sp, #0x14
- bl FUN_02022AA0
- add sp, #0x44
- mov r0, #0x1
- pop {r3-r6, pc}
-_02022CBC:
- ldr r1, [sp, #0x10]
- mov r0, #0xc
- add r2, r1, #0x0
- mul r2, r0
- add r1, sp, #0x30
- ldr r3, [r1, r2]
- ldr r1, [sp, #0xc]
- add r2, r1, #0x0
- mul r2, r0
- add r0, sp, #0x18
- ldr r0, [r0, r2]
- cmp r3, r0
- beq _02022CDA
- bl ErrorHandling
-_02022CDA:
- ldr r0, [sp, #0xc]
- add r1, sp, #0x2c
- str r0, [sp, #0x0]
- ldr r3, [sp, #0x10]
- add r0, r5, #0x0
- add r2, sp, #0x14
- bl FUN_02022AA0
- mov r0, #0x2
- add sp, #0x44
- pop {r3-r6, pc}
-
- thumb_func_start FUN_02022CF0
-FUN_02022CF0: ; 0x02022CF0
- push {r3-r5, lr}
- add r5, r1, #0x0
- add r4, r2, #0x0
- bl FUN_020228A4
- ldr r1, [r5, #0x4]
- ldr r2, [r5, #0x8]
- add r1, r4, r1
- bl FUN_020235EC
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02022D08
-FUN_02022D08: ; 0x02022D08
- push {r3-r7, lr}
- add r5, r0, #0x0
- ldr r0, _02022D4C ; =0x00020464
- mov r7, #0x85
- mov r4, #0x0
- add r6, r5, r0
- lsl r7, r7, #0x2
-_02022D16:
- ldr r0, _02022D50 ; =0x00020220
- add r1, r5, r4
- ldrb r0, [r1, r0]
- add r1, r6, #0x0
- add r2, r5, r7
- bl FUN_02022CF0
- cmp r0, #0x0
- bne _02022D2C
- mov r0, #0x0
- pop {r3-r7, pc}
-_02022D2C:
- add r0, r5, #0x0
- add r1, r5, r7
- add r2, r4, #0x0
- bl FUN_020228E0
- cmp r0, #0x0
- bne _02022D3E
- mov r0, #0x0
- pop {r3-r7, pc}
-_02022D3E:
- add r4, r4, #0x1
- add r6, #0xc
- cmp r4, #0x2
- blt _02022D16
- mov r0, #0x1
- pop {r3-r7, pc}
- nop
-_02022D4C: .word 0x00020464
-_02022D50: .word 0x00020220
-
- thumb_func_start FUN_02022D54
-FUN_02022D54: ; 0x02022D54
- push {r4-r6, lr}
- add r3, r1, #0x0
- ldr r1, _02022D90 ; =0x00020464
- add r5, r0, #0x0
- add r6, r2, #0x0
- add r2, r5, r1
- mov r1, #0xc
- mul r1, r3
- add r4, r2, r1
- mov r1, #0x85
- lsl r1, r1, #0x2
- add r1, r5, r1
- add r2, r3, #0x0
- bl FUN_02022968
- add r0, r6, #0x0
- add r1, r4, #0x0
- bl FUN_020228A4
- mov r1, #0x85
- lsl r1, r1, #0x2
- add r2, r5, r1
- ldr r1, [r4, #0x4]
- add r1, r2, r1
- ldr r2, [r4, #0x8]
- sub r2, #0x14
- bl FUN_02023668
- pop {r4-r6, pc}
- nop
-_02022D90: .word 0x00020464
-
- thumb_func_start FUN_02022D94
-FUN_02022D94: ; 0x02022D94
- push {r4-r6, lr}
- add r6, r0, #0x0
- ldr r0, _02022DC4 ; =0x00020464
- add r3, r6, r0
- mov r0, #0xc
- mul r0, r1
- add r4, r3, r0
- add r0, r2, #0x0
- add r1, r4, #0x0
- ldr r5, [r4, #0x8]
- bl FUN_020228A4
- mov r1, #0x2
- lsl r1, r1, #0x8
- add r2, r6, r1
- ldr r1, [r4, #0x4]
- add r0, r5, r0
- add r1, r2, r1
- sub r0, #0x14
- add r1, r1, r5
- mov r2, #0x14
- bl FUN_02023668
- pop {r4-r6, pc}
- .balign 4
-_02022DC4: .word 0x00020464
-
- thumb_func_start FUN_02022DC8
-FUN_02022DC8: ; 0x02022DC8
- push {r4-r6, lr}
- add r6, r0, #0x0
- ldr r0, _02022DF8 ; =0x00020464
- add r3, r6, r0
- mov r0, #0xc
- mul r0, r1
- add r4, r3, r0
- add r0, r2, #0x0
- add r1, r4, #0x0
- ldr r5, [r4, #0x8]
- bl FUN_020228A4
- mov r1, #0x82
- lsl r1, r1, #0x2
- add r2, r6, r1
- ldr r1, [r4, #0x4]
- add r0, r5, r0
- add r1, r2, r1
- sub r0, #0xc
- add r1, r1, r5
- mov r2, #0x8
- bl FUN_02023668
- pop {r4-r6, pc}
- .balign 4
-_02022DF8: .word 0x00020464
-
- thumb_func_start FUN_02022DFC
-FUN_02022DFC: ; 0x02022DFC
- push {r3-r7, lr}
- ldr r7, _02022E70 ; =0x00020218
- add r4, r1, #0x0
- mov r12, r2
- mov r1, #0x0
- add r2, r0, #0x0
- add r3, r4, #0x0
- add r6, r7, #0x0
-_02022E0C:
- ldr r5, _02022E70 ; =0x00020218
- add r1, r1, #0x1
- ldr r5, [r2, r5]
- str r5, [r3, #0x1c]
- ldr r5, [r2, r7]
- add r3, r3, #0x4
- add r5, r5, #0x1
- str r5, [r2, r6]
- add r2, r2, #0x4
- cmp r1, #0x2
- blt _02022E0C
- mov r1, #0x0
- str r1, [r4, #0x14]
- mov r2, r12
- str r1, [r4, #0x0]
- cmp r2, #0x2
- bne _02022E58
- ldr r2, [r0, #0xc]
- cmp r2, #0x0
- beq _02022E4E
- mov r2, #0x1
- str r2, [r4, #0x0]
- ldr r2, _02022E74 ; =0x00020214
- ldr r3, [r0, r2]
- str r3, [r4, #0x18]
- ldr r3, [r0, r2]
- add r3, r3, #0x1
- str r3, [r0, r2]
- str r1, [r4, #0x4]
- str r1, [r4, #0x8]
- mov r0, #0x2
- str r0, [r4, #0xc]
- b _02022E66
-_02022E4E:
- str r1, [r4, #0x4]
- str r1, [r4, #0x8]
- mov r0, #0x1
- str r0, [r4, #0xc]
- b _02022E66
-_02022E58:
- mov r0, r12
- str r0, [r4, #0x4]
- mov r0, r12
- str r0, [r4, #0x8]
- mov r0, r12
- add r0, r0, #0x1
- str r0, [r4, #0xc]
-_02022E66:
- mov r0, #0x1
- bl FUN_02016444
- pop {r3-r7, pc}
- nop
-_02022E70: .word 0x00020218
-_02022E74: .word 0x00020214
-
- thumb_func_start FUN_02022E78
-FUN_02022E78: ; 0x02022E78
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- ldr r0, [r4, #0x14]
- cmp r0, #0x5
- bhi _02022F78
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02022E90: ; jump table (using 16-bit offset)
- .short _02022E9C - _02022E90 - 2; case 0
- .short _02022EC0 - _02022E90 - 2; case 1
- .short _02022EDC - _02022E90 - 2; case 2
- .short _02022F00 - _02022E90 - 2; case 3
- .short _02022F2A - _02022E90 - 2; case 4
- .short _02022F4E - _02022E90 - 2; case 5
-_02022E9C:
- ldr r1, [r4, #0x8]
- ldr r0, _02022F7C ; =0x00020220
- add r2, r5, r1
- ldrb r0, [r2, r0]
- cmp r0, #0x0
- bne _02022EAC
- mov r2, #0x1
- b _02022EAE
-_02022EAC:
- mov r2, #0x0
-_02022EAE:
- lsl r2, r2, #0x18
- add r0, r5, #0x0
- lsr r2, r2, #0x18
- bl FUN_02022D54
- str r0, [r4, #0x10]
- ldr r0, [r4, #0x14]
- add r0, r0, #0x1
- str r0, [r4, #0x14]
-_02022EC0:
- ldr r0, [r4, #0x10]
- add r1, sp, #0x0
- bl FUN_020236E4
- cmp r0, #0x0
- beq _02022F78
- ldr r0, [sp, #0x0]
- cmp r0, #0x0
- bne _02022ED6
- mov r0, #0x3
- pop {r3-r5, pc}
-_02022ED6:
- ldr r0, [r4, #0x14]
- add r0, r0, #0x1
- str r0, [r4, #0x14]
-_02022EDC:
- ldr r1, [r4, #0x8]
- ldr r0, _02022F7C ; =0x00020220
- add r2, r5, r1
- ldrb r0, [r2, r0]
- cmp r0, #0x0
- bne _02022EEC
- mov r2, #0x1
- b _02022EEE
-_02022EEC:
- mov r2, #0x0
-_02022EEE:
- lsl r2, r2, #0x18
- add r0, r5, #0x0
- lsr r2, r2, #0x18
- bl FUN_02022DC8
- str r0, [r4, #0x10]
- ldr r0, [r4, #0x14]
- add r0, r0, #0x1
- str r0, [r4, #0x14]
-_02022F00:
- ldr r0, [r4, #0x10]
- add r1, sp, #0x0
- bl FUN_020236E4
- cmp r0, #0x0
- beq _02022F78
- ldr r0, [sp, #0x0]
- cmp r0, #0x0
- bne _02022F16
- mov r0, #0x3
- pop {r3-r5, pc}
-_02022F16:
- ldr r0, [r4, #0x14]
- add r0, r0, #0x1
- str r0, [r4, #0x14]
- ldr r0, [r4, #0x8]
- add r1, r0, #0x1
- ldr r0, [r4, #0xc]
- cmp r1, r0
- bne _02022F2A
- mov r0, #0x1
- pop {r3-r5, pc}
-_02022F2A:
- ldr r1, [r4, #0x8]
- ldr r0, _02022F7C ; =0x00020220
- add r2, r5, r1
- ldrb r0, [r2, r0]
- cmp r0, #0x0
- bne _02022F3A
- mov r2, #0x1
- b _02022F3C
-_02022F3A:
- mov r2, #0x0
-_02022F3C:
- lsl r2, r2, #0x18
- add r0, r5, #0x0
- lsr r2, r2, #0x18
- bl FUN_02022D94
- str r0, [r4, #0x10]
- ldr r0, [r4, #0x14]
- add r0, r0, #0x1
- str r0, [r4, #0x14]
-_02022F4E:
- ldr r0, [r4, #0x10]
- add r1, sp, #0x0
- bl FUN_020236E4
- cmp r0, #0x0
- beq _02022F78
- ldr r0, [sp, #0x0]
- cmp r0, #0x0
- bne _02022F64
- mov r0, #0x3
- pop {r3-r5, pc}
-_02022F64:
- ldr r0, [r4, #0x8]
- add r1, r0, #0x1
- str r1, [r4, #0x8]
- ldr r0, [r4, #0xc]
- cmp r1, r0
- bne _02022F74
- mov r0, #0x2
- pop {r3-r5, pc}
-_02022F74:
- mov r0, #0x0
- str r0, [r4, #0x14]
-_02022F78:
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-_02022F7C: .word 0x00020220
-
- thumb_func_start FUN_02022F80
-FUN_02022F80: ; 0x02022F80
- push {r3-r7, lr}
- add r3, r0, #0x0
- add r0, r1, #0x0
- cmp r2, #0x3
- bne _02022FAA
- ldr r1, [r0, #0x0]
- cmp r1, #0x0
- beq _02022F96
- ldr r2, [r0, #0x18]
- ldr r1, _02022FE4 ; =0x00020214
- str r2, [r3, r1]
-_02022F96:
- ldr r1, _02022FE8 ; =0x00020218
- mov r4, #0x0
-_02022F9A:
- ldr r2, [r0, #0x1c]
- add r4, r4, #0x1
- str r2, [r3, r1]
- add r0, r0, #0x4
- add r3, r3, #0x4
- cmp r4, #0x2
- blt _02022F9A
- b _02022FDA
-_02022FAA:
- ldr r6, [r0, #0x4]
- ldr r1, [r0, #0xc]
- cmp r6, r1
- bge _02022FD0
- ldr r1, _02022FEC ; =0x00020220
- mov r7, #0x1
- add r2, r1, #0x0
-_02022FB8:
- add r5, r3, r6
- ldrb r4, [r5, r2]
- cmp r4, #0x0
- bne _02022FC4
- add r4, r7, #0x0
- b _02022FC6
-_02022FC4:
- mov r4, #0x0
-_02022FC6:
- strb r4, [r5, r1]
- ldr r4, [r0, #0xc]
- add r6, r6, #0x1
- cmp r6, r4
- blt _02022FB8
-_02022FD0:
- mov r0, #0x1
- str r0, [r3, #0x4]
- mov r0, #0x0
- str r0, [r3, #0x8]
- str r0, [r3, #0xc]
-_02022FDA:
- mov r0, #0x1
- bl FUN_02016454
- pop {r3-r7, pc}
- nop
-_02022FE4: .word 0x00020214
-_02022FE8: .word 0x00020218
-_02022FEC: .word 0x00020220
-
- thumb_func_start FUN_02022FF0
-FUN_02022FF0: ; 0x02022FF0
- push {r3-r5, lr}
- add r4, r1, #0x0
- ldr r1, [r4, #0x0]
- cmp r1, #0x0
- beq _02023000
- ldr r2, [r4, #0x18]
- ldr r1, _0202303C ; =0x00020214
- str r2, [r0, r1]
-_02023000:
- ldr r1, _02023040 ; =0x00020218
- mov r3, #0x0
- add r5, r4, #0x0
-_02023006:
- ldr r2, [r5, #0x1c]
- add r3, r3, #0x1
- str r2, [r0, r1]
- add r5, r5, #0x4
- add r0, r0, #0x4
- cmp r3, #0x2
- blt _02023006
- bl CARD_TryWaitBackupAsync
- cmp r0, #0x0
- bne _02023034
- bl CARD_CancelBackupAsync
- ldr r0, [r4, #0x10]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl CARD_UnlockBackup
- ldr r0, [r4, #0x10]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl OS_ReleaseLockID
-_02023034:
- mov r0, #0x1
- bl FUN_02016454
- pop {r3-r5, pc}
- .balign 4
-_0202303C: .word 0x00020214
-_02023040: .word 0x00020218
-
- thumb_func_start FUN_02023044
-FUN_02023044: ; 0x02023044
- push {r3-r6, lr}
- sub sp, #0x24
- add r1, sp, #0x0
- mov r2, #0x2
- add r5, r0, #0x0
- bl FUN_02022DFC
- add r6, sp, #0x0
-_02023054:
- add r0, r5, #0x0
- add r1, r6, #0x0
- bl FUN_02022E78
- add r4, r0, #0x0
- beq _02023054
- cmp r4, #0x1
- beq _02023054
- add r0, r5, #0x0
- add r1, sp, #0x0
- add r2, r4, #0x0
- bl FUN_02022F80
- add r0, r4, #0x0
- add sp, #0x24
- pop {r3-r6, pc}
-
- thumb_func_start FUN_02023074
-FUN_02023074: ; 0x02023074
- push {r4-r5, lr}
- sub sp, #0x14
- add r4, r2, #0x0
- ldr r2, _020230A8 ; =0x00020464
- add r2, r0, r2
- mov r0, #0xc
- mul r0, r1
- add r5, r2, r0
- add r0, sp, #0x0
- mov r1, #0xff
- mov r2, #0x14
- bl MI_CpuFill8
- add r0, r4, #0x0
- add r1, r5, #0x0
- bl FUN_020228A4
- ldr r1, [r5, #0x8]
- mov r2, #0x14
- add r0, r1, r0
- sub r0, #0x14
- add r1, sp, #0x0
- bl FUN_020235D0
- add sp, #0x14
- pop {r4-r5, pc}
- .balign 4
-_020230A8: .word 0x00020464
-
- thumb_func_start FUN_020230AC
-FUN_020230AC: ; 0x020230AC
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldr r0, _020230DC ; =0x020EE6DC
- ldr r4, _020230E0 ; =0x020EE700
- ldr r0, [r0, #0x0]
- cmp r5, r0
- blt _020230BE
- bl ErrorHandling
-_020230BE:
- lsl r0, r5, #0x4
- add r0, r4, r0
- ldr r0, [r0, #0x8]
- blx r0
- lsr r3, r0, #0x1f
- lsl r2, r0, #0x1e
- sub r2, r2, r3
- mov r1, #0x1e
- ror r2, r1
- add r2, r3, r2
- mov r1, #0x4
- sub r1, r1, r2
- add r0, r0, r1
- pop {r3-r5, pc}
- nop
-_020230DC: .word 0x020EE6DC
-_020230E0: .word 0x020EE700
-
- thumb_func_start FUN_020230E4
-FUN_020230E4: ; 0x020230E4
- push {r3-r7, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- ldr r0, _02023158 ; =0x020EE6DC
- ldr r4, _0202315C ; =0x020EE700
- ldr r0, [r0, #0x0]
- mov r7, #0x0
- str r0, [sp, #0x0]
- cmp r0, #0x24
- beq _020230FC
- bl ErrorHandling
-_020230FC:
- ldr r0, [sp, #0x0]
- mov r6, #0x0
- cmp r0, #0x0
- ble _02023148
- sub r0, r0, #0x1
- str r0, [sp, #0x4]
-_02023108:
- ldr r0, [r4, #0x0]
- cmp r6, r0
- beq _02023112
- bl ErrorHandling
-_02023112:
- ldr r0, [r4, #0x0]
- str r0, [r5, #0x0]
- add r0, r6, #0x0
- bl FUN_020230AC
- str r0, [r5, #0x4]
- str r7, [r5, #0x8]
- mov r0, #0x0
- strh r0, [r5, #0xc]
- ldr r0, [r4, #0x4]
- strh r0, [r5, #0xe]
- ldr r0, [r5, #0x4]
- add r7, r7, r0
- ldr r0, [sp, #0x4]
- cmp r6, r0
- beq _0202313A
- ldr r1, [r4, #0x4]
- ldr r0, [r4, #0x14]
- cmp r1, r0
- beq _0202313C
-_0202313A:
- add r7, #0x14
-_0202313C:
- ldr r0, [sp, #0x0]
- add r6, r6, #0x1
- add r4, #0x10
- add r5, #0x10
- cmp r6, r0
- blt _02023108
-_02023148:
- mov r0, #0x2
- lsl r0, r0, #0x10
- cmp r7, r0
- ble _02023154
- bl ErrorHandling
-_02023154:
- add sp, #0x8
- pop {r3-r7, pc}
- .balign 4
-_02023158: .word 0x020EE6DC
-_0202315C: .word 0x020EE700
-
- thumb_func_start FUN_02023160
-FUN_02023160: ; 0x02023160
- push {r3-r7, lr}
- sub sp, #0x8
- str r0, [sp, #0x0]
- mov r0, #0x0
- str r0, [sp, #0x4]
- mov r12, r0
- add r3, r0, #0x0
- add r6, r0, #0x0
- ldr r0, _020231EC ; =0x020EE6DC
- ldr r4, [sp, #0x0]
- ldr r7, [r0, #0x0]
- add r5, r1, #0x0
-_02023178:
- add r2, r4, #0x0
- strb r6, [r4, #0x0]
- mov r0, #0x0
- str r0, [r4, #0x8]
- add r2, #0x8
- b _02023190
-_02023184:
- ldr r0, [r5, #0x4]
- ldr r1, [r2, #0x0]
- add r5, #0x10
- add r0, r1, r0
- str r0, [r2, #0x0]
- add r3, r3, #0x1
-_02023190:
- ldrh r0, [r5, #0xe]
- cmp r6, r0
- bne _0202319A
- cmp r3, r7
- blt _02023184
-_0202319A:
- ldr r0, [r4, #0x8]
- add r6, r6, #0x1
- add r0, #0x14
- str r0, [r4, #0x8]
- ldr r0, [sp, #0x4]
- strb r0, [r4, #0x1]
- mov r0, r12
- str r0, [r4, #0x4]
- ldr r1, [r4, #0x8]
- ldr r0, _020231F0 ; =0x00000FFF
- add r0, r1, r0
- lsr r0, r0, #0xc
- strb r0, [r4, #0x2]
- ldrb r1, [r4, #0x2]
- ldr r0, [sp, #0x4]
- add r0, r0, r1
- str r0, [sp, #0x4]
- ldr r0, [r4, #0x8]
- mov r1, r12
- add r0, r1, r0
- add r4, #0xc
- mov r12, r0
- cmp r6, #0x2
- blt _02023178
- ldr r0, [sp, #0x0]
- ldrb r1, [r0, #0xd]
- ldrb r0, [r0, #0xe]
- add r1, r1, r0
- ldr r0, [sp, #0x4]
- cmp r0, r1
- beq _020231DC
- bl ErrorHandling
-_020231DC:
- ldr r0, [sp, #0x4]
- cmp r0, #0x20
- ble _020231E6
- bl ErrorHandling
-_020231E6:
- add sp, #0x8
- pop {r3-r7, pc}
- nop
-_020231EC: .word 0x020EE6DC
-_020231F0: .word 0x00000FFF
-
- thumb_func_start FUN_020231F4
-FUN_020231F4: ; 0x020231F4
- push {r3-r7, lr}
- sub sp, #0x8
- add r6, r0, #0x0
- mov r2, #0x2
- add r5, r1, #0x0
- mov r0, #0x0
- add r1, r6, #0x0
- lsl r2, r2, #0x10
- ldr r4, _02023240 ; =0x020EE700
- bl MIi_CpuClearFast
- ldr r0, _02023244 ; =0x020EE6DC
- mov r7, #0x0
- ldr r0, [r0, #0x0]
- str r0, [sp, #0x0]
- cmp r0, #0x0
- ble _0202323A
-_02023216:
- ldr r0, [r5, #0x8]
- ldr r2, [r5, #0x4]
- str r0, [sp, #0x4]
- ldr r1, [sp, #0x4]
- mov r0, #0x0
- add r1, r6, r1
- bl MIi_CpuClearFast
- ldr r0, [sp, #0x4]
- ldr r1, [r4, #0xc]
- add r0, r6, r0
- blx r1
- ldr r0, [sp, #0x0]
- add r7, r7, #0x1
- add r5, #0x10
- add r4, #0x10
- cmp r7, r0
- blt _02023216
-_0202323A:
- add sp, #0x8
- pop {r3-r7, pc}
- nop
-_02023240: .word 0x020EE700
-_02023244: .word 0x020EE6DC
-
- thumb_func_start FUN_02023248
-FUN_02023248: ; 0x02023248
- push {r3-r5, lr}
- ldr r5, _0202326C ; =0x20060623
- add r4, r1, r3
- str r5, [r1, r3]
- ldr r5, _02023270 ; =0x000204A4
- ldr r5, [r0, r5]
- add r0, #0x14
- add r5, r5, #0x1
- str r5, [r4, #0x4]
- str r3, [r4, #0x8]
- add r3, #0xe
- strh r2, [r4, #0xc]
- add r2, r3, #0x0
- bl MATH_CalcCRC16CCITT
- strh r0, [r4, #0xe]
- pop {r3-r5, pc}
- nop
-_0202326C: .word 0x20060623
-_02023270: .word 0x000204A4
-
- thumb_func_start FUN_02023274
-FUN_02023274: ; 0x02023274
- push {r4-r6, lr}
- ldr r6, [r1, r3]
- ldr r5, _020232B0 ; =0x20060623
- add r4, r1, r3
- cmp r6, r5
- beq _02023284
- mov r0, #0x0
- pop {r4-r6, pc}
-_02023284:
- ldr r5, [r4, #0x8]
- cmp r5, r3
- beq _0202328E
- mov r0, #0x0
- pop {r4-r6, pc}
-_0202328E:
- ldrh r5, [r4, #0xc]
- cmp r5, r2
- beq _02023298
- mov r0, #0x0
- pop {r4-r6, pc}
-_02023298:
- add r3, #0xe
- add r0, #0x14
- add r2, r3, #0x0
- bl MATH_CalcCRC16CCITT
- ldrh r1, [r4, #0xe]
- cmp r1, r0
- bne _020232AC
- mov r0, #0x1
- pop {r4-r6, pc}
-_020232AC:
- mov r0, #0x0
- pop {r4-r6, pc}
- .balign 4
-_020232B0: .word 0x20060623
-
- thumb_func_start FUN_020232B4
-FUN_020232B4: ; 0x020232B4
- add r0, r0, r1
- ldr r0, [r0, #0x4]
- bx lr
- .balign 4
-
- thumb_func_start FUN_020232BC
-FUN_020232BC: ; 0x020232BC
- push {r3-r7, lr}
- sub sp, #0x8
- add r7, r0, #0x0
- mov r0, #0x1
- add r5, r1, #0x0
- add r6, r2, #0x0
- bl FUN_02016444
- ldr r0, _020233FC ; =0x020EE6D8
- ldr r0, [r0, #0x0]
- cmp r5, r0
- blt _020232D8
- bl ErrorHandling
-_020232D8:
- ldr r1, _02023400 ; =0x020EE6E0
- lsl r0, r5, #0x4
- add r4, r1, r0
- ldr r0, [r1, r0]
- cmp r0, r5
- beq _020232E8
- bl ErrorHandling
-_020232E8:
- ldr r0, [r4, #0x8]
- blx r0
- str r0, [sp, #0x4]
- add r0, #0x10
- str r0, [sp, #0x4]
- ldr r0, _02023404 ; =0x000204A0
- ldr r0, [r7, r0]
- cmp r0, #0x1
- ldr r0, [r4, #0x8]
- bne _0202336E
- blx r0
- add r3, r0, #0x0
- add r0, r7, #0x0
- add r1, r6, #0x0
- add r2, r5, #0x0
- bl FUN_02023248
- ldr r0, [r4, #0x4]
- ldr r2, [sp, #0x4]
- lsl r0, r0, #0xc
- add r1, r6, #0x0
- bl FUN_020235D0
- str r0, [sp, #0x0]
- ldr r0, [r4, #0x8]
- blx r0
- add r3, r0, #0x0
- add r0, r7, #0x0
- add r1, r6, #0x0
- add r2, r5, #0x0
- bl FUN_02023274
- cmp r0, #0x1
- beq _02023330
- bl ErrorHandling
-_02023330:
- ldr r0, [r4, #0x8]
- blx r0
- add r3, r0, #0x0
- add r0, r7, #0x0
- add r1, r6, #0x0
- add r2, r5, #0x0
- bl FUN_02023248
- ldr r0, [r4, #0x4]
- ldr r2, [sp, #0x4]
- add r0, #0x40
- lsl r0, r0, #0xc
- add r1, r6, #0x0
- bl FUN_020235D0
- ldr r1, [sp, #0x0]
- orr r0, r1
- str r0, [sp, #0x0]
- ldr r0, [r4, #0x8]
- blx r0
- add r3, r0, #0x0
- add r0, r7, #0x0
- add r1, r6, #0x0
- add r2, r5, #0x0
- bl FUN_02023274
- cmp r0, #0x1
- beq _020233DE
- bl ErrorHandling
- b _020233DE
-_0202336E:
- blx r0
- add r3, r0, #0x0
- add r0, r7, #0x0
- add r1, r6, #0x0
- add r2, r5, #0x0
- bl FUN_02023248
- ldr r0, [r4, #0x4]
- ldr r2, [sp, #0x4]
- add r0, #0x40
- lsl r0, r0, #0xc
- add r1, r6, #0x0
- bl FUN_020235D0
- str r0, [sp, #0x0]
- ldr r0, [r4, #0x8]
- blx r0
- add r3, r0, #0x0
- add r0, r7, #0x0
- add r1, r6, #0x0
- add r2, r5, #0x0
- bl FUN_02023274
- cmp r0, #0x1
- beq _020233A4
- bl ErrorHandling
-_020233A4:
- ldr r0, [r4, #0x8]
- blx r0
- add r3, r0, #0x0
- add r0, r7, #0x0
- add r1, r6, #0x0
- add r2, r5, #0x0
- bl FUN_02023248
- ldr r0, [r4, #0x4]
- ldr r2, [sp, #0x4]
- lsl r0, r0, #0xc
- add r1, r6, #0x0
- bl FUN_020235D0
- ldr r1, [sp, #0x0]
- orr r0, r1
- str r0, [sp, #0x0]
- ldr r0, [r4, #0x8]
- blx r0
- add r3, r0, #0x0
- add r0, r7, #0x0
- add r1, r6, #0x0
- add r2, r5, #0x0
- bl FUN_02023274
- cmp r0, #0x1
- beq _020233DE
- bl ErrorHandling
-_020233DE:
- ldr r0, [sp, #0x0]
- cmp r0, #0x1
- bne _020233F0
- mov r0, #0x1
- bl FUN_02016454
- add sp, #0x8
- mov r0, #0x2
- pop {r3-r7, pc}
-_020233F0:
- mov r0, #0x1
- bl FUN_02016454
- mov r0, #0x3
- add sp, #0x8
- pop {r3-r7, pc}
- .balign 4
-_020233FC: .word 0x020EE6D8
-_02023400: .word 0x020EE6E0
-_02023404: .word 0x000204A0
-
- thumb_func_start FUN_02023408
-FUN_02023408: ; 0x02023408
- push {r4-r7, lr}
- sub sp, #0x14
- add r5, r0, #0x0
- ldr r0, _02023564 ; =0x020EE6D8
- add r7, r2, #0x0
- ldr r0, [r0, #0x0]
- add r6, r1, #0x0
- str r3, [sp, #0x0]
- cmp r7, r0
- blt _02023420
- bl ErrorHandling
-_02023420:
- ldr r1, _02023568 ; =0x020EE6E0
- lsl r0, r7, #0x4
- add r4, r1, r0
- ldr r0, [r1, r0]
- cmp r0, r7
- beq _02023430
- bl ErrorHandling
-_02023430:
- ldr r0, [r4, #0x8]
- blx r0
- str r0, [sp, #0x10]
- add r0, #0x10
- str r0, [sp, #0x10]
- ldr r1, [sp, #0x10]
- add r0, r6, #0x0
- bl FUN_02016998
- add r6, r0, #0x0
- ldr r0, [r4, #0x4]
- ldr r2, [sp, #0x10]
- lsl r0, r0, #0xc
- add r1, r6, #0x0
- bl FUN_020235EC
- ldr r0, [r4, #0x8]
- blx r0
- add r3, r0, #0x0
- add r0, r5, #0x0
- add r1, r6, #0x0
- add r2, r7, #0x0
- bl FUN_02023274
- str r0, [sp, #0xc]
- ldr r0, [r4, #0x8]
- blx r0
- add r1, r0, #0x0
- add r0, r6, #0x0
- bl FUN_020232B4
- str r0, [sp, #0x8]
- ldr r0, [r4, #0x4]
- ldr r2, [sp, #0x10]
- add r0, #0x40
- lsl r0, r0, #0xc
- add r1, r6, #0x0
- bl FUN_020235EC
- ldr r0, [r4, #0x8]
- blx r0
- add r3, r0, #0x0
- add r0, r5, #0x0
- add r1, r6, #0x0
- add r2, r7, #0x0
- bl FUN_02023274
- add r7, r0, #0x0
- ldr r0, [r4, #0x8]
- blx r0
- add r1, r0, #0x0
- add r0, r6, #0x0
- bl FUN_020232B4
- str r0, [sp, #0x4]
- ldr r0, [sp, #0x0]
- mov r1, #0x1
- str r1, [r0, #0x0]
- ldr r0, [sp, #0xc]
- cmp r0, #0x1
- bne _020234CC
- cmp r7, #0x0
- bne _020234CC
- ldr r0, _0202356C ; =0x000204A0
- mov r1, #0x0
- str r1, [r5, r0]
- add r1, r0, #0x4
- ldr r0, [sp, #0x8]
- ldr r2, [sp, #0x10]
- str r0, [r5, r1]
- ldr r0, [r4, #0x4]
- add r1, r6, #0x0
- lsl r0, r0, #0xc
- bl FUN_020235EC
- add sp, #0x14
- add r0, r6, #0x0
- pop {r4-r7, pc}
-_020234CC:
- ldr r0, [sp, #0xc]
- cmp r0, #0x0
- bne _020234F6
- cmp r7, #0x1
- bne _020234F6
- ldr r0, _0202356C ; =0x000204A0
- mov r1, #0x1
- str r1, [r5, r0]
- add r1, r0, #0x4
- ldr r0, [sp, #0x4]
- ldr r2, [sp, #0x10]
- str r0, [r5, r1]
- ldr r0, [r4, #0x4]
- add r1, r6, #0x0
- add r0, #0x40
- lsl r0, r0, #0xc
- bl FUN_020235EC
- add sp, #0x14
- add r0, r6, #0x0
- pop {r4-r7, pc}
-_020234F6:
- ldr r0, [sp, #0xc]
- cmp r0, #0x1
- bne _0202354C
- cmp r7, #0x1
- bne _0202354C
- ldr r0, [sp, #0x8]
- ldr r1, [sp, #0x4]
- bl FUN_020229B8
- mov r1, #0x0
- mvn r1, r1
- cmp r0, r1
- ldr r0, _0202356C ; =0x000204A0
- beq _0202352E
- mov r1, #0x0
- str r1, [r5, r0]
- add r1, r0, #0x4
- ldr r0, [sp, #0x8]
- ldr r2, [sp, #0x10]
- str r0, [r5, r1]
- ldr r0, [r4, #0x4]
- add r1, r6, #0x0
- lsl r0, r0, #0xc
- bl FUN_020235EC
- add sp, #0x14
- add r0, r6, #0x0
- pop {r4-r7, pc}
-_0202352E:
- mov r1, #0x1
- str r1, [r5, r0]
- add r1, r0, #0x4
- ldr r0, [sp, #0x4]
- ldr r2, [sp, #0x10]
- str r0, [r5, r1]
- ldr r0, [r4, #0x4]
- add r1, r6, #0x0
- add r0, #0x40
- lsl r0, r0, #0xc
- bl FUN_020235EC
- add sp, #0x14
- add r0, r6, #0x0
- pop {r4-r7, pc}
-_0202354C:
- ldr r0, [sp, #0x0]
- mov r1, #0x2
- str r1, [r0, #0x0]
- ldr r0, _0202356C ; =0x000204A0
- mov r1, #0x0
- str r1, [r5, r0]
- add r0, r0, #0x4
- str r1, [r5, r0]
- add r0, r6, #0x0
- add sp, #0x14
- pop {r4-r7, pc}
- nop
-_02023564: .word 0x020EE6D8
-_02023568: .word 0x020EE6E0
-_0202356C: .word 0x000204A0
-
- thumb_func_start FUN_02023570
-FUN_02023570: ; 0x02023570
- push {r3-r5, lr}
- bl OS_GetLockID
- add r4, r0, #0x0
- mov r0, #0x2
- mvn r0, r0
- cmp r4, r0
- bne _02023584
- bl ErrorHandling
-_02023584:
- lsl r0, r4, #0x10
- lsr r0, r0, #0x10
- bl CARD_LockBackup
- ldr r0, _020235C8 ; =0x00001302
- bl CARD_IdentifyBackup
- cmp r0, #0x0
- beq _0202359A
- ldr r5, _020235C8 ; =0x00001302
- b _020235AA
-_0202359A:
- ldr r0, _020235CC ; =0x00001202
- bl CARD_IdentifyBackup
- cmp r0, #0x0
- beq _020235A8
- ldr r5, _020235CC ; =0x00001202
- b _020235AA
-_020235A8:
- mov r5, #0x0
-_020235AA:
- lsl r0, r4, #0x10
- lsr r0, r0, #0x10
- bl CARD_UnlockBackup
- lsl r0, r4, #0x10
- lsr r0, r0, #0x10
- bl OS_ReleaseLockID
- cmp r5, #0x0
- beq _020235C2
- mov r0, #0x1
- pop {r3-r5, pc}
-_020235C2:
- mov r0, #0x0
- pop {r3-r5, pc}
- nop
-_020235C8: .word 0x00001302
-_020235CC: .word 0x00001202
-
- thumb_func_start FUN_020235D0
-FUN_020235D0: ; 0x020235D0
- push {r3-r5, lr}
- bl FUN_02023668
- add r5, r0, #0x0
- add r4, sp, #0x0
-_020235DA:
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_020236E4
- cmp r0, #0x0
- beq _020235DA
- ldr r0, [sp, #0x0]
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_020235EC
-FUN_020235EC: ; 0x020235EC
- push {r4-r7, lr}
- sub sp, #0x14
- add r5, r0, #0x0
- add r6, r1, #0x0
- add r7, r2, #0x0
- bl OS_GetLockID
- add r4, r0, #0x0
- mov r0, #0x2
- mvn r0, r0
- cmp r4, r0
- bne _02023608
- bl ErrorHandling
-_02023608:
- lsl r0, r4, #0x10
- lsr r0, r0, #0x10
- bl CARD_LockBackup
- mov r3, #0x0
- str r3, [sp, #0x0]
- mov r1, #0x1
- str r1, [sp, #0x4]
- mov r0, #0x6
- str r0, [sp, #0x8]
- str r1, [sp, #0xc]
- add r0, r5, #0x0
- add r1, r6, #0x0
- add r2, r7, #0x0
- str r3, [sp, #0x10]
- bl CARDi_RequestStreamCommand
- bl CARD_WaitBackupAsync
- add r5, r0, #0x0
- lsl r0, r4, #0x10
- lsr r0, r0, #0x10
- bl CARD_UnlockBackup
- lsl r0, r4, #0x10
- lsr r0, r0, #0x10
- bl OS_ReleaseLockID
- cmp r5, #0x0
- bne _02023652
- ldr r0, _02023658 ; =0x021C59C8
- ldr r0, [r0, #0x0]
- bl FUN_02016A18
- mov r0, #0x1
- bl FUN_02089D90
-_02023652:
- add r0, r5, #0x0
- add sp, #0x14
- pop {r4-r7, pc}
- .balign 4
-_02023658: .word 0x021C59C8
-
- thumb_func_start FUN_0202365C
-FUN_0202365C: ; 0x0202365C
- ldr r0, _02023664 ; =0x021C59C8
- mov r1, #0x1
- str r1, [r0, #0x4]
- bx lr
- .balign 4
-_02023664: .word 0x021C59C8
-
- thumb_func_start FUN_02023668
-FUN_02023668: ; 0x02023668
- push {r3-r7, lr}
- sub sp, #0x18
- add r5, r0, #0x0
- add r6, r1, #0x0
- add r7, r2, #0x0
- bl OS_GetLockID
- add r4, r0, #0x0
- mov r0, #0x2
- mvn r0, r0
- cmp r4, r0
- bne _02023684
- bl ErrorHandling
-_02023684:
- lsl r0, r4, #0x10
- lsr r0, r0, #0x10
- bl CARD_LockBackup
- mov r0, #0x0
- str r0, [sp, #0x0]
- str r0, [sp, #0x4]
- mov r1, #0x6
- str r1, [sp, #0x8]
- mov r1, #0x1
- str r1, [sp, #0xc]
- add r1, sp, #0x14
- mov r2, #0x4
- add r3, r0, #0x0
- str r0, [sp, #0x10]
- bl CARDi_RequestStreamCommand
- cmp r0, #0x0
- bne _020236B2
- add r0, r4, #0x0
- mov r1, #0x1
- bl FUN_02023740
-_020236B2:
- ldr r0, _020236DC ; =0x021C59C8
- mov r1, #0x0
- str r1, [r0, #0x4]
- str r1, [sp, #0x0]
- mov r0, #0x1
- str r0, [sp, #0x4]
- mov r0, #0x7
- str r0, [sp, #0x8]
- mov r0, #0xa
- str r0, [sp, #0xc]
- mov r0, #0x2
- str r0, [sp, #0x10]
- ldr r3, _020236E0 ; =FUN_0202365C
- add r0, r6, #0x0
- add r1, r5, #0x0
- add r2, r7, #0x0
- bl CARDi_RequestStreamCommand
- add r0, r4, #0x0
- add sp, #0x18
- pop {r3-r7, pc}
- .balign 4
-_020236DC: .word 0x021C59C8
-_020236E0: .word FUN_0202365C
-
- thumb_func_start FUN_020236E4
-FUN_020236E4: ; 0x020236E4
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldr r0, _0202373C ; =0x021C59C8
- add r4, r1, #0x0
- ldr r0, [r0, #0x4]
- cmp r0, #0x1
- bne _02023738
- lsl r0, r5, #0x10
- lsr r0, r0, #0x10
- bl CARD_UnlockBackup
- lsl r0, r5, #0x10
- lsr r0, r0, #0x10
- bl OS_ReleaseLockID
- bl CARD_GetResultCode
- cmp r0, #0x0
- beq _02023714
- cmp r0, #0x4
- beq _0202371E
- cmp r0, #0x6
- beq _02023728
- b _0202371A
-_02023714:
- mov r0, #0x1
- str r0, [r4, #0x0]
- b _02023734
-_0202371A:
- bl ErrorHandling
-_0202371E:
- mov r1, #0x0
- add r0, r5, #0x0
- str r1, [r4, #0x0]
- bl FUN_02023740
-_02023728:
- mov r0, #0x0
- str r0, [r4, #0x0]
- add r0, r5, #0x0
- mov r1, #0x1
- bl FUN_02023740
-_02023734:
- mov r0, #0x1
- pop {r3-r5, pc}
-_02023738:
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-_0202373C: .word 0x021C59C8
-
- thumb_func_start FUN_02023740
-FUN_02023740: ; 0x02023740
- push {r3-r5, lr}
- add r5, r0, #0x0
- lsl r0, r5, #0x10
- lsr r0, r0, #0x10
- add r4, r1, #0x0
- bl CARD_UnlockBackup
- lsl r0, r5, #0x10
- lsr r0, r0, #0x10
- bl OS_ReleaseLockID
- ldr r0, _02023768 ; =0x021C59C8
- ldr r0, [r0, #0x0]
- bl FUN_02016A18
- mov r0, #0x1
- add r1, r4, #0x0
- bl FUN_0208A0B8
- pop {r3-r5, pc}
- .balign 4
-_02023768: .word 0x021C59C8
-
- thumb_func_start FUN_0202376C
-FUN_0202376C: ; 0x0202376C
- mov r0, #0x5c
- bx lr
-
- thumb_func_start FUN_02023770
-FUN_02023770: ; 0x02023770
- push {r4, lr}
- add r4, r0, #0x0
- mov r0, #0x0
- add r1, r4, #0x0
- mov r2, #0x5c
- bl MIi_CpuClearFast
- add r4, #0x10
- add r0, r4, #0x0
- bl FUN_02023840
- pop {r4, pc}
-
- thumb_func_start FUN_02023788
-FUN_02023788: ; 0x02023788
- ldr r3, _02023790 ; =FUN_02022610
- mov r1, #0x0
- bx r3
- nop
-_02023790: .word FUN_02022610
-
- thumb_func_start FUN_02023794
-FUN_02023794: ; 0x02023794
- push {r3, lr}
- bl FUN_02023788
- add r0, #0x10
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_020237A0
-FUN_020237A0: ; 0x020237A0
- push {r4, lr}
- sub sp, #0x50
- add r4, r0, #0x0
- bl OS_GetOwnerRtcOffset
- str r0, [r4, #0x0]
- add r0, r4, #0x0
- add r0, #0x8
- str r1, [r4, #0x4]
- bl OS_GetMacAddress
- add r0, sp, #0x0
- bl OS_GetOwnerInfo
- add r0, sp, #0x0
- ldrb r1, [r0, #0x2]
- strb r1, [r4, #0xe]
- ldrb r0, [r0, #0x3]
- strb r0, [r4, #0xf]
- add sp, #0x50
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_020237CC
-FUN_020237CC: ; 0x020237CC
- push {r4, lr}
- sub sp, #0x8
- add r4, r0, #0x0
- add r0, sp, #0x0
- bl OS_GetMacAddress
- mov r2, #0x0
- add r3, sp, #0x0
-_020237DC:
- add r0, r4, r2
- ldrb r1, [r3, #0x0]
- ldrb r0, [r0, #0x8]
- cmp r1, r0
- beq _020237EC
- add sp, #0x8
- mov r0, #0x0
- pop {r4, pc}
-_020237EC:
- add r2, r2, #0x1
- add r3, r3, #0x1
- cmp r2, #0x6
- blt _020237DC
- mov r0, #0x1
- add sp, #0x8
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_020237FC
-FUN_020237FC: ; 0x020237FC
- push {r4, lr}
- add r4, r0, #0x0
- bl OS_GetOwnerRtcOffset
- ldr r3, [r4, #0x0]
- ldr r2, [r4, #0x4]
- eor r0, r3
- eor r1, r2
- orr r0, r1
- bne _02023814
- mov r0, #0x1
- pop {r4, pc}
-_02023814:
- mov r0, #0x0
- pop {r4, pc}
-
- thumb_func_start FUN_02023818
-FUN_02023818: ; 0x02023818
- ldrb r0, [r0, #0xe]
- bx lr
-
- thumb_func_start FUN_0202381C
-FUN_0202381C: ; 0x0202381C
- ldrb r0, [r0, #0xf]
- bx lr
-
- thumb_func_start FUN_02023820
-FUN_02023820: ; 0x02023820
- add r0, #0x48
- ldrb r0, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02023828
-FUN_02023828: ; 0x02023828
- add r0, #0x48
- strb r1, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02023830
-FUN_02023830: ; 0x02023830
- ldr r0, [r0, #0x4c]
- bx lr
-
- thumb_func_start FUN_02023834
-FUN_02023834: ; 0x02023834
- ldr r2, [r0, #0x4c]
- cmp r2, #0x0
- bne _0202383C
- str r1, [r0, #0x4c]
-_0202383C:
- bx lr
- .balign 4
-
- thumb_func_start FUN_02023840
-FUN_02023840: ; 0x02023840
- push {r4, lr}
- add r4, r0, #0x0
- mov r0, #0x1
- add r1, r4, #0x0
- str r0, [r4, #0x0]
- add r0, r4, #0x4
- add r1, #0x14
- bl FUN_0201265C
- add r0, r4, #0x4
- bl RTC_ConvertDateToDay
- add r1, r4, #0x0
- str r0, [r4, #0x20]
- add r0, r4, #0x4
- add r1, #0x14
- bl RTC_ConvertDateTimeToSecond
- str r0, [r4, #0x24]
- str r1, [r4, #0x28]
- mov r0, #0x0
- str r0, [r4, #0x2c]
- str r0, [r4, #0x30]
- str r0, [r4, #0x34]
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02023874
-FUN_02023874: ; 0x02023874
- ldr r0, [r0, #0x34]
- cmp r0, #0x0
- beq _0202387E
- mov r0, #0x1
- bx lr
-_0202387E:
- mov r0, #0x0
- bx lr
- .balign 4
-
- thumb_func_start FUN_02023884
-FUN_02023884: ; 0x02023884
- mov r2, #0x5a
- ldr r3, [r0, #0x34]
- lsl r2, r2, #0x4
- cmp r3, r2
- bls _02023890
- str r2, [r0, #0x34]
-_02023890:
- ldr r2, [r0, #0x34]
- cmp r2, r1
- bhs _0202389C
- mov r1, #0x0
- str r1, [r0, #0x34]
- bx lr
-_0202389C:
- sub r1, r2, r1
- str r1, [r0, #0x34]
- bx lr
- .balign 4
-
- thumb_func_start FUN_020238A4
-FUN_020238A4: ; 0x020238A4
- push {r4, lr}
- add r4, r0, #0x0
- mov r0, #0x5a
- lsl r0, r0, #0x4
- add r1, r4, #0x0
- str r0, [r4, #0x34]
- add r0, r4, #0x4
- add r1, #0x14
- bl FUN_0201265C
- add r0, r4, #0x4
- bl RTC_ConvertDateToDay
- str r0, [r4, #0x20]
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_020238C4
-FUN_020238C4: ; 0x020238C4
- mov r0, #0x2c
- bx lr
-
- thumb_func_start FUN_020238C8
-FUN_020238C8: ; 0x020238C8
- push {r4, lr}
- add r4, r0, #0x0
- mov r0, #0x0
- add r1, r4, #0x0
- mov r2, #0x2c
- bl MIi_CpuClearFast
- add r0, r4, #0x0
- bl FUN_02024F50
- add r0, r4, #0x4
- bl FUN_02023948
- add r0, r4, #0x0
- add r0, #0x24
- bl FUN_02028910
- add r4, #0x26
- add r0, r4, #0x0
- bl FUN_02029E48
- pop {r4, pc}
-
- thumb_func_start FUN_020238F4
-FUN_020238F4: ; 0x020238F4
- push {r3, lr}
- mov r1, #0x1
- bl FUN_02022610
- add r0, r0, #0x4
- pop {r3, pc}
-
- thumb_func_start LoadPlayerDataAddress
-LoadPlayerDataAddress: ; 0x02023900
- ldr r3, _02023908 ; =FUN_02022610
- mov r1, #0x1
- bx r3
- nop
-_02023908: .word FUN_02022610
-
- thumb_func_start FUN_0202390C
-FUN_0202390C: ; 0x0202390C
- push {r3, lr}
- mov r1, #0x1
- bl FUN_02022610
- add r0, #0x24
- pop {r3, pc}
-
- thumb_func_start FUN_02023918
-FUN_02023918: ; 0x02023918
- push {r3, lr}
- mov r1, #0x1
- bl FUN_02022610
- add r0, #0x26
- pop {r3, pc}
-
- thumb_func_start FUN_02023924
-FUN_02023924: ; 0x02023924
- mov r0, #0x20
- bx lr
-
- thumb_func_start FUN_02023928
-FUN_02023928: ; 0x02023928
- push {r4, lr}
- mov r1, #0x20
- bl FUN_02016998
- add r4, r0, #0x0
- bl FUN_02023948
- add r0, r4, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0202393C
-FUN_0202393C: ; 0x0202393C
- ldr r3, _02023944 ; =MI_CpuCopy8
- mov r2, #0x20
- bx r3
- nop
-_02023944: .word MI_CpuCopy8
-
- thumb_func_start FUN_02023948
-FUN_02023948: ; 0x02023948
- push {r4, lr}
- mov r1, #0x0
- mov r2, #0x20
- add r4, r0, #0x0
- bl Call_FillMemWithValue
- mov r0, #0x2
- strb r0, [r4, #0x19]
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0202395C
-FUN_0202395C: ; 0x0202395C
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- add r0, r4, #0x0
- bl StringLength
- cmp r0, #0x8
- blt _02023970
- bl ErrorHandling
-_02023970:
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl StringCopy
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0202397C
-FUN_0202397C: ; 0x0202397C
- ldr r3, _02023988 ; =FUN_02021EF0
- add r2, r0, #0x0
- add r0, r1, #0x0
- add r1, r2, #0x0
- mov r2, #0x8
- bx r3
- .balign 4
-_02023988: .word FUN_02021EF0
-
- thumb_func_start FUN_0202398C
-FUN_0202398C: ; 0x0202398C
- bx lr
- .balign 4
-
- thumb_func_start FUN_02023990
-FUN_02023990: ; 0x02023990
- ldr r3, _0202399C ; =FUN_02021E28
- add r2, r0, #0x0
- add r0, r1, #0x0
- add r1, r2, #0x0
- bx r3
- nop
-_0202399C: .word FUN_02021E28
-
- thumb_func_start FUN_020239A0
-FUN_020239A0: ; 0x020239A0
- push {r3-r5, lr}
- add r5, r0, #0x0
- mov r0, #0x8
- bl FUN_020219F4
- add r4, r0, #0x0
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02023990
- add r0, r4, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start FUN_020239B8
-FUN_020239B8: ; 0x020239B8
- str r1, [r0, #0x10]
- bx lr
-
- thumb_func_start FUN_020239BC
-FUN_020239BC: ; 0x020239BC
- ldr r0, [r0, #0x10]
- bx lr
-
- thumb_func_start FUN_020239C0
-FUN_020239C0: ; 0x020239C0
- ldr r0, [r0, #0x10]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bx lr
-
- thumb_func_start FUN_020239C8
-FUN_020239C8: ; 0x020239C8
- strb r1, [r0, #0x18]
- bx lr
-
- thumb_func_start FUN_020239CC
-FUN_020239CC: ; 0x020239CC
- ldrb r0, [r0, #0x18]
- bx lr
-
- thumb_func_start FUN_020239D0
-FUN_020239D0: ; 0x020239D0
- ldrb r3, [r0, #0x1a]
- mov r0, #0x1
- add r2, r0, #0x0
- lsl r2, r1
- add r1, r3, #0x0
- tst r1, r2
- bne _020239E0
- mov r0, #0x0
-_020239E0:
- bx lr
- .balign 4
-
- thumb_func_start FUN_020239E4
-FUN_020239E4: ; 0x020239E4
- ldrb r3, [r0, #0x1a]
- mov r2, #0x1
- lsl r2, r1
- add r1, r3, #0x0
- orr r1, r2
- strb r1, [r0, #0x1a]
- bx lr
- .balign 4
-
- thumb_func_start FUN_020239F4
-FUN_020239F4: ; 0x020239F4
- ldrb r3, [r0, #0x1a]
- mov r2, #0x0
- cmp r3, #0x0
- beq _02023A0A
- mov r0, #0x1
-_020239FE:
- add r1, r3, #0x0
- tst r1, r0
- beq _02023A06
- add r2, r2, #0x1
-_02023A06:
- lsr r3, r3, #0x1
- bne _020239FE
-_02023A0A:
- add r0, r2, #0x0
- bx lr
- .balign 4
-
- thumb_func_start FUN_02023A10
-FUN_02023A10: ; 0x02023A10
- ldr r0, [r0, #0x14]
- bx lr
-
- thumb_func_start FUN_02023A14
-FUN_02023A14: ; 0x02023A14
- ldr r2, _02023A24 ; =0x000F423F
- cmp r1, r2
- bls _02023A1C
- add r1, r2, #0x0
-_02023A1C:
- str r1, [r0, #0x14]
- add r0, r1, #0x0
- bx lr
- nop
-_02023A24: .word 0x000F423F
-
- thumb_func_start FUN_02023A28
-FUN_02023A28: ; 0x02023A28
- ldrb r0, [r0, #0x1b]
- bx lr
-
- thumb_func_start FUN_02023A2C
-FUN_02023A2C: ; 0x02023A2C
- strb r1, [r0, #0x1b]
- bx lr
-
- thumb_func_start FUN_02023A30
-FUN_02023A30: ; 0x02023A30
- ldr r2, _02023A50 ; =0x000F423F
- cmp r1, r2
- bls _02023A3A
- str r2, [r0, #0x14]
- b _02023A40
-_02023A3A:
- ldr r2, [r0, #0x14]
- add r1, r2, r1
- str r1, [r0, #0x14]
-_02023A40:
- ldr r2, [r0, #0x14]
- ldr r1, _02023A50 ; =0x000F423F
- cmp r2, r1
- bls _02023A4A
- str r1, [r0, #0x14]
-_02023A4A:
- ldr r0, [r0, #0x14]
- bx lr
- nop
-_02023A50: .word 0x000F423F
-
- thumb_func_start FUN_02023A54
-FUN_02023A54: ; 0x02023A54
- ldr r2, [r0, #0x14]
- cmp r2, r1
- bhs _02023A5E
- mov r1, #0x0
- b _02023A60
-_02023A5E:
- sub r1, r2, r1
-_02023A60:
- str r1, [r0, #0x14]
- ldr r0, [r0, #0x14]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02023A68
-FUN_02023A68: ; 0x02023A68
- ldrb r0, [r0, #0x1c]
- bx lr
-
- thumb_func_start FUN_02023A6C
-FUN_02023A6C: ; 0x02023A6C
- strb r1, [r0, #0x1c]
- bx lr
-
- thumb_func_start FUN_02023A70
-FUN_02023A70: ; 0x02023A70
- ldrb r0, [r0, #0x19]
- bx lr
-
- thumb_func_start FUN_02023A74
-FUN_02023A74: ; 0x02023A74
- strb r1, [r0, #0x19]
- bx lr
-
- thumb_func_start FUN_02023A78
-FUN_02023A78: ; 0x02023A78
- ldrb r2, [r0, #0x1d]
- mov r1, #0x1
- bic r2, r1
- mov r1, #0x1
- orr r1, r2
- strb r1, [r0, #0x1d]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02023A88
-FUN_02023A88: ; 0x02023A88
- ldrb r0, [r0, #0x1d]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- bx lr
-
- thumb_func_start FUN_02023A90
-FUN_02023A90: ; 0x02023A90
- ldrb r2, [r0, #0x1d]
- mov r1, #0x2
- orr r1, r2
- strb r1, [r0, #0x1d]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02023A9C
-FUN_02023A9C: ; 0x02023A9C
- ldrb r0, [r0, #0x1d]
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x1f
- bx lr
-
- thumb_func_start FUN_02023AA4
-FUN_02023AA4: ; 0x02023AA4
- push {r3-r5, lr}
- mov r2, #0x7
- add r5, r0, #0x0
- add r4, r1, #0x0
- bl StringNotEqualN
- cmp r0, #0x0
- bne _02023AC0
- ldr r1, [r5, #0x10]
- ldr r0, [r4, #0x10]
- cmp r1, r0
- bne _02023AC0
- mov r0, #0x1
- pop {r3-r5, pc}
-_02023AC0:
- mov r0, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02023AC4
-FUN_02023AC4: ; 0x02023AC4
- mov r0, #0x20
- bx lr
-
- thumb_func_start FUN_02023AC8
-FUN_02023AC8: ; 0x02023AC8
- mov r0, #0x20
- bx lr
-
- thumb_func_start FUN_02023ACC
-FUN_02023ACC: ; 0x02023ACC
- ldr r3, _02023AD4 ; =MI_CpuCopy8
- mov r2, #0x20
- bx r3
- nop
-_02023AD4: .word MI_CpuCopy8
-
- thumb_func_start FUN_02023AD8
-FUN_02023AD8: ; 0x02023AD8
- ldr r3, _02023AE0 ; =Call_FillMemWithValue
- mov r1, #0x0
- mov r2, #0x20
- bx r3
- .balign 4
-_02023AE0: .word Call_FillMemWithValue
-
- thumb_func_start FUN_02023AE4
-FUN_02023AE4: ; 0x02023AE4
- ldr r3, _02023AF0 ; =FUN_02021E8C
- add r2, r0, #0x0
- add r0, r1, #0x0
- add r1, r2, #0x0
- mov r2, #0xc
- bx r3
- .balign 4
-_02023AF0: .word FUN_02021E8C
-
- thumb_func_start FUN_02023AF4
-FUN_02023AF4: ; 0x02023AF4
- push {r3-r5, lr}
- add r5, r0, #0x0
- mov r0, #0x18
- bl FUN_020219F4
- add r1, r5, #0x0
- add r4, r0, #0x0
- bl FUN_02021E28
- add r0, r4, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02023B0C
-FUN_02023B0C: ; 0x02023B0C
- mov r2, #0x0
- cmp r1, #0xc
- bhi _02023B9E
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #0x6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02023B1E: ; jump table (using 16-bit offset)
- .short _02023B9E - _02023B1E - 2; case 0
- .short _02023B38 - _02023B1E - 2; case 1
- .short _02023B3C - _02023B1E - 2; case 2
- .short _02023B40 - _02023B1E - 2; case 3
- .short _02023B44 - _02023B1E - 2; case 4
- .short _02023B4C - _02023B1E - 2; case 5
- .short _02023B52 - _02023B1E - 2; case 6
- .short _02023B66 - _02023B1E - 2; case 7
- .short _02023B6C - _02023B1E - 2; case 8
- .short _02023B80 - _02023B1E - 2; case 9
- .short _02023B88 - _02023B1E - 2; case 10
- .short _02023B90 - _02023B1E - 2; case 11
- .short _02023B98 - _02023B1E - 2; case 12
-_02023B38:
- ldrb r2, [r0, #0x1a]
- b _02023B9E
-_02023B3C:
- ldrb r2, [r0, #0x1b]
- b _02023B9E
-_02023B40:
- ldrh r2, [r0, #0x18]
- b _02023B9E
-_02023B44:
- ldrb r0, [r0, #0x1e]
- lsl r0, r0, #0x1f
- lsr r2, r0, #0x1f
- b _02023B9E
-_02023B4C:
- mov r1, #0x1c
- ldrsb r2, [r0, r1]
- b _02023B9E
-_02023B52:
- mov r1, #0x1c
- ldrsb r0, [r0, r1]
- cmp r0, #0x0
- ble _02023B5E
- mov r2, #0x1
- b _02023B9E
-_02023B5E:
- bge _02023B9E
- add r2, r1, #0x0
- sub r2, #0x1d
- b _02023B9E
-_02023B66:
- mov r1, #0x1d
- ldrsb r2, [r0, r1]
- b _02023B9E
-_02023B6C:
- mov r1, #0x1d
- ldrsb r0, [r0, r1]
- cmp r0, #0x0
- ble _02023B78
- mov r2, #0x1
- b _02023B9E
-_02023B78:
- bge _02023B9E
- add r2, r1, #0x0
- sub r2, #0x1e
- b _02023B9E
-_02023B80:
- ldrb r0, [r0, #0x1e]
- lsl r0, r0, #0x1c
- lsr r2, r0, #0x1f
- b _02023B9E
-_02023B88:
- ldrb r0, [r0, #0x1e]
- lsl r0, r0, #0x1d
- lsr r2, r0, #0x1f
- b _02023B9E
-_02023B90:
- ldrb r0, [r0, #0x1e]
- lsl r0, r0, #0x1e
- lsr r2, r0, #0x1f
- b _02023B9E
-_02023B98:
- ldrb r0, [r0, #0x1e]
- lsl r0, r0, #0x1b
- lsr r2, r0, #0x1f
-_02023B9E:
- add r0, r2, #0x0
- bx lr
- .balign 4
-
- thumb_func_start FUN_02023BA4
-FUN_02023BA4: ; 0x02023BA4
- push {r3-r5, lr}
- add r5, r1, #0x0
- add r4, r0, #0x0
- cmp r5, #0x1
- blt _02023BB2
- bl ErrorHandling
-_02023BB2:
- add r0, r4, #0x0
- mov r1, #0xd
- bl FUN_02022610
- add r4, r0, #0x0
- lsl r5, r5, #0x5
- add r0, r4, r5
- mov r1, #0x1
- bl FUN_02023B0C
- cmp r0, #0x0
- beq _02023BCE
- add r0, r4, r5
- pop {r3-r5, pc}
-_02023BCE:
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02023BD4
-FUN_02023BD4: ; 0x02023BD4
- push {r4, lr}
- add r4, r1, #0x0
- mov r1, #0xd
- bl FUN_02022610
- add r1, r0, #0x0
- add r0, r4, #0x0
- bl FUN_02023ACC
- pop {r4, pc}
-
- thumb_func_start FUN_02023BE8
-FUN_02023BE8: ; 0x02023BE8
- push {r3, lr}
- cmp r1, #0x5
- bhs _02023BF6
- ldr r2, _02023C00 ; =0x02105BD4
- lsl r0, r1, #0x5
- add r0, r2, r0
- pop {r3, pc}
-_02023BF6:
- mov r1, #0xd
- bl FUN_02022610
- pop {r3, pc}
- nop
-_02023C00: .word 0x02105BD4
-
- thumb_func_start FUN_02023C04
-FUN_02023C04: ; 0x02023C04
- push {r4-r6, lr}
- add r5, r1, #0x0
- add r4, r2, #0x0
- cmp r5, #0x5
- bhs _02023C2C
- ldr r2, _02023C3C ; =0x0000013A
- mov r0, #0x0
- mov r1, #0x1a
- bl FUN_0200A86C
- add r5, #0x38
- add r6, r0, #0x0
- add r1, r5, #0x0
- add r2, r4, #0x0
- bl FUN_0200A8E0
- add r0, r6, #0x0
- bl FUN_0200A8B8
- pop {r4-r6, pc}
-_02023C2C:
- mov r1, #0x0
- bl FUN_02023BA4
- add r1, r4, #0x0
- bl FUN_02023AE4
- pop {r4-r6, pc}
- nop
-_02023C3C: .word 0x0000013A
-
- thumb_func_start FUN_02023C40
-FUN_02023C40: ; 0x02023C40
- mov r0, #0x1e
- lsl r0, r0, #0x4
- bx lr
- .balign 4
-
- thumb_func_start FUN_02023C48
-FUN_02023C48: ; 0x02023C48
- push {r4, lr}
- mov r2, #0x1e
- add r4, r0, #0x0
- mov r1, #0x0
- lsl r2, r2, #0x4
- bl Call_FillMemWithValue
- add r0, r4, #0x0
- bl FUN_020669A0
- add r0, r4, #0x0
- add r0, #0xec
- bl FUN_020669A0
- mov r0, #0x76
- mov r1, #0x0
- lsl r0, r0, #0x2
- str r1, [r4, r0]
- add r0, r0, #0x4
- strb r1, [r4, r0]
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02023C74
-FUN_02023C74: ; 0x02023C74
- mov r2, #0xec
- mul r2, r1
- add r0, r0, r2
- bx lr
-
- thumb_func_start FUN_02023C7C
-FUN_02023C7C: ; 0x02023C7C
- bx lr
- .balign 4
-
- thumb_func_start FUN_02023C80
-FUN_02023C80: ; 0x02023C80
- add r0, #0x88
- bx lr
-
- thumb_func_start FUN_02023C84
-FUN_02023C84: ; 0x02023C84
- add r0, #0xe8
- ldr r0, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02023C8C
-FUN_02023C8C: ; 0x02023C8C
- bx lr
- .balign 4
-
- thumb_func_start FUN_02023C90
-FUN_02023C90: ; 0x02023C90
- mov r1, #0x76
- lsl r1, r1, #0x2
- ldr r0, [r0, r1]
- bx lr
-
- thumb_func_start FUN_02023C98
-FUN_02023C98: ; 0x02023C98
- mov r1, #0x77
- lsl r1, r1, #0x2
- ldrb r0, [r0, r1]
- bx lr
-
- thumb_func_start FUN_02023CA0
-FUN_02023CA0: ; 0x02023CA0
- add r0, #0xe8
- str r1, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02023CA8
-FUN_02023CA8: ; 0x02023CA8
- add r2, r0, #0x0
- add r2, #0xe8
- ldr r2, [r2, #0x0]
- add r0, #0xe8
- add r1, r2, r1
- str r1, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02023CB8
-FUN_02023CB8: ; 0x02023CB8
- mov r2, #0x76
- lsl r2, r2, #0x2
- str r1, [r0, r2]
- bx lr
-
- thumb_func_start FUN_02023CC0
-FUN_02023CC0: ; 0x02023CC0
- mov r2, #0x77
- lsl r2, r2, #0x2
- strb r1, [r0, r2]
- bx lr
-
- thumb_func_start FUN_02023CC8
-FUN_02023CC8: ; 0x02023CC8
- push {r3-r5, lr}
- add r5, r0, #0x0
- mov r1, #0xc
- mov r2, #0x0
- bl FUN_020672BC
- add r5, #0xec
- add r4, r0, #0x0
- add r0, r5, #0x0
- mov r1, #0xc
- mov r2, #0x0
- bl FUN_020672BC
- cmp r4, r0
- beq _02023CEA
- mov r0, #0x1
- pop {r3-r5, pc}
-_02023CEA:
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02023CF0
-FUN_02023CF0: ; 0x02023CF0
- push {r3-r4}
- add r4, r0, #0x0
- add r3, r1, #0x0
- mov r2, #0x1d
-_02023CF8:
- ldmia r3!, {r0-r1}
- stmia r4!, {r0-r1}
- sub r2, r2, #0x1
- bne _02023CF8
- ldr r0, [r3, #0x0]
- str r0, [r4, #0x0]
- pop {r3-r4}
- bx lr
-
- thumb_func_start FUN_02023D08
-FUN_02023D08: ; 0x02023D08
- push {r3-r4}
- mov r1, #0x0
- add r2, r0, #0x0
- add r4, r1, #0x0
-_02023D10:
- add r1, r1, #0x1
- strh r4, [r2, #0x38]
- add r2, r2, #0x2
- cmp r1, #0x8
- blt _02023D10
- add r3, r0, #0x0
- mov r2, #0x0
-_02023D1E:
- add r1, r3, #0x0
- add r1, #0x48
- add r4, r4, #0x1
- add r3, r3, #0x2
- strh r2, [r1, #0x0]
- cmp r4, #0xb
- blt _02023D1E
- ldr r1, _02023D38 ; =0x0000FFFF
- strh r1, [r0, #0x38]
- add r0, #0x48
- strh r1, [r0, #0x0]
- pop {r3-r4}
- bx lr
- .balign 4
-_02023D38: .word 0x0000FFFF
-
- thumb_func_start FUN_02023D3C
-FUN_02023D3C: ; 0x02023D3C
- push {r4, lr}
- add r4, r0, #0x0
- bl FUN_020669A0
- add r0, r4, #0x0
- mov r1, #0x0
- add r0, #0xe8
- add r4, #0x88
- str r1, [r0, #0x0]
- add r0, r4, #0x0
- bl FUN_02023D08
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02023D58
-FUN_02023D58: ; 0x02023D58
- ldr r3, _02023D60 ; =FUN_02022610
- mov r1, #0x8
- bx r3
- nop
-_02023D60: .word FUN_02022610
-
- thumb_func_start FUN_02023D64
-FUN_02023D64: ; 0x02023D64
- mov r0, #0x4f
- lsl r0, r0, #0x2
- bx lr
- .balign 4
-
- thumb_func_start FUN_02023D6C
-FUN_02023D6C: ; 0x02023D6C
- push {r4, lr}
- mov r1, #0x4f
- lsl r1, r1, #0x2
- bl FUN_02016998
- add r4, r0, #0x0
- bl FUN_02024378
- add r0, r4, #0x0
- pop {r4, pc}
-
- thumb_func_start FUN_02023D80
-FUN_02023D80: ; 0x02023D80
- ldr r3, _02023D88 ; =MI_CpuCopy8
- mov r2, #0x4f
- lsl r2, r2, #0x2
- bx r3
- .balign 4
-_02023D88: .word MI_CpuCopy8
-
- thumb_func_start FUN_02023D8C
-FUN_02023D8C: ; 0x02023D8C
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldr r0, _02023DE8 ; =0x000001A6
- add r4, r1, #0x0
- cmp r4, r0
- beq _02023DA2
- add r0, r0, #0x1
- cmp r4, r0
- beq _02023DA2
- bl ErrorHandling
-_02023DA2:
- lsl r1, r4, #0x10
- add r0, r5, #0x0
- lsr r1, r1, #0x10
- bl FUN_020245F0
- cmp r0, #0x0
- bne _02023DB4
- mov r0, #0x0
- pop {r3-r5, pc}
-_02023DB4:
- ldr r0, _02023DE8 ; =0x000001A6
- cmp r4, r0
- bne _02023DBE
- sub r0, #0x9e
- b _02023DC0
-_02023DBE:
- sub r0, #0x9d
-_02023DC0:
- add r0, r5, r0
- ldrb r1, [r0, #0x0]
- mov r2, #0x1
- add r0, r1, #0x0
- tst r0, r2
- bne _02023DCE
- mov r2, #0x0
-_02023DCE:
- mov r0, #0x2
- tst r0, r1
- beq _02023DD8
- mov r0, #0x1
- b _02023DDA
-_02023DD8:
- mov r0, #0x0
-_02023DDA:
- cmp r2, r0
- bne _02023DE2
- mov r0, #0x1
- pop {r3-r5, pc}
-_02023DE2:
- mov r0, #0x2
- pop {r3-r5, pc}
- nop
-_02023DE8: .word 0x000001A6
-
- thumb_func_start FUN_02023DEC
-FUN_02023DEC: ; 0x02023DEC
- push {r3-r7, lr}
- add r7, r0, #0x0
- ldr r0, _02023E6C ; =0x000001A6
- add r6, r1, #0x0
- add r5, r2, #0x0
- cmp r6, r0
- beq _02023E04
- add r0, r0, #0x1
- cmp r6, r0
- beq _02023E04
- bl ErrorHandling
-_02023E04:
- lsl r1, r6, #0x10
- add r0, r7, #0x0
- lsr r1, r1, #0x10
- bl FUN_020245F0
- cmp r0, #0x0
- bne _02023E16
- mov r0, #0x0
- pop {r3-r7, pc}
-_02023E16:
- ldr r0, _02023E6C ; =0x000001A6
- cmp r6, r0
- bne _02023E20
- sub r0, #0x9e
- b _02023E22
-_02023E20:
- sub r0, #0x9d
-_02023E22:
- add r4, r7, r0
- add r0, r7, #0x0
- add r1, r6, #0x0
- bl FUN_02023D8C
- mov r6, #0x0
- cmp r0, #0x0
- bls _02023E66
- mov r1, #0x1
-_02023E34:
- add r2, r6, #0x1
- lsl r2, r2, #0x10
- lsr r2, r2, #0x10
- sub r2, r2, #0x1
- lsl r2, r2, #0x10
- lsr r3, r2, #0x10
- add r7, r3, #0x0
- mov r2, #0x7
- asr r3, r3, #0x3
- and r7, r2
- add r2, r1, #0x0
- ldrb r3, [r4, r3]
- lsl r2, r7
- tst r2, r3
- beq _02023E56
- add r2, r1, #0x0
- b _02023E58
-_02023E56:
- mov r2, #0x0
-_02023E58:
- cmp r2, r5
- bne _02023E60
- mov r0, #0x1
- pop {r3-r7, pc}
-_02023E60:
- add r6, r6, #0x1
- cmp r6, r0
- blo _02023E34
-_02023E66:
- mov r0, #0x0
- pop {r3-r7, pc}
- nop
-_02023E6C: .word 0x000001A6
-
- thumb_func_start FUN_02023E70
-FUN_02023E70: ; 0x02023E70
- push {r3-r7, lr}
- add r6, r0, #0x0
- ldr r0, _02023F28 ; =0x000001A6
- add r5, r1, #0x0
- add r7, r2, #0x0
- cmp r5, r0
- beq _02023E88
- add r0, r0, #0x1
- cmp r5, r0
- beq _02023E88
- bl ErrorHandling
-_02023E88:
- lsl r2, r7, #0x18
- add r0, r6, #0x0
- add r1, r5, #0x0
- lsr r2, r2, #0x18
- bl FUN_02023DEC
- cmp r0, #0x0
- bne _02023F26
- ldr r0, _02023F28 ; =0x000001A6
- cmp r5, r0
- bne _02023EA2
- sub r0, #0x9e
- b _02023EA4
-_02023EA2:
- sub r0, #0x9d
-_02023EA4:
- add r4, r6, r0
- add r0, r6, #0x0
- add r1, r5, #0x0
- bl FUN_02023D8C
- add r5, r0, #0x0
- cmp r5, #0x2
- bge _02023F26
- add r0, r5, #0x1
- lsl r0, r0, #0x10
- lsr r6, r0, #0x10
- lsl r0, r7, #0x18
- lsr r0, r0, #0x18
- cmp r0, #0x2
- blo _02023EC6
- bl ErrorHandling
-_02023EC6:
- sub r0, r6, #0x1
- lsl r0, r0, #0x10
- lsr r1, r0, #0x10
- add r2, r1, #0x0
- mov r0, #0x7
- and r2, r0
- asr r1, r1, #0x3
- mov r3, #0x1
- lsl r3, r2
- ldrb r0, [r4, r1]
- mvn r3, r3
- and r0, r3
- strb r0, [r4, r1]
- lsl r0, r7, #0x18
- lsr r6, r0, #0x18
- add r0, r6, #0x0
- ldrb r3, [r4, r1]
- lsl r0, r2
- orr r0, r3
- strb r0, [r4, r1]
- cmp r5, #0x0
- bne _02023F26
- add r0, r5, #0x2
- lsl r0, r0, #0x10
- lsr r5, r0, #0x10
- cmp r6, #0x2
- blo _02023F00
- bl ErrorHandling
-_02023F00:
- sub r0, r5, #0x1
- lsl r0, r0, #0x10
- lsr r2, r0, #0x10
- mov r0, #0x7
- add r1, r2, #0x0
- and r1, r0
- asr r0, r2, #0x3
- mov r2, #0x1
- lsl r2, r1
- ldrb r3, [r4, r0]
- mvn r2, r2
- and r2, r3
- strb r2, [r4, r0]
- add r2, r6, #0x0
- ldrb r3, [r4, r0]
- lsl r2, r1
- add r1, r3, #0x0
- orr r1, r2
- strb r1, [r4, r0]
-_02023F26:
- pop {r3-r7, pc}
- .balign 4
-_02023F28: .word 0x000001A6
-
- thumb_func_start FUN_02023F2C
-FUN_02023F2C: ; 0x02023F2C
- push {r3-r5, lr}
- add r5, r0, #0x0
- mov r0, #0x67
- add r4, r1, #0x0
- lsl r0, r0, #0x2
- cmp r4, r0
- beq _02023F44
- add r0, r0, #0x1
- cmp r4, r0
- beq _02023F44
- bl ErrorHandling
-_02023F44:
- lsl r1, r4, #0x10
- add r0, r5, #0x0
- lsr r1, r1, #0x10
- bl FUN_020245F0
- cmp r0, #0x0
- bne _02023F56
- mov r0, #0x0
- pop {r3-r5, pc}
-_02023F56:
- mov r0, #0x67
- lsl r0, r0, #0x2
- cmp r4, r0
- bne _02023F62
- sub r0, #0x92
- b _02023F64
-_02023F62:
- sub r0, #0x91
-_02023F64:
- add r1, r5, r0
- mov r0, #0x0
- mov r3, #0x3
-_02023F6A:
- lsl r2, r0, #0x10
- lsr r5, r2, #0x10
- asr r2, r5, #0x2
- ldrb r4, [r1, r2]
- lsl r2, r5, #0x1e
- lsr r2, r2, #0x1d
- asr r4, r2
- add r2, r4, #0x0
- and r2, r3
- cmp r2, #0x3
- beq _02023F86
- add r0, r0, #0x1
- cmp r0, #0x3
- blt _02023F6A
-_02023F86:
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02023F88
-FUN_02023F88: ; 0x02023F88
- push {r4-r6, lr}
- add r6, r0, #0x0
- mov r0, #0x67
- add r5, r1, #0x0
- lsl r0, r0, #0x2
- add r4, r2, #0x0
- cmp r5, r0
- beq _02023FA2
- add r0, r0, #0x1
- cmp r5, r0
- beq _02023FA2
- bl ErrorHandling
-_02023FA2:
- lsl r1, r5, #0x10
- add r0, r6, #0x0
- lsr r1, r1, #0x10
- bl FUN_020245F0
- cmp r0, #0x0
- bne _02023FB4
- mov r0, #0x0
- pop {r4-r6, pc}
-_02023FB4:
- mov r0, #0x67
- lsl r0, r0, #0x2
- cmp r5, r0
- bne _02023FC0
- sub r0, #0x92
- b _02023FC2
-_02023FC0:
- sub r0, #0x91
-_02023FC2:
- add r1, r6, r0
- mov r0, #0x0
- mov r3, #0x3
-_02023FC8:
- lsl r2, r0, #0x10
- lsr r6, r2, #0x10
- asr r2, r6, #0x2
- ldrb r5, [r1, r2]
- lsl r2, r6, #0x1e
- lsr r2, r2, #0x1d
- asr r5, r2
- add r2, r5, #0x0
- and r2, r3
- cmp r2, r4
- bne _02023FE2
- mov r0, #0x1
- pop {r4-r6, pc}
-_02023FE2:
- add r0, r0, #0x1
- cmp r0, #0x3
- blt _02023FC8
- mov r0, #0x0
- pop {r4-r6, pc}
-
- thumb_func_start FUN_02023FEC
-FUN_02023FEC: ; 0x02023FEC
- push {r3-r7, lr}
- add r6, r0, #0x0
- mov r0, #0x67
- add r5, r1, #0x0
- lsl r0, r0, #0x2
- add r7, r2, #0x0
- cmp r5, r0
- beq _02024006
- add r0, r0, #0x1
- cmp r5, r0
- beq _02024006
- bl ErrorHandling
-_02024006:
- lsl r2, r7, #0x18
- add r0, r6, #0x0
- add r1, r5, #0x0
- lsr r2, r2, #0x18
- bl FUN_02023F88
- cmp r0, #0x0
- bne _02024064
- mov r0, #0x67
- lsl r0, r0, #0x2
- cmp r5, r0
- bne _02024022
- sub r0, #0x92
- b _02024024
-_02024022:
- sub r0, #0x91
-_02024024:
- add r4, r6, r0
- add r0, r6, #0x0
- add r1, r5, #0x0
- bl FUN_02023F2C
- add r5, r0, #0x0
- cmp r5, #0x3
- bge _02024064
- lsl r0, r7, #0x18
- lsr r0, r0, #0x18
- cmp r0, #0x4
- blo _02024040
- bl ErrorHandling
-_02024040:
- lsl r0, r5, #0x10
- lsr r2, r0, #0x10
- lsl r0, r2, #0x1e
- lsr r1, r0, #0x1d
- asr r0, r2, #0x2
- mov r2, #0x3
- lsl r2, r1
- ldrb r3, [r4, r0]
- mvn r2, r2
- and r2, r3
- strb r2, [r4, r0]
- lsl r2, r7, #0x18
- lsr r2, r2, #0x18
- ldrb r3, [r4, r0]
- lsl r2, r1
- add r1, r3, #0x0
- orr r1, r2
- strb r1, [r4, r0]
-_02024064:
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02024068
-FUN_02024068: ; 0x02024068
- push {r4-r6, lr}
- add r6, r2, #0x0
- add r5, r0, #0x0
- add r4, r1, #0x0
- cmp r6, #0x4
- blo _02024078
- bl ErrorHandling
-_02024078:
- cmp r4, #0xf
- bls _02024080
- bl ErrorHandling
-_02024080:
- cmp r6, #0x2
- bhs _0202409E
- lsl r0, r6, #0x2
- add r0, #0x18
- mov r1, #0xf
- lsl r1, r0
- ldr r2, [r5, #0x40]
- mvn r1, r1
- and r2, r1
- add r1, r4, #0x0
- lsl r1, r0
- add r0, r2, #0x0
- orr r0, r1
- str r0, [r5, #0x40]
- pop {r4-r6, pc}
-_0202409E:
- sub r0, r6, #0x2
- lsl r0, r0, #0x18
- add r1, r5, #0x0
- lsr r0, r0, #0x16
- add r1, #0x80
- ldr r2, [r1, #0x0]
- add r0, #0x18
- mov r1, #0xf
- lsl r1, r0
- mvn r1, r1
- and r2, r1
- add r1, r5, #0x0
- add r1, #0x80
- str r2, [r1, #0x0]
- add r1, r5, #0x0
- add r1, #0x80
- ldr r2, [r1, #0x0]
- add r1, r4, #0x0
- lsl r1, r0
- add r0, r2, #0x0
- orr r0, r1
- add r5, #0x80
- str r0, [r5, #0x0]
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_020240D0
-FUN_020240D0: ; 0x020240D0
- push {r3-r6}
- mov r3, #0xf
- mov r1, #0x0
- add r4, r3, #0x0
-_020240D8:
- lsl r2, r1, #0x18
- lsr r6, r2, #0x18
- cmp r6, #0x2
- bhs _020240EE
- lsl r2, r6, #0x2
- ldr r5, [r0, #0x40]
- add r2, #0x18
- lsr r5, r2
- add r2, r5, #0x0
- and r2, r4
- b _02024102
-_020240EE:
- add r2, r0, #0x0
- add r2, #0x80
- ldr r5, [r2, #0x0]
- sub r2, r6, #0x2
- lsl r2, r2, #0x18
- lsr r2, r2, #0x16
- add r2, #0x18
- lsr r5, r2
- add r2, r5, #0x0
- and r2, r3
-_02024102:
- cmp r2, #0xf
- beq _0202410C
- add r1, r1, #0x1
- cmp r1, #0x4
- blt _020240D8
-_0202410C:
- add r0, r1, #0x0
- pop {r3-r6}
- bx lr
- .balign 4
-
- thumb_func_start FUN_02024114
-FUN_02024114: ; 0x02024114
- push {r4-r7}
- mov r2, #0xf
- mov r6, #0x0
- add r3, r2, #0x0
-_0202411C:
- lsl r4, r6, #0x18
- lsr r5, r4, #0x18
- cmp r5, #0x2
- bhs _02024134
- ldr r7, [r0, #0x40]
- lsl r4, r5, #0x2
- add r4, #0x18
- add r5, r7, #0x0
- lsr r5, r4
- add r4, r5, #0x0
- and r4, r3
- b _02024146
-_02024134:
- add r4, r0, #0x0
- sub r5, r5, #0x2
- add r4, #0x80
- lsl r5, r5, #0x18
- lsr r5, r5, #0x16
- ldr r4, [r4, #0x0]
- add r5, #0x18
- lsr r4, r5
- and r4, r2
-_02024146:
- cmp r1, r4
- bne _02024150
- mov r0, #0x1
- pop {r4-r7}
- bx lr
-_02024150:
- add r6, r6, #0x1
- cmp r6, #0x4
- blt _0202411C
- mov r0, #0x0
- pop {r4-r7}
- bx lr
-
- thumb_func_start FUN_0202415C
-FUN_0202415C: ; 0x0202415C
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r6, r1, #0x0
- add r0, r2, #0x0
- mov r1, #0x70
- mov r2, #0x0
- bl FUN_020671BC
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
- ldr r0, _02024198 ; =0x00000182
- cmp r6, r0
- bne _02024196
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02024114
- cmp r0, #0x0
- bne _02024196
- add r0, r5, #0x0
- bl FUN_020240D0
- add r2, r0, #0x0
- lsl r2, r2, #0x18
- add r0, r5, #0x0
- add r1, r4, #0x0
- lsr r2, r2, #0x18
- bl FUN_02024068
-_02024196:
- pop {r4-r6, pc}
- .balign 4
-_02024198: .word 0x00000182
-
- thumb_func_start FUN_0202419C
-FUN_0202419C: ; 0x0202419C
- push {r4-r6, lr}
- add r5, r0, #0x0
- mov r4, #0x0
- mov r6, #0xf
-_020241A4:
- lsl r2, r4, #0x18
- add r0, r5, #0x0
- add r1, r6, #0x0
- lsr r2, r2, #0x18
- bl FUN_02024068
- add r4, r4, #0x1
- cmp r4, #0x4
- blt _020241A4
- pop {r4-r6, pc}
-
- thumb_func_start FUN_020241B8
-FUN_020241B8: ; 0x020241B8
- push {r4-r6, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- cmp r4, #0xc9
- bne _02024210
- add r0, r2, #0x0
- bl FUN_020690CC
- lsl r1, r0, #0x18
- lsr r3, r1, #0x18
- mov r1, #0x43
- mov r4, #0x0
- add r6, r5, #0x0
- lsl r1, r1, #0x2
-_020241D4:
- ldrb r2, [r6, r1]
- cmp r3, r2
- bne _020241DE
- mov r1, #0x1
- b _020241E8
-_020241DE:
- add r4, r4, #0x1
- add r6, r6, #0x1
- cmp r4, #0x1c
- blt _020241D4
- mov r1, #0x0
-_020241E8:
- cmp r1, #0x0
- bne _02024290
- mov r1, #0x43
- mov r3, #0x0
- add r4, r5, #0x0
- lsl r1, r1, #0x2
-_020241F4:
- ldrb r2, [r4, r1]
- cmp r2, #0xff
- beq _02024202
- add r3, r3, #0x1
- add r4, r4, #0x1
- cmp r3, #0x1c
- blt _020241F4
-_02024202:
- cmp r3, #0x1c
- bge _02024290
- mov r1, #0x43
- add r2, r5, r3
- lsl r1, r1, #0x2
- strb r0, [r2, r1]
- pop {r4-r6, pc}
-_02024210:
- mov r6, #0x67
- lsl r6, r6, #0x2
- cmp r4, r6
- bne _0202422E
- add r0, r2, #0x0
- mov r1, #0x70
- mov r2, #0x0
- bl FUN_020671BC
- add r2, r0, #0x0
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02023FEC
- pop {r4-r6, pc}
-_0202422E:
- add r3, r6, #0x1
- cmp r4, r3
- bne _0202424A
- add r0, r2, #0x0
- mov r1, #0x70
- mov r2, #0x0
- bl FUN_020671BC
- add r2, r0, #0x0
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02023FEC
- pop {r4-r6, pc}
-_0202424A:
- add r3, r6, #0x0
- add r3, #0xa
- cmp r4, r3
- bne _02024268
- add r0, r2, #0x0
- mov r1, #0x70
- mov r2, #0x0
- bl FUN_020671BC
- add r2, r0, #0x0
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02023E70
- pop {r4-r6, pc}
-_02024268:
- add r3, r6, #0x0
- add r3, #0xb
- cmp r4, r3
- bne _02024286
- add r0, r2, #0x0
- mov r1, #0x70
- mov r2, #0x0
- bl FUN_020671BC
- add r2, r0, #0x0
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02023E70
- pop {r4-r6, pc}
-_02024286:
- sub r6, #0x1a
- cmp r4, r6
- bne _02024290
- bl FUN_0202415C
-_02024290:
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02024294
-FUN_02024294: ; 0x02024294
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r6, r2, #0x0
- add r0, r1, #0x0
- bl FUN_02087A50
- add r4, r0, #0x0
- add r0, r6, #0x0
- bl FUN_02087A1C
- cmp r4, #0xe
- beq _020242C0
- cmp r0, #0x6
- beq _020242C0
- ldr r1, _020242C4 ; =0x00000129
- add r3, r5, r1
- ldrb r2, [r3, r4]
- mov r1, #0x1
- lsl r1, r0
- add r0, r2, #0x0
- orr r0, r1
- strb r0, [r3, r4]
-_020242C0:
- pop {r4-r6, pc}
- nop
-_020242C4: .word 0x00000129
-
- thumb_func_start FUN_020242C8
-FUN_020242C8: ; 0x020242C8
- push {r4-r6, lr}
- add r6, r1, #0x0
- add r5, r0, #0x0
- add r0, r6, #0x0
- mov r1, #0x12
- add r4, r2, #0x0
- bl FUN_02068678
- cmp r0, #0xff
- bne _020242EA
- cmp r4, #0x0
- bne _020242E4
- mov r0, #0x2
- pop {r4-r6, pc}
-_020242E4:
- mov r0, #0x0
- mvn r0, r0
- pop {r4-r6, pc}
-_020242EA:
- sub r0, r6, #0x1
- lsl r0, r0, #0x10
- lsr r2, r0, #0x10
- mov r1, #0x1
- mov r0, #0x7
- add r3, r2, #0x0
- and r3, r0
- add r0, r1, #0x0
- lsl r0, r3
- asr r3, r2, #0x3
- add r3, r5, r3
- add r3, #0x84
- ldrb r3, [r3, #0x0]
- tst r0, r3
- bne _0202430A
- mov r1, #0x0
-_0202430A:
- lsl r0, r1, #0x18
- lsr r1, r0, #0x18
- cmp r4, #0x1
- bne _0202433A
- add r4, r2, #0x0
- asr r2, r2, #0x3
- add r2, r5, r2
- mov r0, #0x7
- add r2, #0xc4
- mov r3, #0x1
- and r4, r0
- add r0, r3, #0x0
- ldrb r2, [r2, #0x0]
- lsl r0, r4
- tst r0, r2
- bne _0202432C
- mov r3, #0x0
-_0202432C:
- lsl r0, r3, #0x18
- lsr r0, r0, #0x18
- cmp r0, r1
- bne _0202433C
- mov r0, #0x0
- mvn r0, r0
- pop {r4-r6, pc}
-_0202433A:
- add r0, r1, #0x0
-_0202433C:
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02024340
-FUN_02024340: ; 0x02024340
- push {r4-r5}
- mov r3, #0x0
- ldr r5, _02024360 ; =0x020EE942
- mov r4, #0x1
- add r1, r3, #0x0
-_0202434A:
- ldrh r2, [r5, #0x0]
- cmp r0, r2
- bne _02024352
- add r4, r1, #0x0
-_02024352:
- add r3, r3, #0x1
- add r5, r5, #0x2
- cmp r3, #0xb
- blt _0202434A
- add r0, r4, #0x0
- pop {r4-r5}
- bx lr
- .balign 4
-_02024360: .word 0x020EE942
-
- thumb_func_start FUN_02024364
-FUN_02024364: ; 0x02024364
- ldr r1, _02024374 ; =0x000001EA
- mov r2, #0x1
- cmp r0, r1
- bne _0202436E
- mov r2, #0x0
-_0202436E:
- add r0, r2, #0x0
- bx lr
- nop
-_02024374: .word 0x000001EA
-
- thumb_func_start FUN_02024378
-FUN_02024378: ; 0x02024378
- push {r4, lr}
- mov r2, #0x4f
- mov r1, #0x0
- lsl r2, r2, #0x2
- add r4, r0, #0x0
- bl Call_FillMemWithValue
- ldr r0, _020243C0 ; =0xBEEFCAFE
- mov r1, #0x0
- str r0, [r4, #0x0]
- ldr r0, _020243C4 ; =0x00000139
- mov r2, #0x1c
- strb r1, [r4, r0]
- sub r0, #0x2d
- add r0, r4, r0
- mov r1, #0xff
- bl Call_FillMemWithValue
- mov r1, #0xff
- add r0, r1, #0x0
- add r0, #0x9
- strb r1, [r4, r0]
- add r0, r1, #0x0
- add r0, #0xa
- strb r1, [r4, r0]
- add r0, r1, #0x0
- add r0, #0xb
- strb r1, [r4, r0]
- add r0, r1, #0x0
- add r0, #0xc
- strb r1, [r4, r0]
- add r0, r4, #0x0
- bl FUN_0202419C
- pop {r4, pc}
- nop
-_020243C0: .word 0xBEEFCAFE
-_020243C4: .word 0x00000139
-
- thumb_func_start FUN_020243C8
-FUN_020243C8: ; 0x020243C8
- push {r3-r7, lr}
- add r6, r0, #0x0
- ldr r1, [r6, #0x0]
- ldr r0, _020243FC ; =0xBEEFCAFE
- cmp r1, r0
- beq _020243D8
- bl ErrorHandling
-_020243D8:
- ldr r7, _02024400 ; =0x000001ED
- mov r5, #0x0
- mov r4, #0x1
-_020243DE:
- lsl r1, r4, #0x10
- add r0, r6, #0x0
- lsr r1, r1, #0x10
- bl FUN_02024594
- cmp r0, #0x1
- bne _020243EE
- add r5, r5, #0x1
-_020243EE:
- add r4, r4, #0x1
- cmp r4, r7
- ble _020243DE
- lsl r0, r5, #0x10
- lsr r0, r0, #0x10
- pop {r3-r7, pc}
- nop
-_020243FC: .word 0xBEEFCAFE
-_02024400: .word 0x000001ED
-
- thumb_func_start FUN_02024404
-FUN_02024404: ; 0x02024404
- push {r3-r7, lr}
- add r6, r0, #0x0
- ldr r1, [r6, #0x0]
- ldr r0, _02024438 ; =0xBEEFCAFE
- cmp r1, r0
- beq _02024414
- bl ErrorHandling
-_02024414:
- ldr r7, _0202443C ; =0x000001ED
- mov r5, #0x0
- mov r4, #0x1
-_0202441A:
- lsl r1, r4, #0x10
- add r0, r6, #0x0
- lsr r1, r1, #0x10
- bl FUN_020245F0
- cmp r0, #0x1
- bne _0202442A
- add r5, r5, #0x1
-_0202442A:
- add r4, r4, #0x1
- cmp r4, r7
- ble _0202441A
- lsl r0, r5, #0x10
- lsr r0, r0, #0x10
- pop {r3-r7, pc}
- nop
-_02024438: .word 0xBEEFCAFE
-_0202443C: .word 0x000001ED
-
- thumb_func_start FUN_02024440
-FUN_02024440: ; 0x02024440
- push {r4, lr}
- add r4, r0, #0x0
- bl FUN_02024CA4
- cmp r0, #0x0
- beq _02024454
- add r0, r4, #0x0
- bl FUN_02024404
- pop {r4, pc}
-_02024454:
- add r0, r4, #0x0
- bl FUN_020244A4
- pop {r4, pc}
-
- thumb_func_start FUN_0202445C
-FUN_0202445C: ; 0x0202445C
- push {r3-r7, lr}
- add r6, r0, #0x0
- ldr r1, [r6, #0x0]
- ldr r0, _0202449C ; =0xBEEFCAFE
- cmp r1, r0
- beq _0202446C
- bl ErrorHandling
-_0202446C:
- ldr r7, _020244A0 ; =0x000001ED
- mov r5, #0x0
- mov r4, #0x1
-_02024472:
- lsl r1, r4, #0x10
- add r0, r6, #0x0
- lsr r1, r1, #0x10
- bl FUN_02024594
- cmp r0, #0x1
- bne _0202448E
- lsl r0, r4, #0x10
- lsr r0, r0, #0x10
- bl FUN_02069B40
- cmp r0, #0x0
- beq _0202448E
- add r5, r5, #0x1
-_0202448E:
- add r4, r4, #0x1
- cmp r4, r7
- ble _02024472
- lsl r0, r5, #0x10
- lsr r0, r0, #0x10
- pop {r3-r7, pc}
- nop
-_0202449C: .word 0xBEEFCAFE
-_020244A0: .word 0x000001ED
-
- thumb_func_start FUN_020244A4
-FUN_020244A4: ; 0x020244A4
- push {r3-r7, lr}
- add r6, r0, #0x0
- ldr r1, [r6, #0x0]
- ldr r0, _020244E4 ; =0xBEEFCAFE
- cmp r1, r0
- beq _020244B4
- bl ErrorHandling
-_020244B4:
- ldr r7, _020244E8 ; =0x000001ED
- mov r5, #0x0
- mov r4, #0x1
-_020244BA:
- lsl r1, r4, #0x10
- add r0, r6, #0x0
- lsr r1, r1, #0x10
- bl FUN_020245F0
- cmp r0, #0x1
- bne _020244D6
- lsl r0, r4, #0x10
- lsr r0, r0, #0x10
- bl FUN_02069B40
- cmp r0, #0x0
- beq _020244D6
- add r5, r5, #0x1
-_020244D6:
- add r4, r4, #0x1
- cmp r4, r7
- ble _020244BA
- lsl r0, r5, #0x10
- lsr r0, r0, #0x10
- pop {r3-r7, pc}
- nop
-_020244E4: .word 0xBEEFCAFE
-_020244E8: .word 0x000001ED
-
- thumb_func_start FUN_020244EC
-FUN_020244EC: ; 0x020244EC
- push {r3, lr}
- bl FUN_02024518
- ldr r1, _02024500 ; =0x000001E2
- cmp r0, r1
- blo _020244FC
- mov r0, #0x1
- pop {r3, pc}
-_020244FC:
- mov r0, #0x0
- pop {r3, pc}
- .balign 4
-_02024500: .word 0x000001E2
-
- thumb_func_start FUN_02024504
-FUN_02024504: ; 0x02024504
- push {r3, lr}
- bl FUN_02024550
- cmp r0, #0x96
- blo _02024512
- mov r0, #0x1
- pop {r3, pc}
-_02024512:
- mov r0, #0x0
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02024518
-FUN_02024518: ; 0x02024518
- push {r3-r7, lr}
- ldr r7, _0202454C ; =0x000001ED
- add r6, r0, #0x0
- mov r5, #0x0
- mov r4, #0x1
-_02024522:
- lsl r1, r4, #0x10
- add r0, r6, #0x0
- lsr r1, r1, #0x10
- bl FUN_02024594
- cmp r0, #0x1
- bne _02024542
- lsl r0, r4, #0x10
- lsr r0, r0, #0x10
- bl FUN_02024340
- cmp r0, #0x1
- bne _02024542
- add r0, r5, #0x1
- lsl r0, r0, #0x10
- lsr r5, r0, #0x10
-_02024542:
- add r4, r4, #0x1
- cmp r4, r7
- ble _02024522
- add r0, r5, #0x0
- pop {r3-r7, pc}
- .balign 4
-_0202454C: .word 0x000001ED
-
- thumb_func_start FUN_02024550
-FUN_02024550: ; 0x02024550
- push {r3-r7, lr}
- ldr r7, _02024590 ; =0x000001ED
- add r6, r0, #0x0
- mov r5, #0x0
- mov r4, #0x1
-_0202455A:
- lsl r1, r4, #0x10
- add r0, r6, #0x0
- lsr r1, r1, #0x10
- bl FUN_020245F0
- cmp r0, #0x1
- bne _02024586
- lsl r0, r4, #0x10
- lsr r0, r0, #0x10
- bl FUN_02069B40
- cmp r0, #0x0
- beq _02024586
- lsl r0, r4, #0x10
- lsr r0, r0, #0x10
- bl FUN_02024364
- cmp r0, #0x1
- bne _02024586
- add r0, r5, #0x1
- lsl r0, r0, #0x10
- lsr r5, r0, #0x10
-_02024586:
- add r4, r4, #0x1
- cmp r4, r7
- ble _0202455A
- add r0, r5, #0x0
- pop {r3-r7, pc}
- .balign 4
-_02024590: .word 0x000001ED
-
- thumb_func_start FUN_02024594
-FUN_02024594: ; 0x02024594
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- ldr r1, [r5, #0x0]
- ldr r0, _020245E8 ; =0xBEEFCAFE
- cmp r1, r0
- beq _020245A6
- bl ErrorHandling
-_020245A6:
- cmp r4, #0x0
- beq _020245B0
- ldr r0, _020245EC ; =0x000001ED
- cmp r4, r0
- bls _020245B8
-_020245B0:
- bl ErrorHandling
- mov r0, #0x1
- b _020245BA
-_020245B8:
- mov r0, #0x0
-_020245BA:
- cmp r0, #0x0
- beq _020245C2
- mov r0, #0x0
- pop {r3-r5, pc}
-_020245C2:
- sub r0, r4, #0x1
- lsl r0, r0, #0x10
- lsr r2, r0, #0x10
- mov r0, #0x1
- mov r1, #0x7
- and r1, r2
- add r3, r0, #0x0
- lsl r3, r1
- asr r1, r2, #0x3
- add r2, r5, r1
- ldrb r1, [r2, #0x4]
- tst r1, r3
- beq _020245E4
- add r2, #0x44
- ldrb r1, [r2, #0x0]
- tst r1, r3
- bne _020245E6
-_020245E4:
- mov r0, #0x0
-_020245E6:
- pop {r3-r5, pc}
- .balign 4
-_020245E8: .word 0xBEEFCAFE
-_020245EC: .word 0x000001ED
-
- thumb_func_start FUN_020245F0
-FUN_020245F0: ; 0x020245F0
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- ldr r1, [r5, #0x0]
- ldr r0, _02024640 ; =0xBEEFCAFE
- cmp r1, r0
- beq _02024602
- bl ErrorHandling
-_02024602:
- cmp r4, #0x0
- beq _0202460C
- ldr r0, _02024644 ; =0x000001ED
- cmp r4, r0
- bls _02024614
-_0202460C:
- bl ErrorHandling
- mov r0, #0x1
- b _02024616
-_02024614:
- mov r0, #0x0
-_02024616:
- cmp r0, #0x0
- beq _0202461E
- mov r0, #0x0
- pop {r3-r5, pc}
-_0202461E:
- sub r0, r4, #0x1
- lsl r0, r0, #0x10
- lsr r3, r0, #0x10
- mov r0, #0x1
- mov r1, #0x7
- and r1, r3
- add r2, r0, #0x0
- lsl r2, r1
- asr r1, r3, #0x3
- add r1, r5, r1
- add r1, #0x44
- ldrb r1, [r1, #0x0]
- tst r1, r2
- bne _0202463C
- mov r0, #0x0
-_0202463C:
- pop {r3-r5, pc}
- nop
-_02024640: .word 0xBEEFCAFE
-_02024644: .word 0x000001ED
-
- thumb_func_start FUN_02024648
-FUN_02024648: ; 0x02024648
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- ldr r1, [r5, #0x0]
- ldr r0, _02024670 ; =0xBEEFCAFE
- cmp r1, r0
- beq _0202465A
- bl ErrorHandling
-_0202465A:
- cmp r4, #0x0
- bne _02024666
- mov r0, #0x41
- lsl r0, r0, #0x2
- ldr r6, [r5, r0]
- b _0202466A
-_02024666:
- bl ErrorHandling
-_0202466A:
- add r0, r6, #0x0
- pop {r4-r6, pc}
- nop
-_02024670: .word 0xBEEFCAFE
-
- thumb_func_start FUN_02024674
-FUN_02024674: ; 0x02024674
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- ldr r1, [r5, #0x0]
- ldr r0, _020246D4 ; =0xBEEFCAFE
- add r6, r2, #0x0
- cmp r1, r0
- beq _02024688
- bl ErrorHandling
-_02024688:
- cmp r4, #0x0
- beq _02024692
- ldr r0, _020246D8 ; =0x000001ED
- cmp r4, r0
- bls _0202469A
-_02024692:
- bl ErrorHandling
- mov r0, #0x1
- b _0202469C
-_0202469A:
- mov r0, #0x0
-_0202469C:
- cmp r0, #0x0
- beq _020246A6
- mov r0, #0x0
- mvn r0, r0
- pop {r4-r6, pc}
-_020246A6:
- sub r0, r4, #0x1
- lsl r0, r0, #0x10
- lsr r2, r0, #0x10
- add r3, r2, #0x0
- asr r2, r2, #0x3
- add r2, r5, r2
- mov r0, #0x7
- add r2, #0x44
- mov r1, #0x1
- and r3, r0
- ldrb r2, [r2, #0x0]
- lsl r1, r3
- tst r1, r2
- beq _020246CE
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r2, r6, #0x0
- bl FUN_020242C8
- pop {r4-r6, pc}
-_020246CE:
- sub r0, #0x8
- pop {r4-r6, pc}
- nop
-_020246D4: .word 0xBEEFCAFE
-_020246D8: .word 0x000001ED
-
- thumb_func_start FUN_020246DC
-FUN_020246DC: ; 0x020246DC
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- ldr r1, [r5, #0x0]
- ldr r0, _02024718 ; =0xBEEFCAFE
- cmp r1, r0
- beq _020246EE
- bl ErrorHandling
-_020246EE:
- mov r0, #0x43
- mov r2, #0x0
- lsl r0, r0, #0x2
-_020246F4:
- add r1, r5, r2
- ldrb r1, [r1, r0]
- cmp r1, #0xff
- beq _02024702
- add r2, r2, #0x1
- cmp r2, #0x1c
- blt _020246F4
-_02024702:
- cmp r2, r4
- bgt _0202470C
- mov r0, #0x0
- mvn r0, r0
- pop {r3-r5, pc}
-_0202470C:
- mov r0, #0x43
- add r1, r5, r4
- lsl r0, r0, #0x2
- ldrb r0, [r1, r0]
- pop {r3-r5, pc}
- nop
-_02024718: .word 0xBEEFCAFE
-
- thumb_func_start FUN_0202471C
-FUN_0202471C: ; 0x0202471C
- push {r4, lr}
- add r4, r0, #0x0
- ldr r1, [r4, #0x0]
- ldr r0, _02024744 ; =0xBEEFCAFE
- cmp r1, r0
- beq _0202472C
- bl ErrorHandling
-_0202472C:
- mov r1, #0x43
- mov r0, #0x0
- lsl r1, r1, #0x2
-_02024732:
- add r2, r4, r0
- ldrb r2, [r2, r1]
- cmp r2, #0xff
- beq _02024740
- add r0, r0, #0x1
- cmp r0, #0x1c
- blt _02024732
-_02024740:
- pop {r4, pc}
- nop
-_02024744: .word 0xBEEFCAFE
-
- thumb_func_start FUN_02024748
-FUN_02024748: ; 0x02024748
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- ldr r1, [r5, #0x0]
- ldr r0, _0202479C ; =0xBEEFCAFE
- cmp r1, r0
- beq _0202475A
- bl ErrorHandling
-_0202475A:
- ldr r1, _020247A0 ; =0x000001A6
- add r0, r5, #0x0
- bl FUN_02023D8C
- cmp r0, r4
- bgt _0202476C
- mov r0, #0x0
- mvn r0, r0
- pop {r3-r5, pc}
-_0202476C:
- cmp r4, #0x2
- blt _02024774
- bl ErrorHandling
-_02024774:
- add r0, r4, #0x1
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- sub r0, r0, #0x1
- lsl r0, r0, #0x10
- lsr r2, r0, #0x10
- mov r0, #0x1
- mov r1, #0x7
- and r1, r2
- add r3, r0, #0x0
- lsl r3, r1
- asr r1, r2, #0x3
- add r2, r5, r1
- mov r1, #0x42
- lsl r1, r1, #0x2
- ldrb r1, [r2, r1]
- tst r1, r3
- bne _0202479A
- mov r0, #0x0
-_0202479A:
- pop {r3-r5, pc}
- .balign 4
-_0202479C: .word 0xBEEFCAFE
-_020247A0: .word 0x000001A6
-
- thumb_func_start FUN_020247A4
-FUN_020247A4: ; 0x020247A4
- push {r4, lr}
- add r4, r0, #0x0
- ldr r1, [r4, #0x0]
- ldr r0, _020247C0 ; =0xBEEFCAFE
- cmp r1, r0
- beq _020247B4
- bl ErrorHandling
-_020247B4:
- ldr r1, _020247C4 ; =0x000001A6
- add r0, r4, #0x0
- bl FUN_02023D8C
- pop {r4, pc}
- nop
-_020247C0: .word 0xBEEFCAFE
-_020247C4: .word 0x000001A6
-
- thumb_func_start FUN_020247C8
-FUN_020247C8: ; 0x020247C8
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- ldr r1, [r5, #0x0]
- ldr r0, _0202481C ; =0xBEEFCAFE
- cmp r1, r0
- beq _020247DA
- bl ErrorHandling
-_020247DA:
- ldr r1, _02024820 ; =0x000001A7
- add r0, r5, #0x0
- bl FUN_02023D8C
- cmp r0, r4
- bgt _020247EC
- mov r0, #0x0
- mvn r0, r0
- pop {r3-r5, pc}
-_020247EC:
- cmp r4, #0x2
- blt _020247F4
- bl ErrorHandling
-_020247F4:
- add r0, r4, #0x1
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- sub r0, r0, #0x1
- lsl r0, r0, #0x10
- lsr r2, r0, #0x10
- mov r0, #0x1
- mov r1, #0x7
- and r1, r2
- add r3, r0, #0x0
- lsl r3, r1
- asr r1, r2, #0x3
- add r2, r5, r1
- ldr r1, _02024824 ; =0x00000109
- ldrb r1, [r2, r1]
- tst r1, r3
- bne _02024818
- mov r0, #0x0
-_02024818:
- pop {r3-r5, pc}
- nop
-_0202481C: .word 0xBEEFCAFE
-_02024820: .word 0x000001A7
-_02024824: .word 0x00000109
-
- thumb_func_start FUN_02024828
-FUN_02024828: ; 0x02024828
- push {r4, lr}
- add r4, r0, #0x0
- ldr r1, [r4, #0x0]
- ldr r0, _02024844 ; =0xBEEFCAFE
- cmp r1, r0
- beq _02024838
- bl ErrorHandling
-_02024838:
- ldr r1, _02024848 ; =0x000001A7
- add r0, r4, #0x0
- bl FUN_02023D8C
- pop {r4, pc}
- nop
-_02024844: .word 0xBEEFCAFE
-_02024848: .word 0x000001A7
-
- thumb_func_start FUN_0202484C
-FUN_0202484C: ; 0x0202484C
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- ldr r1, [r5, #0x0]
- ldr r0, _02024894 ; =0xBEEFCAFE
- cmp r1, r0
- beq _0202485E
- bl ErrorHandling
-_0202485E:
- mov r1, #0x67
- add r0, r5, #0x0
- lsl r1, r1, #0x2
- bl FUN_02023F2C
- cmp r0, r4
- bgt _02024872
- mov r0, #0x0
- mvn r0, r0
- pop {r3-r5, pc}
-_02024872:
- cmp r4, #0x3
- blt _0202487A
- bl ErrorHandling
-_0202487A:
- lsl r0, r4, #0x10
- lsr r2, r0, #0x10
- asr r0, r2, #0x2
- add r1, r5, r0
- ldr r0, _02024898 ; =0x0000010A
- ldrb r1, [r1, r0]
- lsl r0, r2, #0x1e
- lsr r0, r0, #0x1d
- asr r1, r0
- mov r0, #0x3
- and r0, r1
- pop {r3-r5, pc}
- nop
-_02024894: .word 0xBEEFCAFE
-_02024898: .word 0x0000010A
-
- thumb_func_start FUN_0202489C
-FUN_0202489C: ; 0x0202489C
- push {r4, lr}
- add r4, r0, #0x0
- ldr r1, [r4, #0x0]
- ldr r0, _020248B8 ; =0xBEEFCAFE
- cmp r1, r0
- beq _020248AC
- bl ErrorHandling
-_020248AC:
- mov r1, #0x67
- add r0, r4, #0x0
- lsl r1, r1, #0x2
- bl FUN_02023F2C
- pop {r4, pc}
- .balign 4
-_020248B8: .word 0xBEEFCAFE
-
- thumb_func_start FUN_020248BC
-FUN_020248BC: ; 0x020248BC
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- ldr r1, [r5, #0x0]
- ldr r0, _02024900 ; =0xBEEFCAFE
- cmp r1, r0
- beq _020248CE
- bl ErrorHandling
-_020248CE:
- ldr r1, _02024904 ; =0x0000019D
- add r0, r5, #0x0
- bl FUN_02023F2C
- cmp r0, r4
- bgt _020248E0
- mov r0, #0x0
- mvn r0, r0
- pop {r3-r5, pc}
-_020248E0:
- cmp r4, #0x3
- blt _020248E8
- bl ErrorHandling
-_020248E8:
- lsl r0, r4, #0x10
- lsr r2, r0, #0x10
- asr r0, r2, #0x2
- add r1, r5, r0
- ldr r0, _02024908 ; =0x0000010B
- ldrb r1, [r1, r0]
- lsl r0, r2, #0x1e
- lsr r0, r0, #0x1d
- asr r1, r0
- mov r0, #0x3
- and r0, r1
- pop {r3-r5, pc}
- .balign 4
-_02024900: .word 0xBEEFCAFE
-_02024904: .word 0x0000019D
-_02024908: .word 0x0000010B
-
- thumb_func_start FUN_0202490C
-FUN_0202490C: ; 0x0202490C
- push {r4, lr}
- add r4, r0, #0x0
- ldr r1, [r4, #0x0]
- ldr r0, _02024928 ; =0xBEEFCAFE
- cmp r1, r0
- beq _0202491C
- bl ErrorHandling
-_0202491C:
- ldr r1, _0202492C ; =0x0000019D
- add r0, r4, #0x0
- bl FUN_02023F2C
- pop {r4, pc}
- nop
-_02024928: .word 0xBEEFCAFE
-_0202492C: .word 0x0000019D
-
- thumb_func_start FUN_02024930
-FUN_02024930: ; 0x02024930
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- ldr r1, [r5, #0x0]
- ldr r0, _0202496C ; =0xBEEFCAFE
- cmp r1, r0
- beq _02024942
- bl ErrorHandling
-_02024942:
- lsl r0, r4, #0x18
- lsr r0, r0, #0x18
- cmp r0, #0x2
- bhs _02024958
- lsl r0, r0, #0x2
- ldr r1, [r5, #0x40]
- add r0, #0x18
- lsr r1, r0
- mov r0, #0xf
- and r0, r1
- pop {r3-r5, pc}
-_02024958:
- add r5, #0x80
- sub r0, r0, #0x2
- lsl r0, r0, #0x18
- ldr r1, [r5, #0x0]
- lsr r0, r0, #0x16
- add r0, #0x18
- lsr r1, r0
- mov r0, #0xf
- and r0, r1
- pop {r3-r5, pc}
- .balign 4
-_0202496C: .word 0xBEEFCAFE
-
- thumb_func_start FUN_02024970
-FUN_02024970: ; 0x02024970
- push {r4, lr}
- add r4, r0, #0x0
- ldr r1, [r4, #0x0]
- ldr r0, _02024988 ; =0xBEEFCAFE
- cmp r1, r0
- beq _02024980
- bl ErrorHandling
-_02024980:
- add r0, r4, #0x0
- bl FUN_020240D0
- pop {r4, pc}
- .balign 4
-_02024988: .word 0xBEEFCAFE
-
- thumb_func_start FUN_0202498C
-FUN_0202498C: ; 0x0202498C
- push {r3-r7, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- str r1, [sp, #0x0]
- add r0, r1, #0x0
- mov r1, #0x5
- mov r2, #0x0
- bl FUN_020671BC
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x4]
- mov r1, #0x0
- ldr r0, [sp, #0x0]
- add r2, r1, #0x0
- bl FUN_020671BC
- add r7, r0, #0x0
- ldr r0, [sp, #0x0]
- bl FUN_020689E0
- add r6, r0, #0x0
- ldr r1, [r5, #0x0]
- ldr r0, _02024AE4 ; =0xBEEFCAFE
- cmp r1, r0
- beq _020249C4
- bl ErrorHandling
-_020249C4:
- ldr r0, [sp, #0x4]
- cmp r0, #0x0
- beq _020249D0
- ldr r1, _02024AE8 ; =0x000001ED
- cmp r0, r1
- bls _020249D8
-_020249D0:
- bl ErrorHandling
- mov r0, #0x1
- b _020249DA
-_020249D8:
- mov r0, #0x0
-_020249DA:
- cmp r0, #0x0
- bne _02024ADE
- ldr r0, [sp, #0x4]
- mov r2, #0x1
- sub r0, r0, #0x1
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
- mov r0, #0x7
- and r0, r4
- add r1, r2, #0x0
- lsl r1, r0
- asr r0, r4, #0x3
- add r3, r5, r0
- add r3, #0x44
- ldrb r3, [r3, #0x0]
- tst r3, r1
- bne _02024A70
- ldr r1, _02024AEC ; =0x00000147
- ldr r0, [sp, #0x4]
- cmp r0, r1
- bne _02024A08
- sub r1, #0x43
- str r7, [r5, r1]
-_02024A08:
- lsl r0, r6, #0x18
- lsr r6, r0, #0x18
- cmp r6, #0x2
- bls _02024A14
- bl ErrorHandling
-_02024A14:
- cmp r6, #0x2
- bne _02024A1A
- mov r6, #0x0
-_02024A1A:
- cmp r6, #0x2
- blo _02024A22
- bl ErrorHandling
-_02024A22:
- add r2, r5, #0x0
- mov r0, #0x7
- add r3, r4, #0x0
- and r3, r0
- mov r0, #0x1
- lsl r0, r3
- add r2, #0xc4
- asr r1, r4, #0x3
- ldrb r7, [r2, r1]
- mvn r0, r0
- and r0, r7
- strb r0, [r2, r1]
- add r0, r6, #0x0
- ldrb r7, [r2, r1]
- lsl r0, r3
- orr r0, r7
- strb r0, [r2, r1]
- cmp r6, #0x2
- blo _02024A4C
- bl ErrorHandling
-_02024A4C:
- add r1, r5, #0x0
- mov r0, #0x7
- add r2, r4, #0x0
- and r2, r0
- mov r3, #0x1
- lsl r3, r2
- add r1, #0x84
- asr r0, r4, #0x3
- ldrb r7, [r1, r0]
- mvn r3, r3
- lsl r6, r2
- and r3, r7
- strb r3, [r1, r0]
- ldrb r3, [r1, r0]
- add r2, r3, #0x0
- orr r2, r6
- strb r2, [r1, r0]
- b _02024AC0
-_02024A70:
- add r0, r5, r0
- add r0, #0x84
- ldrb r0, [r0, #0x0]
- tst r0, r1
- bne _02024A7C
- mov r2, #0x0
-_02024A7C:
- lsl r0, r2, #0x18
- lsr r0, r0, #0x18
- cmp r0, r6
- beq _02024AC0
- lsl r0, r6, #0x18
- lsr r6, r0, #0x18
- cmp r6, #0x2
- bls _02024A90
- bl ErrorHandling
-_02024A90:
- cmp r6, #0x2
- bne _02024A96
- mov r6, #0x0
-_02024A96:
- cmp r6, #0x2
- blo _02024A9E
- bl ErrorHandling
-_02024A9E:
- add r1, r5, #0x0
- mov r0, #0x7
- add r2, r4, #0x0
- and r2, r0
- mov r3, #0x1
- lsl r3, r2
- add r1, #0xc4
- asr r0, r4, #0x3
- ldrb r7, [r1, r0]
- mvn r3, r3
- lsl r6, r2
- and r3, r7
- strb r3, [r1, r0]
- ldrb r3, [r1, r0]
- add r2, r3, #0x0
- orr r2, r6
- strb r2, [r1, r0]
-_02024AC0:
- ldr r1, [sp, #0x4]
- ldr r2, [sp, #0x0]
- add r0, r5, #0x0
- bl FUN_020241B8
- mov r1, #0x7
- add r5, #0x44
- asr r0, r4, #0x3
- ldrb r3, [r5, r0]
- mov r2, #0x1
- and r1, r4
- lsl r2, r1
- add r1, r3, #0x0
- orr r1, r2
- strb r1, [r5, r0]
-_02024ADE:
- add sp, #0x8
- pop {r3-r7, pc}
- nop
-_02024AE4: .word 0xBEEFCAFE
-_02024AE8: .word 0x000001ED
-_02024AEC: .word 0x00000147
-
- thumb_func_start FUN_02024AF0
-FUN_02024AF0: ; 0x02024AF0
- push {r4-r7, lr}
- sub sp, #0x14
- add r4, r0, #0x0
- str r1, [sp, #0x0]
- add r0, r1, #0x0
- mov r1, #0x5
- mov r2, #0x0
- bl FUN_020671BC
- lsl r0, r0, #0x10
- lsr r6, r0, #0x10
- ldr r0, [sp, #0x0]
- mov r1, #0xc
- mov r2, #0x0
- bl FUN_020671BC
- str r0, [sp, #0x8]
- mov r1, #0x0
- ldr r0, [sp, #0x0]
- add r2, r1, #0x0
- bl FUN_020671BC
- str r0, [sp, #0x4]
- ldr r0, [sp, #0x0]
- bl FUN_020689E0
- add r7, r0, #0x0
- ldr r1, [r4, #0x0]
- ldr r0, _02024C78 ; =0xBEEFCAFE
- cmp r1, r0
- beq _02024B32
- bl ErrorHandling
-_02024B32:
- cmp r6, #0x0
- beq _02024B3C
- ldr r0, _02024C7C ; =0x000001ED
- cmp r6, r0
- bls _02024B44
-_02024B3C:
- bl ErrorHandling
- mov r0, #0x1
- b _02024B46
-_02024B44:
- mov r0, #0x0
-_02024B46:
- cmp r0, #0x0
- beq _02024B4C
- b _02024C72
-_02024B4C:
- sub r0, r6, #0x1
- lsl r0, r0, #0x10
- lsr r5, r0, #0x10
- mov r0, #0x1
- mov r1, #0x7
- and r1, r5
- add r2, r0, #0x0
- asr r3, r5, #0x3
- lsl r2, r1
- add r1, r4, r3
- add r1, #0x44
- ldrb r1, [r1, #0x0]
- tst r1, r2
- bne _02024BEA
- ldr r1, _02024C80 ; =0x00000147
- cmp r6, r1
- bne _02024B74
- ldr r0, [sp, #0x4]
- sub r1, #0x43
- str r0, [r4, r1]
-_02024B74:
- lsl r0, r7, #0x18
- lsr r7, r0, #0x18
- cmp r7, #0x2
- bls _02024B80
- bl ErrorHandling
-_02024B80:
- cmp r7, #0x2
- bne _02024B86
- mov r7, #0x0
-_02024B86:
- cmp r7, #0x2
- blo _02024B8E
- bl ErrorHandling
-_02024B8E:
- mov r0, #0x7
- and r0, r5
- str r0, [sp, #0x10]
- add r0, r4, #0x0
- add r0, #0xc4
- asr r3, r5, #0x3
- ldrb r1, [r0, r3]
- mov r2, #0x1
- str r1, [sp, #0xc]
- ldr r1, [sp, #0x10]
- lsl r2, r1
- ldr r1, [sp, #0xc]
- mvn r2, r2
- and r1, r2
- strb r1, [r0, r3]
- ldrb r1, [r0, r3]
- add r2, r7, #0x0
- mov r12, r1
- ldr r1, [sp, #0x10]
- lsl r2, r1
- mov r1, r12
- orr r1, r2
- strb r1, [r0, r3]
- cmp r7, #0x2
- blo _02024BC4
- bl ErrorHandling
-_02024BC4:
- add r1, r4, #0x0
- mov r0, #0x7
- add r2, r5, #0x0
- and r2, r0
- mov r3, #0x1
- lsl r3, r2
- add r1, #0x84
- asr r0, r5, #0x3
- ldrb r5, [r1, r0]
- mvn r3, r3
- and r3, r5
- strb r3, [r1, r0]
- add r5, r7, #0x0
- ldrb r3, [r1, r0]
- lsl r5, r2
- add r2, r3, #0x0
- orr r2, r5
- strb r2, [r1, r0]
- b _02024C3C
-_02024BEA:
- add r1, r4, r3
- add r1, #0x84
- ldrb r1, [r1, #0x0]
- tst r1, r2
- bne _02024BF6
- mov r0, #0x0
-_02024BF6:
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- cmp r0, r7
- beq _02024C3C
- lsl r0, r7, #0x18
- lsr r7, r0, #0x18
- cmp r7, #0x2
- bls _02024C0A
- bl ErrorHandling
-_02024C0A:
- cmp r7, #0x2
- bne _02024C10
- mov r7, #0x0
-_02024C10:
- cmp r7, #0x2
- blo _02024C18
- bl ErrorHandling
-_02024C18:
- add r1, r4, #0x0
- mov r0, #0x7
- add r2, r5, #0x0
- and r2, r0
- mov r3, #0x1
- lsl r3, r2
- add r1, #0xc4
- asr r0, r5, #0x3
- ldrb r5, [r1, r0]
- mvn r3, r3
- and r3, r5
- strb r3, [r1, r0]
- add r5, r7, #0x0
- ldrb r3, [r1, r0]
- lsl r5, r2
- add r2, r3, #0x0
- orr r2, r5
- strb r2, [r1, r0]
-_02024C3C:
- ldr r2, [sp, #0x0]
- add r0, r4, #0x0
- add r1, r6, #0x0
- bl FUN_020241B8
- ldr r2, [sp, #0x8]
- add r0, r4, #0x0
- add r1, r6, #0x0
- bl FUN_02024294
- sub r0, r6, #0x1
- lsl r0, r0, #0x10
- lsr r6, r0, #0x10
- add r1, r4, #0x4
- asr r0, r6, #0x3
- mov r2, #0x7
- ldrb r5, [r1, r0]
- mov r3, #0x1
- and r2, r6
- lsl r3, r2
- add r2, r5, #0x0
- orr r2, r3
- add r4, #0x44
- strb r2, [r1, r0]
- ldrb r1, [r4, r0]
- orr r1, r3
- strb r1, [r4, r0]
-_02024C72:
- add sp, #0x14
- pop {r4-r7, pc}
- nop
-_02024C78: .word 0xBEEFCAFE
-_02024C7C: .word 0x000001ED
-_02024C80: .word 0x00000147
-
- thumb_func_start FUN_02024C84
-FUN_02024C84: ; 0x02024C84
- push {r4, lr}
- add r4, r0, #0x0
- ldr r1, [r4, #0x0]
- ldr r0, _02024C9C ; =0xBEEFCAFE
- cmp r1, r0
- beq _02024C94
- bl ErrorHandling
-_02024C94:
- ldr r0, _02024CA0 ; =0x00000139
- mov r1, #0x1
- strb r1, [r4, r0]
- pop {r4, pc}
- .balign 4
-_02024C9C: .word 0xBEEFCAFE
-_02024CA0: .word 0x00000139
-
- thumb_func_start FUN_02024CA4
-FUN_02024CA4: ; 0x02024CA4
- push {r4, lr}
- add r4, r0, #0x0
- ldr r1, [r4, #0x0]
- ldr r0, _02024CBC ; =0xBEEFCAFE
- cmp r1, r0
- beq _02024CB4
- bl ErrorHandling
-_02024CB4:
- ldr r0, _02024CC0 ; =0x00000139
- ldrb r0, [r4, r0]
- pop {r4, pc}
- nop
-_02024CBC: .word 0xBEEFCAFE
-_02024CC0: .word 0x00000139
-
- thumb_func_start FUN_02024CC4
-FUN_02024CC4: ; 0x02024CC4
- push {r4, lr}
- add r4, r0, #0x0
- ldr r1, [r4, #0x0]
- ldr r0, _02024CDC ; =0xBEEFCAFE
- cmp r1, r0
- beq _02024CD4
- bl ErrorHandling
-_02024CD4:
- mov r0, #0x4a
- lsl r0, r0, #0x2
- ldrb r0, [r4, r0]
- pop {r4, pc}
- .balign 4
-_02024CDC: .word 0xBEEFCAFE
-
- thumb_func_start FUN_02024CE0
-FUN_02024CE0: ; 0x02024CE0
- push {r4, lr}
- add r4, r0, #0x0
- ldr r1, [r4, #0x0]
- ldr r0, _02024CFC ; =0xBEEFCAFE
- cmp r1, r0
- beq _02024CF0
- bl ErrorHandling
-_02024CF0:
- mov r0, #0x4a
- mov r1, #0x1
- lsl r0, r0, #0x2
- strb r1, [r4, r0]
- pop {r4, pc}
- nop
-_02024CFC: .word 0xBEEFCAFE
-
- thumb_func_start FUN_02024D00
-FUN_02024D00: ; 0x02024D00
- push {r4-r6, lr}
- add r6, r2, #0x0
- add r4, r0, #0x0
- add r5, r1, #0x0
- cmp r6, #0x8
- blo _02024D10
- bl ErrorHandling
-_02024D10:
- ldr r1, [r4, #0x0]
- ldr r0, _02024D44 ; =0xBEEFCAFE
- cmp r1, r0
- beq _02024D1C
- bl ErrorHandling
-_02024D1C:
- add r0, r5, #0x0
- bl FUN_02087A50
- add r5, r0, #0x0
- cmp r5, #0xe
- bne _02024D2C
- mov r0, #0x0
- pop {r4-r6, pc}
-_02024D2C:
- add r0, r6, #0x0
- bl FUN_02087A1C
- mov r1, #0x1
- add r2, r1, #0x0
- lsl r2, r0
- ldr r0, _02024D48 ; =0x00000129
- add r1, r4, r5
- ldrb r0, [r1, r0]
- and r0, r2
- pop {r4-r6, pc}
- nop
-_02024D44: .word 0xBEEFCAFE
-_02024D48: .word 0x00000129
-
- thumb_func_start FUN_02024D4C
-FUN_02024D4C: ; 0x02024D4C
- ldr r1, _02024D54 ; =0x00000137
- mov r2, #0x1
- strb r2, [r0, r1]
- bx lr
- .balign 4
-_02024D54: .word 0x00000137
-
- thumb_func_start FUN_02024D58
-FUN_02024D58: ; 0x02024D58
- ldr r1, _02024D60 ; =0x00000137
- ldrb r0, [r0, r1]
- bx lr
- nop
-_02024D60: .word 0x00000137
-
- thumb_func_start FUN_02024D64
-FUN_02024D64: ; 0x02024D64
- push {r4, lr}
- add r4, r0, #0x0
- ldr r1, [r4, #0x0]
- ldr r0, _02024D7C ; =0xBEEFCAFE
- cmp r1, r0
- beq _02024D74
- bl ErrorHandling
-_02024D74:
- mov r0, #0x4e
- lsl r0, r0, #0x2
- ldrb r0, [r4, r0]
- pop {r4, pc}
- .balign 4
-_02024D7C: .word 0xBEEFCAFE
-
- thumb_func_start FUN_02024D80
-FUN_02024D80: ; 0x02024D80
- push {r4, lr}
- add r4, r0, #0x0
- ldr r1, [r4, #0x0]
- ldr r0, _02024D9C ; =0xBEEFCAFE
- cmp r1, r0
- beq _02024D90
- bl ErrorHandling
-_02024D90:
- mov r0, #0x4e
- mov r1, #0x1
- lsl r0, r0, #0x2
- strb r1, [r4, r0]
- pop {r4, pc}
- nop
-_02024D9C: .word 0xBEEFCAFE
-
- thumb_func_start FUN_02024DA0
-FUN_02024DA0: ; 0x02024DA0
- ldr r3, _02024DA8 ; =FUN_02022610
- mov r1, #0x7
- bx r3
- nop
-_02024DA8: .word FUN_02022610
-
- thumb_func_start FUN_02024DAC
-FUN_02024DAC: ; 0x02024DAC
- push {r3-r5, lr}
- add r4, r2, #0x0
- ldr r2, _02024E60 ; =0x0000019D
- add r5, r0, #0x0
- cmp r1, r2
- bgt _02024DD6
- sub r3, r2, #0x1
- cmp r1, r3
- blt _02024DC6
- beq _02024E24
- cmp r1, r2
- beq _02024E36
- b _02024E5A
-_02024DC6:
- cmp r1, #0xc9
- bgt _02024DCE
- beq _02024DEE
- b _02024E5A
-_02024DCE:
- sub r2, #0x1b
- cmp r1, r2
- beq _02024E48
- b _02024E5A
-_02024DD6:
- add r3, r2, #0x0
- add r3, #0x9
- cmp r1, r3
- bgt _02024DE6
- add r2, #0x9
- cmp r1, r2
- beq _02024E00
- b _02024E5A
-_02024DE6:
- add r2, #0xa
- cmp r1, r2
- beq _02024E12
- b _02024E5A
-_02024DEE:
- bl FUN_0202471C
- cmp r4, r0
- bhs _02024E5A
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_020246DC
- pop {r3-r5, pc}
-_02024E00:
- bl FUN_020247A4
- cmp r4, r0
- bhs _02024E5A
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02024748
- pop {r3-r5, pc}
-_02024E12:
- bl FUN_02024828
- cmp r4, r0
- bhs _02024E5A
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_020247C8
- pop {r3-r5, pc}
-_02024E24:
- bl FUN_0202489C
- cmp r4, r0
- bhs _02024E5A
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_0202484C
- pop {r3-r5, pc}
-_02024E36:
- bl FUN_0202490C
- cmp r4, r0
- bhs _02024E5A
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_020248BC
- pop {r3-r5, pc}
-_02024E48:
- bl FUN_02024970
- cmp r4, r0
- bhs _02024E5A
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02024930
- pop {r3-r5, pc}
-_02024E5A:
- mov r0, #0x0
- pop {r3-r5, pc}
- nop
-_02024E60: .word 0x0000019D
-
- thumb_func_start FUN_02024E64
-FUN_02024E64: ; 0x02024E64
- ldr r0, _02024E68 ; =0x0000074C
- bx lr
- .balign 4
-_02024E68: .word 0x0000074C
-
- thumb_func_start FUN_02024E6C
-FUN_02024E6C: ; 0x02024E6C
- push {r4, lr}
- add r4, r0, #0x0
- ldr r2, _02024EA4 ; =0x0000074C
- mov r0, #0x0
- add r1, r4, #0x0
- bl MIi_CpuClearFast
- add r0, r4, #0x0
- bl FUN_020250A4
- mov r0, #0x7
- lsl r0, r0, #0x8
- add r0, r4, r0
- bl FUN_02025484
- ldr r1, _02024EA8 ; =0x00000724
- ldr r0, _02024EAC ; =0x0000FFFF
- add r1, r4, r1
- mov r2, #0x8
- bl MIi_CpuClear16
- ldr r1, _02024EB0 ; =0x00000734
- ldr r0, _02024EAC ; =0x0000FFFF
- add r1, r4, r1
- mov r2, #0xb
- bl MIi_CpuClear16
- pop {r4, pc}
- .balign 4
-_02024EA4: .word 0x0000074C
-_02024EA8: .word 0x00000724
-_02024EAC: .word 0x0000FFFF
-_02024EB0: .word 0x00000734
-
- thumb_func_start FUN_02024EB4
-FUN_02024EB4: ; 0x02024EB4
- ldr r3, _02024EBC ; =FUN_02022610
- mov r1, #0xa
- bx r3
- nop
-_02024EBC: .word FUN_02022610
-
- thumb_func_start FUN_02024EC0
-FUN_02024EC0: ; 0x02024EC0
- ldr r3, _02024EC8 ; =FUN_02022634
- mov r1, #0xa
- bx r3
- nop
-_02024EC8: .word FUN_02022634
-
- thumb_func_start FUN_02024ECC
-FUN_02024ECC: ; 0x02024ECC
- ldr r3, _02024ED4 ; =FUN_02022610
- mov r1, #0xa
- bx r3
- nop
-_02024ED4: .word FUN_02022610
-
- thumb_func_start FUN_02024ED8
-FUN_02024ED8: ; 0x02024ED8
- push {r3, lr}
- mov r1, #0xa
- bl FUN_02022610
- mov r1, #0x7
- lsl r1, r1, #0x8
- add r0, r0, r1
- pop {r3, pc}
-
- thumb_func_start FUN_02024EE8
-FUN_02024EE8: ; 0x02024EE8
- ldr r1, _02024EF0 ; =0x00000724
- add r0, r0, r1
- bx lr
- nop
-_02024EF0: .word 0x00000724
-
- thumb_func_start FUN_02024EF4
-FUN_02024EF4: ; 0x02024EF4
- add r2, r0, #0x0
- add r0, r1, #0x0
- ldr r1, _02024F04 ; =0x00000724
- ldr r3, _02024F08 ; =FUN_02021EF0
- add r1, r2, r1
- mov r2, #0x8
- bx r3
- nop
-_02024F04: .word 0x00000724
-_02024F08: .word FUN_02021EF0
-
- thumb_func_start FUN_02024F0C
-FUN_02024F0C: ; 0x02024F0C
- ldr r1, _02024F14 ; =0x00000734
- add r0, r0, r1
- bx lr
- nop
-_02024F14: .word 0x00000734
-
- thumb_func_start FUN_02024F18
-FUN_02024F18: ; 0x02024F18
- add r2, r0, #0x0
- add r0, r1, #0x0
- ldr r1, _02024F28 ; =0x00000734
- ldr r3, _02024F2C ; =FUN_02021EF0
- add r1, r2, r1
- mov r2, #0xb
- bx r3
- nop
-_02024F28: .word 0x00000734
-_02024F2C: .word FUN_02021EF0
-
- thumb_func_start FUN_02024F30
-FUN_02024F30: ; 0x02024F30
- push {r4, lr}
- mov r1, #0x2
- bl FUN_02016998
- add r4, r0, #0x0
- bl FUN_02024F50
- add r0, r4, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02024F44
-FUN_02024F44: ; 0x02024F44
- ldr r3, _02024F4C ; =MI_CpuCopy8
- mov r2, #0x2
- bx r3
- nop
-_02024F4C: .word MI_CpuCopy8
-
- thumb_func_start FUN_02024F50
-FUN_02024F50: ; 0x02024F50
- push {r4, lr}
- add r4, r0, #0x0
- mov r1, #0x0
- mov r2, #0x2
- bl MI_CpuFill8
- ldrh r1, [r4, #0x0]
- mov r0, #0xf
- bic r1, r0
- mov r0, #0x1
- orr r0, r1
- strh r0, [r4, #0x0]
- ldrh r1, [r4, #0x0]
- mov r0, #0x30
- bic r1, r0
- strh r1, [r4, #0x0]
- ldrh r1, [r4, #0x0]
- mov r0, #0x40
- bic r1, r0
- strh r1, [r4, #0x0]
- ldrh r1, [r4, #0x0]
- mov r0, #0x80
- bic r1, r0
- strh r1, [r4, #0x0]
- ldrh r1, [r4, #0x0]
- ldr r0, _02024F94 ; =0xFFFFFCFF
- and r0, r1
- strh r0, [r4, #0x0]
- ldrh r1, [r4, #0x0]
- ldr r0, _02024F98 ; =0xFFFF83FF
- and r0, r1
- strh r0, [r4, #0x0]
- pop {r4, pc}
- nop
-_02024F94: .word 0xFFFFFCFF
-_02024F98: .word 0xFFFF83FF
-
- thumb_func_start FUN_02024F9C
-FUN_02024F9C: ; 0x02024F9C
- push {r3, lr}
- cmp r0, #0x0
- beq _02024FAC
- bl LoadPlayerDataAddress
- bl FUN_02025064
- add r1, r0, #0x0
-_02024FAC:
- cmp r1, #0x0
- beq _02024FCA
- cmp r1, #0x1
- beq _02024FBA
- cmp r1, #0x2
- beq _02024FC2
- b _02024FCA
-_02024FBA:
- ldr r0, _02024FD4 ; =0x021C48B8
- mov r1, #0x1
- str r1, [r0, #0x34]
- pop {r3, pc}
-_02024FC2:
- ldr r0, _02024FD4 ; =0x021C48B8
- mov r1, #0x3
- str r1, [r0, #0x34]
- pop {r3, pc}
-_02024FCA:
- ldr r0, _02024FD4 ; =0x021C48B8
- mov r1, #0x0
- str r1, [r0, #0x34]
- pop {r3, pc}
- nop
-_02024FD4: .word 0x021C48B8
-
- thumb_func_start FUN_02024FD8
-FUN_02024FD8: ; 0x02024FD8
- ldrh r0, [r0, #0x0]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1c
- bx lr
-
- thumb_func_start FUN_02024FE0
-FUN_02024FE0: ; 0x02024FE0
- ldrh r3, [r0, #0x0]
- mov r2, #0xf
- lsl r1, r1, #0x10
- bic r3, r2
- lsr r2, r1, #0x10
- mov r1, #0xf
- and r1, r2
- orr r1, r3
- strh r1, [r0, #0x0]
- bx lr
-
- thumb_func_start FUN_02024FF4
-FUN_02024FF4: ; 0x02024FF4
- push {r3, lr}
- bl FUN_02024FD8
- cmp r0, #0x0
- bne _02025002
- mov r0, #0x8
- pop {r3, pc}
-_02025002:
- cmp r0, #0x1
- bne _0202500A
- mov r0, #0x4
- pop {r3, pc}
-_0202500A:
- mov r0, #0x1
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02025010
-FUN_02025010: ; 0x02025010
- ldrh r0, [r0, #0x0]
- lsl r0, r0, #0x1a
- lsr r0, r0, #0x1e
- bx lr
-
- thumb_func_start FUN_02025018
-FUN_02025018: ; 0x02025018
- lsl r1, r1, #0x10
- lsr r1, r1, #0x10
- lsl r1, r1, #0x1e
- ldrh r3, [r0, #0x0]
- mov r2, #0x30
- lsr r1, r1, #0x1a
- bic r3, r2
- orr r1, r3
- strh r1, [r0, #0x0]
- bx lr
-
- thumb_func_start FUN_0202502C
-FUN_0202502C: ; 0x0202502C
- ldrh r0, [r0, #0x0]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x1f
- bx lr
-
- thumb_func_start FUN_02025034
-FUN_02025034: ; 0x02025034
- lsl r1, r1, #0x10
- lsr r1, r1, #0x10
- lsl r1, r1, #0x1f
- ldrh r3, [r0, #0x0]
- mov r2, #0x80
- lsr r1, r1, #0x18
- bic r3, r2
- orr r1, r3
- strh r1, [r0, #0x0]
- bx lr
-
- thumb_func_start FUN_02025048
-FUN_02025048: ; 0x02025048
- ldrh r0, [r0, #0x0]
- lsl r0, r0, #0x19
- lsr r0, r0, #0x1f
- bx lr
-
- thumb_func_start FUN_02025050
-FUN_02025050: ; 0x02025050
- lsl r1, r1, #0x10
- lsr r1, r1, #0x10
- lsl r1, r1, #0x1f
- ldrh r3, [r0, #0x0]
- mov r2, #0x40
- lsr r1, r1, #0x19
- bic r3, r2
- orr r1, r3
- strh r1, [r0, #0x0]
- bx lr
-
- thumb_func_start FUN_02025064
-FUN_02025064: ; 0x02025064
- ldrh r0, [r0, #0x0]
- lsl r0, r0, #0x16
- lsr r0, r0, #0x1e
- bx lr
-
- thumb_func_start FUN_0202506C
-FUN_0202506C: ; 0x0202506C
- lsl r1, r1, #0x10
- lsr r1, r1, #0x10
- lsl r1, r1, #0x1e
- ldrh r3, [r0, #0x0]
- ldr r2, _02025080 ; =0xFFFFFCFF
- lsr r1, r1, #0x16
- and r2, r3
- orr r1, r2
- strh r1, [r0, #0x0]
- bx lr
- .balign 4
-_02025080: .word 0xFFFFFCFF
-
- thumb_func_start FUN_02025084
-FUN_02025084: ; 0x02025084
- ldrh r0, [r0, #0x0]
- lsl r0, r0, #0x11
- lsr r0, r0, #0x1b
- bx lr
-
- thumb_func_start FUN_0202508C
-FUN_0202508C: ; 0x0202508C
- lsl r1, r1, #0x10
- lsr r1, r1, #0x10
- lsl r1, r1, #0x1b
- ldrh r3, [r0, #0x0]
- ldr r2, _020250A0 ; =0xFFFF83FF
- lsr r1, r1, #0x11
- and r2, r3
- orr r1, r2
- strh r1, [r0, #0x0]
- bx lr
- .balign 4
-_020250A0: .word 0xFFFF83FF
-
- thumb_func_start FUN_020250A4
-FUN_020250A4: ; 0x020250A4
- push {r4, lr}
- mov r2, #0x7
- mov r1, #0x0
- lsl r2, r2, #0x8
- add r4, r0, #0x0
- bl MI_CpuFill8
- mov r1, #0x0
- add r0, r1, #0x0
-_020250B6:
- strb r0, [r4, #0x1]
- strb r0, [r4, #0x0]
- add r1, r1, #0x1
- add r4, #0xe
- cmp r1, #0x80
- blt _020250B6
- pop {r4, pc}
-
- thumb_func_start FUN_020250C4
-FUN_020250C4: ; 0x020250C4
- push {r4-r7, lr}
- sub sp, #0xc
- add r5, r0, #0x0
- add r0, r1, #0x0
- str r2, [sp, #0x0]
- str r3, [sp, #0x4]
- bl FUN_02025128
- mov r4, #0x0
- str r0, [sp, #0x8]
- add r6, r4, #0x0
- b _02025112
-_020250DC:
- add r0, r5, #0x0
- bl FUN_02025184
- ldr r0, [sp, #0x0]
- lsl r1, r6, #0x1
- add r7, r0, r1
- ldrh r0, [r0, r1]
- sub r0, #0x94
- strb r0, [r5, #0x0]
- mov r0, #0x5
- strb r0, [r5, #0x1]
- ldrb r1, [r5, #0x0]
- ldrb r2, [r5, #0xc]
- ldr r0, [sp, #0x8]
- bl FUN_020251B0
- lsl r0, r0, #0x2
- strh r0, [r5, #0x2]
- ldrh r0, [r7, #0x2]
- add r6, r6, #0x2
- add r4, r4, #0x1
- strh r0, [r5, #0x8]
- mov r0, #0x64
- strb r0, [r5, #0xa]
- mov r0, #0x3
- strb r0, [r5, #0xb]
- add r5, #0xe
-_02025112:
- cmp r4, #0x80
- blt _020250DC
- ldr r0, [sp, #0x4]
- cmp r4, r0
- blt _020250DC
- ldr r0, [sp, #0x8]
- bl FUN_02016A18
- add sp, #0xc
- pop {r4-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02025128
-FUN_02025128: ; 0x02025128
- push {r3-r7, lr}
- sub sp, #0x8
- add r7, r0, #0x0
- bl FUN_02085258
- str r0, [sp, #0x0]
- add r0, r7, #0x0
- mov r1, #0xc0
- bl FUN_02016998
- str r0, [sp, #0x4]
- mov r6, #0x0
- add r5, r0, #0x0
-_02025142:
- ldr r0, [sp, #0x0]
- add r1, r6, #0x0
- add r2, r7, #0x0
- bl FUN_02085264
- add r4, r0, #0x0
- mov r1, #0x3
- bl FUN_02085290
- strb r0, [r5, #0x0]
- add r0, r4, #0x0
- mov r1, #0x4
- bl FUN_02085290
- strb r0, [r5, #0x1]
- add r0, r4, #0x0
- mov r1, #0x2
- bl FUN_02085290
- strb r0, [r5, #0x2]
- add r0, r4, #0x0
- bl FUN_02016A18
- add r6, r6, #0x1
- add r5, r5, #0x3
- cmp r6, #0x40
- blt _02025142
- ldr r0, [sp, #0x0]
- bl FUN_0208526C
- ldr r0, [sp, #0x4]
- add sp, #0x8
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02025184
-FUN_02025184: ; 0x02025184
- mov r1, #0x0
- strb r1, [r0, #0x0]
- strb r1, [r0, #0x1]
- strh r1, [r0, #0x2]
- strh r1, [r0, #0x4]
- strb r1, [r0, #0x6]
- strh r1, [r0, #0x8]
- strb r1, [r0, #0xa]
- strb r1, [r0, #0xb]
- strb r1, [r0, #0xc]
- strb r1, [r0, #0xd]
- bx lr
-
- thumb_func_start FUN_0202519C
-FUN_0202519C: ; 0x0202519C
- ldrb r2, [r0, #0xb]
- ldrb r0, [r0, #0x0]
- sub r3, r0, #0x1
- lsl r0, r3, #0x1
- add r0, r3, r0
- add r0, r1, r0
- ldrb r0, [r0, #0x2]
- mul r0, r2
- bx lr
- .balign 4
-
- thumb_func_start FUN_020251B0
-FUN_020251B0: ; 0x020251B0
- sub r3, r1, #0x1
- lsl r1, r3, #0x1
- add r1, r3, r1
- ldrb r1, [r0, r1]
- mov r0, #0x3c
- mul r0, r1
- cmp r2, #0x1
- bne _020251CE
- lsl r1, r0, #0x1
- add r1, r0, r1
- asr r0, r1, #0x1
- lsr r0, r0, #0x1e
- add r0, r1, r0
- asr r0, r0, #0x2
- bx lr
-_020251CE:
- cmp r2, #0x2
- bne _020251DA
- lsr r1, r0, #0x1f
- add r1, r0, r1
- asr r1, r1, #0x1
- add r0, r0, r1
-_020251DA:
- bx lr
-
- thumb_func_start FUN_020251DC
-FUN_020251DC: ; 0x020251DC
- sub r3, r1, #0x1
- lsl r1, r3, #0x1
- add r1, r3, r1
- add r0, r0, r1
- ldrb r0, [r0, #0x1]
- cmp r2, #0x2
- bne _020251F2
- lsr r1, r0, #0x1f
- add r1, r0, r1
- asr r0, r1, #0x1
- bx lr
-_020251F2:
- cmp r2, #0x1
- bne _020251FE
- lsr r1, r0, #0x1f
- add r1, r0, r1
- asr r1, r1, #0x1
- add r0, r0, r1
-_020251FE:
- bx lr
-
- thumb_func_start FUN_02025200
-FUN_02025200: ; 0x02025200
- ldrb r0, [r0, #0xc]
- cmp r0, #0x3
- bne _0202520A
- mov r0, #0x6
- bx lr
-_0202520A:
- mov r0, #0x4
- bx lr
- .balign 4
-
- thumb_func_start FUN_02025210
-FUN_02025210: ; 0x02025210
- ldrb r0, [r0, #0xc]
- cmp r0, #0x4
- bne _0202521A
- mov r0, #0xf
- bx lr
-_0202521A:
- mov r0, #0xa
- bx lr
- .balign 4
-
- thumb_func_start FUN_02025220
-FUN_02025220: ; 0x02025220
- push {r3-r5, lr}
- add r5, r0, #0x0
- bl FUN_02025200
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl FUN_02025210
- add r1, r4, #0x3
- mul r0, r1
- add r0, r0, #0x1
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02025238
-FUN_02025238: ; 0x02025238
- mov r2, #0xe
- mul r2, r1
- add r0, r0, r2
- ldrb r0, [r0, #0x1]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02025244
-FUN_02025244: ; 0x02025244
- mov r2, #0xe
- mul r2, r1
- ldrb r0, [r0, r2]
- bx lr
-
- thumb_func_start FUN_0202524C
-FUN_0202524C: ; 0x0202524C
- mov r2, #0xe
- mul r2, r1
- add r0, r0, r2
- ldrb r0, [r0, #0xa]
- cmp r0, #0x0
- bne _0202525C
- mov r0, #0x0
- bx lr
-_0202525C:
- cmp r0, #0x32
- bgt _02025264
- mov r0, #0x1
- bx lr
-_02025264:
- mov r0, #0x2
- bx lr
-
- thumb_func_start FUN_02025268
-FUN_02025268: ; 0x02025268
- mov r2, #0xe
- mul r2, r1
- add r0, r0, r2
- ldrb r0, [r0, #0xb]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02025274
-FUN_02025274: ; 0x02025274
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- mov r0, #0xe
- mul r4, r0
- strb r3, [r5, r4]
- mov r0, #0x1
- add r6, r5, r4
- strb r0, [r6, #0x1]
- add r0, r2, #0x0
- ldrb r2, [r6, #0xc]
- add r1, r3, #0x0
- bl FUN_020251B0
- add r1, r6, #0x0
- strh r0, [r1, #0x2]
- mov r0, #0x0
- strh r0, [r1, #0x4]
- strb r0, [r1, #0x6]
- strh r0, [r1, #0x8]
- mov r0, #0x64
- strb r0, [r1, #0xa]
- mov r0, #0x5
- strb r0, [r1, #0xb]
- mov r0, #0x1
- strb r0, [r1, #0xd]
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_020252AC
-FUN_020252AC: ; 0x020252AC
- mov r2, #0xe
- mul r2, r1
- mov r3, #0x64
- add r0, r0, r2
- strb r3, [r0, #0xa]
- bx lr
-
- thumb_func_start FUN_020252B8
-FUN_020252B8: ; 0x020252B8
- mov r2, #0xe
- mul r2, r1
- add r0, r0, r2
- ldrb r0, [r0, #0xd]
- bx lr
- .balign 4
-
- thumb_func_start FUN_020252C4
-FUN_020252C4: ; 0x020252C4
- mov r3, #0xe
- mul r3, r1
- add r0, r0, r3
- strb r2, [r0, #0xd]
- bx lr
- .balign 4
-
- thumb_func_start FUN_020252D0
-FUN_020252D0: ; 0x020252D0
- mov r2, #0xe
- mul r2, r1
- add r0, r0, r2
- ldrb r0, [r0, #0xc]
- bx lr
- .balign 4
-
- thumb_func_start FUN_020252DC
-FUN_020252DC: ; 0x020252DC
- mov r3, #0xe
- mul r3, r1
- add r0, r0, r3
- strb r2, [r0, #0xc]
- bx lr
- .balign 4
-
- thumb_func_start FUN_020252E8
-FUN_020252E8: ; 0x020252E8
- mov r2, #0xe
- mul r2, r1
- add r0, r0, r2
- ldrh r0, [r0, #0x8]
- bx lr
- .balign 4
-
- thumb_func_start FUN_020252F4
-FUN_020252F4: ; 0x020252F4
- push {r4, lr}
- mov r2, #0xe
- mul r2, r1
- add r0, r0, r2
- ldrh r4, [r0, #0x8]
- bl FUN_02025184
- add r0, r4, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02025308
-FUN_02025308: ; 0x02025308
- push {r4, lr}
- add r4, r0, #0x0
- ldrb r2, [r4, #0x1]
- cmp r2, #0x5
- bhi _02025370
- add r3, r2, r2
- add r3, pc
- ldrh r3, [r3, #0x6]
- lsl r3, r3, #0x10
- asr r3, r3, #0x10
- add pc, r3
-_0202531E: ; jump table (using 16-bit offset)
- .short _0202532A - _0202531E - 2; case 0
- .short _02025330 - _0202531E - 2; case 1
- .short _02025330 - _0202531E - 2; case 2
- .short _02025330 - _0202531E - 2; case 3
- .short _02025336 - _0202531E - 2; case 4
- .short _0202534E - _0202531E - 2; case 5
-_0202532A:
- bl ErrorHandling
- pop {r4, pc}
-_02025330:
- add r0, r2, #0x1
- strb r0, [r4, #0x1]
- pop {r4, pc}
-_02025336:
- bl FUN_0202519C
- strh r0, [r4, #0x8]
- ldrh r0, [r4, #0x8]
- cmp r0, #0x2
- bhs _02025346
- mov r0, #0x2
- strh r0, [r4, #0x8]
-_02025346:
- ldrb r0, [r4, #0x1]
- add r0, r0, #0x1
- strb r0, [r4, #0x1]
- pop {r4, pc}
-_0202534E:
- mov r1, #0x0
- strh r1, [r4, #0x8]
- mov r1, #0x2
- strb r1, [r4, #0x1]
- mov r1, #0x5
- strb r1, [r4, #0xb]
- ldrb r1, [r4, #0x6]
- add r1, r1, #0x1
- strb r1, [r4, #0x6]
- bl FUN_02025210
- ldrb r1, [r4, #0x6]
- cmp r1, r0
- bne _02025370
- add r0, r4, #0x0
- bl FUN_02025184
-_02025370:
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02025374
-FUN_02025374: ; 0x02025374
- push {r3-r7, lr}
- add r5, r0, #0x0
- ldrb r0, [r5, #0x1]
- add r7, r2, #0x0
- cmp r0, #0x5
- beq _020253DE
- add r0, r1, #0x0
- ldrb r1, [r5, #0x0]
- ldrb r2, [r5, #0xc]
- bl FUN_020251DC
- add r6, r0, #0x0
- ldrh r0, [r5, #0x4]
- mov r1, #0x3c
- str r0, [sp, #0x0]
- add r0, r7, r0
- bl _s32_div_f
- add r4, r0, #0x0
- ldr r0, [sp, #0x0]
- mov r1, #0x3c
- add r0, r7, r0
- bl _s32_div_f
- strh r1, [r5, #0x4]
- cmp r4, #0x0
- beq _020253DE
- ldrb r1, [r5, #0xa]
- add r0, r6, #0x0
- mul r0, r4
- cmp r1, r0
- blt _020253BA
- sub r0, r1, r0
- strb r0, [r5, #0xa]
- pop {r3-r7, pc}
-_020253BA:
- cmp r1, #0x0
- beq _020253CE
- sub r0, r6, #0x1
- add r0, r1, r0
- add r1, r6, #0x0
- bl _s32_div_f
- sub r4, r4, r0
- mov r0, #0x0
- strb r0, [r5, #0xa]
-_020253CE:
- ldrb r0, [r5, #0xb]
- cmp r0, r4
- ble _020253DA
- sub r0, r0, r4
- strb r0, [r5, #0xb]
- pop {r3-r7, pc}
-_020253DA:
- mov r0, #0x0
- strb r0, [r5, #0xb]
-_020253DE:
- pop {r3-r7, pc}
-
- thumb_func_start FUN_020253E0
-FUN_020253E0: ; 0x020253E0
- push {r3-r7, lr}
- add r5, r0, #0x0
- mov r0, #0x0
- add r6, r1, #0x0
- add r7, r2, #0x0
- str r0, [sp, #0x0]
-_020253EC:
- ldrb r1, [r5, #0x0]
- cmp r1, #0x0
- beq _02025474
- ldrb r0, [r5, #0x1]
- cmp r0, #0x0
- beq _02025474
- ldrb r0, [r5, #0xd]
- cmp r0, #0x0
- beq _02025474
- ldrb r2, [r5, #0xc]
- add r0, r6, #0x0
- bl FUN_020251B0
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl FUN_02025220
- mul r0, r4
- cmp r7, r0
- blt _0202541C
- add r0, r5, #0x0
- bl FUN_02025184
- b _02025474
-_0202541C:
- add r4, r7, #0x0
- b _0202546A
-_02025420:
- ldrh r2, [r5, #0x2]
- cmp r2, r4
- ble _02025438
- add r0, r5, #0x0
- add r1, r6, #0x0
- add r2, r4, #0x0
- bl FUN_02025374
- ldrh r0, [r5, #0x2]
- sub r0, r0, r4
- strh r0, [r5, #0x2]
- b _02025474
-_02025438:
- add r0, r5, #0x0
- add r1, r6, #0x0
- bl FUN_02025374
- add r0, r5, #0x0
- add r1, r6, #0x0
- bl FUN_02025308
- ldrh r0, [r5, #0x2]
- ldrb r1, [r5, #0x0]
- ldrb r2, [r5, #0xc]
- sub r4, r4, r0
- add r0, r6, #0x0
- bl FUN_020251B0
- strh r0, [r5, #0x2]
- ldrb r0, [r5, #0x1]
- cmp r0, #0x5
- bne _0202546A
- add r0, r5, #0x0
- bl FUN_02025200
- ldrh r1, [r5, #0x2]
- mul r0, r1
- strh r0, [r5, #0x2]
-_0202546A:
- ldrb r0, [r5, #0x1]
- cmp r0, #0x0
- beq _02025474
- cmp r4, #0x0
- bne _02025420
-_02025474:
- ldr r0, [sp, #0x0]
- add r5, #0xe
- add r0, r0, #0x1
- str r0, [sp, #0x0]
- cmp r0, #0x80
- blt _020253EC
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02025484
-FUN_02025484: ; 0x02025484
- ldr r3, _0202548C ; =MI_CpuFill8
- mov r1, #0x0
- mov r2, #0x24
- bx r3
- .balign 4
-_0202548C: .word MI_CpuFill8
-
- thumb_func_start FUN_02025490
-FUN_02025490: ; 0x02025490
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- bl FUN_02025484
- str r4, [r5, #0x0]
- add r0, r5, #0x4
- pop {r3-r5, pc}
-
- thumb_func_start FUN_020254A0
-FUN_020254A0: ; 0x020254A0
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, [r4, #0x0]
- cmp r0, r1
- beq _020254AE
- bl ErrorHandling
-_020254AE:
- add r0, r4, #0x4
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_020254B4
-FUN_020254B4: ; 0x020254B4
- ldr r0, [r0, #0x0]
- bx lr
-
- thumb_func_start FUN_020254B8
-FUN_020254B8: ; 0x020254B8
- mov r0, #0x22
- lsl r0, r0, #0x6
- bx lr
- .balign 4
-
- thumb_func_start FUN_020254C0
-FUN_020254C0: ; 0x020254C0
- ldr r3, _020254C8 ; =FUN_02022610
- mov r1, #0x9
- bx r3
- nop
-_020254C8: .word FUN_02022610
-
- thumb_func_start FUN_020254CC
-FUN_020254CC: ; 0x020254CC
- push {r3-r7, lr}
- mov r4, #0x0
- ldr r6, _020254EC ; =0x0000FFFF
- add r5, r0, #0x0
- add r7, r4, #0x0
-_020254D6:
- add r0, r5, #0x0
- add r1, r7, #0x0
- mov r2, #0x88
- bl Call_FillMemWithValue
- strh r6, [r5, #0x0]
- add r4, r4, #0x1
- add r5, #0x88
- cmp r4, #0x10
- blt _020254D6
- pop {r3-r7, pc}
- .balign 4
-_020254EC: .word 0x0000FFFF
-
- thumb_func_start FUN_020254F0
-FUN_020254F0: ; 0x020254F0
- mov r2, #0x88
- mul r2, r1
- add r0, r0, r2
- bx lr
-
- thumb_func_start FUN_020254F8
-FUN_020254F8: ; 0x020254F8
- add r0, r0, r1
- add r0, #0x68
- ldrb r0, [r0, #0x0]
- bx lr
-
- thumb_func_start FUN_02025500
-FUN_02025500: ; 0x02025500
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- bl StringNotEqual
- cmp r0, #0x0
- bne _0202551A
- ldr r1, [r5, #0x10]
- ldr r0, [r4, #0x10]
- cmp r1, r0
- bne _0202551A
- mov r0, #0x1
- pop {r3-r5, pc}
-_0202551A:
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02025520
-FUN_02025520: ; 0x02025520
- push {r4-r7, lr}
- sub sp, #0x2c
- str r1, [sp, #0x4]
- mov r1, #0x22
- str r0, [sp, #0x0]
- add r0, r3, #0x0
- lsl r1, r1, #0x6
- str r2, [sp, #0x8]
- bl FUN_02016998
- str r0, [sp, #0x10]
- bl FUN_020254CC
- mov r0, #0x0
- str r0, [sp, #0x14]
- ldr r0, [sp, #0x8]
- cmp r0, #0x0
- ble _02025578
- ldr r7, [sp, #0x4]
- add r6, sp, #0x18
-_02025548:
- mov r0, #0x0
- mvn r0, r0
- ldr r5, [sp, #0x0]
- str r0, [r6, #0x0]
- mov r4, #0x0
-_02025552:
- add r0, r5, #0x0
- add r1, r7, #0x0
- bl FUN_02025500
- cmp r0, #0x0
- beq _02025560
- str r4, [r6, #0x0]
-_02025560:
- add r4, r4, #0x1
- add r5, #0x88
- cmp r4, #0x10
- blt _02025552
- ldr r0, [sp, #0x14]
- add r6, r6, #0x4
- add r1, r0, #0x1
- ldr r0, [sp, #0x8]
- add r7, #0x88
- str r1, [sp, #0x14]
- cmp r1, r0
- blt _02025548
-_02025578:
- ldr r0, [sp, #0x8]
- mov r4, #0x0
- str r4, [sp, #0xc]
- cmp r0, #0x0
- ble _020255BE
- ldr r5, [sp, #0x10]
- add r6, sp, #0x18
-_02025586:
- ldr r3, [sp, #0x4]
- add r7, r5, #0x0
- mov r2, #0x11
-_0202558C:
- ldmia r3!, {r0-r1}
- stmia r7!, {r0-r1}
- sub r2, r2, #0x1
- bne _0202558C
- ldr r1, [r6, #0x0]
- cmp r1, #0x0
- blt _020255A6
- add r2, r1, #0x0
- mov r0, #0x88
- mul r2, r0
- ldr r1, _02025610 ; =0x0000FFFF
- ldr r0, [sp, #0x0]
- strh r1, [r0, r2]
-_020255A6:
- ldr r0, [sp, #0x4]
- add r5, #0x88
- add r0, #0x88
- str r0, [sp, #0x4]
- ldr r0, [sp, #0xc]
- add r4, r4, #0x1
- add r1, r0, #0x1
- ldr r0, [sp, #0x8]
- add r6, r6, #0x4
- str r1, [sp, #0xc]
- cmp r1, r0
- blt _02025586
-_020255BE:
- mov r0, #0x0
- mov r12, r0
- mov r0, #0x88
- add r1, r4, #0x0
- mul r1, r0
- ldr r0, [sp, #0x10]
- ldr r3, [sp, #0x0]
- add r5, r0, r1
-_020255CE:
- ldrh r1, [r3, #0x0]
- ldr r0, _02025610 ; =0x0000FFFF
- cmp r1, r0
- beq _020255EC
- add r6, r3, #0x0
- add r7, r5, #0x0
- mov r2, #0x11
-_020255DC:
- ldmia r6!, {r0-r1}
- stmia r7!, {r0-r1}
- sub r2, r2, #0x1
- bne _020255DC
- add r4, r4, #0x1
- add r5, #0x88
- cmp r4, #0x10
- bge _020255F8
-_020255EC:
- mov r0, r12
- add r0, r0, #0x1
- add r3, #0x88
- mov r12, r0
- cmp r0, #0x10
- blt _020255CE
-_020255F8:
- mov r2, #0x22
- ldr r0, [sp, #0x0]
- ldr r1, [sp, #0x10]
- lsl r2, r2, #0x6
- bl memcpy
- ldr r0, [sp, #0x10]
- bl FUN_02016A18
- add sp, #0x2c
- pop {r4-r7, pc}
- nop
-_02025610: .word 0x0000FFFF
-
- thumb_func_start FUN_02025614
-FUN_02025614: ; 0x02025614
- push {r3-r6}
- mov r3, #0x0
- add r4, r0, #0x0
-_0202561A:
- ldr r2, [r4, #0x10]
- cmp r1, r2
- bne _02025626
- mov r0, #0x1
- pop {r3-r6}
- bx lr
-_02025626:
- add r3, r3, #0x1
- add r4, #0x88
- cmp r3, #0x10
- blt _0202561A
- mov r6, #0x0
- add r3, r6, #0x0
-_02025632:
- add r4, r3, #0x0
- add r5, r0, #0x0
-_02025636:
- ldr r2, [r5, #0x18]
- cmp r1, r2
- bne _02025642
- add r0, r6, #0x2
- pop {r3-r6}
- bx lr
-_02025642:
- add r4, r4, #0x1
- add r5, r5, #0x4
- cmp r4, #0x10
- blt _02025636
- add r6, r6, #0x1
- add r0, #0x88
- cmp r6, #0x10
- blt _02025632
- mov r0, #0x0
- pop {r3-r6}
- bx lr
-
- thumb_func_start FUN_02025658
-FUN_02025658: ; 0x02025658
- push {r3-r5, lr}
- add r4, r0, #0x0
- mov r0, #0x0
- str r0, [r4, #0x0]
- strb r0, [r4, #0x4]
- ldr r0, _020256A0 ; =0x020ECAC4
- mov r1, #0x8
- ldrb r0, [r0, #0x0]
- strb r0, [r4, #0x5]
- ldr r0, _020256A4 ; =0x020ECAC0
- ldrb r0, [r0, #0x0]
- strb r0, [r4, #0x6]
- mov r0, #0xff
- strb r0, [r4, #0x7]
- add r0, r4, #0x0
- add r0, #0x8
- bl StringFillEOS
- ldr r0, _020256A8 ; =0x0000FFFF
- mov r1, #0x0
- add r2, r4, #0x0
-_02025682:
- add r1, r1, #0x1
- strh r0, [r2, #0x18]
- add r2, r2, #0x2
- cmp r1, #0x3
- blt _02025682
- mov r5, #0x0
- add r4, #0x20
-_02025690:
- add r0, r4, #0x0
- bl FUN_02013724
- add r5, r5, #0x1
- add r4, #0x8
- cmp r5, #0x3
- blt _02025690
- pop {r3-r5, pc}
- .balign 4
-_020256A0: .word 0x020ECAC4
-_020256A4: .word 0x020ECAC0
-_020256A8: .word 0x0000FFFF
-
- thumb_func_start FUN_020256AC
-FUN_020256AC: ; 0x020256AC
- ldrb r0, [r0, #0x7]
- cmp r0, #0xb
- bhi _020256B6
- mov r0, #0x1
- bx lr
-_020256B6:
- mov r0, #0x0
- bx lr
- .balign 4
-
- thumb_func_start FUN_020256BC
-FUN_020256BC: ; 0x020256BC
- push {r4, lr}
- mov r1, #0x38
- bl FUN_020169D8
- add r4, r0, #0x0
- bl FUN_02025658
- add r0, r4, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_020256D0
-FUN_020256D0: ; 0x020256D0
- ldr r3, _020256D8 ; =MI_CpuCopy8
- mov r2, #0x38
- bx r3
- nop
-_020256D8: .word MI_CpuCopy8
-
- thumb_func_start FUN_020256DC
-FUN_020256DC: ; 0x020256DC
- push {r4-r7, lr}
- sub sp, #0x14
- add r7, r3, #0x0
- add r5, r0, #0x0
- add r6, r1, #0x0
- add r4, r2, #0x0
- bl FUN_02025658
- add r0, r7, #0x0
- strb r6, [r5, #0x7]
- bl FUN_0206BB1C
- str r0, [sp, #0x0]
- add r0, r7, #0x0
- bl FUN_020238F4
- add r6, r0, #0x0
- bl FUN_0202398C
- add r1, r0, #0x0
- add r0, r5, #0x0
- add r0, #0x8
- bl StringCopy
- add r0, r6, #0x0
- bl FUN_020239CC
- strb r0, [r5, #0x4]
- add r0, r6, #0x0
- bl FUN_020239BC
- str r0, [r5, #0x0]
- ldr r0, [sp, #0x0]
- mov r6, #0x0
- bl FUN_0206B9AC
- cmp r4, r0
- bge _020257AE
- add r5, #0x18
-_0202572A:
- ldr r0, [sp, #0x0]
- add r1, r4, #0x0
- bl FUN_0206B9B0
- mov r1, #0x5
- mov r2, #0x0
- add r7, r0, #0x0
- bl FUN_020671BC
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x4]
- add r0, r7, #0x0
- mov r1, #0x4c
- mov r2, #0x0
- bl FUN_020671BC
- str r0, [sp, #0x8]
- add r0, r7, #0x0
- mov r1, #0x70
- mov r2, #0x0
- bl FUN_020671BC
- str r0, [sp, #0xc]
- add r0, r7, #0x0
- bl FUN_0206B6C8
- str r0, [sp, #0x10]
- ldr r0, [sp, #0x4]
- ldr r1, [sp, #0xc]
- ldr r2, [sp, #0x8]
- bl FUN_0206B7BC
- lsl r3, r6, #0x1
- ldrh r1, [r5, r3]
- add r7, r0, #0x0
- ldr r0, _020257B4 ; =0xFFFFF000
- add r2, r1, #0x0
- and r2, r0
- ldr r0, [sp, #0x10]
- lsl r0, r0, #0x10
- lsr r1, r0, #0x10
- ldr r0, _020257B8 ; =0x00000FFF
- and r0, r1
- orr r0, r2
- strh r0, [r5, r3]
- add r0, r6, #0x1
- lsl r0, r0, #0x18
- lsr r6, r0, #0x18
- ldrh r1, [r5, r3]
- ldr r0, _020257BC ; =0xFFFF0FFF
- and r0, r1
- lsl r1, r7, #0x1c
- lsr r1, r1, #0x10
- orr r0, r1
- strh r0, [r5, r3]
- cmp r6, #0x3
- bhs _020257AE
- add r0, r4, #0x1
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
- ldr r0, [sp, #0x0]
- bl FUN_0206B9AC
- cmp r4, r0
- blt _0202572A
-_020257AE:
- add sp, #0x14
- pop {r4-r7, pc}
- nop
-_020257B4: .word 0xFFFFF000
-_020257B8: .word 0x00000FFF
-_020257BC: .word 0xFFFF0FFF
-
- thumb_func_start FUN_020257C0
-FUN_020257C0: ; 0x020257C0
- ldr r0, [r0, #0x0]
- bx lr
-
- thumb_func_start FUN_020257C4
-FUN_020257C4: ; 0x020257C4
- add r0, #0x8
- bx lr
-
- thumb_func_start FUN_020257C8
-FUN_020257C8: ; 0x020257C8
- ldrb r0, [r0, #0x4]
- bx lr
-
- thumb_func_start FUN_020257CC
-FUN_020257CC: ; 0x020257CC
- ldrb r0, [r0, #0x7]
- bx lr
-
- thumb_func_start FUN_020257D0
-FUN_020257D0: ; 0x020257D0
- cmp r1, #0xc
- bhs _020257D6
- strb r1, [r0, #0x7]
-_020257D6:
- bx lr
-
- thumb_func_start FUN_020257D8
-FUN_020257D8: ; 0x020257D8
- ldrb r0, [r0, #0x5]
- bx lr
-
- thumb_func_start FUN_020257DC
-FUN_020257DC: ; 0x020257DC
- ldrb r0, [r0, #0x6]
- bx lr
-
- thumb_func_start FUN_020257E0
-FUN_020257E0: ; 0x020257E0
- cmp r1, #0x3
- bhs _02025810
- cmp r2, #0x0
- beq _020257F0
- cmp r2, #0x1
- beq _020257FC
- cmp r2, #0x2
- b _02025808
-_020257F0:
- lsl r1, r1, #0x1
- add r0, r0, r1
- ldrh r0, [r0, #0x18]
- lsl r0, r0, #0x14
- lsr r0, r0, #0x14
- bx lr
-_020257FC:
- lsl r1, r1, #0x1
- add r0, r0, r1
- ldrh r0, [r0, #0x18]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x1c
- bx lr
-_02025808:
- lsl r1, r1, #0x1
- add r0, r0, r1
- ldrh r0, [r0, #0x18]
- bx lr
-_02025810:
- mov r0, #0x0
- bx lr
-
- thumb_func_start FUN_02025814
-FUN_02025814: ; 0x02025814
- cmp r1, #0x3
- bhs _02025820
- add r0, #0x20
- lsl r1, r1, #0x3
- add r0, r0, r1
- bx lr
-_02025820:
- add r0, #0x20
- bx lr
-
- thumb_func_start FUN_02025824
-FUN_02025824: ; 0x02025824
- push {r3, lr}
- cmp r2, #0x3
- bhs _02025834
- add r0, #0x20
- lsl r2, r2, #0x3
- add r0, r0, r2
- bl FUN_02013960
-_02025834:
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02025838
-FUN_02025838: ; 0x02025838
- ldr r3, _02025840 ; =FUN_02022610
- mov r1, #0xf
- bx r3
- nop
-_02025840: .word FUN_02022610
-
- thumb_func_start FUN_02025844
-FUN_02025844: ; 0x02025844
- mov r0, #0x46
- lsl r0, r0, #0x4
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202584C
-FUN_0202584C: ; 0x0202584C
- push {r3-r5, lr}
- add r5, r0, #0x0
- mov r4, #0x0
-_02025852:
- add r0, r5, #0x0
- bl FUN_02025658
- add r4, r4, #0x1
- add r5, #0x38
- cmp r4, #0x14
- blt _02025852
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02025864
-FUN_02025864: ; 0x02025864
- push {r3, lr}
- cmp r1, #0x0
- bne _02025872
- mov r1, #0x14
- bl FUN_020258F0
- pop {r3, pc}
-_02025872:
- mov r0, #0x0
- mvn r0, r0
- pop {r3, pc}
-
- thumb_func_start FUN_02025878
-FUN_02025878: ; 0x02025878
- push {r3, lr}
- bl FUN_02025940
- cmp r0, #0x0
- beq _02025886
- bl FUN_02025658
-_02025886:
- pop {r3, pc}
-
- thumb_func_start FUN_02025888
-FUN_02025888: ; 0x02025888
- push {r4, lr}
- add r4, r3, #0x0
- bl FUN_02025940
- add r1, r0, #0x0
- beq _0202589A
- add r0, r4, #0x0
- bl FUN_020256D0
-_0202589A:
- pop {r4, pc}
-
- thumb_func_start FUN_0202589C
-FUN_0202589C: ; 0x0202589C
- push {r3, lr}
- cmp r1, #0x0
- bne _020258AA
- mov r1, #0x14
- bl FUN_02025918
- pop {r3, pc}
-_020258AA:
- mov r0, #0x0
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_020258B0
-FUN_020258B0: ; 0x020258B0
- push {r3-r5, lr}
- add r5, r3, #0x0
- bl FUN_02025940
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl FUN_020256BC
- add r5, r0, #0x0
- cmp r4, #0x0
- beq _020258CE
- add r0, r4, #0x0
- add r1, r5, #0x0
- bl FUN_020256D0
-_020258CE:
- add r0, r5, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_020258D4
-FUN_020258D4: ; 0x020258D4
- push {r4, lr}
- add r4, r3, #0x0
- bl FUN_02025940
- cmp r0, #0x0
- bne _020258E8
- add r0, r4, #0x0
- bl FUN_02025658
- pop {r4, pc}
-_020258E8:
- add r1, r4, #0x0
- bl FUN_020256D0
- pop {r4, pc}
-
- thumb_func_start FUN_020258F0
-FUN_020258F0: ; 0x020258F0
- push {r4-r6, lr}
- add r6, r1, #0x0
- add r5, r0, #0x0
- mov r4, #0x0
- cmp r6, #0x0
- ble _02025912
-_020258FC:
- add r0, r5, #0x0
- bl FUN_020256AC
- cmp r0, #0x0
- bne _0202590A
- add r0, r4, #0x0
- pop {r4-r6, pc}
-_0202590A:
- add r4, r4, #0x1
- add r5, #0x38
- cmp r4, r6
- blt _020258FC
-_02025912:
- mov r0, #0x0
- mvn r0, r0
- pop {r4-r6, pc}
-
- thumb_func_start FUN_02025918
-FUN_02025918: ; 0x02025918
- push {r3-r7, lr}
- mov r4, #0x0
- add r7, r1, #0x0
- add r5, r0, #0x0
- add r6, r4, #0x0
- cmp r7, #0x0
- ble _0202593A
-_02025926:
- add r0, r5, #0x0
- bl FUN_020256AC
- cmp r0, #0x0
- beq _02025932
- add r4, r4, #0x1
-_02025932:
- add r6, r6, #0x1
- add r5, #0x38
- cmp r6, r7
- blt _02025926
-_0202593A:
- add r0, r4, #0x0
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02025940
-FUN_02025940: ; 0x02025940
- mov r3, #0x0
- cmp r1, #0x0
- bne _02025950
- cmp r2, #0x14
- bge _02025950
- mov r1, #0x38
- mul r1, r2
- add r3, r0, r1
-_02025950:
- add r0, r3, #0x0
- bx lr
-
- thumb_func_start FUN_02025954
-FUN_02025954: ; 0x02025954
- ldr r0, _02025958 ; =0x000009B4
- bx lr
- .balign 4
-_02025958: .word 0x000009B4
-
- thumb_func_start FUN_0202595C
-FUN_0202595C: ; 0x0202595C
- mov r0, #0x94
- bx lr
-
- thumb_func_start FUN_02025960
-FUN_02025960: ; 0x02025960
- mov r0, #0x3c
- bx lr
-
- thumb_func_start FUN_02025964
-FUN_02025964: ; 0x02025964
- push {r4, lr}
- mov r1, #0x3c
- bl FUN_02016998
- mov r1, #0x0
- mov r2, #0x3c
- add r4, r0, #0x0
- bl MI_CpuFill8
- add r0, r4, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0202597C
-FUN_0202597C: ; 0x0202597C
- push {r4-r7, lr}
- sub sp, #0x1c
- add r4, r0, #0x0
- add r0, sp, #0xc
- add r1, sp, #0x0
- bl FUN_0201265C
- ldr r0, _020259D8 ; =0x021C48B8
- ldr r6, [sp, #0xc]
- ldr r1, [sp, #0x8]
- ldr r0, [r0, #0x2c]
- lsl r6, r6, #0x5
- add r5, r1, r0
- ldr r0, [sp, #0x10]
- ldr r1, [sp, #0x14]
- add r0, r0, r6
- lsl r0, r0, #0x5
- add r0, r1, r0
- mov r7, #0x0
- ldr r2, [sp, #0x0]
- lsl r0, r0, #0x5
- add r0, r2, r0
- ldr r3, [sp, #0x4]
- lsl r0, r0, #0x5
- add r0, r3, r0
- lsl r0, r0, #0x5
- add r5, r5, r0
- ldr r2, _020259DC ; =0x000009B4
- add r0, r4, #0x0
- add r1, r7, #0x0
- bl MI_CpuFill8
- add r0, r4, #0x0
- add r0, #0x94
- mov r1, #0x9b
- str r5, [r0, #0x0]
- lsl r1, r1, #0x4
- ldrb r2, [r4, r1]
- mov r0, #0xf
- bic r2, r0
- mov r0, #0x1
- orr r0, r2
- strb r0, [r4, r1]
- add sp, #0x1c
- pop {r4-r7, pc}
- nop
-_020259D8: .word 0x021C48B8
-_020259DC: .word 0x000009B4
-
- thumb_func_start FUN_020259E0
-FUN_020259E0: ; 0x020259E0
- mov r1, #0x9
- mov r3, #0x0
- lsl r1, r1, #0x8
-_020259E6:
- add r2, r0, r3
- ldrb r2, [r2, r1]
- cmp r2, #0x0
- bne _020259F2
- add r0, r3, #0x0
- bx lr
-_020259F2:
- add r3, r3, #0x1
- cmp r3, #0x28
- blt _020259E6
- mov r0, #0x0
- mvn r0, r0
- bx lr
- .balign 4
-
- thumb_func_start FUN_02025A00
-FUN_02025A00: ; 0x02025A00
- mov r1, #0x95
- mov r3, #0x0
- lsl r1, r1, #0x4
-_02025A06:
- add r2, r0, r3
- ldrb r2, [r2, r1]
- cmp r2, #0x0
- bne _02025A12
- add r0, r3, #0x0
- bx lr
-_02025A12:
- add r3, r3, #0x1
- cmp r3, #0x28
- blt _02025A06
- mov r0, #0x0
- mvn r0, r0
- bx lr
- .balign 4
-
- thumb_func_start FUN_02025A20
-FUN_02025A20: ; 0x02025A20
- ldr r1, _02025A3C ; =0x00000928
- mov r3, #0x0
-_02025A24:
- add r2, r0, r3
- ldrb r2, [r2, r1]
- cmp r2, #0x0
- bne _02025A30
- add r0, r3, #0x0
- bx lr
-_02025A30:
- add r3, r3, #0x1
- cmp r3, #0x28
- blt _02025A24
- mov r0, #0x0
- mvn r0, r0
- bx lr
- .balign 4
-_02025A3C: .word 0x00000928
-
- thumb_func_start FUN_02025A40
-FUN_02025A40: ; 0x02025A40
- ldr r1, _02025A5C ; =0x000008D8
- mov r3, #0x0
-_02025A44:
- add r2, r0, r3
- ldrb r2, [r2, r1]
- cmp r2, #0x0
- bne _02025A50
- add r0, r3, #0x0
- bx lr
-_02025A50:
- add r3, r3, #0x1
- cmp r3, #0x28
- blt _02025A44
- mov r0, #0x0
- mvn r0, r0
- bx lr
- .balign 4
-_02025A5C: .word 0x000008D8
-
- thumb_func_start FUN_02025A60
-FUN_02025A60: ; 0x02025A60
- push {r4-r7, lr}
- sub sp, #0x14
- str r1, [sp, #0x0]
- bl FUN_02026CC4
- ldr r1, _02025B50 ; =0x020EE958
- add r6, r0, #0x0
- ldrb r2, [r1, #0x0]
- add r0, sp, #0x8
- strb r2, [r0, #0x6]
- ldrb r2, [r1, #0x1]
- strb r2, [r0, #0x7]
- ldrb r2, [r1, #0x2]
- strb r2, [r0, #0x8]
- ldrb r2, [r1, #0x3]
- strb r2, [r0, #0x9]
- ldrb r2, [r1, #0x4]
- strb r2, [r0, #0xa]
- ldrb r2, [r1, #0x5]
- strb r2, [r0, #0xb]
- ldrb r2, [r1, #0x6]
- strb r2, [r0, #0x0]
- ldrb r2, [r1, #0x7]
- strb r2, [r0, #0x1]
- ldrb r2, [r1, #0x8]
- strb r2, [r0, #0x2]
- ldrb r2, [r1, #0x9]
- strb r2, [r0, #0x3]
- ldrb r2, [r1, #0xa]
- strb r2, [r0, #0x4]
- ldrb r1, [r1, #0xb]
- strb r1, [r0, #0x5]
- ldr r0, [sp, #0x0]
- cmp r0, #0x0
- ble _02025B4C
- str r0, [sp, #0x4]
- cmp r0, #0x63
- ble _02025AB0
- mov r0, #0x63
- str r0, [sp, #0x4]
-_02025AB0:
- add r0, r6, #0x0
- add r0, #0x94
- ldr r3, [r0, #0x0]
- mov r0, #0x0
- mov r12, r0
- ldr r0, [sp, #0x4]
- cmp r0, #0x0
- ble _02025B28
- add r7, sp, #0xc
- add r7, #0x2
-_02025AC4:
- mov r2, #0x0
-_02025AC6:
- ldr r0, _02025B54 ; =0x0000055C
- add r4, r6, r2
- ldrb r5, [r4, r0]
- cmp r5, #0x0
- beq _02025B16
- ldr r0, _02025B58 ; =0x5D588B65
- ldrb r1, [r7, r5]
- mul r0, r3
- ldr r3, _02025B5C ; =0x00269EC3
- add r3, r0, r3
- cmp r1, #0x0
- bne _02025AE2
- lsr r0, r3, #0x10
- b _02025AE8
-_02025AE2:
- lsr r0, r3, #0x10
- mul r1, r0
- lsr r0, r1, #0x10
-_02025AE8:
- lsl r0, r0, #0x10
- lsr r1, r0, #0x10
- add r0, sp, #0x8
- ldrb r0, [r0, r5]
- add r0, r0, r1
- mov r1, #0x17
- lsl r1, r1, #0x6
- ldrb r1, [r4, r1]
- add r1, r0, r1
- cmp r1, #0x63
- bge _02025B0E
- mov r1, #0x17
- lsl r1, r1, #0x6
- ldrb r1, [r4, r1]
- add r1, r1, r0
- mov r0, #0x17
- lsl r0, r0, #0x6
- strb r1, [r4, r0]
- b _02025B16
-_02025B0E:
- mov r0, #0x17
- mov r1, #0x63
- lsl r0, r0, #0x6
- strb r1, [r4, r0]
-_02025B16:
- add r2, r2, #0x1
- cmp r2, #0x64
- blt _02025AC6
- mov r0, r12
- add r1, r0, #0x1
- ldr r0, [sp, #0x4]
- mov r12, r1
- cmp r1, r0
- blt _02025AC4
-_02025B28:
- add r0, r6, #0x0
- add r0, #0x94
- ldr r1, [r0, #0x0]
- ldr r0, [sp, #0x0]
- add r0, r1, r0
- bl FUN_0201BA10
- add r1, r6, #0x0
- add r1, #0x94
- str r0, [r1, #0x0]
- mov r1, #0x9b
- lsl r1, r1, #0x4
- ldrb r2, [r6, r1]
- mov r0, #0xf
- bic r2, r0
- mov r0, #0x1
- orr r0, r2
- strb r0, [r6, r1]
-_02025B4C:
- add sp, #0x14
- pop {r4-r7, pc}
- .balign 4
-_02025B50: .word 0x020EE958
-_02025B54: .word 0x0000055C
-_02025B58: .word 0x5D588B65
-_02025B5C: .word 0x00269EC3
-
- thumb_func_start FUN_02025B60
-FUN_02025B60: ; 0x02025B60
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r2, #0x0
- bl FUN_02026CC4
- cmp r4, #0x0
- blt _02025B90
- cmp r5, #0x0
- bne _02025B90
- add r1, r0, #0x0
- add r1, #0x98
- ldr r1, [r1, #0x0]
- cmp r1, r4
- bge _02025B84
- mov r1, #0x0
- add r0, #0x98
- str r1, [r0, #0x0]
- pop {r3-r5, pc}
-_02025B84:
- add r1, r0, #0x0
- add r1, #0x98
- ldr r1, [r1, #0x0]
- add r0, #0x98
- sub r1, r1, r4
- str r1, [r0, #0x0]
-_02025B90:
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02025B94
-FUN_02025B94: ; 0x02025B94
- push {r3, lr}
- bl FUN_02026CC4
- add r1, r0, #0x0
- add r1, #0x98
- ldr r1, [r1, #0x0]
- cmp r1, #0x0
- bne _02025BB6
- add r1, r0, #0x0
- add r1, #0x9c
- ldrb r1, [r1, #0x0]
- cmp r1, #0x2
- bne _02025BB6
- add r1, r0, #0x0
- mov r2, #0x0
- add r1, #0x9c
- strb r2, [r1, #0x0]
-_02025BB6:
- add r1, r0, #0x0
- add r1, #0x98
- ldr r1, [r1, #0x0]
- cmp r1, #0x0
- bne _02025BD4
- add r1, r0, #0x0
- add r1, #0x9c
- ldrb r1, [r1, #0x0]
- cmp r1, #0x1
- bne _02025BD4
- mov r2, #0x5a
- add r1, r0, #0x0
- lsl r2, r2, #0x4
- add r1, #0x98
- str r2, [r1, #0x0]
-_02025BD4:
- add r1, r0, #0x0
- add r1, #0x9c
- ldrb r1, [r1, #0x0]
- cmp r1, #0x1
- bne _02025BE4
- mov r1, #0x2
- add r0, #0x9c
- strb r1, [r0, #0x0]
-_02025BE4:
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02025BE8
-FUN_02025BE8: ; 0x02025BE8
- push {r3, lr}
- bl FUN_02026CC4
- add r1, r0, #0x0
- add r1, #0x9c
- ldrb r1, [r1, #0x0]
- cmp r1, #0x0
- bne _02025BFE
- mov r1, #0x1
- add r0, #0x9c
- strb r1, [r0, #0x0]
-_02025BFE:
- pop {r3, pc}
-
- thumb_func_start FUN_02025C00
-FUN_02025C00: ; 0x02025C00
- push {r3, lr}
- bl FUN_02026CC4
- add r1, r0, #0x0
- add r1, #0x9c
- ldrb r1, [r1, #0x0]
- cmp r1, #0x1
- bne _02025C16
- mov r1, #0x0
- add r0, #0x9c
- strb r1, [r0, #0x0]
-_02025C16:
- pop {r3, pc}
-
- thumb_func_start FUN_02025C18
-FUN_02025C18: ; 0x02025C18
- push {r3, lr}
- bl FUN_02026CC4
- add r0, #0x9c
- ldrb r0, [r0, #0x0]
- cmp r0, #0x2
- beq _02025C2A
- mov r0, #0x1
- pop {r3, pc}
-_02025C2A:
- mov r0, #0x0
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02025C30
-FUN_02025C30: ; 0x02025C30
- mov r1, #0x1
- add r0, #0x9d
- strb r1, [r0, #0x0]
- bx lr
-
- thumb_func_start FUN_02025C38
-FUN_02025C38: ; 0x02025C38
- add r0, #0x9d
- ldrb r0, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02025C40
-FUN_02025C40: ; 0x02025C40
- push {r3-r7, lr}
- add r7, r0, #0x0
- ldr r0, _02025CD0 ; =0x0000010E
- add r6, r1, #0x0
- ldrb r0, [r7, r0]
- mov r4, #0x0
- add r5, r7, #0x0
- str r0, [sp, #0x0]
-_02025C50:
- add r0, r6, #0x0
- bl FUN_020239BC
- add r1, r5, #0x0
- add r1, #0xa0
- ldr r1, [r1, #0x0]
- cmp r1, r0
- beq _02025CCC
- add r4, r4, #0x1
- add r5, r5, #0x4
- cmp r4, #0x5
- blt _02025C50
- ldr r0, [sp, #0x0]
- cmp r0, #0x5
- blt _02025C72
- bl ErrorHandling
-_02025C72:
- add r0, r6, #0x0
- bl FUN_0202398C
- ldr r1, [sp, #0x0]
- add r2, r7, #0x0
- add r2, #0xb4
- lsl r1, r1, #0x4
- add r1, r2, r1
- mov r2, #0x10
- bl MI_CpuCopy8
- add r0, r6, #0x0
- bl FUN_020239BC
- ldr r1, [sp, #0x0]
- lsl r1, r1, #0x2
- add r1, r7, r1
- add r1, #0xa0
- str r0, [r1, #0x0]
- add r0, r6, #0x0
- bl FUN_02023A70
- ldr r1, [sp, #0x0]
- add r2, r7, r1
- mov r1, #0x41
- lsl r1, r1, #0x2
- strb r0, [r2, r1]
- add r0, r6, #0x0
- bl FUN_02023A68
- ldr r1, [sp, #0x0]
- add r2, r7, r1
- ldr r1, _02025CD4 ; =0x00000109
- strb r0, [r2, r1]
- add r0, r1, #0x5
- ldrb r0, [r7, r0]
- add r2, r0, #0x1
- add r0, r1, #0x5
- strb r2, [r7, r0]
- ldrb r0, [r7, r0]
- cmp r0, #0x5
- blo _02025CCC
- mov r2, #0x0
- add r0, r1, #0x5
- strb r2, [r7, r0]
-_02025CCC:
- pop {r3-r7, pc}
- nop
-_02025CD0: .word 0x0000010E
-_02025CD4: .word 0x00000109
-
- thumb_func_start FUN_02025CD8
-FUN_02025CD8: ; 0x02025CD8
- push {r3-r7, lr}
- add r5, r0, #0x0
- ldr r0, _02025D38 ; =0x0000010E
- ldrb r0, [r5, r0]
- sub r0, r0, r2
- sub r4, r0, #0x1
- bpl _02025CE8
- add r4, r4, #0x5
-_02025CE8:
- add r7, r5, #0x0
- lsl r0, r4, #0x4
- add r7, #0xb4
- str r0, [sp, #0x0]
- ldrh r0, [r7, r0]
- cmp r0, #0x0
- beq _02025D32
- add r0, r1, #0x0
- bl FUN_02023928
- ldr r1, [sp, #0x0]
- add r6, r0, #0x0
- add r1, r7, r1
- bl FUN_0202395C
- ldr r1, _02025D3C ; =0x00000109
- add r2, r5, r4
- ldrb r1, [r2, r1]
- add r0, r6, #0x0
- bl FUN_02023A6C
- mov r1, #0x41
- add r2, r5, r4
- lsl r1, r1, #0x2
- ldrb r1, [r2, r1]
- add r0, r6, #0x0
- bl FUN_02023A74
- lsl r1, r4, #0x2
- add r1, r5, r1
- add r1, #0xa0
- ldr r1, [r1, #0x0]
- add r0, r6, #0x0
- bl FUN_020239B8
- add r0, r6, #0x0
- pop {r3-r7, pc}
-_02025D32:
- mov r0, #0x0
- pop {r3-r7, pc}
- nop
-_02025D38: .word 0x0000010E
-_02025D3C: .word 0x00000109
-
- thumb_func_start FUN_02025D40
-FUN_02025D40: ; 0x02025D40
- add r0, #0x94
- ldr r0, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02025D48
-FUN_02025D48: ; 0x02025D48
- push {r4, lr}
- add r4, r0, #0x0
- cmp r4, #0xb
- bge _02025D54
- bl ErrorHandling
-_02025D54:
- cmp r4, #0x3c
- blt _02025D5C
- bl ErrorHandling
-_02025D5C:
- sub r4, #0xb
- ldr r0, _02025D68 ; =0x02105C74
- lsl r1, r4, #0x1
- ldrh r0, [r0, r1]
- pop {r4, pc}
- nop
-_02025D68: .word 0x02105C74
-
- thumb_func_start FUN_02025D6C
-FUN_02025D6C: ; 0x02025D6C
- push {r4-r5}
- mov r2, #0x81
- mov r5, #0x0
- lsl r2, r2, #0x4
-_02025D74:
- add r4, r0, r5
- ldrb r3, [r4, r2]
- cmp r3, #0x0
- bne _02025D88
- mov r0, #0x81
- lsl r0, r0, #0x4
- strb r1, [r4, r0]
- mov r0, #0x1
- pop {r4-r5}
- bx lr
-_02025D88:
- add r5, r5, #0x1
- cmp r5, #0xc8
- blt _02025D74
- mov r0, #0x0
- pop {r4-r5}
- bx lr
-
- thumb_func_start FUN_02025D94
-FUN_02025D94: ; 0x02025D94
- mov r1, #0x81
- mov r3, #0x0
- lsl r1, r1, #0x4
-_02025D9A:
- add r2, r0, r3
- ldrb r2, [r2, r1]
- cmp r2, #0x0
- bne _02025DA6
- mov r0, #0x1
- bx lr
-_02025DA6:
- add r3, r3, #0x1
- cmp r3, #0xc8
- blt _02025D9A
- mov r0, #0x0
- bx lr
-
- thumb_func_start FUN_02025DB0
-FUN_02025DB0: ; 0x02025DB0
- mov r1, #0x81
- mov r3, #0x0
- lsl r1, r1, #0x4
-_02025DB6:
- add r2, r0, r3
- ldrb r2, [r2, r1]
- cmp r2, #0x0
- beq _02025DC4
- add r3, r3, #0x1
- cmp r3, #0xc8
- blt _02025DB6
-_02025DC4:
- add r0, r3, #0x0
- bx lr
-
- thumb_func_start FUN_02025DC8
-FUN_02025DC8: ; 0x02025DC8
- add r1, r0, r1
- mov r0, #0x81
- lsl r0, r0, #0x4
- ldrb r0, [r1, r0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02025DD4
-FUN_02025DD4: ; 0x02025DD4
- push {r3-r7, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- bl FUN_02025F0C
- cmp r0, #0x0
- beq _02025DE6
- bl ErrorHandling
-_02025DE6:
- mov r0, #0x81
- add r1, r5, r4
- lsl r0, r0, #0x4
- add r6, r4, #0x0
- ldrb r7, [r1, r0]
- cmp r4, #0xc7
- bge _02025E06
- mov r1, #0x81
- add r0, r0, #0x1
- lsl r1, r1, #0x4
-_02025DFA:
- add r3, r5, r6
- ldrb r2, [r3, r0]
- add r6, r6, #0x1
- cmp r6, #0xc7
- strb r2, [r3, r1]
- blt _02025DFA
-_02025E06:
- ldr r0, _02025E1C ; =0x000008D7
- mov r2, #0x0
- strb r2, [r5, r0]
- add r0, r5, #0x0
- add r1, r4, #0x0
- sub r2, r2, #0x1
- bl FUN_02025F58
- add r0, r7, #0x0
- pop {r3-r7, pc}
- nop
-_02025E1C: .word 0x000008D7
-
- thumb_func_start FUN_02025E20
-FUN_02025E20: ; 0x02025E20
- push {r4-r7, lr}
- sub sp, #0xd4
- mov r4, #0x0
- add r5, r0, #0x0
- sub r0, r4, #0x1
- str r0, [sp, #0x4]
- mov r0, #0x81
- lsl r0, r0, #0x4
- str r1, [sp, #0x8]
- str r2, [sp, #0x0]
- add r0, r5, r0
- add r1, sp, #0xc
- mov r2, #0xc8
- bl MI_CpuCopy8
- ldr r2, [sp, #0x8]
- add r1, sp, #0xc
- add r0, r4, #0x0
- add r7, r1, r2
-_02025E46:
- ldr r2, [sp, #0x8]
- cmp r0, r2
- beq _02025E58
- ldrb r6, [r1, #0x0]
- mov r2, #0x81
- add r3, r5, r4
- lsl r2, r2, #0x4
- strb r6, [r3, r2]
- add r4, r4, #0x1
-_02025E58:
- ldr r2, [sp, #0x0]
- cmp r0, r2
- bne _02025E6A
- ldrb r6, [r7, #0x0]
- mov r2, #0x81
- add r3, r5, r4
- lsl r2, r2, #0x4
- strb r6, [r3, r2]
- add r4, r4, #0x1
-_02025E6A:
- add r0, r0, #0x1
- add r1, r1, #0x1
- cmp r0, #0xc8
- blt _02025E46
- ldr r0, [sp, #0x8]
- mov r3, #0x0
- add r2, r0, #0x1
- mov r0, #0x9a
- lsl r0, r0, #0x4
-_02025E7C:
- add r1, r5, r3
- ldrb r1, [r1, r0]
- cmp r2, r1
- bne _02025E88
- str r3, [sp, #0x4]
- b _02025E8E
-_02025E88:
- add r3, r3, #0x1
- cmp r3, #0xf
- blt _02025E7C
-_02025E8E:
- ldr r1, [sp, #0x0]
- add r0, r5, #0x0
- mov r2, #0x1
- bl FUN_02025F58
- mov r2, #0x0
- ldr r1, [sp, #0x8]
- add r0, r5, #0x0
- mvn r2, r2
- bl FUN_02025F58
- mov r1, #0x0
- ldr r0, [sp, #0x4]
- mvn r1, r1
- cmp r0, r1
- beq _02025ED6
- ldr r1, [sp, #0x0]
- ldr r0, [sp, #0x8]
- cmp r0, r1
- bge _02025EC8
- add r0, r1, #0x0
- add r2, r0, #0x1
- ldr r0, [sp, #0x4]
- add sp, #0xd4
- add r1, r5, r0
- mov r0, #0x9a
- lsl r0, r0, #0x4
- strb r2, [r1, r0]
- pop {r4-r7, pc}
-_02025EC8:
- add r0, r1, #0x0
- add r2, r0, #0x2
- ldr r0, [sp, #0x4]
- add r1, r5, r0
- mov r0, #0x9a
- lsl r0, r0, #0x4
- strb r2, [r1, r0]
-_02025ED6:
- add sp, #0xd4
- pop {r4-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02025EDC
-FUN_02025EDC: ; 0x02025EDC
- push {r4-r6, lr}
- add r6, r2, #0x0
- add r5, r0, #0x0
- add r4, r1, #0x0
- cmp r6, #0x1
- bge _02025EEC
- bl ErrorHandling
-_02025EEC:
- cmp r6, #0xf
- ble _02025EF4
- bl ErrorHandling
-_02025EF4:
- sub r0, r6, #0x1
- add r1, r5, r0
- mov r0, #0x9a
- add r2, r4, #0x1
- lsl r0, r0, #0x4
- strb r2, [r1, r0]
- mov r0, #0x81
- add r1, r5, r4
- lsl r0, r0, #0x4
- ldrb r0, [r1, r0]
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02025F0C
-FUN_02025F0C: ; 0x02025F0C
- push {r3-r4}
- add r3, r1, #0x1
- mov r1, #0x9a
- mov r4, #0x0
- lsl r1, r1, #0x4
-_02025F16:
- add r2, r0, r4
- ldrb r2, [r2, r1]
- cmp r3, r2
- bne _02025F24
- mov r0, #0x1
- pop {r3-r4}
- bx lr
-_02025F24:
- add r4, r4, #0x1
- cmp r4, #0xf
- blt _02025F16
- mov r0, #0x0
- pop {r3-r4}
- bx lr
-
- thumb_func_start FUN_02025F30
-FUN_02025F30: ; 0x02025F30
- sub r1, r1, #0x1
- cmp r1, #0xf
- bge _02025F40
- add r1, r0, r1
- mov r0, #0x9a
- mov r2, #0x0
- lsl r0, r0, #0x4
- strb r2, [r1, r0]
-_02025F40:
- bx lr
- .balign 4
-
- thumb_func_start FUN_02025F44
-FUN_02025F44: ; 0x02025F44
- mov r1, #0x9a
- lsl r1, r1, #0x4
- add r0, r0, r1
- ldr r3, _02025F54 ; =MI_CpuFill8
- mov r1, #0x0
- mov r2, #0xf
- bx r3
- nop
-_02025F54: .word MI_CpuFill8
-
- thumb_func_start FUN_02025F58
-FUN_02025F58: ; 0x02025F58
- push {r4-r7}
- mov r6, #0x9a
- lsl r6, r6, #0x4
- mov r4, #0x0
- add r1, r1, #0x1
- add r7, r6, #0x0
-_02025F64:
- add r3, r0, r4
- ldrb r5, [r3, r7]
- cmp r5, r1
- ble _02025F76
- mov r5, #0x9a
- lsl r5, r5, #0x4
- ldrb r5, [r3, r5]
- add r5, r5, r2
- strb r5, [r3, r6]
-_02025F76:
- add r4, r4, #0x1
- cmp r4, #0xf
- blt _02025F64
- pop {r4-r7}
- bx lr
-
- thumb_func_start FUN_02025F80
-FUN_02025F80: ; 0x02025F80
- mov r1, #0x9
- mov r3, #0x0
- lsl r1, r1, #0x8
-_02025F86:
- add r2, r0, r3
- ldrb r2, [r2, r1]
- cmp r2, #0x0
- beq _02025F94
- add r3, r3, #0x1
- cmp r3, #0x28
- blt _02025F86
-_02025F94:
- add r0, r3, #0x0
- bx lr
-
- thumb_func_start FUN_02025F98
-FUN_02025F98: ; 0x02025F98
- add r1, r0, r1
- mov r0, #0x9
- lsl r0, r0, #0x8
- ldrb r0, [r1, r0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02025FA4
-FUN_02025FA4: ; 0x02025FA4
- push {r3-r6}
- mov r2, #0x9
- add r3, r0, r1
- lsl r2, r2, #0x8
- ldrb r2, [r3, r2]
- cmp r1, #0x27
- bge _02025FC2
- ldr r3, _02025FD0 ; =0x00000901
- sub r4, r3, #0x1
-_02025FB6:
- add r6, r0, r1
- ldrb r5, [r6, r3]
- add r1, r1, #0x1
- cmp r1, #0x27
- strb r5, [r6, r4]
- blt _02025FB6
-_02025FC2:
- ldr r1, _02025FD4 ; =0x00000927
- mov r3, #0x0
- strb r3, [r0, r1]
- add r0, r2, #0x0
- pop {r3-r6}
- bx lr
- nop
-_02025FD0: .word 0x00000901
-_02025FD4: .word 0x00000927
-
- thumb_func_start FUN_02025FD8
-FUN_02025FD8: ; 0x02025FD8
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- bl FUN_020259E0
- mov r1, #0x0
- mvn r1, r1
- cmp r0, r1
- beq _02025FF6
- add r1, r5, r0
- mov r0, #0x9
- lsl r0, r0, #0x8
- strb r4, [r1, r0]
- mov r0, #0x1
- pop {r3-r5, pc}
-_02025FF6:
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02025FFC
-FUN_02025FFC: ; 0x02025FFC
- push {r3-r7, lr}
- sub sp, #0x30
- add r5, r0, #0x0
- mov r0, #0x9
- lsl r0, r0, #0x8
- str r1, [sp, #0x4]
- str r2, [sp, #0x0]
- add r0, r5, r0
- add r1, sp, #0x8
- mov r2, #0x28
- mov r4, #0x0
- bl MI_CpuCopy8
- ldr r2, [sp, #0x4]
- add r1, sp, #0x8
- add r0, r4, #0x0
- add r7, r1, r2
-_0202601E:
- ldr r2, [sp, #0x4]
- cmp r0, r2
- beq _02026030
- ldrb r6, [r1, #0x0]
- mov r2, #0x9
- add r3, r5, r4
- lsl r2, r2, #0x8
- strb r6, [r3, r2]
- add r4, r4, #0x1
-_02026030:
- ldr r2, [sp, #0x0]
- cmp r0, r2
- bne _02026042
- ldrb r6, [r7, #0x0]
- mov r2, #0x9
- add r3, r5, r4
- lsl r2, r2, #0x8
- strb r6, [r3, r2]
- add r4, r4, #0x1
-_02026042:
- add r0, r0, #0x1
- add r1, r1, #0x1
- cmp r0, #0x28
- blt _0202601E
- add sp, #0x30
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02026050
-FUN_02026050: ; 0x02026050
- mov r1, #0x95
- mov r3, #0x0
- lsl r1, r1, #0x4
-_02026056:
- add r2, r0, r3
- ldrb r2, [r2, r1]
- cmp r2, #0x0
- beq _02026064
- add r3, r3, #0x1
- cmp r3, #0x28
- blt _02026056
-_02026064:
- add r0, r3, #0x0
- bx lr
-
- thumb_func_start FUN_02026068
-FUN_02026068: ; 0x02026068
- add r1, r0, r1
- mov r0, #0x95
- lsl r0, r0, #0x4
- ldrb r0, [r1, r0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02026074
-FUN_02026074: ; 0x02026074
- add r1, r0, r1
- ldr r0, _0202607C ; =0x00000978
- ldrb r0, [r1, r0]
- bx lr
- .balign 4
-_0202607C: .word 0x00000978
-
- thumb_func_start FUN_02026080
-FUN_02026080: ; 0x02026080
- push {r4-r7}
- add r2, r0, #0x0
- mov r0, #0x95
- add r3, r2, r1
- lsl r0, r0, #0x4
- ldrb r0, [r3, r0]
- cmp r1, #0x27
- mov r12, r0
- bge _020260AE
- ldr r7, _020260BC ; =0x00000951
- add r4, r7, #0x0
- add r5, r7, #0x0
- sub r3, r7, #0x1
- add r4, #0x28
- add r5, #0x27
-_0202609E:
- add r0, r2, r1
- ldrb r6, [r0, r7]
- add r1, r1, #0x1
- cmp r1, #0x27
- strb r6, [r0, r3]
- ldrb r6, [r0, r4]
- strb r6, [r0, r5]
- blt _0202609E
-_020260AE:
- ldr r0, _020260C0 ; =0x00000977
- mov r1, #0x0
- strb r1, [r2, r0]
- mov r0, r12
- pop {r4-r7}
- bx lr
- nop
-_020260BC: .word 0x00000951
-_020260C0: .word 0x00000977
-
- thumb_func_start FUN_020260C4
-FUN_020260C4: ; 0x020260C4
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- add r6, r2, #0x0
- bl FUN_02025A00
- mov r1, #0x0
- mvn r1, r1
- cmp r0, r1
- beq _020260E8
- add r1, r5, r0
- mov r0, #0x95
- lsl r0, r0, #0x4
- strb r4, [r1, r0]
- add r0, #0x28
- strb r6, [r1, r0]
- mov r0, #0x1
- pop {r4-r6, pc}
-_020260E8:
- mov r0, #0x0
- pop {r4-r6, pc}
-
- thumb_func_start FUN_020260EC
-FUN_020260EC: ; 0x020260EC
- push {r4-r7, lr}
- sub sp, #0x5c
- add r7, r0, #0x0
- mov r0, #0x95
- lsl r0, r0, #0x4
- str r1, [sp, #0x0]
- str r2, [sp, #0x4]
- add r0, r7, r0
- add r1, sp, #0x34
- mov r2, #0x28
- mov r4, #0x0
- bl MI_CpuCopy8
- ldr r0, _02026168 ; =0x00000978
- add r1, sp, #0xc
- add r0, r7, r0
- mov r2, #0x28
- bl MI_CpuCopy8
- ldr r3, [sp, #0x0]
- add r1, sp, #0x34
- add r3, r1, r3
- mov r12, r3
- ldr r3, [sp, #0x0]
- add r2, sp, #0xc
- add r3, r2, r3
- add r0, r4, #0x0
- str r3, [sp, #0x8]
-_02026124:
- ldr r3, [sp, #0x0]
- cmp r0, r3
- beq _0202613C
- ldrb r5, [r1, #0x0]
- mov r3, #0x95
- add r6, r7, r4
- lsl r3, r3, #0x4
- strb r5, [r6, r3]
- ldrb r5, [r2, #0x0]
- add r3, #0x28
- add r4, r4, #0x1
- strb r5, [r6, r3]
-_0202613C:
- ldr r3, [sp, #0x4]
- cmp r0, r3
- bne _02026158
- mov r3, r12
- ldrb r5, [r3, #0x0]
- mov r3, #0x95
- add r6, r7, r4
- lsl r3, r3, #0x4
- strb r5, [r6, r3]
- ldr r3, [sp, #0x8]
- add r4, r4, #0x1
- ldrb r5, [r3, #0x0]
- ldr r3, _02026168 ; =0x00000978
- strb r5, [r6, r3]
-_02026158:
- add r0, r0, #0x1
- add r1, r1, #0x1
- add r2, r2, #0x1
- cmp r0, #0x28
- blt _02026124
- add sp, #0x5c
- pop {r4-r7, pc}
- nop
-_02026168: .word 0x00000978
-
- thumb_func_start FUN_0202616C
-FUN_0202616C: ; 0x0202616C
- ldr r1, _02026184 ; =0x00000928
- mov r3, #0x0
-_02026170:
- add r2, r0, r3
- ldrb r2, [r2, r1]
- cmp r2, #0x0
- beq _0202617E
- add r3, r3, #0x1
- cmp r3, #0x28
- blt _02026170
-_0202617E:
- add r0, r3, #0x0
- bx lr
- nop
-_02026184: .word 0x00000928
-
- thumb_func_start FUN_02026188
-FUN_02026188: ; 0x02026188
- add r1, r0, r1
- ldr r0, _02026190 ; =0x00000928
- ldrb r0, [r1, r0]
- bx lr
- .balign 4
-_02026190: .word 0x00000928
-
- thumb_func_start FUN_02026194
-FUN_02026194: ; 0x02026194
- push {r3-r6}
- ldr r2, _020261BC ; =0x00000928
- add r3, r0, r1
- ldrb r2, [r3, r2]
- cmp r1, #0x27
- bge _020261B0
- ldr r3, _020261C0 ; =0x00000929
- sub r4, r3, #0x1
-_020261A4:
- add r6, r0, r1
- ldrb r5, [r6, r3]
- add r1, r1, #0x1
- cmp r1, #0x27
- strb r5, [r6, r4]
- blt _020261A4
-_020261B0:
- ldr r1, _020261C4 ; =0x0000094F
- mov r3, #0x0
- strb r3, [r0, r1]
- add r0, r2, #0x0
- pop {r3-r6}
- bx lr
- .balign 4
-_020261BC: .word 0x00000928
-_020261C0: .word 0x00000929
-_020261C4: .word 0x0000094F
-
- thumb_func_start FUN_020261C8
-FUN_020261C8: ; 0x020261C8
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- bl FUN_02025A20
- mov r1, #0x0
- mvn r1, r1
- cmp r0, r1
- beq _020261E4
- add r1, r5, r0
- ldr r0, _020261E8 ; =0x00000928
- strb r4, [r1, r0]
- mov r0, #0x1
- pop {r3-r5, pc}
-_020261E4:
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-_020261E8: .word 0x00000928
-
- thumb_func_start FUN_020261EC
-FUN_020261EC: ; 0x020261EC
- push {r3-r7, lr}
- sub sp, #0x30
- add r5, r0, #0x0
- ldr r0, _02026238 ; =0x00000928
- str r1, [sp, #0x4]
- str r2, [sp, #0x0]
- add r0, r5, r0
- add r1, sp, #0x8
- mov r2, #0x28
- mov r4, #0x0
- bl MI_CpuCopy8
- ldr r2, [sp, #0x4]
- add r1, sp, #0x8
- add r0, r4, #0x0
- add r7, r1, r2
-_0202620C:
- ldr r2, [sp, #0x4]
- cmp r0, r2
- beq _0202621C
- ldrb r6, [r1, #0x0]
- ldr r2, _02026238 ; =0x00000928
- add r3, r5, r4
- strb r6, [r3, r2]
- add r4, r4, #0x1
-_0202621C:
- ldr r2, [sp, #0x0]
- cmp r0, r2
- bne _0202622C
- ldrb r6, [r7, #0x0]
- ldr r2, _02026238 ; =0x00000928
- add r3, r5, r4
- strb r6, [r3, r2]
- add r4, r4, #0x1
-_0202622C:
- add r0, r0, #0x1
- add r1, r1, #0x1
- cmp r0, #0x28
- blt _0202620C
- add sp, #0x30
- pop {r3-r7, pc}
- .balign 4
-_02026238: .word 0x00000928
-
- thumb_func_start FUN_0202623C
-FUN_0202623C: ; 0x0202623C
- ldr r1, _02026254 ; =0x000008D8
- mov r3, #0x0
-_02026240:
- add r2, r0, r3
- ldrb r2, [r2, r1]
- cmp r2, #0x0
- beq _0202624E
- add r3, r3, #0x1
- cmp r3, #0x28
- blt _02026240
-_0202624E:
- add r0, r3, #0x0
- bx lr
- nop
-_02026254: .word 0x000008D8
-
- thumb_func_start FUN_02026258
-FUN_02026258: ; 0x02026258
- add r1, r0, r1
- ldr r0, _02026260 ; =0x000008D8
- ldrb r0, [r1, r0]
- bx lr
- .balign 4
-_02026260: .word 0x000008D8
-
- thumb_func_start FUN_02026264
-FUN_02026264: ; 0x02026264
- push {r3-r6}
- ldr r2, _0202628C ; =0x000008D8
- add r3, r0, r1
- ldrb r2, [r3, r2]
- cmp r1, #0x27
- bge _02026280
- ldr r3, _02026290 ; =0x000008D9
- sub r4, r3, #0x1
-_02026274:
- add r6, r0, r1
- ldrb r5, [r6, r3]
- add r1, r1, #0x1
- cmp r1, #0x27
- strb r5, [r6, r4]
- blt _02026274
-_02026280:
- ldr r1, _02026294 ; =0x000008FF
- mov r3, #0x0
- strb r3, [r0, r1]
- add r0, r2, #0x0
- pop {r3-r6}
- bx lr
- .balign 4
-_0202628C: .word 0x000008D8
-_02026290: .word 0x000008D9
-_02026294: .word 0x000008FF
-
- thumb_func_start FUN_02026298
-FUN_02026298: ; 0x02026298
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- bl FUN_02025A40
- mov r1, #0x0
- mvn r1, r1
- cmp r0, r1
- beq _020262B4
- add r1, r5, r0
- ldr r0, _020262B8 ; =0x000008D8
- strb r4, [r1, r0]
- mov r0, #0x1
- pop {r3-r5, pc}
-_020262B4:
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-_020262B8: .word 0x000008D8
-
- thumb_func_start FUN_020262BC
-FUN_020262BC: ; 0x020262BC
- push {r3-r7, lr}
- sub sp, #0x30
- add r5, r0, #0x0
- ldr r0, _02026308 ; =0x000008D8
- str r1, [sp, #0x4]
- str r2, [sp, #0x0]
- add r0, r5, r0
- add r1, sp, #0x8
- mov r2, #0x28
- mov r4, #0x0
- bl MI_CpuCopy8
- ldr r2, [sp, #0x4]
- add r1, sp, #0x8
- add r0, r4, #0x0
- add r7, r1, r2
-_020262DC:
- ldr r2, [sp, #0x4]
- cmp r0, r2
- beq _020262EC
- ldrb r6, [r1, #0x0]
- ldr r2, _02026308 ; =0x000008D8
- add r3, r5, r4
- strb r6, [r3, r2]
- add r4, r4, #0x1
-_020262EC:
- ldr r2, [sp, #0x0]
- cmp r0, r2
- bne _020262FC
- ldrb r6, [r7, #0x0]
- ldr r2, _02026308 ; =0x000008D8
- add r3, r5, r4
- strb r6, [r3, r2]
- add r4, r4, #0x1
-_020262FC:
- add r0, r0, #0x1
- add r1, r1, #0x1
- cmp r0, #0x28
- blt _020262DC
- add sp, #0x30
- pop {r3-r7, pc}
- .balign 4
-_02026308: .word 0x000008D8
-
- thumb_func_start FUN_0202630C
-FUN_0202630C: ; 0x0202630C
- push {r3-r7, lr}
- add r4, r2, #0x0
- add r5, r0, #0x0
- add r7, r1, #0x0
- add r6, r3, #0x0
- cmp r4, #0x40
- blt _0202631E
- bl ErrorHandling
-_0202631E:
- ldr r0, _02026350 ; =0x0000010F
- add r1, r5, r4
- strb r7, [r1, r0]
- lsl r1, r4, #0x1
- add r1, r4, r1
- add r2, r0, #0x0
- add r1, r5, r1
- add r2, #0x40
- strb r6, [r1, r2]
- mov r2, #0xf
- lsl r2, r2, #0x8
- add r3, r6, #0x0
- and r3, r2
- asr r4, r3, #0x8
- ldr r3, [sp, #0x18]
- and r2, r3
- asr r2, r2, #0x4
- add r4, r4, r2
- add r2, r0, #0x0
- add r2, #0x41
- strb r4, [r1, r2]
- add r0, #0x42
- strb r3, [r1, r0]
- pop {r3-r7, pc}
- nop
-_02026350: .word 0x0000010F
-
- thumb_func_start FUN_02026354
-FUN_02026354: ; 0x02026354
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- cmp r4, #0x40
- blt _02026362
- bl ErrorHandling
-_02026362:
- ldr r0, _0202636C ; =0x0000010F
- add r1, r5, r4
- ldrb r0, [r1, r0]
- pop {r3-r5, pc}
- nop
-_0202636C: .word 0x0000010F
-
- thumb_func_start FUN_02026370
-FUN_02026370: ; 0x02026370
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- cmp r4, #0x40
- blt _0202637E
- bl ErrorHandling
-_0202637E:
- lsl r0, r4, #0x1
- add r0, r4, r0
- add r1, r5, r0
- ldr r0, _02026398 ; =0x0000014F
- ldrb r2, [r1, r0]
- add r0, r0, #0x1
- ldrb r0, [r1, r0]
- lsl r1, r0, #0x8
- mov r0, #0xf
- lsl r0, r0, #0x8
- and r0, r1
- add r0, r2, r0
- pop {r3-r5, pc}
- .balign 4
-_02026398: .word 0x0000014F
-
- thumb_func_start FUN_0202639C
-FUN_0202639C: ; 0x0202639C
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- cmp r4, #0x40
- blt _020263AA
- bl ErrorHandling
-_020263AA:
- lsl r0, r4, #0x1
- add r0, r4, r0
- add r1, r5, r0
- ldr r0, _020263C4 ; =0x00000151
- ldrb r2, [r1, r0]
- sub r0, r0, #0x1
- ldrb r0, [r1, r0]
- lsl r1, r0, #0x4
- mov r0, #0xf
- lsl r0, r0, #0x8
- and r0, r1
- add r0, r2, r0
- pop {r3-r5, pc}
- .balign 4
-_020263C4: .word 0x00000151
-
- thumb_func_start FUN_020263C8
-FUN_020263C8: ; 0x020263C8
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- cmp r4, #0x40
- blt _020263D6
- bl ErrorHandling
-_020263D6:
- ldr r0, _020263F0 ; =0x0000010F
- mov r1, #0x0
- add r2, r5, r4
- strb r1, [r2, r0]
- add r0, #0x40
- add r2, r5, r0
- lsl r0, r4, #0x1
- add r0, r4, r0
- add r0, r2, r0
- mov r2, #0x3
- bl MI_CpuFill8
- pop {r3-r5, pc}
- .balign 4
-_020263F0: .word 0x0000010F
-
- thumb_func_start FUN_020263F4
-FUN_020263F4: ; 0x020263F4
- push {r3-r7, lr}
- add r4, r2, #0x0
- add r5, r0, #0x0
- add r7, r1, #0x0
- add r6, r3, #0x0
- cmp r4, #0x10
- blt _02026406
- bl ErrorHandling
-_02026406:
- lsl r2, r4, #0x1
- ldr r1, _02026440 ; =0x0000050C
- add r0, r5, r4
- add r2, r4, r2
- add r4, r5, r2
- add r2, r1, #0x0
- mov r5, #0xf
- strb r7, [r0, r1]
- add r2, #0x10
- strb r6, [r4, r2]
- lsl r5, r5, #0x8
- add r2, r6, #0x0
- and r2, r5
- asr r3, r2, #0x8
- ldr r2, [sp, #0x18]
- and r5, r2
- asr r5, r5, #0x4
- add r5, r3, r5
- add r3, r1, #0x0
- add r3, #0x11
- strb r5, [r4, r3]
- add r3, r1, #0x0
- add r3, #0x12
- strb r2, [r4, r3]
- ldr r2, [sp, #0x1c]
- add r1, #0x40
- strb r2, [r0, r1]
- pop {r3-r7, pc}
- nop
-_02026440: .word 0x0000050C
-
- thumb_func_start FUN_02026444
-FUN_02026444: ; 0x02026444
- add r1, r0, r1
- ldr r0, _0202644C ; =0x0000050C
- ldrb r0, [r1, r0]
- bx lr
- .balign 4
-_0202644C: .word 0x0000050C
-
- thumb_func_start FUN_02026450
-FUN_02026450: ; 0x02026450
- lsl r2, r1, #0x1
- add r1, r1, r2
- add r1, r0, r1
- ldr r0, _0202646C ; =0x0000051C
- ldrb r2, [r1, r0]
- add r0, r0, #0x1
- ldrb r0, [r1, r0]
- lsl r1, r0, #0x8
- mov r0, #0xf
- lsl r0, r0, #0x8
- and r0, r1
- add r0, r2, r0
- bx lr
- nop
-_0202646C: .word 0x0000051C
-
- thumb_func_start FUN_02026470
-FUN_02026470: ; 0x02026470
- lsl r2, r1, #0x1
- add r1, r1, r2
- add r1, r0, r1
- ldr r0, _0202648C ; =0x0000051E
- ldrb r2, [r1, r0]
- sub r0, r0, #0x1
- ldrb r0, [r1, r0]
- lsl r1, r0, #0x4
- mov r0, #0xf
- lsl r0, r0, #0x8
- and r0, r1
- add r0, r2, r0
- bx lr
- nop
-_0202648C: .word 0x0000051E
-
- thumb_func_start FUN_02026490
-FUN_02026490: ; 0x02026490
- add r1, r0, r1
- ldr r0, _02026498 ; =0x0000054C
- ldrb r0, [r1, r0]
- bx lr
- .balign 4
-_02026498: .word 0x0000054C
-
- thumb_func_start FUN_0202649C
-FUN_0202649C: ; 0x0202649C
- push {r3-r7, lr}
- add r4, r2, #0x0
- add r5, r0, #0x0
- add r6, r1, #0x0
- add r7, r3, #0x0
- cmp r4, #0x64
- blt _020264AE
- bl ErrorHandling
-_020264AE:
- ldr r1, _020264E8 ; =0x0000055C
- add r0, r5, r4
- strb r6, [r0, r1]
- lsl r1, r4, #0x1
- add r1, r4, r1
- add r4, r5, r1
- mov r5, #0xf
- lsl r5, r5, #0x8
- add r2, r7, #0x0
- and r2, r5
- asr r3, r2, #0x8
- ldr r2, [sp, #0x18]
- ldr r1, _020264EC ; =0x00000688
- and r5, r2
- asr r5, r5, #0x4
- add r5, r3, r5
- strb r7, [r4, r1]
- add r3, r1, #0x1
- strb r5, [r4, r3]
- add r3, r1, #0x2
- strb r2, [r4, r3]
- add r2, r1, #0x0
- ldr r3, [sp, #0x1c]
- sub r2, #0x64
- strb r3, [r0, r2]
- ldr r2, [sp, #0x20]
- sub r1, #0xc8
- strb r2, [r0, r1]
- pop {r3-r7, pc}
- .balign 4
-_020264E8: .word 0x0000055C
-_020264EC: .word 0x00000688
-
- thumb_func_start FUN_020264F0
-FUN_020264F0: ; 0x020264F0
- add r1, r0, r1
- ldr r0, _020264F8 ; =0x0000055C
- ldrb r0, [r1, r0]
- bx lr
- .balign 4
-_020264F8: .word 0x0000055C
-
- thumb_func_start FUN_020264FC
-FUN_020264FC: ; 0x020264FC
- lsl r2, r1, #0x1
- add r1, r1, r2
- add r1, r0, r1
- ldr r0, _02026518 ; =0x00000688
- ldrb r2, [r1, r0]
- add r0, r0, #0x1
- ldrb r0, [r1, r0]
- lsl r1, r0, #0x8
- mov r0, #0xf
- lsl r0, r0, #0x8
- and r0, r1
- add r0, r2, r0
- bx lr
- nop
-_02026518: .word 0x00000688
-
- thumb_func_start FUN_0202651C
-FUN_0202651C: ; 0x0202651C
- lsl r2, r1, #0x1
- add r1, r1, r2
- add r1, r0, r1
- ldr r0, _02026538 ; =0x0000068A
- ldrb r2, [r1, r0]
- sub r0, r0, #0x1
- ldrb r0, [r1, r0]
- lsl r1, r0, #0x4
- mov r0, #0xf
- lsl r0, r0, #0x8
- and r0, r1
- add r0, r2, r0
- bx lr
- nop
-_02026538: .word 0x0000068A
-
- thumb_func_start FUN_0202653C
-FUN_0202653C: ; 0x0202653C
- add r1, r0, r1
- ldr r0, _02026544 ; =0x00000624
- ldrb r0, [r1, r0]
- bx lr
- .balign 4
-_02026544: .word 0x00000624
-
- thumb_func_start FUN_02026548
-FUN_02026548: ; 0x02026548
- add r1, r0, r1
- mov r0, #0x17
- lsl r0, r0, #0x6
- ldrb r0, [r1, r0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02026554
-FUN_02026554: ; 0x02026554
- push {r4-r7}
- ldr r3, _020265B0 ; =0x00000211
- add r7, r0, #0x0
- mov r12, r1
- mov r0, #0x0
- add r1, r7, #0x0
- sub r4, r3, #0x1
- sub r5, r3, #0x2
-_02026564:
- ldrb r6, [r1, r5]
- cmp r6, #0x0
- bne _020265A0
- ldrb r6, [r1, r4]
- cmp r6, #0x0
- bne _020265A0
- ldrb r6, [r1, r3]
- cmp r6, #0x0
- bne _020265A0
- lsl r1, r0, #0x1
- add r1, r0, r1
- mov r5, #0xf
- ldr r4, _020265B4 ; =0x0000020F
- add r1, r7, r1
- mov r3, r12
- strb r3, [r1, r4]
- lsl r5, r5, #0x8
- mov r3, r12
- and r3, r5
- asr r6, r3, #0x8
- add r3, r2, #0x0
- and r3, r5
- asr r3, r3, #0x4
- add r5, r6, r3
- add r3, r4, #0x1
- strb r5, [r1, r3]
- add r3, r4, #0x2
- strb r2, [r1, r3]
- pop {r4-r7}
- bx lr
-_020265A0:
- add r0, r0, #0x1
- add r1, r1, #0x3
- cmp r0, #0xff
- blt _02026564
- mov r0, #0x0
- pop {r4-r7}
- bx lr
- nop
-_020265B0: .word 0x00000211
-_020265B4: .word 0x0000020F
-
- thumb_func_start FUN_020265B8
-FUN_020265B8: ; 0x020265B8
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- cmp r4, #0xff
- blt _020265C6
- bl ErrorHandling
-_020265C6:
- ldr r0, _020265DC ; =0x0000020F
- mov r2, #0x3
- add r1, r5, r0
- lsl r0, r4, #0x1
- add r0, r4, r0
- add r0, r1, r0
- mov r1, #0x0
- bl MI_CpuFill8
- pop {r3-r5, pc}
- nop
-_020265DC: .word 0x0000020F
-
- thumb_func_start FUN_020265E0
-FUN_020265E0: ; 0x020265E0
- lsl r2, r1, #0x1
- add r1, r1, r2
- add r1, r0, r1
- ldr r0, _020265FC ; =0x0000020F
- ldrb r2, [r1, r0]
- add r0, r0, #0x1
- ldrb r0, [r1, r0]
- lsl r1, r0, #0x8
- mov r0, #0xf
- lsl r0, r0, #0x8
- and r0, r1
- add r0, r2, r0
- bx lr
- nop
-_020265FC: .word 0x0000020F
-
- thumb_func_start FUN_02026600
-FUN_02026600: ; 0x02026600
- lsl r2, r1, #0x1
- add r1, r1, r2
- add r1, r0, r1
- ldr r0, _0202661C ; =0x00000211
- ldrb r2, [r1, r0]
- sub r0, r0, #0x1
- ldrb r0, [r1, r0]
- lsl r1, r0, #0x4
- mov r0, #0xf
- lsl r0, r0, #0x8
- and r0, r1
- add r0, r2, r0
- bx lr
- nop
-_0202661C: .word 0x00000211
-
- thumb_func_start FUN_02026620
-FUN_02026620: ; 0x02026620
- mov r1, #0x9b
- lsl r1, r1, #0x4
- ldrb r0, [r0, r1]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x1c
- bne _02026630
- mov r0, #0x1
- bx lr
-_02026630:
- mov r0, #0x0
- bx lr
-
- thumb_func_start FUN_02026634
-FUN_02026634: ; 0x02026634
- mov r2, #0x9b
- lsl r2, r2, #0x4
- ldrb r3, [r0, r2]
- mov r1, #0xf0
- bic r3, r1
- mov r1, #0x10
- orr r1, r3
- strb r1, [r0, r2]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02026648
-FUN_02026648: ; 0x02026648
- mov r1, #0x9b
- lsl r1, r1, #0x4
- ldrb r0, [r0, r1]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1c
- bx lr
-
- thumb_func_start FUN_02026654
-FUN_02026654: ; 0x02026654
- mov r2, #0x9b
- lsl r2, r2, #0x4
- ldrb r3, [r0, r2]
- mov r1, #0xf
- bic r3, r1
- strb r3, [r0, r2]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02026664
-FUN_02026664: ; 0x02026664
- push {r3-r4}
- cmp r1, #0x2c
- blt _0202667E
- cmp r1, #0x3b
- bgt _0202667E
- ldr r2, _02026684 ; =0x0000080C
- mov r3, #0x1
- sub r1, #0x2c
- ldr r4, [r0, r2]
- lsl r3, r1
- add r1, r4, #0x0
- orr r1, r3
- str r1, [r0, r2]
-_0202667E:
- pop {r3-r4}
- bx lr
- nop
-_02026684: .word 0x0000080C
-
- thumb_func_start FUN_02026688
-FUN_02026688: ; 0x02026688
- cmp r1, #0x2c
- blt _02026690
- cmp r1, #0x3b
- ble _02026694
-_02026690:
- mov r0, #0x1
- bx lr
-_02026694:
- ldr r2, _020266AC ; =0x0000080C
- sub r1, #0x2c
- ldr r3, [r0, r2]
- mov r0, #0x1
- add r2, r0, #0x0
- lsl r2, r1
- add r1, r3, #0x0
- tst r1, r2
- beq _020266A8
- mov r0, #0x0
-_020266A8:
- bx lr
- nop
-_020266AC: .word 0x0000080C
-
- thumb_func_start FUN_020266B0
-FUN_020266B0: ; 0x020266B0
- ldr r1, _020266C4 ; =0x000009AF
- ldrb r2, [r0, r1]
- cmp r2, #0x63
- blo _020266BE
- mov r2, #0x0
- strb r2, [r0, r1]
- bx lr
-_020266BE:
- add r2, r2, #0x1
- strb r2, [r0, r1]
- bx lr
- .balign 4
-_020266C4: .word 0x000009AF
-
- thumb_func_start FUN_020266C8
-FUN_020266C8: ; 0x020266C8
- ldr r1, _020266D0 ; =0x000009AF
- ldrb r0, [r0, r1]
- bx lr
- nop
-_020266D0: .word 0x000009AF
-
- thumb_func_start FUN_020266D4
-FUN_020266D4: ; 0x020266D4
- ldr r3, _020266DC ; =MI_CpuFill8
- mov r1, #0x0
- mov r2, #0x94
- bx r3
- .balign 4
-_020266DC: .word MI_CpuFill8
-
- thumb_func_start FUN_020266E0
-FUN_020266E0: ; 0x020266E0
- push {r4, lr}
- add r4, r0, #0x0
- mov r1, #0x0
- mov r2, #0x2d
- bl MI_CpuFill8
- add r0, r4, #0x0
- add r0, #0x2d
- mov r1, #0x0
- mov r2, #0x20
- bl MI_CpuFill8
- add r0, r4, #0x0
- mov r1, #0x0
- add r0, #0x8c
- strh r1, [r0, #0x0]
- add r0, r4, #0x0
- add r0, #0x8e
- strh r1, [r0, #0x0]
- add r0, r4, #0x0
- add r0, #0x90
- strb r1, [r0, #0x0]
- add r4, #0x91
- strb r1, [r4, #0x0]
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02026714
-FUN_02026714: ; 0x02026714
- mov r1, #0x0
- add r0, #0x91
- strb r1, [r0, #0x0]
- bx lr
-
- thumb_func_start FUN_0202671C
-FUN_0202671C: ; 0x0202671C
- push {r3-r7, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- add r7, r2, #0x0
- add r6, r3, #0x0
- cmp r4, #0x20
- blt _0202672E
- bl ErrorHandling
-_0202672E:
- cmp r6, #0x20
- blt _02026736
- bl ErrorHandling
-_02026736:
- ldr r0, [sp, #0x18]
- cmp r0, #0x20
- blt _02026740
- bl ErrorHandling
-_02026740:
- cmp r5, #0x0
- bne _02026748
- bl ErrorHandling
-_02026748:
- cmp r4, #0x0
- beq _02026774
- cmp r4, #0x10
- bge _02026762
- sub r1, r4, #0x1
- lsl r0, r1, #0x1
- add r0, r1, r0
- strb r6, [r5, r0]
- ldr r1, [sp, #0x18]
- add r0, r5, r0
- strb r1, [r0, #0x1]
- strb r7, [r0, #0x2]
- pop {r3-r7, pc}
-_02026762:
- sub r4, #0x10
- lsl r2, r4, #0x1
- add r0, r5, r2
- add r0, #0x2d
- strb r6, [r0, #0x0]
- add r0, r5, r2
- ldr r1, [sp, #0x18]
- add r0, #0x2e
- strb r1, [r0, #0x0]
-_02026774:
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02026778
-FUN_02026778: ; 0x02026778
- push {r3-r7, lr}
- add r5, r0, #0x0
- add r6, r1, #0x0
- add r7, r2, #0x0
- add r4, r3, #0x0
- bl FUN_020267C4
- add r2, r0, #0x0
- add r0, r5, #0x0
- add r1, r6, #0x0
- add r3, r7, #0x0
- str r4, [sp, #0x0]
- bl FUN_0202671C
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02026798
-FUN_02026798: ; 0x02026798
- add r0, #0x88
- ldr r0, [r0, #0x0]
- lsl r0, r0, #0xc
- lsr r0, r0, #0xc
- cmp r0, #0x32
- blt _020267A8
- mov r0, #0x5
- bx lr
-_020267A8:
- cmp r0, #0xa
- blt _020267B0
- mov r0, #0x4
- bx lr
-_020267B0:
- cmp r0, #0x3
- blt _020267B8
- mov r0, #0x3
- bx lr
-_020267B8:
- cmp r0, #0x1
- blt _020267C0
- mov r0, #0x2
- bx lr
-_020267C0:
- mov r0, #0x1
- bx lr
-
- thumb_func_start FUN_020267C4
-FUN_020267C4: ; 0x020267C4
- push {r3-r5, lr}
- add r5, r1, #0x0
- add r4, r0, #0x0
- cmp r5, #0x20
- blt _020267D2
- bl ErrorHandling
-_020267D2:
- cmp r5, #0x0
- bne _020267DE
- add r0, r4, #0x0
- bl FUN_02026798
- pop {r3-r5, pc}
-_020267DE:
- cmp r5, #0x10
- bge _020267EE
- sub r1, r5, #0x1
- lsl r0, r1, #0x1
- add r0, r1, r0
- add r0, r4, r0
- ldrb r0, [r0, #0x2]
- pop {r3-r5, pc}
-_020267EE:
- sub r5, #0x10
- lsl r1, r5, #0x1
- add r0, r4, r1
- add r0, #0x2d
- ldrb r0, [r0, #0x0]
- cmp r0, #0x0
- beq _0202680A
- add r0, r4, r1
- add r0, #0x2e
- ldrb r0, [r0, #0x0]
- cmp r0, #0x0
- beq _0202680A
- mov r0, #0x6
- pop {r3-r5, pc}
-_0202680A:
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02026810
-FUN_02026810: ; 0x02026810
- push {r3-r5, lr}
- add r5, r1, #0x0
- add r4, r0, #0x0
- cmp r5, #0x20
- blt _0202681E
- bl ErrorHandling
-_0202681E:
- cmp r5, #0x0
- bne _02026826
- mov r0, #0xf
- pop {r3-r5, pc}
-_02026826:
- cmp r5, #0x10
- bge _02026834
- sub r1, r5, #0x1
- lsl r0, r1, #0x1
- add r0, r1, r0
- ldrb r0, [r4, r0]
- pop {r3-r5, pc}
-_02026834:
- sub r5, #0x10
- lsl r0, r5, #0x1
- add r0, r4, r0
- add r0, #0x2d
- ldrb r0, [r0, #0x0]
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02026840
-FUN_02026840: ; 0x02026840
- push {r3-r5, lr}
- add r5, r1, #0x0
- add r4, r0, #0x0
- cmp r5, #0x20
- blt _0202684E
- bl ErrorHandling
-_0202684E:
- cmp r5, #0x0
- bne _02026856
- mov r0, #0xc
- pop {r3-r5, pc}
-_02026856:
- cmp r5, #0x10
- bge _02026866
- sub r1, r5, #0x1
- lsl r0, r1, #0x1
- add r0, r1, r0
- add r0, r4, r0
- ldrb r0, [r0, #0x1]
- pop {r3-r5, pc}
-_02026866:
- sub r5, #0x10
- lsl r0, r5, #0x1
- add r0, r4, r0
- add r0, #0x2e
- ldrb r0, [r0, #0x0]
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02026874
-FUN_02026874: ; 0x02026874
- add r0, #0x88
- ldr r0, [r0, #0x0]
- lsl r0, r0, #0xc
- lsr r0, r0, #0xc
- cmp r0, #0x32
- blo _02026884
- mov r0, #0x0
- bx lr
-_02026884:
- cmp r0, #0xa
- blo _0202688C
- mov r0, #0x6
- bx lr
-_0202688C:
- cmp r0, #0x3
- blo _02026894
- mov r0, #0xb
- bx lr
-_02026894:
- cmp r0, #0x1
- blo _0202689C
- mov r0, #0xf
- bx lr
-_0202689C:
- mov r0, #0x10
- bx lr
-
- thumb_func_start FUN_020268A0
-FUN_020268A0: ; 0x020268A0
- add r0, #0x88
- ldr r0, [r0, #0x0]
- lsl r0, r0, #0xc
- lsr r0, r0, #0xc
- cmp r0, #0x32
- blo _020268B0
- mov r0, #0xf
- bx lr
-_020268B0:
- cmp r0, #0xa
- blo _020268B8
- mov r0, #0xf
- bx lr
-_020268B8:
- cmp r0, #0x3
- blo _020268C0
- mov r0, #0xf
- bx lr
-_020268C0:
- cmp r0, #0x1
- blo _020268C8
- mov r0, #0xc
- bx lr
-_020268C8:
- mov r0, #0xa
- bx lr
-
- thumb_func_start FUN_020268CC
-FUN_020268CC: ; 0x020268CC
- ldr r0, [r0, #0x0]
- lsl r0, r0, #0xc
- lsr r0, r0, #0xc
- bx lr
-
- thumb_func_start FUN_020268D4
-FUN_020268D4: ; 0x020268D4
- push {r3, lr}
- bl FUN_020269A0
- cmp r0, #0x4
- bne _020268E2
- mov r0, #0x1
- pop {r3, pc}
-_020268E2:
- mov r0, #0x0
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_020268E8
-FUN_020268E8: ; 0x020268E8
- ldr r3, [r0, #0x0]
- ldr r2, _020268F8 ; =0xFFF00000
- and r3, r2
- ldr r2, _020268FC ; =0x000FFFFF
- and r1, r2
- orr r1, r3
- str r1, [r0, #0x0]
- bx lr
- .balign 4
-_020268F8: .word 0xFFF00000
-_020268FC: .word 0x000FFFFF
-
- thumb_func_start FUN_02026900
-FUN_02026900: ; 0x02026900
- ldr r0, [r0, #0x4]
- lsl r0, r0, #0xc
- lsr r0, r0, #0xc
- bx lr
-
- thumb_func_start FUN_02026908
-FUN_02026908: ; 0x02026908
- push {r3-r4}
- ldr r2, [r0, #0x4]
- lsl r1, r2, #0xc
- lsr r4, r1, #0xc
- ldr r1, _0202692C ; =0x000F423F
- cmp r4, r1
- bhs _02026926
- ldr r1, _02026930 ; =0xFFF00000
- add r3, r2, #0x0
- and r3, r1
- ldr r1, _02026934 ; =0x000FFFFF
- add r2, r4, #0x1
- and r1, r2
- orr r1, r3
- str r1, [r0, #0x4]
-_02026926:
- pop {r3-r4}
- bx lr
- nop
-_0202692C: .word 0x000F423F
-_02026930: .word 0xFFF00000
-_02026934: .word 0x000FFFFF
-
- thumb_func_start FUN_02026938
-FUN_02026938: ; 0x02026938
- ldr r0, [r0, #0x8]
- lsl r0, r0, #0xc
- lsr r0, r0, #0xc
- bx lr
-
- thumb_func_start FUN_02026940
-FUN_02026940: ; 0x02026940
- push {r3-r4}
- ldr r2, [r0, #0x8]
- lsl r1, r2, #0xc
- lsr r4, r1, #0xc
- ldr r1, _02026964 ; =0x000F423F
- cmp r4, r1
- bhs _0202695E
- ldr r1, _02026968 ; =0xFFF00000
- add r3, r2, #0x0
- and r3, r1
- ldr r1, _0202696C ; =0x000FFFFF
- add r2, r4, #0x1
- and r1, r2
- orr r1, r3
- str r1, [r0, #0x8]
-_0202695E:
- pop {r3-r4}
- bx lr
- nop
-_02026964: .word 0x000F423F
-_02026968: .word 0xFFF00000
-_0202696C: .word 0x000FFFFF
-
- thumb_func_start FUN_02026970
-FUN_02026970: ; 0x02026970
- push {r3-r4}
- ldr r2, [r0, #0xc]
- lsl r1, r2, #0xc
- lsr r4, r1, #0xc
- ldr r1, _02026994 ; =0x000F423F
- cmp r4, r1
- bhs _0202698E
- ldr r1, _02026998 ; =0xFFF00000
- add r3, r2, #0x0
- and r3, r1
- ldr r1, _0202699C ; =0x000FFFFF
- add r2, r4, #0x1
- and r1, r2
- orr r1, r3
- str r1, [r0, #0xc]
-_0202698E:
- pop {r3-r4}
- bx lr
- nop
-_02026994: .word 0x000F423F
-_02026998: .word 0xFFF00000
-_0202699C: .word 0x000FFFFF
-
- thumb_func_start FUN_020269A0
-FUN_020269A0: ; 0x020269A0
- ldr r0, [r0, #0x38]
- lsl r0, r0, #0xc
- lsr r0, r0, #0xc
- cmp r0, #0x32
- blt _020269AE
- mov r0, #0x4
- bx lr
-_020269AE:
- cmp r0, #0xa
- blt _020269B6
- mov r0, #0x3
- bx lr
-_020269B6:
- cmp r0, #0x3
- blt _020269BE
- mov r0, #0x2
- bx lr
-_020269BE:
- cmp r0, #0x1
- blt _020269C6
- mov r0, #0x1
- bx lr
-_020269C6:
- mov r0, #0x0
- bx lr
- .balign 4
-
- thumb_func_start FUN_020269CC
-FUN_020269CC: ; 0x020269CC
- ldr r0, [r0, #0x38]
- lsl r0, r0, #0xc
- lsr r0, r0, #0xc
- bx lr
-
- thumb_func_start FUN_020269D4
-FUN_020269D4: ; 0x020269D4
- push {r3-r4}
- ldr r2, [r0, #0x38]
- lsl r1, r2, #0xc
- lsr r4, r1, #0xc
- ldr r1, _020269F8 ; =0x000F423F
- cmp r4, r1
- bhs _020269F2
- ldr r1, _020269FC ; =0xFFF00000
- add r3, r2, #0x0
- and r3, r1
- ldr r1, _02026A00 ; =0x000FFFFF
- add r2, r4, #0x1
- and r1, r2
- orr r1, r3
- str r1, [r0, #0x38]
-_020269F2:
- pop {r3-r4}
- bx lr
- nop
-_020269F8: .word 0x000F423F
-_020269FC: .word 0xFFF00000
-_02026A00: .word 0x000FFFFF
-
- thumb_func_start FUN_02026A04
-FUN_02026A04: ; 0x02026A04
- ldr r0, [r0, #0x10]
- lsl r0, r0, #0xc
- lsr r0, r0, #0xc
- bx lr
-
- thumb_func_start FUN_02026A0C
-FUN_02026A0C: ; 0x02026A0C
- push {r4-r5}
- cmp r1, #0x0
- ble _02026A2C
- ldr r4, [r0, #0x10]
- lsl r2, r4, #0xc
- lsr r5, r2, #0xc
- ldr r2, _02026A44 ; =0x000F423F
- sub r3, r2, r1
- cmp r5, r3
- bls _02026A2C
- ldr r1, _02026A48 ; =0xFFF00000
- and r1, r4
- orr r1, r2
- str r1, [r0, #0x10]
- pop {r4-r5}
- bx lr
-_02026A2C:
- ldr r3, [r0, #0x10]
- ldr r2, _02026A48 ; =0xFFF00000
- and r2, r3
- lsl r3, r3, #0xc
- lsr r3, r3, #0xc
- add r3, r3, r1
- ldr r1, _02026A4C ; =0x000FFFFF
- and r1, r3
- orr r1, r2
- str r1, [r0, #0x10]
- pop {r4-r5}
- bx lr
- .balign 4
-_02026A44: .word 0x000F423F
-_02026A48: .word 0xFFF00000
-_02026A4C: .word 0x000FFFFF
-
- thumb_func_start FUN_02026A50
-FUN_02026A50: ; 0x02026A50
- ldr r0, [r0, #0x14]
- lsl r0, r0, #0xc
- lsr r0, r0, #0xc
- bx lr
-
- thumb_func_start FUN_02026A58
-FUN_02026A58: ; 0x02026A58
- push {r4-r5}
- cmp r1, #0x0
- ble _02026A78
- ldr r4, [r0, #0x14]
- lsl r2, r4, #0xc
- lsr r5, r2, #0xc
- ldr r2, _02026A90 ; =0x000F423F
- sub r3, r2, r1
- cmp r5, r3
- bls _02026A78
- ldr r1, _02026A94 ; =0xFFF00000
- and r1, r4
- orr r1, r2
- str r1, [r0, #0x14]
- pop {r4-r5}
- bx lr
-_02026A78:
- ldr r3, [r0, #0x14]
- ldr r2, _02026A94 ; =0xFFF00000
- and r2, r3
- lsl r3, r3, #0xc
- lsr r3, r3, #0xc
- add r3, r3, r1
- ldr r1, _02026A98 ; =0x000FFFFF
- and r1, r3
- orr r1, r2
- str r1, [r0, #0x14]
- pop {r4-r5}
- bx lr
- .balign 4
-_02026A90: .word 0x000F423F
-_02026A94: .word 0xFFF00000
-_02026A98: .word 0x000FFFFF
-
- thumb_func_start FUN_02026A9C
-FUN_02026A9C: ; 0x02026A9C
- push {r4-r5}
- cmp r1, #0x0
- ble _02026ABC
- ldr r4, [r0, #0x18]
- lsl r2, r4, #0xc
- lsr r5, r2, #0xc
- ldr r2, _02026AD4 ; =0x000F423F
- sub r3, r2, r1
- cmp r5, r3
- bls _02026ABC
- ldr r1, _02026AD8 ; =0xFFF00000
- and r1, r4
- orr r1, r2
- str r1, [r0, #0x18]
- pop {r4-r5}
- bx lr
-_02026ABC:
- ldr r3, [r0, #0x18]
- ldr r2, _02026AD8 ; =0xFFF00000
- and r2, r3
- lsl r3, r3, #0xc
- lsr r3, r3, #0xc
- add r3, r3, r1
- ldr r1, _02026ADC ; =0x000FFFFF
- and r1, r3
- orr r1, r2
- str r1, [r0, #0x18]
- pop {r4-r5}
- bx lr
- .balign 4
-_02026AD4: .word 0x000F423F
-_02026AD8: .word 0xFFF00000
-_02026ADC: .word 0x000FFFFF
-
- thumb_func_start FUN_02026AE0
-FUN_02026AE0: ; 0x02026AE0
- ldr r0, [r0, #0x1c]
- lsl r0, r0, #0xc
- lsr r0, r0, #0xc
- bx lr
-
- thumb_func_start FUN_02026AE8
-FUN_02026AE8: ; 0x02026AE8
- push {r3-r4}
- ldr r2, [r0, #0x1c]
- lsl r1, r2, #0xc
- lsr r4, r1, #0xc
- ldr r1, _02026B0C ; =0x000F423F
- cmp r4, r1
- bhs _02026B06
- ldr r1, _02026B10 ; =0xFFF00000
- add r3, r2, #0x0
- and r3, r1
- ldr r1, _02026B14 ; =0x000FFFFF
- add r2, r4, #0x1
- and r1, r2
- orr r1, r3
- str r1, [r0, #0x1c]
-_02026B06:
- pop {r3-r4}
- bx lr
- nop
-_02026B0C: .word 0x000F423F
-_02026B10: .word 0xFFF00000
-_02026B14: .word 0x000FFFFF
-
- thumb_func_start FUN_02026B18
-FUN_02026B18: ; 0x02026B18
- ldr r0, [r0, #0x20]
- lsl r0, r0, #0xc
- lsr r0, r0, #0xc
- bx lr
-
- thumb_func_start FUN_02026B20
-FUN_02026B20: ; 0x02026B20
- push {r3-r4}
- ldr r2, [r0, #0x20]
- lsl r1, r2, #0xc
- lsr r4, r1, #0xc
- ldr r1, _02026B44 ; =0x000F423F
- cmp r4, r1
- bhs _02026B3E
- ldr r1, _02026B48 ; =0xFFF00000
- add r3, r2, #0x0
- and r3, r1
- ldr r1, _02026B4C ; =0x000FFFFF
- add r2, r4, #0x1
- and r1, r2
- orr r1, r3
- str r1, [r0, #0x20]
-_02026B3E:
- pop {r3-r4}
- bx lr
- nop
-_02026B44: .word 0x000F423F
-_02026B48: .word 0xFFF00000
-_02026B4C: .word 0x000FFFFF
-
- thumb_func_start FUN_02026B50
-FUN_02026B50: ; 0x02026B50
- ldr r0, [r0, #0x24]
- lsl r0, r0, #0xc
- lsr r0, r0, #0xc
- bx lr
-
- thumb_func_start FUN_02026B58
-FUN_02026B58: ; 0x02026B58
- push {r3-r4}
- ldr r2, [r0, #0x24]
- lsl r1, r2, #0xc
- lsr r4, r1, #0xc
- ldr r1, _02026B7C ; =0x000F423F
- cmp r4, r1
- bhs _02026B76
- ldr r1, _02026B80 ; =0xFFF00000
- add r3, r2, #0x0
- and r3, r1
- ldr r1, _02026B84 ; =0x000FFFFF
- add r2, r4, #0x1
- and r1, r2
- orr r1, r3
- str r1, [r0, #0x24]
-_02026B76:
- pop {r3-r4}
- bx lr
- nop
-_02026B7C: .word 0x000F423F
-_02026B80: .word 0xFFF00000
-_02026B84: .word 0x000FFFFF
-
- thumb_func_start FUN_02026B88
-FUN_02026B88: ; 0x02026B88
- ldr r0, [r0, #0x28]
- lsl r0, r0, #0xc
- lsr r0, r0, #0xc
- bx lr
-
- thumb_func_start FUN_02026B90
-FUN_02026B90: ; 0x02026B90
- push {r3-r4}
- ldr r2, [r0, #0x28]
- lsl r1, r2, #0xc
- lsr r4, r1, #0xc
- ldr r1, _02026BB4 ; =0x000F423F
- cmp r4, r1
- bhs _02026BAE
- ldr r1, _02026BB8 ; =0xFFF00000
- add r3, r2, #0x0
- and r3, r1
- ldr r1, _02026BBC ; =0x000FFFFF
- add r2, r4, #0x1
- and r1, r2
- orr r1, r3
- str r1, [r0, #0x28]
-_02026BAE:
- pop {r3-r4}
- bx lr
- nop
-_02026BB4: .word 0x000F423F
-_02026BB8: .word 0xFFF00000
-_02026BBC: .word 0x000FFFFF
-
- thumb_func_start FUN_02026BC0
-FUN_02026BC0: ; 0x02026BC0
- ldr r0, [r0, #0x2c]
- lsl r0, r0, #0xc
- lsr r0, r0, #0xc
- bx lr
-
- thumb_func_start FUN_02026BC8
-FUN_02026BC8: ; 0x02026BC8
- push {r3-r4}
- ldr r2, [r0, #0x2c]
- lsl r1, r2, #0xc
- lsr r4, r1, #0xc
- ldr r1, _02026BEC ; =0x000F423F
- cmp r4, r1
- bhs _02026BE6
- ldr r1, _02026BF0 ; =0xFFF00000
- add r3, r2, #0x0
- and r3, r1
- ldr r1, _02026BF4 ; =0x000FFFFF
- add r2, r4, #0x1
- and r1, r2
- orr r1, r3
- str r1, [r0, #0x2c]
-_02026BE6:
- pop {r3-r4}
- bx lr
- nop
-_02026BEC: .word 0x000F423F
-_02026BF0: .word 0xFFF00000
-_02026BF4: .word 0x000FFFFF
-
- thumb_func_start FUN_02026BF8
-FUN_02026BF8: ; 0x02026BF8
- ldr r0, [r0, #0x30]
- lsl r0, r0, #0xc
- lsr r0, r0, #0xc
- bx lr
-
- thumb_func_start FUN_02026C00
-FUN_02026C00: ; 0x02026C00
- push {r3-r4}
- ldr r2, [r0, #0x30]
- lsl r1, r2, #0xc
- lsr r4, r1, #0xc
- ldr r1, _02026C24 ; =0x000F423F
- cmp r4, r1
- bhs _02026C1E
- ldr r1, _02026C28 ; =0xFFF00000
- add r3, r2, #0x0
- and r3, r1
- ldr r1, _02026C2C ; =0x000FFFFF
- add r2, r4, #0x1
- and r1, r2
- orr r1, r3
- str r1, [r0, #0x30]
-_02026C1E:
- pop {r3-r4}
- bx lr
- nop
-_02026C24: .word 0x000F423F
-_02026C28: .word 0xFFF00000
-_02026C2C: .word 0x000FFFFF
-
- thumb_func_start FUN_02026C30
-FUN_02026C30: ; 0x02026C30
- ldr r0, [r0, #0x34]
- lsl r0, r0, #0xc
- lsr r0, r0, #0xc
- bx lr
-
- thumb_func_start FUN_02026C38
-FUN_02026C38: ; 0x02026C38
- push {r3-r4}
- ldr r2, [r0, #0x34]
- lsl r1, r2, #0xc
- lsr r4, r1, #0xc
- ldr r1, _02026C5C ; =0x000F423F
- cmp r4, r1
- bhs _02026C56
- ldr r1, _02026C60 ; =0xFFF00000
- add r3, r2, #0x0
- and r3, r1
- ldr r1, _02026C64 ; =0x000FFFFF
- add r2, r4, #0x1
- and r1, r2
- orr r1, r3
- str r1, [r0, #0x34]
-_02026C56:
- pop {r3-r4}
- bx lr
- nop
-_02026C5C: .word 0x000F423F
-_02026C60: .word 0xFFF00000
-_02026C64: .word 0x000FFFFF
-
- thumb_func_start FUN_02026C68
-FUN_02026C68: ; 0x02026C68
- push {r3-r4}
- add r4, r0, #0x0
- add r4, #0x8c
- strh r1, [r4, #0x0]
- add r1, r0, #0x0
- add r1, #0x8e
- strh r2, [r1, #0x0]
- add r1, r0, #0x0
- add r1, #0x90
- strb r3, [r1, #0x0]
- mov r1, #0x1
- add r0, #0x91
- strb r1, [r0, #0x0]
- pop {r3-r4}
- bx lr
- .balign 4
-
- thumb_func_start FUN_02026C88
-FUN_02026C88: ; 0x02026C88
- add r0, #0x8c
- ldrh r0, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02026C90
-FUN_02026C90: ; 0x02026C90
- add r0, #0x8e
- ldrh r0, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02026C98
-FUN_02026C98: ; 0x02026C98
- add r0, #0x90
- ldrb r0, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02026CA0
-FUN_02026CA0: ; 0x02026CA0
- add r0, #0x91
- ldrb r0, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02026CA8
-FUN_02026CA8: ; 0x02026CA8
- ldr r3, _02026CB0 ; =FUN_02022610
- mov r1, #0xc
- bx r3
- nop
-_02026CB0: .word FUN_02022610
-
- thumb_func_start FUN_02026CB4
-FUN_02026CB4: ; 0x02026CB4
- push {r3, lr}
- mov r1, #0xc
- bl FUN_02022610
- add r0, #0x50
- pop {r3, pc}
-
- thumb_func_start FUN_02026CC0
-FUN_02026CC0: ; 0x02026CC0
- add r0, #0x50
- bx lr
-
- thumb_func_start FUN_02026CC4
-FUN_02026CC4: ; 0x02026CC4
- ldr r3, _02026CCC ; =FUN_02022610
- mov r1, #0xc
- bx r3
- nop
-_02026CCC: .word FUN_02022610
-
- thumb_func_start FUN_02026CD0
-FUN_02026CD0: ; 0x02026CD0
- push {r3-r7, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- add r6, r2, #0x0
- add r0, r4, #0x0
- mov r1, #0x5
- mov r2, #0x0
- add r7, r3, #0x0
- bl FUN_020671BC
- add r2, r5, #0x0
- strh r0, [r5, #0x8]
- add r0, r4, #0x0
- mov r1, #0x74
- add r2, #0xa
- bl FUN_020671BC
- mov r1, #0x0
- add r0, r4, #0x0
- add r2, r1, #0x0
- bl FUN_020671BC
- str r0, [r5, #0x0]
- add r0, r4, #0x0
- mov r1, #0x7
- mov r2, #0x0
- bl FUN_020671BC
- str r0, [r5, #0x4]
- add r0, r4, #0x0
- mov r1, #0x70
- mov r2, #0x0
- bl FUN_020671BC
- add r1, r5, #0x0
- add r1, #0x33
- strb r0, [r1, #0x0]
- add r0, r5, #0x0
- add r0, #0x31
- strb r6, [r0, #0x0]
- add r0, r5, #0x0
- add r0, #0x32
- strb r7, [r0, #0x0]
- add r1, sp, #0x8
- mov r0, #0x10
- ldrsb r0, [r1, r0]
- add r5, #0x30
- strb r0, [r5, #0x0]
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02026D34
-FUN_02026D34: ; 0x02026D34
- push {r3-r6, lr}
- sub sp, #0xc
- add r4, r2, #0x0
- add r5, r0, #0x0
- add r6, r1, #0x0
- add r0, r4, #0x0
- add r1, sp, #0x4
- add r2, sp, #0x8
- bl MOD17_021DB858
- add r0, r4, #0x0
- bl MOD17_021DB7E8
- add r4, r0, #0x0
- mov r0, #0x1
- ldr r1, [sp, #0x4]
- lsl r0, r0, #0x8
- cmp r1, r0
- blt _02026D5E
- bl ErrorHandling
-_02026D5E:
- mov r0, #0x1
- ldr r1, [sp, #0x8]
- lsl r0, r0, #0x8
- cmp r1, r0
- blt _02026D6C
- bl ErrorHandling
-_02026D6C:
- mov r0, #0x7f
- mvn r0, r0
- cmp r4, r0
- bgt _02026D78
- bl ErrorHandling
-_02026D78:
- lsl r0, r4, #0x18
- asr r0, r0, #0x18
- str r0, [sp, #0x0]
- ldr r2, [sp, #0x4]
- ldr r3, [sp, #0x8]
- lsl r2, r2, #0x18
- lsl r3, r3, #0x18
- add r0, r5, #0x0
- add r1, r6, #0x0
- lsr r2, r2, #0x18
- lsr r3, r3, #0x18
- bl FUN_02026CD0
- add sp, #0xc
- pop {r3-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02026D98
-FUN_02026D98: ; 0x02026D98
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r0, r1, #0x0
- add r1, r5, #0x0
- add r4, r2, #0x0
- add r1, #0x20
- mov r2, #0x8
- bl FUN_02021EF0
- add r5, #0x34
- strb r4, [r5, #0x0]
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02026DB0
-FUN_02026DB0: ; 0x02026DB0
- strb r1, [r0, #0x0]
- ldr r1, _02026DC0 ; =0xFFFFFFF0
- strb r2, [r0, #0x1]
- strb r3, [r0, #0x2]
- add r1, sp
- ldrb r1, [r1, #0x10]
- strb r1, [r0, #0x3]
- bx lr
- .balign 4
-_02026DC0: .word 0xFFFFFFF0
-
- thumb_func_start FUN_02026DC4
-FUN_02026DC4: ; 0x02026DC4
- push {r4-r6, lr}
- add r4, r2, #0x0
- add r5, r0, #0x0
- add r6, r1, #0x0
- cmp r4, #0x3d
- blo _02026DD4
- bl ErrorHandling
-_02026DD4:
- lsr r2, r4, #0x1f
- lsl r1, r4, #0x1d
- sub r1, r1, r2
- mov r0, #0x1d
- ror r1, r0
- add r0, r2, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- lsl r0, r0, #0x1a
- lsr r1, r0, #0x18
- lsr r0, r4, #0x3
- lsl r0, r0, #0x18
- mov r2, #0xf
- lsr r0, r0, #0x16
- lsl r2, r1
- ldr r3, [r5, r0]
- mvn r2, r2
- and r2, r3
- str r2, [r5, r0]
- add r2, r6, #0x0
- ldr r3, [r5, r0]
- lsl r2, r1
- add r1, r3, #0x0
- orr r1, r2
- str r1, [r5, r0]
- pop {r4-r6, pc}
-
- thumb_func_start FUN_02026E08
-FUN_02026E08: ; 0x02026E08
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- cmp r4, #0x3d
- blo _02026E16
- bl ErrorHandling
-_02026E16:
- lsr r3, r4, #0x1f
- lsl r2, r4, #0x1d
- lsr r0, r4, #0x3
- lsl r0, r0, #0x18
- lsr r0, r0, #0x16
- sub r2, r2, r3
- mov r1, #0x1d
- ror r2, r1
- add r1, r3, r2
- lsl r1, r1, #0x18
- ldr r0, [r5, r0]
- lsr r1, r1, #0x18
- lsl r1, r1, #0x1a
- add r2, r0, #0x0
- lsr r1, r1, #0x18
- lsr r2, r1
- mov r0, #0xf
- and r0, r2
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- cmp r0, #0x9
- bls _02026E44
- mov r0, #0x9
-_02026E44:
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02026E48
-FUN_02026E48: ; 0x02026E48
- push {r4-r6, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- add r6, r2, #0x0
- cmp r4, #0x2
- blo _02026E58
- bl ErrorHandling
-_02026E58:
- lsr r2, r6, #0x1f
- lsl r1, r6, #0x1b
- sub r1, r1, r2
- mov r0, #0x1b
- ror r1, r0
- add r0, r2, r1
- lsl r0, r0, #0x18
- lsr r1, r0, #0x18
- lsr r0, r6, #0x5
- lsl r0, r0, #0x18
- mov r2, #0x1
- lsr r0, r0, #0x16
- lsl r2, r1
- ldr r3, [r5, r0]
- mvn r2, r2
- and r2, r3
- str r2, [r5, r0]
- add r2, r4, #0x0
- ldr r3, [r5, r0]
- lsl r2, r1
- add r1, r3, #0x0
- orr r1, r2
- str r1, [r5, r0]
- pop {r4-r6, pc}
-
- thumb_func_start FUN_02026E88
-FUN_02026E88: ; 0x02026E88
- lsr r2, r1, #0x5
- lsl r2, r2, #0x18
- lsr r2, r2, #0x16
- ldr r3, [r0, r2]
- lsr r2, r1, #0x1f
- lsl r1, r1, #0x1b
- sub r1, r1, r2
- mov r0, #0x1b
- ror r1, r0
- add r0, r2, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- add r1, r3, #0x0
- lsr r1, r0
- mov r0, #0x1
- and r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bx lr
- .balign 4
-
- thumb_func_start FUN_02026EB0
-FUN_02026EB0: ; 0x02026EB0
- push {r4-r6, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- add r6, r2, #0x0
- cmp r4, #0x12
- bls _02026EC0
- bl ErrorHandling
-_02026EC0:
- lsr r2, r6, #0x1f
- lsl r1, r6, #0x1e
- sub r1, r1, r2
- mov r0, #0x1e
- ror r1, r0
- add r0, r2, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- lsl r0, r0, #0x1b
- lsr r1, r0, #0x18
- lsr r0, r6, #0x2
- lsl r0, r0, #0x18
- mov r2, #0xff
- lsr r0, r0, #0x16
- lsl r2, r1
- ldr r3, [r5, r0]
- mvn r2, r2
- and r2, r3
- str r2, [r5, r0]
- add r2, r4, #0x0
- ldr r3, [r5, r0]
- lsl r2, r1
- add r1, r3, #0x0
- orr r1, r2
- str r1, [r5, r0]
- pop {r4-r6, pc}
-
- thumb_func_start FUN_02026EF4
-FUN_02026EF4: ; 0x02026EF4
- lsr r2, r1, #0x2
- lsl r2, r2, #0x18
- lsr r2, r2, #0x16
- ldr r0, [r0, r2]
- lsr r3, r1, #0x1f
- lsl r2, r1, #0x1e
- sub r2, r2, r3
- mov r1, #0x1e
- ror r2, r1
- add r1, r3, r2
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- lsl r1, r1, #0x1b
- lsr r1, r1, #0x18
- lsr r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bx lr
-
- thumb_func_start FUN_02026F18
-FUN_02026F18: ; 0x02026F18
- push {r4-r6, lr}
- mov r5, #0x0
- add r6, r0, #0x0
- add r4, r5, #0x0
-_02026F20:
- lsl r1, r4, #0x18
- add r0, r6, #0x0
- lsr r1, r1, #0x18
- bl FUN_02026EF4
- cmp r0, #0x12
- beq _02026F30
- add r5, r5, #0x1
-_02026F30:
- add r4, r4, #0x1
- cmp r4, #0x12
- blt _02026F20
- lsl r0, r5, #0x18
- lsr r0, r0, #0x18
- pop {r4-r6, pc}
-
- thumb_func_start FUN_02026F3C
-FUN_02026F3C: ; 0x02026F3C
- push {r3-r5, lr}
- add r5, r1, #0x0
- mov r1, #0x2
- add r4, r2, #0x0
- bl FUN_02068E14
- mov r1, #0x80
- strb r1, [r5, #0x0]
- mov r1, #0x28
- sub r1, r1, r0
- mov r0, #0x8d
- sub r0, r0, r1
- strb r0, [r4, #0x0]
- ldrb r0, [r4, #0x0]
- add r0, #0x28
- strb r0, [r4, #0x0]
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02026F60
-FUN_02026F60: ; 0x02026F60
- push {r3-r7, lr}
- add r7, r0, #0x0
- ldr r6, _02026FC8 ; =0x00001234
- mov r4, #0x0
- add r5, r7, #0x0
-_02026F6A:
- add r0, r5, #0x0
- mov r1, #0x0
- mov r2, #0x74
- bl Call_FillMemWithValue
- str r6, [r5, #0x0]
- add r4, r4, #0x1
- add r5, #0x74
- cmp r4, #0xb
- blt _02026F6A
- ldr r0, _02026FCC ; =0x000004FC
- mov r6, #0x0
- add r4, r7, r0
- add r5, r7, #0x0
-_02026F86:
- add r0, r4, #0x0
- mov r1, #0x0
- mov r2, #0x98
- bl Call_FillMemWithValue
- ldr r1, _02026FC8 ; =0x00001234
- ldr r0, _02026FCC ; =0x000004FC
- add r6, r6, #0x1
- str r1, [r5, r0]
- add r4, #0x98
- add r5, #0x98
- cmp r6, #0x5
- blt _02026F86
- ldr r0, _02026FD0 ; =0x000007F4
- mov r1, #0x0
- add r0, r7, r0
- mov r2, #0x40
- bl Call_FillMemWithValue
- ldr r5, _02026FD4 ; =0x0000081C
- mov r4, #0x0
- mov r6, #0x12
-_02026FB2:
- lsl r2, r4, #0x18
- add r0, r7, r5
- add r1, r6, #0x0
- lsr r2, r2, #0x18
- bl FUN_02026EB0
- add r4, r4, #0x1
- cmp r4, #0x12
- blt _02026FB2
- pop {r3-r7, pc}
- nop
-_02026FC8: .word 0x00001234
-_02026FCC: .word 0x000004FC
-_02026FD0: .word 0x000007F4
-_02026FD4: .word 0x0000081C
-
- thumb_func_start FUN_02026FD8
-FUN_02026FD8: ; 0x02026FD8
- ldr r0, _02026FDC ; =0x00000834
- bx lr
- .balign 4
-_02026FDC: .word 0x00000834
-
- thumb_func_start FUN_02026FE0
-FUN_02026FE0: ; 0x02026FE0
- mov r0, #0x74
- bx lr
-
- thumb_func_start FUN_02026FE4
-FUN_02026FE4: ; 0x02026FE4
- mov r0, #0x98
- bx lr
-
- thumb_func_start FUN_02026FE8
-FUN_02026FE8: ; 0x02026FE8
- push {r4, lr}
- mov r1, #0x98
- bl FUN_02016998
- mov r1, #0x0
- mov r2, #0x98
- add r4, r0, #0x0
- bl Call_FillMemWithValue
- ldr r0, _02027004 ; =0x00001234
- str r0, [r4, #0x0]
- add r0, r4, #0x0
- pop {r4, pc}
- nop
-_02027004: .word 0x00001234
-
- thumb_func_start FUN_02027008
-FUN_02027008: ; 0x02027008
- push {r4-r6, lr}
- add r6, r1, #0x0
- add r5, r0, #0x0
- cmp r6, #0xb
- blt _02027016
- bl ErrorHandling
-_02027016:
- mov r0, #0x74
- add r4, r6, #0x0
- mul r4, r0
- ldr r1, [r5, r4]
- ldr r0, _0202703C ; =0x00001234
- cmp r1, r0
- beq _0202702A
- ldr r0, _02027040 ; =0x00002345
- cmp r1, r0
- bne _0202702E
-_0202702A:
- mov r0, #0x1
- b _02027030
-_0202702E:
- mov r0, #0x0
-_02027030:
- cmp r0, #0x0
- bne _02027038
- bl ErrorHandling
-_02027038:
- add r0, r5, r4
- pop {r4-r6, pc}
- .balign 4
-_0202703C: .word 0x00001234
-_02027040: .word 0x00002345
-
- thumb_func_start FUN_02027044
-FUN_02027044: ; 0x02027044
- push {r4-r6, lr}
- add r6, r1, #0x0
- add r5, r0, #0x0
- cmp r6, #0x5
- blt _02027052
- bl ErrorHandling
-_02027052:
- mov r0, #0x98
- add r4, r6, #0x0
- mul r4, r0
- ldr r0, _02027080 ; =0x000004FC
- add r1, r5, r4
- ldr r1, [r1, r0]
- ldr r0, _02027084 ; =0x00001234
- cmp r1, r0
- beq _0202706A
- ldr r0, _02027088 ; =0x00002345
- cmp r1, r0
- bne _0202706E
-_0202706A:
- mov r0, #0x1
- b _02027070
-_0202706E:
- mov r0, #0x0
-_02027070:
- cmp r0, #0x0
- bne _02027078
- bl ErrorHandling
-_02027078:
- ldr r0, _02027080 ; =0x000004FC
- add r0, r5, r0
- add r0, r0, r4
- pop {r4-r6, pc}
- .balign 4
-_02027080: .word 0x000004FC
-_02027084: .word 0x00001234
-_02027088: .word 0x00002345
-
- thumb_func_start FUN_0202708C
-FUN_0202708C: ; 0x0202708C
- ldr r1, _02027094 ; =0x000007F4
- add r0, r0, r1
- bx lr
- nop
-_02027094: .word 0x000007F4
-
- thumb_func_start FUN_02027098
-FUN_02027098: ; 0x02027098
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- cmp r4, #0xb
- blt _020270A6
- bl ErrorHandling
-_020270A6:
- mov r0, #0x74
- mul r0, r4
- add r0, r5, r0
- bl FUN_0202729C
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_020270B4
-FUN_020270B4: ; 0x020270B4
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- cmp r4, #0x5
- blt _020270C2
- bl ErrorHandling
-_020270C2:
- ldr r0, _020270D4 ; =0x000004FC
- add r1, r5, r0
- mov r0, #0x98
- mul r0, r4
- add r0, r1, r0
- bl FUN_020276D8
- pop {r3-r5, pc}
- nop
-_020270D4: .word 0x000004FC
-
- thumb_func_start FUN_020270D8
-FUN_020270D8: ; 0x020270D8
- push {r4-r6, lr}
- add r6, r1, #0x0
- add r5, r2, #0x0
- mov r4, #0x1
- bl FUN_02027114
- cmp r6, #0x3d
- bhs _020270F2
- add r0, r0, r5
- cmp r0, #0x9
- bls _020270FA
- mov r4, #0x0
- b _020270FA
-_020270F2:
- add r0, r0, r5
- cmp r0, #0x1
- bls _020270FA
- mov r4, #0x0
-_020270FA:
- add r0, r4, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02027100
-FUN_02027100: ; 0x02027100
- push {r3, lr}
- bl FUN_0202714C
- cmp r0, #0x12
- beq _0202710E
- mov r0, #0x1
- pop {r3, pc}
-_0202710E:
- mov r0, #0x0
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02027114
-FUN_02027114: ; 0x02027114
- push {r3-r5, lr}
- add r5, r1, #0x0
- add r4, r0, #0x0
- cmp r5, #0x64
- blo _02027122
- bl ErrorHandling
-_02027122:
- cmp r5, #0x3d
- bhs _02027132
- lsl r1, r5, #0x18
- add r0, r4, #0x0
- lsr r1, r1, #0x18
- bl FUN_02026E08
- pop {r3-r5, pc}
-_02027132:
- bhs _02027138
- bl ErrorHandling
-_02027138:
- sub r5, #0x3d
- lsl r0, r5, #0x18
- lsr r1, r0, #0x18
- add r4, #0x20
- lsl r1, r1, #0x18
- add r0, r4, #0x0
- lsr r1, r1, #0x18
- bl FUN_02026E88
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0202714C
-FUN_0202714C: ; 0x0202714C
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- cmp r4, #0x12
- blo _0202715A
- bl ErrorHandling
-_0202715A:
- add r5, #0x28
- lsl r1, r4, #0x18
- add r0, r5, #0x0
- lsr r1, r1, #0x18
- bl FUN_02026EF4
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02027168
-FUN_02027168: ; 0x02027168
- push {r4-r6, lr}
- mov r5, #0x0
- add r6, r0, #0x0
- add r4, r5, #0x0
-_02027170:
- add r0, r6, #0x0
- add r1, r4, #0x0
- bl FUN_02027114
- add r4, r4, #0x1
- add r5, r5, r0
- cmp r4, #0x64
- blt _02027170
- add r0, r5, #0x0
- pop {r4-r6, pc}
-
- thumb_func_start FUN_02027184
-FUN_02027184: ; 0x02027184
- push {r4-r6, lr}
- mov r5, #0x0
- add r6, r0, #0x0
- add r4, r5, #0x0
-_0202718C:
- add r0, r6, #0x0
- add r1, r4, #0x0
- bl FUN_0202714C
- cmp r0, #0x12
- beq _0202719A
- add r5, r5, #0x1
-_0202719A:
- add r4, r4, #0x1
- cmp r4, #0x12
- blt _0202718C
- add r0, r5, #0x0
- pop {r4-r6, pc}
-
- thumb_func_start FUN_020271A4
-FUN_020271A4: ; 0x020271A4
- push {r4-r6, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- add r6, r2, #0x0
- cmp r4, #0x64
- blo _020271B4
- bl ErrorHandling
-_020271B4:
- cmp r4, #0x3d
- bhs _020271DA
- lsl r1, r4, #0x18
- add r0, r5, #0x0
- lsr r1, r1, #0x18
- bl FUN_02026E08
- add r0, r0, r6
- lsl r0, r0, #0x18
- lsr r1, r0, #0x18
- cmp r1, #0x9
- bls _020271CE
- mov r1, #0x9
-_020271CE:
- lsl r2, r4, #0x18
- add r0, r5, #0x0
- lsr r2, r2, #0x18
- bl FUN_02026DC4
- pop {r4-r6, pc}
-_020271DA:
- add r0, r5, #0x0
- lsl r1, r4, #0x18
- add r0, #0x20
- lsr r1, r1, #0x18
- bl FUN_02026E88
- add r0, r0, r6
- lsl r0, r0, #0x18
- lsr r6, r0, #0x18
- cmp r6, #0x1
- bls _020271F2
- mov r6, #0x1
-_020271F2:
- cmp r4, #0x3d
- bhs _020271FA
- bl ErrorHandling
-_020271FA:
- sub r4, #0x3d
- lsl r0, r4, #0x18
- lsr r2, r0, #0x18
- add r5, #0x20
- lsl r2, r2, #0x18
- add r0, r5, #0x0
- add r1, r6, #0x0
- lsr r2, r2, #0x18
- bl FUN_02026E48
- pop {r4-r6, pc}
-
- thumb_func_start FUN_02027210
-FUN_02027210: ; 0x02027210
- push {r4-r6, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- add r6, r2, #0x0
- cmp r4, #0x64
- blo _02027220
- bl ErrorHandling
-_02027220:
- cmp r4, #0x3d
- bhs _02027248
- lsl r1, r4, #0x18
- add r0, r5, #0x0
- lsr r1, r1, #0x18
- bl FUN_02026E08
- cmp r0, r6
- bls _0202723A
- sub r0, r0, r6
- lsl r0, r0, #0x18
- lsr r1, r0, #0x18
- b _0202723C
-_0202723A:
- mov r1, #0x0
-_0202723C:
- lsl r2, r4, #0x18
- add r0, r5, #0x0
- lsr r2, r2, #0x18
- bl FUN_02026DC4
- pop {r4-r6, pc}
-_02027248:
- bhs _0202724E
- bl ErrorHandling
-_0202724E:
- sub r4, #0x3d
- lsl r0, r4, #0x18
- lsr r2, r0, #0x18
- add r5, #0x20
- lsl r2, r2, #0x18
- add r0, r5, #0x0
- mov r1, #0x0
- lsr r2, r2, #0x18
- bl FUN_02026E48
- pop {r4-r6, pc}
-
- thumb_func_start FUN_02027264
-FUN_02027264: ; 0x02027264
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- cmp r4, #0x12
- blo _02027272
- bl ErrorHandling
-_02027272:
- add r0, r5, #0x0
- lsl r1, r4, #0x18
- add r0, #0x28
- lsr r1, r1, #0x18
- bl FUN_02026EF4
- cmp r0, #0x12
- bne _02027298
- add r0, r5, #0x0
- add r0, #0x28
- bl FUN_02026F18
- lsl r2, r4, #0x18
- add r5, #0x28
- add r1, r0, #0x0
- add r0, r5, #0x0
- lsr r2, r2, #0x18
- bl FUN_02026EB0
-_02027298:
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0202729C
-FUN_0202729C: ; 0x0202729C
- push {r4, lr}
- add r4, r0, #0x0
- ldr r1, [r4, #0x0]
- ldr r0, _020272CC ; =0x00001234
- cmp r1, r0
- beq _020272AE
- ldr r0, _020272D0 ; =0x00002345
- cmp r1, r0
- bne _020272B2
-_020272AE:
- mov r0, #0x1
- b _020272B4
-_020272B2:
- mov r0, #0x0
-_020272B4:
- cmp r0, #0x0
- bne _020272BC
- bl ErrorHandling
-_020272BC:
- ldr r1, [r4, #0x0]
- ldr r0, _020272D0 ; =0x00002345
- cmp r1, r0
- bne _020272C8
- mov r0, #0x1
- pop {r4, pc}
-_020272C8:
- mov r0, #0x0
- pop {r4, pc}
- .balign 4
-_020272CC: .word 0x00001234
-_020272D0: .word 0x00002345
-
- thumb_func_start FUN_020272D4
-FUN_020272D4: ; 0x020272D4
- push {r4, lr}
- add r4, r0, #0x0
- ldr r1, [r4, #0x0]
- ldr r0, _02027304 ; =0x00001234
- cmp r1, r0
- beq _020272E6
- ldr r0, _02027308 ; =0x00002345
- cmp r1, r0
- bne _020272EA
-_020272E6:
- mov r0, #0x1
- b _020272EC
-_020272EA:
- mov r0, #0x0
-_020272EC:
- cmp r0, #0x0
- bne _020272F4
- bl ErrorHandling
-_020272F4:
- ldr r0, _02027308 ; =0x00002345
- str r0, [r4, #0x0]
- ldr r0, _0202730C ; =0x020ECAC4
- add r4, #0x71
- ldrb r0, [r0, #0x0]
- strb r0, [r4, #0x0]
- pop {r4, pc}
- nop
-_02027304: .word 0x00001234
-_02027308: .word 0x00002345
-_0202730C: .word 0x020ECAC4
-
- thumb_func_start FUN_02027310
-FUN_02027310: ; 0x02027310
- push {r4, lr}
- add r4, r0, #0x0
- ldr r1, [r4, #0x0]
- ldr r0, _02027340 ; =0x00001234
- cmp r1, r0
- beq _02027322
- ldr r0, _02027344 ; =0x00002345
- cmp r1, r0
- bne _02027326
-_02027322:
- mov r0, #0x1
- b _02027328
-_02027326:
- mov r0, #0x0
-_02027328:
- cmp r0, #0x0
- bne _02027330
- bl ErrorHandling
-_02027330:
- add r0, r4, #0x0
- mov r1, #0x0
- mov r2, #0x74
- bl Call_FillMemWithValue
- ldr r0, _02027340 ; =0x00001234
- str r0, [r4, #0x0]
- pop {r4, pc}
- .balign 4
-_02027340: .word 0x00001234
-_02027344: .word 0x00002345
-
- thumb_func_start FUN_02027348
-FUN_02027348: ; 0x02027348
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- ldr r1, [r5, #0x0]
- ldr r0, _02027378 ; =0x00001234
- add r6, r2, #0x0
- cmp r1, r0
- beq _0202735E
- ldr r0, _0202737C ; =0x00002345
- cmp r1, r0
- bne _02027362
-_0202735E:
- mov r0, #0x1
- b _02027364
-_02027362:
- mov r0, #0x0
-_02027364:
- cmp r0, #0x0
- bne _0202736C
- bl ErrorHandling
-_0202736C:
- add r0, r5, #0x4
- add r1, r4, #0x0
- add r2, r6, #0x0
- bl FUN_02026D34
- pop {r4-r6, pc}
- .balign 4
-_02027378: .word 0x00001234
-_0202737C: .word 0x00002345
-
- thumb_func_start FUN_02027380
-FUN_02027380: ; 0x02027380
- push {r4-r7, lr}
- sub sp, #0x14
- add r4, r1, #0x0
- add r5, r0, #0x0
- ldr r0, [r4, #0x4]
- add r6, r2, #0x0
- bl FUN_02013ECC
- add r1, sp, #0xc
- strh r0, [r1, #0x0]
- lsr r0, r0, #0x10
- strh r0, [r1, #0x2]
- ldrh r0, [r1, #0x0]
- strh r0, [r1, #0x4]
- ldrh r0, [r1, #0x2]
- strh r0, [r1, #0x6]
- ldr r0, [r4, #0x4]
- bl FUN_02013F00
- str r0, [sp, #0x8]
- cmp r6, #0xa
- blt _020273B0
- bl ErrorHandling
-_020273B0:
- add r1, sp, #0xc
- mov r0, #0x4
- ldrsh r1, [r1, r0]
- add r0, #0xfc
- cmp r1, r0
- blt _020273C0
- bl ErrorHandling
-_020273C0:
- add r1, sp, #0xc
- mov r0, #0x6
- ldrsh r7, [r1, r0]
- add r0, #0xfa
- cmp r7, r0
- blt _020273D0
- bl ErrorHandling
-_020273D0:
- mov r1, #0x7f
- ldr r0, [sp, #0x8]
- mvn r1, r1
- cmp r0, r1
- bgt _020273DE
- bl ErrorHandling
-_020273DE:
- mov r0, #0x1
- lsl r0, r6
- ldr r1, [r5, #0x3c]
- str r0, [sp, #0x4]
- tst r0, r1
- beq _020273EE
- bl ErrorHandling
-_020273EE:
- ldr r1, [r5, #0x0]
- ldr r0, _02027440 ; =0x00001234
- cmp r1, r0
- beq _020273FC
- ldr r0, _02027444 ; =0x00002345
- cmp r1, r0
- bne _02027400
-_020273FC:
- mov r0, #0x1
- b _02027402
-_02027400:
- mov r0, #0x0
-_02027402:
- cmp r0, #0x0
- bne _0202740A
- bl ErrorHandling
-_0202740A:
- ldr r0, [sp, #0x8]
- add r1, r5, #0x0
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x0]
- add r3, sp, #0xc
- mov r2, #0x4
- ldrsh r2, [r3, r2]
- lsl r3, r7, #0x18
- add r1, #0x48
- lsl r0, r6, #0x2
- add r0, r1, r0
- ldr r1, [r4, #0x0]
- lsl r2, r2, #0x18
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- lsr r2, r2, #0x18
- lsr r3, r3, #0x18
- bl FUN_02026DB0
- ldr r1, [r5, #0x3c]
- ldr r0, [sp, #0x4]
- orr r0, r1
- str r0, [r5, #0x3c]
- add sp, #0x14
- pop {r4-r7, pc}
- nop
-_02027440: .word 0x00001234
-_02027444: .word 0x00002345
-
- thumb_func_start FUN_02027448
-FUN_02027448: ; 0x02027448
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- ldr r1, [r5, #0x0]
- ldr r0, _02027470 ; =0x00001234
- cmp r1, r0
- beq _0202745C
- ldr r0, _02027474 ; =0x00002345
- cmp r1, r0
- bne _02027460
-_0202745C:
- mov r0, #0x1
- b _02027462
-_02027460:
- mov r0, #0x0
-_02027462:
- cmp r0, #0x0
- bne _0202746A
- bl ErrorHandling
-_0202746A:
- add r5, #0x70
- strb r4, [r5, #0x0]
- pop {r3-r5, pc}
- .balign 4
-_02027470: .word 0x00001234
-_02027474: .word 0x00002345
-
- thumb_func_start FUN_02027478
-FUN_02027478: ; 0x02027478
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- ldr r1, [r5, #0x0]
- ldr r0, _020274B0 ; =0x00001234
- cmp r1, r0
- beq _0202748C
- ldr r0, _020274B4 ; =0x00002345
- cmp r1, r0
- bne _02027490
-_0202748C:
- mov r0, #0x1
- b _02027492
-_02027490:
- mov r0, #0x0
-_02027492:
- cmp r0, #0x0
- bne _0202749A
- bl ErrorHandling
-_0202749A:
- add r0, r5, #0x0
- add r0, #0x40
- bl FUN_02013724
- add r5, #0x40
- add r0, r5, #0x0
- mov r1, #0x0
- add r2, r4, #0x0
- bl FUN_02013998
- pop {r3-r5, pc}
- .balign 4
-_020274B0: .word 0x00001234
-_020274B4: .word 0x00002345
-
- thumb_func_start FUN_020274B8
-FUN_020274B8: ; 0x020274B8
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- ldr r1, [r5, #0x0]
- ldr r0, _020274E8 ; =0x00001234
- cmp r1, r0
- beq _020274CC
- ldr r0, _020274EC ; =0x00002345
- cmp r1, r0
- bne _020274D0
-_020274CC:
- mov r0, #0x1
- b _020274D2
-_020274D0:
- mov r0, #0x0
-_020274D2:
- cmp r0, #0x0
- bne _020274DA
- bl ErrorHandling
-_020274DA:
- add r0, r5, #0x0
- add r1, r4, #0x0
- mov r2, #0x74
- bl memcpy
- pop {r3-r5, pc}
- nop
-_020274E8: .word 0x00001234
-_020274EC: .word 0x00002345
-
- thumb_func_start FUN_020274F0
-FUN_020274F0: ; 0x020274F0
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- ldr r1, [r5, #0x0]
- ldr r0, _02027520 ; =0x00001234
- add r6, r2, #0x0
- cmp r1, r0
- beq _02027506
- ldr r0, _02027524 ; =0x00002345
- cmp r1, r0
- bne _0202750A
-_02027506:
- mov r0, #0x1
- b _0202750C
-_0202750A:
- mov r0, #0x0
-_0202750C:
- cmp r0, #0x0
- bne _02027514
- bl ErrorHandling
-_02027514:
- add r0, r5, #0x4
- add r1, r4, #0x0
- add r2, r6, #0x0
- bl FUN_02026D98
- pop {r4-r6, pc}
- .balign 4
-_02027520: .word 0x00001234
-_02027524: .word 0x00002345
-
- thumb_func_start FUN_02027528
-FUN_02027528: ; 0x02027528
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- cmp r4, #0xa
- blt _02027536
- bl ErrorHandling
-_02027536:
- ldr r1, [r5, #0x0]
- ldr r0, _0202755C ; =0x00001234
- cmp r1, r0
- beq _02027544
- ldr r0, _02027560 ; =0x00002345
- cmp r1, r0
- bne _02027548
-_02027544:
- mov r0, #0x1
- b _0202754A
-_02027548:
- mov r0, #0x0
-_0202754A:
- cmp r0, #0x0
- bne _02027552
- bl ErrorHandling
-_02027552:
- mov r0, #0x1
- ldr r1, [r5, #0x3c]
- lsl r0, r4
- and r0, r1
- pop {r3-r5, pc}
- .balign 4
-_0202755C: .word 0x00001234
-_02027560: .word 0x00002345
-
- thumb_func_start FUN_02027564
-FUN_02027564: ; 0x02027564
- push {r4, lr}
- add r4, r0, #0x0
- ldr r1, [r4, #0x0]
- ldr r0, _02027588 ; =0x00001234
- cmp r1, r0
- beq _02027576
- ldr r0, _0202758C ; =0x00002345
- cmp r1, r0
- bne _0202757A
-_02027576:
- mov r0, #0x1
- b _0202757C
-_0202757A:
- mov r0, #0x0
-_0202757C:
- cmp r0, #0x0
- bne _02027584
- bl ErrorHandling
-_02027584:
- add r0, r4, #0x4
- pop {r4, pc}
- .balign 4
-_02027588: .word 0x00001234
-_0202758C: .word 0x00002345
-
- thumb_func_start FUN_02027590
-FUN_02027590: ; 0x02027590
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- cmp r4, #0xa
- blt _0202759E
- bl ErrorHandling
-_0202759E:
- mov r0, #0x1
- ldr r1, [r5, #0x3c]
- lsl r0, r4
- tst r0, r1
- bne _020275AC
- bl ErrorHandling
-_020275AC:
- ldr r1, [r5, #0x0]
- ldr r0, _020275D0 ; =0x00001234
- cmp r1, r0
- beq _020275BA
- ldr r0, _020275D4 ; =0x00002345
- cmp r1, r0
- bne _020275BE
-_020275BA:
- mov r0, #0x1
- b _020275C0
-_020275BE:
- mov r0, #0x0
-_020275C0:
- cmp r0, #0x0
- bne _020275C8
- bl ErrorHandling
-_020275C8:
- add r5, #0x48
- lsl r0, r4, #0x2
- add r0, r5, r0
- pop {r3-r5, pc}
- .balign 4
-_020275D0: .word 0x00001234
-_020275D4: .word 0x00002345
-
- thumb_func_start FUN_020275D8
-FUN_020275D8: ; 0x020275D8
- push {r4, lr}
- add r4, r0, #0x0
- ldr r1, [r4, #0x0]
- ldr r0, _02027600 ; =0x00001234
- cmp r1, r0
- beq _020275EA
- ldr r0, _02027604 ; =0x00002345
- cmp r1, r0
- bne _020275EE
-_020275EA:
- mov r0, #0x1
- b _020275F0
-_020275EE:
- mov r0, #0x0
-_020275F0:
- cmp r0, #0x0
- bne _020275F8
- bl ErrorHandling
-_020275F8:
- add r0, r4, #0x4
- bl FUN_02027C84
- pop {r4, pc}
- .balign 4
-_02027600: .word 0x00001234
-_02027604: .word 0x00002345
-
- thumb_func_start FUN_02027608
-FUN_02027608: ; 0x02027608
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- ldr r1, [r5, #0x0]
- ldr r0, _02027634 ; =0x00001234
- cmp r1, r0
- beq _0202761C
- ldr r0, _02027638 ; =0x00002345
- cmp r1, r0
- bne _02027620
-_0202761C:
- mov r0, #0x1
- b _02027622
-_02027620:
- mov r0, #0x0
-_02027622:
- cmp r0, #0x0
- bne _0202762A
- bl ErrorHandling
-_0202762A:
- add r0, r5, #0x4
- add r1, r4, #0x0
- bl FUN_02027C88
- pop {r3-r5, pc}
- .balign 4
-_02027634: .word 0x00001234
-_02027638: .word 0x00002345
-
- thumb_func_start FUN_0202763C
-FUN_0202763C: ; 0x0202763C
- push {r4, lr}
- add r4, r0, #0x0
- ldr r1, [r4, #0x0]
- ldr r0, _02027664 ; =0x00001234
- cmp r1, r0
- beq _0202764E
- ldr r0, _02027668 ; =0x00002345
- cmp r1, r0
- bne _02027652
-_0202764E:
- mov r0, #0x1
- b _02027654
-_02027652:
- mov r0, #0x0
-_02027654:
- cmp r0, #0x0
- bne _0202765C
- bl ErrorHandling
-_0202765C:
- add r0, r4, #0x4
- bl FUN_02027C98
- pop {r4, pc}
- .balign 4
-_02027664: .word 0x00001234
-_02027668: .word 0x00002345
-
- thumb_func_start FUN_0202766C
-FUN_0202766C: ; 0x0202766C
- push {r4, lr}
- add r4, r0, #0x0
- ldr r1, [r4, #0x0]
- ldr r0, _02027694 ; =0x00001234
- cmp r1, r0
- beq _0202767E
- ldr r0, _02027698 ; =0x00002345
- cmp r1, r0
- bne _02027682
-_0202767E:
- mov r0, #0x1
- b _02027684
-_02027682:
- mov r0, #0x0
-_02027684:
- cmp r0, #0x0
- bne _0202768C
- bl ErrorHandling
-_0202768C:
- add r4, #0x70
- ldrb r0, [r4, #0x0]
- pop {r4, pc}
- nop
-_02027694: .word 0x00001234
-_02027698: .word 0x00002345
-
- thumb_func_start FUN_0202769C
-FUN_0202769C: ; 0x0202769C
- ldr r3, _020276A4 ; =FUN_02013918
- add r0, #0x40
- mov r1, #0x0
- bx r3
- .balign 4
-_020276A4: .word FUN_02013918
-
- thumb_func_start FUN_020276A8
-FUN_020276A8: ; 0x020276A8
- push {r4, lr}
- add r4, r0, #0x0
- ldr r1, [r4, #0x0]
- ldr r0, _020276D0 ; =0x00001234
- cmp r1, r0
- beq _020276BA
- ldr r0, _020276D4 ; =0x00002345
- cmp r1, r0
- bne _020276BE
-_020276BA:
- mov r0, #0x1
- b _020276C0
-_020276BE:
- mov r0, #0x0
-_020276C0:
- cmp r0, #0x0
- bne _020276C8
- bl ErrorHandling
-_020276C8:
- add r4, #0x71
- ldrb r0, [r4, #0x0]
- pop {r4, pc}
- nop
-_020276D0: .word 0x00001234
-_020276D4: .word 0x00002345
-
- thumb_func_start FUN_020276D8
-FUN_020276D8: ; 0x020276D8
- push {r4, lr}
- add r4, r0, #0x0
- ldr r1, [r4, #0x0]
- ldr r0, _02027708 ; =0x00001234
- cmp r1, r0
- beq _020276EA
- ldr r0, _0202770C ; =0x00002345
- cmp r1, r0
- bne _020276EE
-_020276EA:
- mov r0, #0x1
- b _020276F0
-_020276EE:
- mov r0, #0x0
-_020276F0:
- cmp r0, #0x0
- bne _020276F8
- bl ErrorHandling
-_020276F8:
- ldr r1, [r4, #0x0]
- ldr r0, _0202770C ; =0x00002345
- cmp r1, r0
- bne _02027704
- mov r0, #0x1
- pop {r4, pc}
-_02027704:
- mov r0, #0x0
- pop {r4, pc}
- .balign 4
-_02027708: .word 0x00001234
-_0202770C: .word 0x00002345
-
- thumb_func_start FUN_02027710
-FUN_02027710: ; 0x02027710
- push {r4, lr}
- add r4, r0, #0x0
- ldr r1, [r4, #0x0]
- ldr r0, _02027738 ; =0x00001234
- cmp r1, r0
- beq _02027722
- ldr r0, _0202773C ; =0x00002345
- cmp r1, r0
- bne _02027726
-_02027722:
- mov r0, #0x1
- b _02027728
-_02027726:
- mov r0, #0x0
-_02027728:
- cmp r0, #0x0
- bne _02027730
- bl ErrorHandling
-_02027730:
- ldr r0, _0202773C ; =0x00002345
- str r0, [r4, #0x0]
- pop {r4, pc}
- nop
-_02027738: .word 0x00001234
-_0202773C: .word 0x00002345
-
- thumb_func_start FUN_02027740
-FUN_02027740: ; 0x02027740
- push {r4, lr}
- add r4, r0, #0x0
- ldr r1, [r4, #0x0]
- ldr r0, _02027770 ; =0x00001234
- cmp r1, r0
- beq _02027752
- ldr r0, _02027774 ; =0x00002345
- cmp r1, r0
- bne _02027756
-_02027752:
- mov r0, #0x1
- b _02027758
-_02027756:
- mov r0, #0x0
-_02027758:
- cmp r0, #0x0
- bne _02027760
- bl ErrorHandling
-_02027760:
- add r0, r4, #0x0
- mov r1, #0x0
- mov r2, #0x98
- bl Call_FillMemWithValue
- ldr r0, _02027770 ; =0x00001234
- str r0, [r4, #0x0]
- pop {r4, pc}
- .balign 4
-_02027770: .word 0x00001234
-_02027774: .word 0x00002345
-
- thumb_func_start FUN_02027778
-FUN_02027778: ; 0x02027778
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- ldr r1, [r5, #0x0]
- ldr r0, _020277AC ; =0x00001234
- add r6, r2, #0x0
- cmp r1, r0
- beq _0202778E
- ldr r0, _020277B0 ; =0x00002345
- cmp r1, r0
- bne _02027792
-_0202778E:
- mov r0, #0x1
- b _02027794
-_02027792:
- mov r0, #0x0
-_02027794:
- cmp r0, #0x0
- bne _0202779C
- bl ErrorHandling
-_0202779C:
- add r5, #0x8
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r2, r6, #0x0
- bl FUN_02026D34
- pop {r4-r6, pc}
- nop
-_020277AC: .word 0x00001234
-_020277B0: .word 0x00002345
-
- thumb_func_start FUN_020277B4
-FUN_020277B4: ; 0x020277B4
- push {r4-r7, lr}
- sub sp, #0x14
- add r4, r1, #0x0
- add r5, r0, #0x0
- ldr r0, [r4, #0x4]
- add r6, r2, #0x0
- bl FUN_02013ECC
- add r1, sp, #0xc
- strh r0, [r1, #0x0]
- lsr r0, r0, #0x10
- strh r0, [r1, #0x2]
- ldrh r0, [r1, #0x0]
- strh r0, [r1, #0x4]
- ldrh r0, [r1, #0x2]
- strh r0, [r1, #0x6]
- ldr r0, [r4, #0x4]
- bl FUN_02013F00
- str r0, [sp, #0x8]
- cmp r6, #0x14
- blt _020277E4
- bl ErrorHandling
-_020277E4:
- add r1, sp, #0xc
- mov r0, #0x4
- ldrsh r1, [r1, r0]
- add r0, #0xfc
- cmp r1, r0
- blt _020277F4
- bl ErrorHandling
-_020277F4:
- add r1, sp, #0xc
- mov r0, #0x6
- ldrsh r7, [r1, r0]
- add r0, #0xfa
- cmp r7, r0
- blt _02027804
- bl ErrorHandling
-_02027804:
- mov r1, #0x7f
- ldr r0, [sp, #0x8]
- mvn r1, r1
- cmp r0, r1
- bgt _02027812
- bl ErrorHandling
-_02027812:
- mov r0, #0x1
- lsl r0, r6
- ldr r1, [r5, #0x40]
- str r0, [sp, #0x4]
- tst r0, r1
- beq _02027822
- bl ErrorHandling
-_02027822:
- ldr r1, [r5, #0x0]
- ldr r0, _02027874 ; =0x00001234
- cmp r1, r0
- beq _02027830
- ldr r0, _02027878 ; =0x00002345
- cmp r1, r0
- bne _02027834
-_02027830:
- mov r0, #0x1
- b _02027836
-_02027834:
- mov r0, #0x0
-_02027836:
- cmp r0, #0x0
- bne _0202783E
- bl ErrorHandling
-_0202783E:
- ldr r0, [sp, #0x8]
- add r1, r5, #0x0
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x0]
- add r3, sp, #0xc
- mov r2, #0x4
- ldrsh r2, [r3, r2]
- lsl r3, r7, #0x18
- add r1, #0x44
- lsl r0, r6, #0x2
- add r0, r1, r0
- ldr r1, [r4, #0x0]
- lsl r2, r2, #0x18
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- lsr r2, r2, #0x18
- lsr r3, r3, #0x18
- bl FUN_02026DB0
- ldr r1, [r5, #0x40]
- ldr r0, [sp, #0x4]
- orr r0, r1
- str r0, [r5, #0x40]
- add sp, #0x14
- pop {r4-r7, pc}
- nop
-_02027874: .word 0x00001234
-_02027878: .word 0x00002345
-
- thumb_func_start FUN_0202787C
-FUN_0202787C: ; 0x0202787C
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- ldr r1, [r5, #0x0]
- ldr r0, _020278A4 ; =0x00001234
- cmp r1, r0
- beq _02027890
- ldr r0, _020278A8 ; =0x00002345
- cmp r1, r0
- bne _02027894
-_02027890:
- mov r0, #0x1
- b _02027896
-_02027894:
- mov r0, #0x0
-_02027896:
- cmp r0, #0x0
- bne _0202789E
- bl ErrorHandling
-_0202789E:
- add r5, #0x94
- strb r4, [r5, #0x0]
- pop {r3-r5, pc}
- .balign 4
-_020278A4: .word 0x00001234
-_020278A8: .word 0x00002345
-
- thumb_func_start FUN_020278AC
-FUN_020278AC: ; 0x020278AC
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- ldr r1, [r5, #0x0]
- ldr r0, _020278D4 ; =0x00001234
- cmp r1, r0
- beq _020278C0
- ldr r0, _020278D8 ; =0x00002345
- cmp r1, r0
- bne _020278C4
-_020278C0:
- mov r0, #0x1
- b _020278C6
-_020278C4:
- mov r0, #0x0
-_020278C6:
- cmp r0, #0x0
- bne _020278CE
- bl ErrorHandling
-_020278CE:
- str r4, [r5, #0x4]
- pop {r3-r5, pc}
- nop
-_020278D4: .word 0x00001234
-_020278D8: .word 0x00002345
-
- thumb_func_start FUN_020278DC
-FUN_020278DC: ; 0x020278DC
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- ldr r1, [r5, #0x0]
- ldr r0, _0202790C ; =0x00001234
- cmp r1, r0
- beq _020278F0
- ldr r0, _02027910 ; =0x00002345
- cmp r1, r0
- bne _020278F4
-_020278F0:
- mov r0, #0x1
- b _020278F6
-_020278F4:
- mov r0, #0x0
-_020278F6:
- cmp r0, #0x0
- bne _020278FE
- bl ErrorHandling
-_020278FE:
- add r0, r5, #0x0
- add r1, r4, #0x0
- mov r2, #0x98
- bl memcpy
- pop {r3-r5, pc}
- nop
-_0202790C: .word 0x00001234
-_02027910: .word 0x00002345
-
- thumb_func_start FUN_02027914
-FUN_02027914: ; 0x02027914
- push {r4-r6, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- add r4, r1, #0x0
- ldr r1, [r5, #0x0]
- ldr r0, _0202795C ; =0x00001234
- add r6, r2, #0x0
- cmp r1, r0
- beq _0202792C
- ldr r0, _02027960 ; =0x00002345
- cmp r1, r0
- bne _02027930
-_0202792C:
- mov r0, #0x1
- b _02027932
-_02027930:
- mov r0, #0x0
-_02027932:
- cmp r0, #0x0
- bne _0202793A
- bl ErrorHandling
-_0202793A:
- add r1, sp, #0x4
- add r0, r4, #0x0
- add r1, #0x1
- add r2, sp, #0x4
- bl FUN_02026F3C
- add r5, #0x8
- str r6, [sp, #0x0]
- add r3, sp, #0x4
- ldrb r2, [r3, #0x1]
- ldrb r3, [r3, #0x0]
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02026CD0
- add sp, #0x8
- pop {r4-r6, pc}
- .balign 4
-_0202795C: .word 0x00001234
-_02027960: .word 0x00002345
-
- thumb_func_start FUN_02027964
-FUN_02027964: ; 0x02027964
- push {r4-r7, lr}
- sub sp, #0xc
- str r3, [sp, #0x4]
- add r6, r1, #0x0
- add r5, r0, #0x0
- add r7, r2, #0x0
- ldr r4, [sp, #0x24]
- cmp r6, #0x14
- blo _0202797A
- bl ErrorHandling
-_0202797A:
- cmp r7, #0x64
- blo _02027982
- bl ErrorHandling
-_02027982:
- mov r1, #0x1
- ldr r0, [sp, #0x4]
- lsl r1, r1, #0x8
- cmp r0, r1
- blt _02027990
- bl ErrorHandling
-_02027990:
- add r0, sp, #0x10
- ldrb r1, [r0, #0x10]
- mov r0, #0x1
- lsl r0, r0, #0x8
- cmp r1, r0
- blt _020279A0
- bl ErrorHandling
-_020279A0:
- mov r0, #0x7f
- mvn r0, r0
- cmp r4, r0
- bgt _020279AC
- bl ErrorHandling
-_020279AC:
- mov r0, #0x1
- lsl r0, r6
- ldr r1, [r5, #0x40]
- str r0, [sp, #0x8]
- tst r0, r1
- beq _020279BC
- bl ErrorHandling
-_020279BC:
- ldr r1, [r5, #0x0]
- ldr r0, _02027A0C ; =0x00001234
- cmp r1, r0
- beq _020279CA
- ldr r0, _02027A10 ; =0x00002345
- cmp r1, r0
- bne _020279CE
-_020279CA:
- mov r0, #0x1
- b _020279D0
-_020279CE:
- mov r0, #0x0
-_020279D0:
- cmp r0, #0x0
- bne _020279D8
- bl ErrorHandling
-_020279D8:
- mov r0, #0x38
- ldrsb r0, [r5, r0]
- cmp r0, r4
- blt _020279E6
- add r0, r0, #0x1
- lsl r0, r0, #0x18
- asr r4, r0, #0x18
-_020279E6:
- lsl r0, r4, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x0]
- add r3, sp, #0x10
- add r1, r5, #0x0
- ldrb r3, [r3, #0x10]
- add r1, #0x44
- lsl r0, r6, #0x2
- add r0, r1, r0
- ldr r2, [sp, #0x4]
- add r1, r7, #0x0
- bl FUN_02026DB0
- ldr r1, [r5, #0x40]
- ldr r0, [sp, #0x8]
- orr r0, r1
- str r0, [r5, #0x40]
- add sp, #0xc
- pop {r4-r7, pc}
- .balign 4
-_02027A0C: .word 0x00001234
-_02027A10: .word 0x00002345
-
- thumb_func_start FUN_02027A14
-FUN_02027A14: ; 0x02027A14
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- cmp r4, #0x14
- blt _02027A22
- bl ErrorHandling
-_02027A22:
- ldr r1, [r5, #0x0]
- ldr r0, _02027A50 ; =0x00001234
- cmp r1, r0
- beq _02027A30
- ldr r0, _02027A54 ; =0x00002345
- cmp r1, r0
- bne _02027A34
-_02027A30:
- mov r0, #0x1
- b _02027A36
-_02027A34:
- mov r0, #0x0
-_02027A36:
- cmp r0, #0x0
- bne _02027A3E
- bl ErrorHandling
-_02027A3E:
- mov r0, #0x1
- add r1, r0, #0x0
- ldr r2, [r5, #0x40]
- lsl r1, r4
- tst r1, r2
- bne _02027A4C
- mov r0, #0x0
-_02027A4C:
- pop {r3-r5, pc}
- nop
-_02027A50: .word 0x00001234
-_02027A54: .word 0x00002345
-
- thumb_func_start FUN_02027A58
-FUN_02027A58: ; 0x02027A58
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- ldr r1, [r5, #0x0]
- ldr r0, _02027A8C ; =0x00001234
- add r6, r2, #0x0
- cmp r1, r0
- beq _02027A6E
- ldr r0, _02027A90 ; =0x00002345
- cmp r1, r0
- bne _02027A72
-_02027A6E:
- mov r0, #0x1
- b _02027A74
-_02027A72:
- mov r0, #0x0
-_02027A74:
- cmp r0, #0x0
- bne _02027A7C
- bl ErrorHandling
-_02027A7C:
- add r5, #0x8
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r2, r6, #0x0
- bl FUN_02026D98
- pop {r4-r6, pc}
- nop
-_02027A8C: .word 0x00001234
-_02027A90: .word 0x00002345
-
- thumb_func_start FUN_02027A94
-FUN_02027A94: ; 0x02027A94
- push {r4, lr}
- add r4, r0, #0x0
- ldr r1, [r4, #0x0]
- ldr r0, _02027ABC ; =0x00001234
- cmp r1, r0
- beq _02027AA6
- ldr r0, _02027AC0 ; =0x00002345
- cmp r1, r0
- bne _02027AAA
-_02027AA6:
- mov r0, #0x1
- b _02027AAC
-_02027AAA:
- mov r0, #0x0
-_02027AAC:
- cmp r0, #0x0
- bne _02027AB4
- bl ErrorHandling
-_02027AB4:
- add r4, #0x8
- add r0, r4, #0x0
- pop {r4, pc}
- nop
-_02027ABC: .word 0x00001234
-_02027AC0: .word 0x00002345
-
- thumb_func_start FUN_02027AC4
-FUN_02027AC4: ; 0x02027AC4
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- cmp r4, #0x14
- blt _02027AD2
- bl ErrorHandling
-_02027AD2:
- mov r0, #0x1
- ldr r1, [r5, #0x40]
- lsl r0, r4
- tst r0, r1
- bne _02027AE0
- bl ErrorHandling
-_02027AE0:
- ldr r1, [r5, #0x0]
- ldr r0, _02027B04 ; =0x00001234
- cmp r1, r0
- beq _02027AEE
- ldr r0, _02027B08 ; =0x00002345
- cmp r1, r0
- bne _02027AF2
-_02027AEE:
- mov r0, #0x1
- b _02027AF4
-_02027AF2:
- mov r0, #0x0
-_02027AF4:
- cmp r0, #0x0
- bne _02027AFC
- bl ErrorHandling
-_02027AFC:
- add r5, #0x44
- lsl r0, r4, #0x2
- add r0, r5, r0
- pop {r3-r5, pc}
- .balign 4
-_02027B04: .word 0x00001234
-_02027B08: .word 0x00002345
-
- thumb_func_start FUN_02027B0C
-FUN_02027B0C: ; 0x02027B0C
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- ldr r1, [r5, #0x0]
- ldr r0, _02027B3C ; =0x00001234
- cmp r1, r0
- beq _02027B20
- ldr r0, _02027B40 ; =0x00002345
- cmp r1, r0
- bne _02027B24
-_02027B20:
- mov r0, #0x1
- b _02027B26
-_02027B24:
- mov r0, #0x0
-_02027B26:
- cmp r0, #0x0
- bne _02027B2E
- bl ErrorHandling
-_02027B2E:
- add r5, #0x8
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02027C88
- pop {r3-r5, pc}
- nop
-_02027B3C: .word 0x00001234
-_02027B40: .word 0x00002345
-
- thumb_func_start FUN_02027B44
-FUN_02027B44: ; 0x02027B44
- push {r4, lr}
- add r4, r0, #0x0
- ldr r1, [r4, #0x0]
- ldr r0, _02027B70 ; =0x00001234
- cmp r1, r0
- beq _02027B56
- ldr r0, _02027B74 ; =0x00002345
- cmp r1, r0
- bne _02027B5A
-_02027B56:
- mov r0, #0x1
- b _02027B5C
-_02027B5A:
- mov r0, #0x0
-_02027B5C:
- cmp r0, #0x0
- bne _02027B64
- bl ErrorHandling
-_02027B64:
- add r4, #0x8
- add r0, r4, #0x0
- bl FUN_02027C98
- pop {r4, pc}
- nop
-_02027B70: .word 0x00001234
-_02027B74: .word 0x00002345
-
- thumb_func_start FUN_02027B78
-FUN_02027B78: ; 0x02027B78
- push {r3-r5, lr}
- sub sp, #0x10
- add r5, r0, #0x0
- add r4, r1, #0x0
- ldr r1, [r5, #0x0]
- ldr r0, _02027BD4 ; =0x00001234
- cmp r1, r0
- beq _02027B8E
- ldr r0, _02027BD8 ; =0x00002345
- cmp r1, r0
- bne _02027B92
-_02027B8E:
- mov r0, #0x1
- b _02027B94
-_02027B92:
- mov r0, #0x0
-_02027B94:
- cmp r0, #0x0
- bne _02027B9C
- bl ErrorHandling
-_02027B9C:
- mov r1, #0x1
- str r1, [sp, #0x0]
- ldr r0, [r5, #0x8]
- mov r2, #0x0
- str r0, [sp, #0x4]
- str r1, [sp, #0x8]
- ldr r0, [r5, #0xc]
- add r3, r2, #0x0
- str r0, [sp, #0xc]
- ldrh r1, [r5, #0x10]
- add r0, r4, #0x0
- bl FUN_02066ACC
- add r2, r5, #0x0
- add r0, r4, #0x0
- mov r1, #0x74
- add r2, #0x12
- bl FUN_02067830
- add r5, #0x3b
- add r0, r4, #0x0
- mov r1, #0x70
- add r2, r5, #0x0
- bl FUN_02067830
- add sp, #0x10
- pop {r3-r5, pc}
- nop
-_02027BD4: .word 0x00001234
-_02027BD8: .word 0x00002345
-
- thumb_func_start FUN_02027BDC
-FUN_02027BDC: ; 0x02027BDC
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- cmp r4, #0x14
- blt _02027BEA
- bl ErrorHandling
-_02027BEA:
- mov r0, #0x1
- ldr r1, [r5, #0x40]
- lsl r0, r4
- tst r0, r1
- bne _02027BF8
- bl ErrorHandling
-_02027BF8:
- ldr r1, [r5, #0x0]
- ldr r0, _02027C20 ; =0x00001234
- cmp r1, r0
- beq _02027C06
- ldr r0, _02027C24 ; =0x00002345
- cmp r1, r0
- bne _02027C0A
-_02027C06:
- mov r0, #0x1
- b _02027C0C
-_02027C0A:
- mov r0, #0x0
-_02027C0C:
- cmp r0, #0x0
- bne _02027C14
- bl ErrorHandling
-_02027C14:
- add r5, #0x44
- lsl r0, r4, #0x2
- add r0, r5, r0
- bl FUN_02027CF8
- pop {r3-r5, pc}
- .balign 4
-_02027C20: .word 0x00001234
-_02027C24: .word 0x00002345
-
- thumb_func_start FUN_02027C28
-FUN_02027C28: ; 0x02027C28
- push {r4, lr}
- add r4, r0, #0x0
- ldr r1, [r4, #0x0]
- ldr r0, _02027C50 ; =0x00001234
- cmp r1, r0
- beq _02027C3A
- ldr r0, _02027C54 ; =0x00002345
- cmp r1, r0
- bne _02027C3E
-_02027C3A:
- mov r0, #0x1
- b _02027C40
-_02027C3E:
- mov r0, #0x0
-_02027C40:
- cmp r0, #0x0
- bne _02027C48
- bl ErrorHandling
-_02027C48:
- add r4, #0x94
- ldrb r0, [r4, #0x0]
- pop {r4, pc}
- nop
-_02027C50: .word 0x00001234
-_02027C54: .word 0x00002345
-
- thumb_func_start FUN_02027C58
-FUN_02027C58: ; 0x02027C58
- push {r4, lr}
- add r4, r0, #0x0
- ldr r1, [r4, #0x0]
- ldr r0, _02027C7C ; =0x00001234
- cmp r1, r0
- beq _02027C6A
- ldr r0, _02027C80 ; =0x00002345
- cmp r1, r0
- bne _02027C6E
-_02027C6A:
- mov r0, #0x1
- b _02027C70
-_02027C6E:
- mov r0, #0x0
-_02027C70:
- cmp r0, #0x0
- bne _02027C78
- bl ErrorHandling
-_02027C78:
- ldr r0, [r4, #0x4]
- pop {r4, pc}
- .balign 4
-_02027C7C: .word 0x00001234
-_02027C80: .word 0x00002345
-
- thumb_func_start FUN_02027C84
-FUN_02027C84: ; 0x02027C84
- ldrh r0, [r0, #0x8]
- bx lr
-
- thumb_func_start FUN_02027C88
-FUN_02027C88: ; 0x02027C88
- add r2, r0, #0x0
- ldr r3, _02027C94 ; =FUN_02021E28
- add r2, #0x20
- add r0, r1, #0x0
- add r1, r2, #0x0
- bx r3
- .balign 4
-_02027C94: .word FUN_02021E28
-
- thumb_func_start FUN_02027C98
-FUN_02027C98: ; 0x02027C98
- add r0, #0x34
- ldrb r0, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02027CA0
-FUN_02027CA0: ; 0x02027CA0
- mov r1, #0x30
- ldrsb r0, [r0, r1]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02027CA8
-FUN_02027CA8: ; 0x02027CA8
- add r0, #0x31
- ldrb r0, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02027CB0
-FUN_02027CB0: ; 0x02027CB0
- add r0, #0x32
- ldrb r0, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02027CB8
-FUN_02027CB8: ; 0x02027CB8
- push {r3-r5, lr}
- sub sp, #0x10
- add r4, r1, #0x0
- mov r1, #0x1
- add r5, r0, #0x0
- str r1, [sp, #0x0]
- ldr r0, [r5, #0x0]
- mov r2, #0x0
- str r0, [sp, #0x4]
- str r1, [sp, #0x8]
- ldr r0, [r5, #0x4]
- add r3, r2, #0x0
- str r0, [sp, #0xc]
- ldrh r1, [r5, #0x8]
- add r0, r4, #0x0
- bl FUN_02066ACC
- add r2, r5, #0x0
- add r0, r4, #0x0
- mov r1, #0x74
- add r2, #0xa
- bl FUN_02067830
- add r5, #0x33
- add r0, r4, #0x0
- mov r1, #0x70
- add r2, r5, #0x0
- bl FUN_02067830
- add sp, #0x10
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02027CF8
-FUN_02027CF8: ; 0x02027CF8
- ldrb r0, [r0, #0x0]
- bx lr
-
- thumb_func_start FUN_02027CFC
-FUN_02027CFC: ; 0x02027CFC
- ldrb r0, [r0, #0x1]
- bx lr
-
- thumb_func_start FUN_02027D00
-FUN_02027D00: ; 0x02027D00
- ldrb r0, [r0, #0x2]
- bx lr
-
- thumb_func_start FUN_02027D04
-FUN_02027D04: ; 0x02027D04
- mov r1, #0x3
- ldrsb r0, [r0, r1]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02027D0C
-FUN_02027D0C: ; 0x02027D0C
- push {r4-r7, lr}
- sub sp, #0x1fc
- sub sp, #0x1fc
- sub sp, #0xc
- add r7, r0, #0x0
- mov r0, #0x1
- add r4, r1, #0x0
- str r0, [sp, #0x0]
- add r0, r4, #0x0
- bl FUN_0202729C
- cmp r0, #0x1
- bne _02027D6A
- ldr r1, _02027D78 ; =0xEDB88320
- add r0, sp, #0x4
- bl MATHi_CRC32InitTableRev
- add r0, sp, #0x4
- add r1, r4, #0x0
- mov r2, #0x74
- bl MATH_CalcCRC32
- add r6, r0, #0x0
- mov r5, #0x0
-_02027D3C:
- add r0, r7, #0x0
- add r1, r5, #0x0
- bl FUN_02027008
- add r4, r0, #0x0
- ldr r1, _02027D78 ; =0xEDB88320
- add r0, sp, #0x4
- bl MATHi_CRC32InitTableRev
- add r0, sp, #0x4
- add r1, r4, #0x0
- mov r2, #0x74
- bl MATH_CalcCRC32
- cmp r0, r6
- bne _02027D62
- mov r0, #0x0
- str r0, [sp, #0x0]
- b _02027D6E
-_02027D62:
- add r5, r5, #0x1
- cmp r5, #0xb
- blt _02027D3C
- b _02027D6E
-_02027D6A:
- mov r0, #0x0
- str r0, [sp, #0x0]
-_02027D6E:
- ldr r0, [sp, #0x0]
- add sp, #0x1fc
- add sp, #0x1fc
- add sp, #0xc
- pop {r4-r7, pc}
- .balign 4
-_02027D78: .word 0xEDB88320
-
- thumb_func_start FUN_02027D7C
-FUN_02027D7C: ; 0x02027D7C
- push {r4-r7, lr}
- sub sp, #0xc
- str r0, [sp, #0x0]
- mov r7, #0x0
- ldr r0, [sp, #0x0]
- str r1, [sp, #0x4]
- add r5, r2, #0x0
- add r6, r7, #0x0
- str r3, [sp, #0x8]
- cmp r0, #0x0
- ble _02027DB6
- add r4, r3, #0x0
-_02027D94:
- ldr r0, [sp, #0x4]
- cmp r6, r0
- beq _02027DAC
- ldr r1, [r4, #0x0]
- cmp r1, #0x0
- beq _02027DAC
- add r0, r5, #0x0
- bl FUN_02027D0C
- cmp r0, #0x1
- bne _02027DAC
- add r7, r7, #0x1
-_02027DAC:
- ldr r0, [sp, #0x0]
- add r6, r6, #0x1
- add r4, r4, #0x4
- cmp r6, r0
- blt _02027D94
-_02027DB6:
- mov r4, #0xa
-_02027DB8:
- add r1, r4, r7
- cmp r1, #0xb
- bge _02027DD6
- add r0, r5, #0x0
- bl FUN_02027008
- add r6, r0, #0x0
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02027008
- add r1, r0, #0x0
- add r0, r6, #0x0
- bl FUN_020274B8
-_02027DD6:
- sub r4, r4, #0x1
- cmp r4, #0x1
- bge _02027DB8
- ldr r0, [sp, #0x0]
- mov r6, #0x1
- mov r4, #0x0
- cmp r0, #0x0
- ble _02027E1E
-_02027DE6:
- ldr r0, [sp, #0x4]
- cmp r4, r0
- beq _02027E10
- ldr r0, [sp, #0x8]
- ldr r7, [r0, #0x0]
- cmp r7, #0x0
- beq _02027E10
- add r0, r5, #0x0
- add r1, r7, #0x0
- bl FUN_02027D0C
- cmp r0, #0x1
- bne _02027E10
- add r0, r5, #0x0
- add r1, r6, #0x0
- bl FUN_02027008
- add r1, r7, #0x0
- add r6, r6, #0x1
- bl FUN_020274B8
-_02027E10:
- ldr r0, [sp, #0x8]
- add r4, r4, #0x1
- add r0, r0, #0x4
- str r0, [sp, #0x8]
- ldr r0, [sp, #0x0]
- cmp r4, r0
- blt _02027DE6
-_02027E1E:
- add sp, #0xc
- pop {r4-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02027E24
-FUN_02027E24: ; 0x02027E24
- ldr r3, _02027E2C ; =FUN_02022610
- mov r1, #0xe
- bx r3
- nop
-_02027E2C: .word FUN_02022610
-
- thumb_func_start FUN_02027E30
-FUN_02027E30: ; 0x02027E30
- mov r0, #0x8
- bx lr
-
- thumb_func_start FUN_02027E34
-FUN_02027E34: ; 0x02027E34
- ldrb r0, [r0, #0x0]
- cmp r0, #0x1e
- beq _02027E3E
- mov r0, #0x1
- bx lr
-_02027E3E:
- mov r0, #0x0
- bx lr
- .balign 4
-
- thumb_func_start FUN_02027E44
-FUN_02027E44: ; 0x02027E44
- mov r1, #0x1e
- strb r1, [r0, #0x0]
- mov r1, #0x0
- strb r1, [r0, #0x1]
- strb r1, [r0, #0x2]
- strb r1, [r0, #0x3]
- strb r1, [r0, #0x4]
- strb r1, [r0, #0x5]
- strb r1, [r0, #0x6]
- strb r1, [r0, #0x7]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02027E5C
-FUN_02027E5C: ; 0x02027E5C
- push {r4, lr}
- mov r1, #0x8
- bl FUN_020169D8
- add r4, r0, #0x0
- bl FUN_02027E44
- add r0, r4, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02027E70
-FUN_02027E70: ; 0x02027E70
- ldrb r2, [r0, #0x0]
- strb r2, [r1, #0x0]
- ldrb r2, [r0, #0x1]
- strb r2, [r1, #0x1]
- ldrb r2, [r0, #0x2]
- strb r2, [r1, #0x2]
- ldrb r2, [r0, #0x3]
- strb r2, [r1, #0x3]
- ldrb r2, [r0, #0x4]
- strb r2, [r1, #0x4]
- ldrb r2, [r0, #0x5]
- strb r2, [r1, #0x5]
- ldrb r2, [r0, #0x6]
- strb r2, [r1, #0x6]
- ldrb r0, [r0, #0x7]
- strb r0, [r1, #0x7]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02027E94
-FUN_02027E94: ; 0x02027E94
- cmp r1, #0x6
- bhi _02027ECA
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #0x6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02027EA4: ; jump table (using 16-bit offset)
- .short _02027EB2 - _02027EA4 - 2; case 0
- .short _02027EB6 - _02027EA4 - 2; case 1
- .short _02027EBA - _02027EA4 - 2; case 2
- .short _02027EBE - _02027EA4 - 2; case 3
- .short _02027EC2 - _02027EA4 - 2; case 4
- .short _02027EC6 - _02027EA4 - 2; case 5
- .short _02027ECA - _02027EA4 - 2; case 6
-_02027EB2:
- ldrb r0, [r0, #0x0]
- bx lr
-_02027EB6:
- ldrb r0, [r0, #0x1]
- bx lr
-_02027EBA:
- ldrb r0, [r0, #0x2]
- bx lr
-_02027EBE:
- ldrb r0, [r0, #0x3]
- bx lr
-_02027EC2:
- ldrb r0, [r0, #0x4]
- bx lr
-_02027EC6:
- ldrb r0, [r0, #0x5]
- bx lr
-_02027ECA:
- ldrb r0, [r0, #0x6]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02027ED0
-FUN_02027ED0: ; 0x02027ED0
- push {r3-r7, lr}
- add r5, r0, #0x0
- str r1, [sp, #0x0]
- mov r4, #0x0
- mov r6, #0x2
- mov r7, #0x5
-_02027EDC:
- bl FUN_0201B9EC
- add r1, r7, #0x0
- bl _s32_div_f
- lsl r0, r1, #0x18
- lsr r0, r0, #0x18
- add r1, r5, r0
- ldrb r0, [r1, #0x1]
- cmp r0, #0x0
- bne _02027EF6
- strb r6, [r1, #0x1]
- add r4, r4, #0x1
-_02027EF6:
- cmp r4, #0x3
- blt _02027EDC
- mov r0, #0x1b
- strb r0, [r5, #0x0]
- ldr r0, [sp, #0x0]
- strb r0, [r5, #0x6]
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02027F04
-FUN_02027F04: ; 0x02027F04
- push {r3-r7, lr}
- sub sp, #0x8
- mov r12, r2
- mov r2, #0x0
- add r6, r2, #0x0
- mov r5, #0x1b
- cmp r3, #0x0
- beq _02027F20
- mov r1, r12
- bl FUN_02027ED0
- add sp, #0x8
- add r0, r5, #0x0
- pop {r3-r7, pc}
-_02027F20:
- add r4, r2, #0x0
- add r7, sp, #0x0
-_02027F24:
- ldrb r3, [r1, r4]
- cmp r3, #0x0
- beq _02027F34
- cmp r3, #0x32
- blo _02027F30
- mov r6, #0x1
-_02027F30:
- strb r4, [r7, r2]
- add r2, r2, #0x1
-_02027F34:
- add r4, r4, #0x1
- cmp r4, #0x5
- blt _02027F24
- cmp r2, #0x5
- bhi _02027F9C
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_02027F4A: ; jump table (using 16-bit offset)
- .short _02027F56 - _02027F4A - 2; case 0
- .short _02027F62 - _02027F4A - 2; case 1
- .short _02027F70 - _02027F4A - 2; case 2
- .short _02027F96 - _02027F4A - 2; case 3
- .short _02027F9A - _02027F4A - 2; case 4
- .short _02027F9A - _02027F4A - 2; case 5
-_02027F56:
- mov r1, r12
- bl FUN_02027ED0
- add sp, #0x8
- mov r0, #0x1b
- pop {r3-r7, pc}
-_02027F62:
- add r2, sp, #0x0
- ldrb r3, [r2, #0x0]
- mov r2, #0x6
- mul r2, r3
- lsl r2, r2, #0x18
- lsr r5, r2, #0x18
- b _02027F9C
-_02027F70:
- add r2, sp, #0x0
- ldrb r3, [r2, #0x1]
- ldrb r2, [r2, #0x0]
- ldrb r4, [r1, r3]
- ldrb r5, [r1, r2]
- cmp r5, r4
- blo _02027F8A
- lsl r4, r2, #0x2
- add r2, r2, r4
- add r2, r3, r2
- lsl r2, r2, #0x18
- lsr r5, r2, #0x18
- b _02027F9C
-_02027F8A:
- lsl r4, r3, #0x2
- add r3, r3, r4
- add r2, r2, r3
- lsl r2, r2, #0x18
- lsr r5, r2, #0x18
- b _02027F9C
-_02027F96:
- mov r5, #0x19
- b _02027F9C
-_02027F9A:
- mov r5, #0x1a
-_02027F9C:
- cmp r6, #0x0
- beq _02027FA2
- mov r5, #0x1c
-_02027FA2:
- mov r4, #0x0
-_02027FA4:
- ldrb r3, [r1, r4]
- add r2, r0, r4
- add r4, r4, #0x1
- strb r3, [r2, #0x1]
- cmp r4, #0x5
- blt _02027FA4
- strb r5, [r0, #0x0]
- mov r1, r12
- strb r1, [r0, #0x6]
- add r0, r5, #0x0
- add sp, #0x8
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02027FBC
-FUN_02027FBC: ; 0x02027FBC
- ldrb r2, [r0, #0x0]
- strb r2, [r1, #0x0]
- ldrb r2, [r0, #0x1]
- strb r2, [r1, #0x1]
- ldrb r2, [r0, #0x2]
- strb r2, [r1, #0x2]
- ldrb r2, [r0, #0x3]
- strb r2, [r1, #0x3]
- ldrb r2, [r0, #0x4]
- strb r2, [r1, #0x4]
- ldrb r2, [r0, #0x5]
- strb r2, [r1, #0x5]
- ldrb r0, [r0, #0x6]
- strb r0, [r1, #0x6]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02027FDC
-FUN_02027FDC: ; 0x02027FDC
- push {r4, lr}
- add r4, r0, #0x0
- ldrb r0, [r4, #0x0]
- mov r1, #0x5
- bl _s32_div_f
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- cmp r0, #0x5
- bhi _0202801C
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02027FFC: ; jump table (using 16-bit offset)
- .short _02028008 - _02027FFC - 2; case 0
- .short _0202800C - _02027FFC - 2; case 1
- .short _02028010 - _02027FFC - 2; case 2
- .short _02028014 - _02027FFC - 2; case 3
- .short _02028018 - _02027FFC - 2; case 4
- .short _0202801C - _02027FFC - 2; case 5
-_02028008:
- ldrb r0, [r4, #0x1]
- b _0202803E
-_0202800C:
- ldrb r0, [r4, #0x2]
- b _0202803E
-_02028010:
- ldrb r0, [r4, #0x3]
- b _0202803E
-_02028014:
- ldrb r0, [r4, #0x4]
- b _0202803E
-_02028018:
- ldrb r0, [r4, #0x5]
- b _0202803E
-_0202801C:
- ldrb r0, [r4, #0x1]
- ldrb r1, [r4, #0x2]
- cmp r0, r1
- bhs _02028026
- add r0, r1, #0x0
-_02028026:
- ldrb r1, [r4, #0x3]
- cmp r0, r1
- bhs _0202802E
- add r0, r1, #0x0
-_0202802E:
- ldrb r1, [r4, #0x4]
- cmp r0, r1
- bhs _02028036
- add r0, r1, #0x0
-_02028036:
- ldrb r1, [r4, #0x5]
- cmp r0, r1
- bhs _0202803E
- add r0, r1, #0x0
-_0202803E:
- cmp r0, #0x63
- bls _02028044
- mov r0, #0x63
-_02028044:
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02028048
-FUN_02028048: ; 0x02028048
- ldr r3, _02028050 ; =FUN_02022610
- mov r1, #0x10
- bx r3
- nop
-_02028050: .word FUN_02022610
-
- thumb_func_start FUN_02028054
-FUN_02028054: ; 0x02028054
- mov r0, #0x32
- lsl r0, r0, #0x4
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202805C
-FUN_0202805C: ; 0x0202805C
- push {r3-r5, lr}
- add r5, r0, #0x0
- mov r4, #0x0
-_02028062:
- add r0, r5, #0x0
- bl FUN_02027E44
- add r4, r4, #0x1
- add r5, #0x8
- cmp r4, #0x64
- blt _02028062
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02028074
-FUN_02028074: ; 0x02028074
- mov r2, #0x0
-_02028076:
- lsl r1, r2, #0x3
- ldrb r1, [r0, r1]
- cmp r1, #0x1e
- bne _02028082
- add r0, r2, #0x0
- bx lr
-_02028082:
- add r1, r2, #0x1
- lsl r1, r1, #0x10
- lsr r2, r1, #0x10
- cmp r2, #0x64
- blo _02028076
- ldr r0, _02028090 ; =0x0000FFFF
- bx lr
- .balign 4
-_02028090: .word 0x0000FFFF
-
- thumb_func_start FUN_02028094
-FUN_02028094: ; 0x02028094
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r6, r1, #0x0
- bl FUN_02028074
- ldr r1, _020280B4 ; =0x0000FFFF
- add r4, r0, #0x0
- cmp r4, r1
- beq _020280B2
- lsl r1, r4, #0x3
- add r0, r6, #0x0
- add r1, r5, r1
- bl FUN_02027E70
- add r0, r4, #0x0
-_020280B2:
- pop {r4-r6, pc}
- .balign 4
-_020280B4: .word 0x0000FFFF
-
- thumb_func_start FUN_020280B8
-FUN_020280B8: ; 0x020280B8
- push {r3, lr}
- cmp r1, #0x64
- blo _020280C2
- mov r0, #0x0
- pop {r3, pc}
-_020280C2:
- lsl r1, r1, #0x3
- add r0, r0, r1
- bl FUN_02027E44
- mov r0, #0x1
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_020280D0
-FUN_020280D0: ; 0x020280D0
- cmp r1, #0x64
- bhs _020280EA
-_020280D4:
- lsl r2, r1, #0x3
- ldrb r2, [r0, r2]
- cmp r2, #0x1e
- beq _020280E0
- add r0, r1, #0x0
- bx lr
-_020280E0:
- add r1, r1, #0x1
- lsl r1, r1, #0x10
- lsr r1, r1, #0x10
- cmp r1, #0x64
- blo _020280D4
-_020280EA:
- ldr r0, _020280F0 ; =0x0000FFFF
- bx lr
- nop
-_020280F0: .word 0x0000FFFF
-
- thumb_func_start FUN_020280F4
-FUN_020280F4: ; 0x020280F4
- push {r4-r7, lr}
- sub sp, #0xc
- add r5, r0, #0x0
- mov r0, #0x0
- mov r7, #0x64
- str r0, [sp, #0x4]
-_02028100:
- ldr r0, [sp, #0x4]
- lsl r0, r0, #0x3
- ldrb r0, [r5, r0]
- cmp r0, #0x1e
- bne _0202815C
- ldr r6, [sp, #0x4]
- add r0, r5, #0x0
- add r1, r6, #0x0
- bl FUN_020280D0
- add r4, r0, #0x0
- ldr r0, _02028170 ; =0x0000FFFF
- cmp r4, r0
- beq _0202816A
- ldr r0, [sp, #0x4]
- sub r0, r4, r0
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x0]
- cmp r4, r7
- bhs _02028154
- cmp r4, r7
- bhs _02028154
-_0202812E:
- lsl r0, r4, #0x3
- lsl r1, r6, #0x3
- str r0, [sp, #0x8]
- add r0, r5, r0
- add r1, r5, r1
- bl FUN_02027E70
- ldr r0, [sp, #0x8]
- add r0, r5, r0
- bl FUN_02027E44
- add r0, r6, #0x1
- lsl r0, r0, #0x10
- lsr r6, r0, #0x10
- add r0, r4, #0x1
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
- cmp r4, r7
- blo _0202812E
-_02028154:
- ldr r0, [sp, #0x0]
- sub r0, r7, r0
- lsl r0, r0, #0x10
- lsr r7, r0, #0x10
-_0202815C:
- ldr r0, [sp, #0x4]
- add r0, r0, #0x1
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x4]
- cmp r0, r7
- blo _02028100
-_0202816A:
- add sp, #0xc
- pop {r4-r7, pc}
- nop
-_02028170: .word 0x0000FFFF
-
- thumb_func_start FUN_02028174
-FUN_02028174: ; 0x02028174
- push {r3, lr}
- cmp r1, #0x64
- blo _02028182
- add r0, r2, #0x0
- bl FUN_02027E44
- pop {r3, pc}
-_02028182:
- lsl r1, r1, #0x3
- add r0, r0, r1
- add r1, r2, #0x0
- bl FUN_02027E70
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02028190
-FUN_02028190: ; 0x02028190
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r0, r2, #0x0
- add r4, r1, #0x0
- bl FUN_02027E5C
- add r6, r0, #0x0
- cmp r4, #0x64
- blo _020281AA
- bl FUN_02027E44
- mov r0, #0x0
- pop {r4-r6, pc}
-_020281AA:
- lsl r0, r4, #0x3
- add r0, r5, r0
- add r1, r6, #0x0
- bl FUN_02027E70
- add r0, r6, #0x0
- pop {r4-r6, pc}
-
- thumb_func_start FUN_020281B8
-FUN_020281B8: ; 0x020281B8
- push {r4-r6, lr}
- mov r4, #0x0
- add r6, r0, #0x0
- add r5, r4, #0x0
-_020281C0:
- lsl r0, r5, #0x3
- add r0, r6, r0
- bl FUN_02027E34
- cmp r0, #0x0
- beq _020281D2
- add r0, r4, #0x1
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_020281D2:
- add r0, r5, #0x1
- lsl r0, r0, #0x10
- lsr r5, r0, #0x10
- cmp r5, #0x64
- blo _020281C0
- add r0, r4, #0x0
- pop {r4-r6, pc}
-
- thumb_func_start FUN_020281E0
-FUN_020281E0: ; 0x020281E0
- mov r0, #0x1f
- lsl r0, r0, #0x6
- bx lr
- .balign 4
-
- thumb_func_start FUN_020281E8
-FUN_020281E8: ; 0x020281E8
- push {r3-r7, lr}
- add r7, r0, #0x0
- mov r2, #0x1f
- mov r0, #0x0
- add r1, r7, #0x0
- lsl r2, r2, #0x6
- bl MIi_CpuClearFast
- mov r0, #0x1d
- lsl r0, r0, #0x4
- add r1, r0, #0x0
- add r2, r0, #0x0
- ldr r4, _02028224 ; =0x0000FFFF
- mov r5, #0x0
- add r6, r7, #0x0
- mov r3, #0x2
- sub r1, #0x10
- add r2, #0x1e
-_0202820C:
- strh r4, [r6, r0]
- strh r4, [r6, r1]
- strb r3, [r6, r2]
- add r5, r5, #0x1
- add r6, #0x30
- cmp r5, #0x20
- blt _0202820C
- add r0, r7, #0x0
- bl FUN_0203380C
- pop {r3-r7, pc}
- nop
-_02028224: .word 0x0000FFFF
-
- thumb_func_start FUN_02028228
-FUN_02028228: ; 0x02028228
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202822C
-FUN_0202822C: ; 0x0202822C
- push {r3-r7, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- add r7, r2, #0x0
- cmp r4, #0x20
- blt _0202823C
- bl ErrorHandling
-_0202823C:
- cmp r7, #0x8
- bhi _020282D0
- add r0, r7, r7
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0202824C: ; jump table (using 16-bit offset)
- .short _0202825E - _0202824C - 2; case 0
- .short _0202826C - _0202824C - 2; case 1
- .short _0202827A - _0202824C - 2; case 2
- .short _02028286 - _0202824C - 2; case 3
- .short _02028294 - _0202824C - 2; case 4
- .short _020282A0 - _0202824C - 2; case 5
- .short _020282AE - _0202824C - 2; case 6
- .short _020282C6 - _0202824C - 2; case 7
- .short _020282BA - _0202824C - 2; case 8
-_0202825E:
- mov r0, #0x30
- mul r0, r4
- add r1, r5, r0
- mov r0, #0x1e
- lsl r0, r0, #0x4
- ldr r6, [r1, r0]
- b _020282D0
-_0202826C:
- mov r0, #0x30
- mul r0, r4
- add r1, r5, r0
- mov r0, #0x79
- lsl r0, r0, #0x2
- ldrh r6, [r1, r0]
- b _020282D0
-_0202827A:
- mov r0, #0x30
- mul r0, r4
- add r1, r5, r0
- ldr r0, _020282D4 ; =0x000001E6
- ldrh r6, [r1, r0]
- b _020282D0
-_02028286:
- mov r0, #0x30
- mul r0, r4
- add r1, r5, r0
- mov r0, #0x7a
- lsl r0, r0, #0x2
- ldrh r6, [r1, r0]
- b _020282D0
-_02028294:
- mov r0, #0x30
- mul r0, r4
- add r1, r5, r0
- ldr r0, _020282D8 ; =0x000001EA
- ldrh r6, [r1, r0]
- b _020282D0
-_020282A0:
- mov r0, #0x30
- mul r0, r4
- add r1, r5, r0
- mov r0, #0x7b
- lsl r0, r0, #0x2
- ldrb r6, [r1, r0]
- b _020282D0
-_020282AE:
- mov r0, #0x30
- mul r0, r4
- add r1, r5, r0
- ldr r0, _020282DC ; =0x000001ED
- ldrb r6, [r1, r0]
- b _020282D0
-_020282BA:
- mov r0, #0x30
- mul r0, r4
- add r1, r5, r0
- ldr r0, _020282E0 ; =0x000001EE
- ldrb r6, [r1, r0]
- b _020282D0
-_020282C6:
- mov r0, #0x30
- mul r0, r4
- add r1, r5, r0
- ldr r0, _020282E4 ; =0x000001EF
- ldrb r6, [r1, r0]
-_020282D0:
- add r0, r6, #0x0
- pop {r3-r7, pc}
- .balign 4
-_020282D4: .word 0x000001E6
-_020282D8: .word 0x000001EA
-_020282DC: .word 0x000001ED
-_020282E0: .word 0x000001EE
-_020282E4: .word 0x000001EF
-
- thumb_func_start FUN_020282E8
-FUN_020282E8: ; 0x020282E8
- push {r3-r7, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- add r7, r2, #0x0
- add r6, r3, #0x0
- cmp r4, #0x20
- blt _020282FA
- bl ErrorHandling
-_020282FA:
- cmp r7, #0x8
- bhi _02028378
- add r0, r7, r7
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0202830A: ; jump table (using 16-bit offset)
- .short _0202831C - _0202830A - 2; case 0
- .short _0202832A - _0202830A - 2; case 1
- .short _02028330 - _0202830A - 2; case 2
- .short _02028336 - _0202830A - 2; case 3
- .short _0202833C - _0202830A - 2; case 4
- .short _02028348 - _0202830A - 2; case 5
- .short _02028356 - _0202830A - 2; case 6
- .short _0202836E - _0202830A - 2; case 7
- .short _02028362 - _0202830A - 2; case 8
-_0202831C:
- mov r0, #0x30
- mul r0, r4
- add r1, r5, r0
- mov r0, #0x1e
- lsl r0, r0, #0x4
- str r6, [r1, r0]
- pop {r3-r7, pc}
-_0202832A:
- bl ErrorHandling
- pop {r3-r7, pc}
-_02028330:
- bl ErrorHandling
- pop {r3-r7, pc}
-_02028336:
- bl ErrorHandling
- pop {r3-r7, pc}
-_0202833C:
- mov r0, #0x30
- mul r0, r4
- add r1, r5, r0
- ldr r0, _0202837C ; =0x000001EA
- strh r6, [r1, r0]
- pop {r3-r7, pc}
-_02028348:
- mov r0, #0x30
- mul r0, r4
- add r1, r5, r0
- mov r0, #0x7b
- lsl r0, r0, #0x2
- strb r6, [r1, r0]
- pop {r3-r7, pc}
-_02028356:
- mov r0, #0x30
- mul r0, r4
- add r1, r5, r0
- ldr r0, _02028380 ; =0x000001ED
- strb r6, [r1, r0]
- pop {r3-r7, pc}
-_02028362:
- mov r0, #0x30
- mul r0, r4
- add r1, r5, r0
- ldr r0, _02028384 ; =0x000001EE
- strb r6, [r1, r0]
- pop {r3-r7, pc}
-_0202836E:
- mov r0, #0x30
- mul r0, r4
- add r1, r5, r0
- ldr r0, _02028388 ; =0x000001EF
- strb r6, [r1, r0]
-_02028378:
- pop {r3-r7, pc}
- nop
-_0202837C: .word 0x000001EA
-_02028380: .word 0x000001ED
-_02028384: .word 0x000001EE
-_02028388: .word 0x000001EF
-
- thumb_func_start FUN_0202838C
-FUN_0202838C: ; 0x0202838C
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- cmp r4, #0x20
- blt _0202839A
- bl ErrorHandling
-_0202839A:
- mov r0, #0xc
- add r5, #0x40
- mul r0, r4
- add r0, r5, r0
- pop {r3-r5, pc}
-
- thumb_func_start FUN_020283A4
-FUN_020283A4: ; 0x020283A4
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- cmp r4, #0x20
- blt _020283B2
- bl ErrorHandling
-_020283B2:
- mov r0, #0x1d
- lsl r0, r0, #0x4
- add r1, r5, r0
- mov r0, #0x30
- mul r0, r4
- add r0, r1, r0
- pop {r3-r5, pc}
-
- thumb_func_start FUN_020283C0
-FUN_020283C0: ; 0x020283C0
- push {r4-r6, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- add r6, r2, #0x0
- cmp r4, #0x20
- blt _020283D0
- bl ErrorHandling
-_020283D0:
- mov r1, #0x1d
- lsl r1, r1, #0x4
- add r2, r5, r1
- mov r1, #0x30
- mul r1, r4
- add r1, r2, r1
- add r0, r6, #0x0
- mov r2, #0x10
- bl FUN_02021EF0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_020283E8
-FUN_020283E8: ; 0x020283E8
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- cmp r4, #0x20
- blt _020283F6
- bl ErrorHandling
-_020283F6:
- mov r0, #0x7
- lsl r0, r0, #0x6
- add r1, r5, r0
- mov r0, #0x30
- mul r0, r4
- add r0, r1, r0
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02028404
-FUN_02028404: ; 0x02028404
- push {r4-r6, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- add r6, r2, #0x0
- cmp r4, #0x20
- blt _02028414
- bl ErrorHandling
-_02028414:
- mov r1, #0x7
- lsl r1, r1, #0x6
- add r2, r5, r1
- mov r1, #0x30
- mul r1, r4
- add r1, r2, r1
- add r0, r6, #0x0
- mov r2, #0x10
- bl FUN_02021EF0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_0202842C
-FUN_0202842C: ; 0x0202842C
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- cmp r4, #0x20
- blt _0202843A
- bl ErrorHandling
-_0202843A:
- mov r0, #0xc
- add r5, #0x40
- mul r0, r4
- add r0, r5, r0
- bl FUN_0209700C
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02028448
-FUN_02028448: ; 0x02028448
- push {r4-r6, lr}
- mov r5, #0x0
- add r6, r0, #0x0
- add r4, r5, #0x0
-_02028450:
- add r0, r6, #0x0
- add r1, r4, #0x0
- bl FUN_0202842C
- cmp r0, #0x0
- beq _0202845E
- add r5, r5, #0x1
-_0202845E:
- add r4, r4, #0x1
- cmp r4, #0x20
- blt _02028450
- add r0, r5, #0x0
- pop {r4-r6, pc}
-
- thumb_func_start FUN_02028468
-FUN_02028468: ; 0x02028468
- push {r4-r7, lr}
- sub sp, #0xc
- add r5, r1, #0x0
- str r0, [sp, #0x0]
- cmp r5, #0x20
- blt _02028478
- bl ErrorHandling
-_02028478:
- cmp r5, #0x1f
- bge _020284D2
- mov r1, #0x7
- ldr r0, [sp, #0x0]
- lsl r1, r1, #0x6
- add r0, r0, r1
- str r0, [sp, #0x4]
- mov r0, #0x30
- add r1, r5, #0x0
- mul r1, r0
- ldr r0, [sp, #0x4]
- add r6, r0, r1
- ldr r0, [sp, #0x0]
- add r1, r5, #0x0
- str r0, [sp, #0x8]
- add r0, #0x40
- str r0, [sp, #0x8]
- mov r0, #0xc
- mul r1, r0
- ldr r0, [sp, #0x8]
- add r4, r0, r1
-_020284A2:
- add r7, r5, #0x1
- mov r0, #0x30
- add r1, r7, #0x0
- mul r1, r0
- ldr r0, [sp, #0x4]
- mov r2, #0x30
- add r0, r0, r1
- add r1, r6, #0x0
- bl MI_CpuCopy8
- mov r0, #0xc
- add r1, r7, #0x0
- mul r1, r0
- ldr r0, [sp, #0x8]
- mov r2, #0xc
- add r0, r0, r1
- add r1, r4, #0x0
- bl MI_CpuCopy8
- add r5, r5, #0x1
- add r6, #0x30
- add r4, #0xc
- cmp r5, #0x1f
- blt _020284A2
-_020284D2:
- mov r2, #0x7
- ldr r1, [sp, #0x0]
- lsl r2, r2, #0x6
- add r2, r1, r2
- mov r1, #0x5d
- lsl r1, r1, #0x4
- add r1, r2, r1
- mov r0, #0x0
- mov r2, #0x30
- bl MIi_CpuClearFast
- ldr r2, [sp, #0x0]
- mov r1, #0x5d
- add r2, #0x40
- lsl r1, r1, #0x2
- add r1, r2, r1
- mov r0, #0x0
- mov r2, #0xc
- bl MIi_CpuClearFast
- mov r2, #0x7a
- lsl r2, r2, #0x4
- add r1, r2, #0x0
- ldr r3, _02028514 ; =0x0000FFFF
- ldr r0, [sp, #0x0]
- sub r1, #0x10
- strh r3, [r0, r2]
- strh r3, [r0, r1]
- mov r1, #0x2
- add r2, #0x1e
- strb r1, [r0, r2]
- add sp, #0xc
- pop {r4-r7, pc}
- .balign 4
-_02028514: .word 0x0000FFFF
-
- thumb_func_start FUN_02028518
-FUN_02028518: ; 0x02028518
- push {r4-r7, lr}
- sub sp, #0xc
- str r2, [sp, #0x4]
- add r7, r0, #0x0
- ldr r0, [sp, #0x4]
- mov r2, #0x30
- add r5, r0, #0x0
- mov r0, #0x7
- lsl r0, r0, #0x6
- add r3, r1, #0x0
- mul r5, r2
- add r4, r7, r0
- mul r3, r2
- str r1, [sp, #0x0]
- add r0, r4, r5
- add r1, r4, r3
- bl MI_CpuCopy8
- ldr r0, [sp, #0x4]
- add r6, r7, #0x0
- mov r3, #0xc
- add r1, r0, #0x0
- mul r1, r3
- add r6, #0x40
- str r1, [sp, #0x8]
- add r0, r6, r1
- ldr r1, [sp, #0x0]
- add r2, r1, #0x0
- mul r2, r3
- add r1, r6, r2
- add r2, r3, #0x0
- bl MI_CpuCopy8
- mov r0, #0x0
- add r1, r4, r5
- mov r2, #0x30
- bl MIi_CpuClearFast
- ldr r1, [sp, #0x8]
- mov r0, #0x0
- add r1, r6, r1
- mov r2, #0xc
- bl MIi_CpuClearFast
- mov r0, #0x1d
- ldr r1, _02028588 ; =0x0000FFFF
- add r2, r7, r5
- lsl r0, r0, #0x4
- strh r1, [r2, r0]
- strh r1, [r4, r5]
- mov r1, #0x2
- add r0, #0x1e
- strb r1, [r2, r0]
- add sp, #0xc
- pop {r4-r7, pc}
- nop
-_02028588: .word 0x0000FFFF
-
- thumb_func_start FUN_0202858C
-FUN_0202858C: ; 0x0202858C
- push {r3-r7, lr}
- mov r5, #0x0
- mvn r5, r5
- add r6, r0, #0x0
- mov r4, #0x0
- add r7, r5, #0x0
-_02028598:
- add r0, r6, #0x0
- add r1, r4, #0x0
- bl FUN_0202842C
- cmp r0, #0x0
- beq _020285BC
- mov r0, #0x0
- mvn r0, r0
- cmp r5, r0
- beq _020285C6
- add r0, r6, #0x0
- add r1, r5, #0x0
- add r2, r4, #0x0
- bl FUN_02028518
- add r4, r7, #0x0
- add r5, r7, #0x0
- b _020285C6
-_020285BC:
- mov r0, #0x0
- mvn r0, r0
- cmp r5, r0
- bne _020285C6
- add r5, r4, #0x0
-_020285C6:
- add r4, r4, #0x1
- cmp r4, #0x20
- blt _02028598
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_020285D0
-FUN_020285D0: ; 0x020285D0
- push {r3-r5, lr}
- sub sp, #0x10
- add r5, r0, #0x0
- add r4, r1, #0x0
- add r0, sp, #0x0
- bl FUN_020126B4
- mov r0, #0x30
- add r2, r4, #0x0
- mul r2, r0
- mov r0, #0x7d
- ldr r1, [sp, #0x0]
- lsl r0, r0, #0x4
- add r1, r1, r0
- ldr r0, _02028604 ; =0x000001EA
- add r3, r5, r2
- strh r1, [r3, r0]
- add r1, r0, #0x2
- ldr r2, [sp, #0x4]
- add r0, r0, #0x3
- strb r2, [r3, r1]
- ldr r1, [sp, #0x8]
- strb r1, [r3, r0]
- add sp, #0x10
- pop {r3-r5, pc}
- nop
-_02028604: .word 0x000001EA
-
- thumb_func_start FUN_02028608
-FUN_02028608: ; 0x02028608
- push {r4-r6, lr}
- mov r5, #0x79
- add r4, r0, #0x0
- mov r0, #0x30
- lsl r5, r5, #0x2
- mul r0, r1
- add r5, r4, r5
- ldrh r6, [r5, r0]
- add r2, r6, r2
- strh r2, [r5, r0]
- ldrh r6, [r5, r0]
- ldr r2, _0202865C ; =0x0000270F
- cmp r6, r2
- bls _02028626
- strh r2, [r5, r0]
-_02028626:
- ldr r2, _02028660 ; =0x000001E6
- add r2, r4, r2
- ldrh r5, [r2, r0]
- add r3, r5, r3
- strh r3, [r2, r0]
- ldrh r5, [r2, r0]
- ldr r3, _0202865C ; =0x0000270F
- cmp r5, r3
- bls _0202863A
- strh r3, [r2, r0]
-_0202863A:
- mov r2, #0x7a
- lsl r2, r2, #0x2
- add r2, r4, r2
- ldrh r5, [r2, r0]
- ldr r3, [sp, #0x10]
- add r3, r5, r3
- strh r3, [r2, r0]
- ldrh r5, [r2, r0]
- ldr r3, _0202865C ; =0x0000270F
- cmp r5, r3
- bls _02028652
- strh r3, [r2, r0]
-_02028652:
- add r0, r4, #0x0
- bl FUN_020285D0
- pop {r4-r6, pc}
- nop
-_0202865C: .word 0x0000270F
-_02028660: .word 0x000001E6
-
- thumb_func_start FUN_02028664
-FUN_02028664: ; 0x02028664
- push {r4-r6, lr}
- add r5, r0, #0x0
- mov r3, #0x79
- mov r0, #0x30
- add r4, r1, #0x0
- mul r4, r0
- lsl r3, r3, #0x2
- mul r0, r2
- add r2, r5, r3
- add r6, r5, r4
- ldrh r1, [r2, r0]
- ldrh r3, [r6, r3]
- add r1, r1, r3
- strh r1, [r2, r0]
- ldrh r3, [r2, r0]
- ldr r1, _020286E0 ; =0x0000270F
- cmp r3, r1
- bls _0202868A
- strh r1, [r2, r0]
-_0202868A:
- ldr r3, _020286E4 ; =0x000001E6
- add r6, r5, r4
- add r2, r5, r3
- ldrh r1, [r2, r0]
- ldrh r3, [r6, r3]
- add r1, r1, r3
- strh r1, [r2, r0]
- ldrh r3, [r2, r0]
- ldr r1, _020286E0 ; =0x0000270F
- cmp r3, r1
- bls _020286A2
- strh r1, [r2, r0]
-_020286A2:
- mov r3, #0x7a
- lsl r3, r3, #0x2
- add r2, r5, r3
- add r6, r5, r4
- ldrh r1, [r2, r0]
- ldrh r3, [r6, r3]
- add r1, r1, r3
- strh r1, [r2, r0]
- ldrh r3, [r2, r0]
- ldr r1, _020286E0 ; =0x0000270F
- cmp r3, r1
- bls _020286BC
- strh r1, [r2, r0]
-_020286BC:
- mov r0, #0x7
- lsl r0, r0, #0x6
- add r6, r5, r0
- mov r0, #0x0
- add r1, r6, r4
- mov r2, #0x30
- bl MIi_CpuClearFast
- mov r0, #0x1d
- ldr r1, _020286E8 ; =0x0000FFFF
- add r2, r5, r4
- lsl r0, r0, #0x4
- strh r1, [r2, r0]
- strh r1, [r6, r4]
- mov r1, #0x2
- add r0, #0x1e
- strb r1, [r2, r0]
- pop {r4-r6, pc}
- .balign 4
-_020286E0: .word 0x0000270F
-_020286E4: .word 0x000001E6
-_020286E8: .word 0x0000FFFF
-
- thumb_func_start FUN_020286EC
-FUN_020286EC: ; 0x020286EC
- ldr r3, _020286F4 ; =FUN_02022610
- mov r1, #0x1d
- bx r3
- nop
-_020286F4: .word FUN_02022610
-
- thumb_func_start FUN_020286F8
-FUN_020286F8: ; 0x020286F8
- mov r0, #0x42
- lsl r0, r0, #0x2
- bx lr
- .balign 4
-
- thumb_func_start FUN_02028700
-FUN_02028700: ; 0x02028700
- push {r4-r5}
- add r5, r2, #0x0
- mov r3, #0x2c
- add r2, r1, #0x0
- mul r2, r3
- mul r5, r3
- add r4, r0, r2
- add r3, r0, r5
- mov r2, #0x5
-_02028712:
- ldmia r4!, {r0-r1}
- stmia r3!, {r0-r1}
- sub r2, r2, #0x1
- bne _02028712
- ldr r0, [r4, #0x0]
- str r0, [r3, #0x0]
- pop {r4-r5}
- bx lr
- .balign 4
-
- thumb_func_start FUN_02028724
-FUN_02028724: ; 0x02028724
- push {r4, lr}
- add r4, r0, #0x0
- mov r2, #0x42
- mov r0, #0x0
- add r1, r4, #0x0
- lsl r2, r2, #0x2
- bl MIi_CpuClearFast
- ldr r0, _0202874C ; =0x0000FFFF
- mov r1, #0x0
- add r2, r4, #0x0
-_0202873A:
- strh r0, [r2, #0x0]
- strh r0, [r2, #0x10]
- add r1, r1, #0x1
- add r2, #0x2c
- cmp r1, #0x6
- blt _0202873A
- ldr r0, _02028750 ; =0x021C59D0
- str r4, [r0, #0x0]
- pop {r4, pc}
- .balign 4
-_0202874C: .word 0x0000FFFF
-_02028750: .word 0x021C59D0
-
- thumb_func_start FUN_02028754
-FUN_02028754: ; 0x02028754
- push {r3-r7, lr}
- add r5, r0, #0x0
- add r6, r1, #0x0
- mov r7, #0x0
-_0202875C:
- mov r4, #0x0
- cmp r6, #0x0
- bls _02028770
-_02028762:
- ldr r0, [r5, #0x28]
- bl FUN_0201BA10
- add r4, r4, #0x1
- str r0, [r5, #0x28]
- cmp r4, r6
- blo _02028762
-_02028770:
- add r7, r7, #0x1
- add r5, #0x2c
- cmp r7, #0x6
- blo _0202875C
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0202877C
-FUN_0202877C: ; 0x0202877C
- mov r2, #0x2c
- mul r2, r1
- add r0, r0, r2
- ldr r0, [r0, #0x24]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02028788
-FUN_02028788: ; 0x02028788
- push {r3-r5, lr}
- add r5, r0, #0x0
- mov r0, #0x2c
- add r4, r1, #0x0
- mul r4, r0
- add r0, r5, r4
- str r2, [r0, #0x24]
- add r0, r2, #0x0
- bl FUN_0201BA10
- add r1, r5, r4
- str r0, [r1, #0x28]
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_020287A4
-FUN_020287A4: ; 0x020287A4
- ldr r0, [r0, #0x54]
- bx lr
-
- thumb_func_start FUN_020287A8
-FUN_020287A8: ; 0x020287A8
- cmp r2, #0x0
- bne _020287B4
- mov r2, #0x2c
- mul r2, r1
- add r0, r0, r2
- bx lr
-_020287B4:
- mov r2, #0x2c
- mul r2, r1
- add r0, r0, r2
- add r0, #0x10
- bx lr
- .balign 4
-
- thumb_func_start FUN_020287C0
-FUN_020287C0: ; 0x020287C0
- push {r4, lr}
- add r4, r0, #0x0
- cmp r2, #0x0
- bne _020287D8
- mov r2, #0x2c
- mul r2, r1
- add r1, r4, r2
- add r0, r3, #0x0
- mov r2, #0x8
- bl FUN_02021EF0
- pop {r4, pc}
-_020287D8:
- mov r2, #0x2c
- mul r2, r1
- add r1, r4, r2
- add r0, r3, #0x0
- add r1, #0x10
- mov r2, #0x8
- bl FUN_02021EF0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_020287EC
-FUN_020287EC: ; 0x020287EC
- mov r3, #0x2c
- mul r3, r1
- add r0, r0, r3
- add r0, #0x20
- strb r2, [r0, #0x0]
- bx lr
-
- thumb_func_start FUN_020287F8
-FUN_020287F8: ; 0x020287F8
- mov r2, #0x2c
- mul r2, r1
- add r0, r0, r2
- add r0, #0x20
- ldrb r0, [r0, #0x0]
- bx lr
-
- thumb_func_start FUN_02028804
-FUN_02028804: ; 0x02028804
- mov r2, #0x2c
- mul r2, r1
- add r0, r0, r2
- add r0, #0x21
- ldrb r0, [r0, #0x0]
- bx lr
-
- thumb_func_start FUN_02028810
-FUN_02028810: ; 0x02028810
- mov r3, #0x2c
- mul r3, r1
- add r0, r0, r3
- add r0, #0x21
- strb r2, [r0, #0x0]
- bx lr
-
- thumb_func_start FUN_0202881C
-FUN_0202881C: ; 0x0202881C
- ldr r3, _02028824 ; =FUN_02022610
- mov r1, #0x11
- bx r3
- nop
-_02028824: .word FUN_02022610
-
- thumb_func_start FUN_02028828
-FUN_02028828: ; 0x02028828
- push {r3, lr}
- mov r2, #0x2c
- mul r2, r1
- add r0, r0, r2
- bl FUN_0202888C
- cmp r0, #0x0
- bne _0202883C
- mov r0, #0x1
- pop {r3, pc}
-_0202883C:
- mov r0, #0x0
- pop {r3, pc}
-
- thumb_func_start FUN_02028840
-FUN_02028840: ; 0x02028840
- mov r2, #0x2c
- add r3, r0, #0x0
- mul r2, r1
- add r1, r3, r2
- ldr r3, _02028850 ; =FUN_020288AC
- add r0, #0x2c
- bx r3
- nop
-_02028850: .word FUN_020288AC
-
- thumb_func_start FUN_02028854
-FUN_02028854: ; 0x02028854
- push {r3-r7, lr}
- add r6, r1, #0x0
- ldrh r1, [r6, #0x0]
- add r5, r0, #0x0
- ldr r0, _02028888 ; =0x0000FFFF
- cmp r1, r0
- bne _02028866
- mov r0, #0x0
- pop {r3-r7, pc}
-_02028866:
- mov r4, #0x0
- mov r7, #0x8
-_0202886A:
- add r0, r6, #0x0
- add r1, r5, #0x0
- add r2, r7, #0x0
- bl StringNotEqualN
- cmp r0, #0x0
- bne _0202887C
- mov r0, #0x1
- pop {r3-r7, pc}
-_0202887C:
- add r4, r4, #0x1
- add r5, #0x2c
- cmp r4, #0x6
- blt _0202886A
- mov r0, #0x0
- pop {r3-r7, pc}
- .balign 4
-_02028888: .word 0x0000FFFF
-
- thumb_func_start FUN_0202888C
-FUN_0202888C: ; 0x0202888C
- ldrh r2, [r0, #0x0]
- ldr r1, _020288A8 ; =0x0000FFFF
- cmp r2, r1
- bne _02028898
- mov r0, #0x1
- bx lr
-_02028898:
- ldrh r0, [r0, #0x10]
- cmp r0, r1
- bne _020288A2
- mov r0, #0x1
- bx lr
-_020288A2:
- mov r0, #0x0
- bx lr
- nop
-_020288A8: .word 0x0000FFFF
-
- thumb_func_start FUN_020288AC
-FUN_020288AC: ; 0x020288AC
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- add r0, #0x10
- add r1, #0x10
- mov r2, #0x8
- bl StringNotEqualN
- cmp r0, #0x0
- beq _020288C4
- mov r0, #0x0
- pop {r3-r5, pc}
-_020288C4:
- add r0, r5, #0x0
- add r1, r4, #0x0
- mov r2, #0x8
- bl StringNotEqualN
- cmp r0, #0x0
- beq _020288D6
- mov r0, #0x0
- pop {r3-r5, pc}
-_020288D6:
- add r0, r5, #0x0
- add r0, #0x20
- ldrb r1, [r0, #0x0]
- add r0, r4, #0x0
- add r0, #0x20
- ldrb r0, [r0, #0x0]
- cmp r1, r0
- beq _020288EA
- mov r0, #0x0
- pop {r3-r5, pc}
-_020288EA:
- add r0, r5, #0x0
- add r0, #0x21
- ldrb r1, [r0, #0x0]
- add r0, r4, #0x0
- add r0, #0x21
- ldrb r0, [r0, #0x0]
- cmp r1, r0
- beq _020288FE
- mov r0, #0x0
- pop {r3-r5, pc}
-_020288FE:
- ldr r1, [r5, #0x24]
- ldr r0, [r4, #0x24]
- cmp r1, r0
- bne _0202890A
- mov r0, #0x1
- pop {r3-r5, pc}
-_0202890A:
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02028910
-FUN_02028910: ; 0x02028910
- mov r1, #0x0
- strh r1, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02028918
-FUN_02028918: ; 0x02028918
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldr r0, _0202892C ; =0x0000C350
- add r4, r1, #0x0
- cmp r4, r0
- bls _02028928
- bl ErrorHandling
-_02028928:
- strh r4, [r5, #0x0]
- pop {r3-r5, pc}
- .balign 4
-_0202892C: .word 0x0000C350
-
- thumb_func_start FUN_02028930
-FUN_02028930: ; 0x02028930
- ldrh r0, [r0, #0x0]
- bx lr
-
- thumb_func_start FUN_02028934
-FUN_02028934: ; 0x02028934
- ldrh r3, [r0, #0x0]
- ldr r2, _02028950 ; =0x0000C350
- cmp r3, r2
- blo _02028940
- mov r0, #0x0
- bx lr
-_02028940:
- add r1, r3, r1
- strh r1, [r0, #0x0]
- ldrh r1, [r0, #0x0]
- cmp r1, r2
- bls _0202894C
- strh r2, [r0, #0x0]
-_0202894C:
- mov r0, #0x1
- bx lr
- .balign 4
-_02028950: .word 0x0000C350
-
- thumb_func_start FUN_02028954
-FUN_02028954: ; 0x02028954
- ldrh r0, [r0, #0x0]
- add r1, r1, r0
- ldr r0, _02028968 ; =0x0000C350
- cmp r1, r0
- bhi _02028962
- mov r0, #0x1
- bx lr
-_02028962:
- mov r0, #0x0
- bx lr
- nop
-_02028968: .word 0x0000C350
-
- thumb_func_start FUN_0202896C
-FUN_0202896C: ; 0x0202896C
- ldrh r2, [r0, #0x0]
- cmp r2, r1
- bhs _02028976
- mov r0, #0x0
- bx lr
-_02028976:
- sub r1, r2, r1
- strh r1, [r0, #0x0]
- mov r0, #0x1
- bx lr
- .balign 4
-
- thumb_func_start FUN_02028980
-FUN_02028980: ; 0x02028980
- mov r0, #0x46
- lsl r0, r0, #0x4
- bx lr
- .balign 4
-
- thumb_func_start FUN_02028988
-FUN_02028988: ; 0x02028988
- ldr r3, _02028990 ; =Call_FillMemWithValue
- mov r1, #0x0
- mov r2, #0x70
- bx r3
- .balign 4
-_02028990: .word Call_FillMemWithValue
-
- thumb_func_start FUN_02028994
-FUN_02028994: ; 0x02028994
- ldr r3, _020289A0 ; =Call_FillMemWithValue
- mov r2, #0x46
- mov r1, #0x0
- lsl r2, r2, #0x4
- bx r3
- nop
-_020289A0: .word Call_FillMemWithValue
-
- thumb_func_start FUN_020289A4
-FUN_020289A4: ; 0x020289A4
- ldr r3, _020289AC ; =FUN_02022610
- mov r1, #0x12
- bx r3
- nop
-_020289AC: .word FUN_02022610
-
- thumb_func_start FUN_020289B0
-FUN_020289B0: ; 0x020289B0
- push {r3-r7, lr}
- sub sp, #0x10
- add r7, r0, #0x0
- cmp r1, #0x1
- beq _020289C0
- add sp, #0x10
- mov r0, #0x0
- pop {r3-r7, pc}
-_020289C0:
- add r0, sp, #0x0
- bl FUN_020126B4
- ldr r0, [r7, #0x0]
- lsl r1, r0, #0x15
- lsr r3, r1, #0x1c
- beq _02028A18
- lsl r1, r0, #0x19
- lsr r2, r1, #0x19
- ldr r1, [sp, #0x0]
- cmp r2, r1
- bne _020289F2
- ldr r1, [sp, #0x4]
- cmp r3, r1
- bne _020289F2
- lsl r1, r0, #0xd
- lsr r2, r1, #0x1b
- ldr r1, [sp, #0x8]
- cmp r2, r1
- bne _020289F2
- lsl r0, r0, #0x12
- lsr r1, r0, #0x1d
- ldr r0, [sp, #0xc]
- cmp r1, r0
- beq _02028A18
-_020289F2:
- mov r0, #0x3f
- lsl r0, r0, #0x4
- mov r5, #0x9
- add r6, r7, r0
-_020289FA:
- add r4, r6, #0x0
- sub r4, #0x70
- add r3, r6, #0x0
- mov r2, #0xe
-_02028A02:
- ldmia r4!, {r0-r1}
- stmia r3!, {r0-r1}
- sub r2, r2, #0x1
- bne _02028A02
- sub r5, r5, #0x1
- sub r6, #0x70
- cmp r5, #0x1
- bge _020289FA
- add r0, r7, #0x0
- bl FUN_02028988
-_02028A18:
- add r0, r7, #0x0
- add sp, #0x10
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02028A20
-FUN_02028A20: ; 0x02028A20
- push {r4, lr}
- sub sp, #0x20
- add r4, r0, #0x0
- cmp r1, #0x1
- beq _02028A30
- add sp, #0x20
- mov r0, #0x0
- pop {r4, pc}
-_02028A30:
- add r0, sp, #0x0
- bl FUN_020126B4
- ldr r0, [r4, #0x0]
- lsl r0, r0, #0x19
- lsr r0, r0, #0x19
- str r0, [sp, #0x10]
- ldr r0, [r4, #0x0]
- lsl r0, r0, #0x15
- lsr r0, r0, #0x1c
- str r0, [sp, #0x14]
- ldr r0, [r4, #0x0]
- lsl r0, r0, #0xd
- lsr r0, r0, #0x1b
- str r0, [sp, #0x18]
- ldr r0, [r4, #0x0]
- lsl r0, r0, #0x12
- lsr r0, r0, #0x1d
- str r0, [sp, #0x1c]
- add r0, sp, #0x0
- bl FUN_02012710
- add r4, r0, #0x0
- add r0, sp, #0x10
- bl FUN_02012710
- ldr r2, [sp, #0x4]
- sub r0, r4, r0
- cmp r2, #0xc
- bne _02028A7E
- ldr r1, [sp, #0x8]
- cmp r1, #0x1f
- bne _02028A7E
- ldr r1, [sp, #0x14]
- cmp r1, #0x1
- bne _02028A7E
- ldr r1, [sp, #0x18]
- cmp r1, #0x1
- beq _02028A94
-_02028A7E:
- cmp r2, #0x1
- bne _02028AAC
- ldr r1, [sp, #0x8]
- cmp r1, #0x1
- bne _02028AAC
- ldr r1, [sp, #0x14]
- cmp r1, #0xc
- bne _02028AAC
- ldr r1, [sp, #0x18]
- cmp r1, #0x1f
- bne _02028AAC
-_02028A94:
- ldr r1, [sp, #0x0]
- ldr r0, [sp, #0x10]
- sub r1, r1, r0
- cmp r1, #0x2
- bge _02028AA6
- mov r0, #0x1
- mvn r0, r0
- cmp r1, r0
- bgt _02028ACC
-_02028AA6:
- add sp, #0x20
- mov r0, #0x1
- pop {r4, pc}
-_02028AAC:
- mov r1, #0x1
- mvn r1, r1
- cmp r0, r1
- ble _02028AB8
- cmp r0, #0x2
- blt _02028ABE
-_02028AB8:
- add sp, #0x20
- mov r0, #0x1
- pop {r4, pc}
-_02028ABE:
- ldr r1, [sp, #0x0]
- ldr r0, [sp, #0x10]
- cmp r1, r0
- beq _02028ACC
- add sp, #0x20
- mov r0, #0x1
- pop {r4, pc}
-_02028ACC:
- mov r0, #0x0
- add sp, #0x20
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02028AD4
-FUN_02028AD4: ; 0x02028AD4
- push {r4, lr}
- add r4, r1, #0x0
- cmp r0, #0x0
- beq _02028B12
- cmp r2, #0x4
- bhi _02028B12
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_02028AEC: ; jump table (using 16-bit offset)
- .short _02028AF6 - _02028AEC - 2; case 0
- .short _02028AFC - _02028AEC - 2; case 1
- .short _02028B02 - _02028AEC - 2; case 2
- .short _02028B08 - _02028AEC - 2; case 3
- .short _02028B0E - _02028AEC - 2; case 4
-_02028AF6:
- bl FUN_02028B1C
- b _02028B12
-_02028AFC:
- bl FUN_02028B5C
- b _02028B12
-_02028B02:
- bl FUN_02028BF0
- b _02028B12
-_02028B08:
- bl FUN_02028BFC
- b _02028B12
-_02028B0E:
- bl FUN_02028C08
-_02028B12:
- add r0, r4, #0x0
- bl FUN_02016A18
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02028B1C
-FUN_02028B1C: ; 0x02028B1C
- push {r4-r5}
- ldr r3, [r0, #0x0]
- lsl r2, r3, #0x19
- lsr r5, r2, #0x19
- ldr r2, [r1, #0x0]
- lsl r4, r2, #0x19
- lsr r4, r4, #0x19
- cmp r5, r4
- bne _02028B52
- lsl r4, r3, #0x15
- lsr r5, r4, #0x1c
- lsl r4, r2, #0x15
- lsr r4, r4, #0x1c
- cmp r5, r4
- bne _02028B52
- lsl r4, r3, #0xd
- lsr r5, r4, #0x1b
- lsl r4, r2, #0xd
- lsr r4, r4, #0x1b
- cmp r5, r4
- bne _02028B52
- lsl r3, r3, #0x12
- lsl r2, r2, #0x12
- lsr r3, r3, #0x1d
- lsr r2, r2, #0x1d
- cmp r3, r2
- beq _02028B56
-_02028B52:
- ldr r1, [r1, #0x0]
- str r1, [r0, #0x0]
-_02028B56:
- pop {r4-r5}
- bx lr
- .balign 4
-
- thumb_func_start FUN_02028B5C
-FUN_02028B5C: ; 0x02028B5C
- push {r3, lr}
- ldrb r2, [r1, #0x0]
- cmp r2, #0x23
- bhi _02028BEE
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_02028B70: ; jump table (using 16-bit offset)
- .short _02028BEE - _02028B70 - 2; case 0
- .short _02028BB8 - _02028B70 - 2; case 1
- .short _02028BB8 - _02028B70 - 2; case 2
- .short _02028BB8 - _02028B70 - 2; case 3
- .short _02028BB8 - _02028B70 - 2; case 4
- .short _02028BB8 - _02028B70 - 2; case 5
- .short _02028BB8 - _02028B70 - 2; case 6
- .short _02028BB8 - _02028B70 - 2; case 7
- .short _02028BB8 - _02028B70 - 2; case 8
- .short _02028BC0 - _02028B70 - 2; case 9
- .short _02028BC0 - _02028B70 - 2; case 10
- .short _02028BC8 - _02028B70 - 2; case 11
- .short _02028BD0 - _02028B70 - 2; case 12
- .short _02028BD8 - _02028B70 - 2; case 13
- .short _02028BD8 - _02028B70 - 2; case 14
- .short _02028BD8 - _02028B70 - 2; case 15
- .short _02028BB8 - _02028B70 - 2; case 16
- .short _02028BB8 - _02028B70 - 2; case 17
- .short _02028BE0 - _02028B70 - 2; case 18
- .short _02028BE8 - _02028B70 - 2; case 19
- .short _02028BE8 - _02028B70 - 2; case 20
- .short _02028BE8 - _02028B70 - 2; case 21
- .short _02028BE8 - _02028B70 - 2; case 22
- .short _02028BE8 - _02028B70 - 2; case 23
- .short _02028BE8 - _02028B70 - 2; case 24
- .short _02028BE8 - _02028B70 - 2; case 25
- .short _02028BE8 - _02028B70 - 2; case 26
- .short _02028BE8 - _02028B70 - 2; case 27
- .short _02028BE8 - _02028B70 - 2; case 28
- .short _02028BE8 - _02028B70 - 2; case 29
- .short _02028BE8 - _02028B70 - 2; case 30
- .short _02028BEE - _02028B70 - 2; case 31
- .short _02028BE8 - _02028B70 - 2; case 32
- .short _02028BE8 - _02028B70 - 2; case 33
- .short _02028BB8 - _02028B70 - 2; case 34
- .short _02028BB8 - _02028B70 - 2; case 35
-_02028BB8:
- add r0, r0, #0x4
- bl FUN_02028CE8
- pop {r3, pc}
-_02028BC0:
- add r0, r0, #0x4
- bl FUN_02028D98
- pop {r3, pc}
-_02028BC8:
- add r0, r0, #0x4
- bl FUN_02028D44
- pop {r3, pc}
-_02028BD0:
- add r0, r0, #0x4
- bl FUN_02028D24
- pop {r3, pc}
-_02028BD8:
- add r0, r0, #0x4
- bl FUN_02028DFC
- pop {r3, pc}
-_02028BE0:
- add r0, r0, #0x4
- bl FUN_02028E44
- pop {r3, pc}
-_02028BE8:
- add r0, r0, #0x4
- bl FUN_02028E8C
-_02028BEE:
- pop {r3, pc}
-
- thumb_func_start FUN_02028BF0
-FUN_02028BF0: ; 0x02028BF0
- ldrh r2, [r1, #0x0]
- strh r2, [r0, #0x14]
- ldrh r1, [r1, #0x2]
- strh r1, [r0, #0x16]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02028BFC
-FUN_02028BFC: ; 0x02028BFC
- ldrh r2, [r1, #0x0]
- strh r2, [r0, #0x18]
- ldrh r1, [r1, #0x2]
- strh r1, [r0, #0x1a]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02028C08
-FUN_02028C08: ; 0x02028C08
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- bl FUN_02028CA8
- ldrb r1, [r4, #0x0]
- cmp r1, #0x10
- bhi _02028C6E
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #0x6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02028C24: ; jump table (using 16-bit offset)
- .short _02028C6E - _02028C24 - 2; case 0
- .short _02028C46 - _02028C24 - 2; case 1
- .short _02028C46 - _02028C24 - 2; case 2
- .short _02028C46 - _02028C24 - 2; case 3
- .short _02028C46 - _02028C24 - 2; case 4
- .short _02028C46 - _02028C24 - 2; case 5
- .short _02028C4E - _02028C24 - 2; case 6
- .short _02028C56 - _02028C24 - 2; case 7
- .short _02028C5E - _02028C24 - 2; case 8
- .short _02028C56 - _02028C24 - 2; case 9
- .short _02028C5E - _02028C24 - 2; case 10
- .short _02028C46 - _02028C24 - 2; case 11
- .short _02028C5E - _02028C24 - 2; case 12
- .short _02028C68 - _02028C24 - 2; case 13
- .short _02028C5E - _02028C24 - 2; case 14
- .short _02028C56 - _02028C24 - 2; case 15
- .short _02028C5E - _02028C24 - 2; case 16
-_02028C46:
- add r1, r4, #0x0
- bl FUN_02028ED4
- pop {r3-r5, pc}
-_02028C4E:
- add r1, r4, #0x0
- bl FUN_02028F10
- pop {r3-r5, pc}
-_02028C56:
- add r1, r4, #0x0
- bl FUN_02028F2C
- pop {r3-r5, pc}
-_02028C5E:
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02028F60
- pop {r3-r5, pc}
-_02028C68:
- add r1, r4, #0x0
- bl FUN_02028F94
-_02028C6E:
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02028C70
-FUN_02028C70: ; 0x02028C70
- push {r3-r4}
- mov r3, #0x0
- add r4, r0, #0x0
- mov r1, #0x3f
-_02028C78:
- ldr r2, [r4, #0x0]
- tst r2, r1
- bne _02028C86
- lsl r1, r3, #0x2
- add r0, r0, r1
- pop {r3-r4}
- bx lr
-_02028C86:
- add r3, r3, #0x1
- add r4, r4, #0x4
- cmp r3, #0x4
- blo _02028C78
- mov r3, #0x0
- add r2, r0, #0x0
-_02028C92:
- ldr r1, [r2, #0x4]
- add r3, r3, #0x1
- stmia r2!, {r1}
- cmp r3, #0x3
- blo _02028C92
- lsl r2, r3, #0x2
- mov r1, #0x0
- str r1, [r0, r2]
- add r0, r0, r2
- pop {r3-r4}
- bx lr
-
- thumb_func_start FUN_02028CA8
-FUN_02028CA8: ; 0x02028CA8
- push {r4, lr}
- add r4, r0, #0x0
- mov r1, #0x0
- add r2, r4, #0x0
-_02028CB0:
- ldrb r0, [r2, #0x1c]
- cmp r0, #0x0
- bne _02028CC0
- mov r0, #0x2a
- add r4, #0x1c
- mul r0, r1
- add r0, r4, r0
- pop {r4, pc}
-_02028CC0:
- add r1, r1, #0x1
- add r2, #0x2a
- cmp r1, #0x2
- blo _02028CB0
- add r0, r4, #0x0
- add r1, r4, #0x0
- add r0, #0x1c
- add r1, #0x46
- mov r2, #0x2a
- bl memcpy
- add r4, #0x46
- add r0, r4, #0x0
- mov r1, #0x0
- mov r2, #0x2a
- bl Call_FillMemWithValue
- add r0, r4, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02028CE8
-FUN_02028CE8: ; 0x02028CE8
- push {r4, lr}
- add r4, r1, #0x0
- mov r2, #0x0
- add r3, r0, #0x0
-_02028CF0:
- ldr r1, [r3, #0x0]
- cmp r1, #0x0
- beq _02028CFE
- add r2, r2, #0x1
- add r3, r3, #0x4
- cmp r2, #0x4
- blo _02028CF0
-_02028CFE:
- cmp r2, #0x0
- beq _02028D14
- lsl r2, r2, #0x2
- add r2, r0, r2
- sub r2, r2, #0x4
- ldr r3, [r2, #0x0]
- mov r2, #0x3f
- ldrb r1, [r4, #0x0]
- and r2, r3
- cmp r1, r2
- beq _02028D20
-_02028D14:
- bl FUN_02028C70
- ldrb r2, [r4, #0x0]
- mov r1, #0x3f
- and r1, r2
- str r1, [r0, #0x0]
-_02028D20:
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02028D24
-FUN_02028D24: ; 0x02028D24
- push {r4, lr}
- add r4, r1, #0x0
- bl FUN_02028C70
- ldrb r2, [r4, #0x0]
- mov r1, #0x3f
- and r1, r2
- ldrh r2, [r4, #0x2]
- lsl r3, r2, #0x10
- ldrh r2, [r4, #0x4]
- lsl r2, r2, #0x16
- lsr r2, r2, #0x10
- orr r2, r3
- orr r1, r2
- str r1, [r0, #0x0]
- pop {r4, pc}
-
- thumb_func_start FUN_02028D44
-FUN_02028D44: ; 0x02028D44
- push {r3-r5, lr}
- add r4, r1, #0x0
- mov r2, #0x0
- mov r3, #0x3f
-_02028D4C:
- lsl r1, r2, #0x2
- ldr r5, [r0, r1]
- and r5, r3
- cmp r5, #0xb
- bne _02028D72
- mov r3, #0x0
- str r3, [r0, r1]
- cmp r2, #0x3
- bhs _02028D7C
-_02028D5E:
- lsl r3, r2, #0x2
- add r1, r0, r3
- ldr r1, [r1, #0x4]
- str r1, [r0, r3]
- add r1, r2, #0x1
- lsl r1, r1, #0x10
- lsr r2, r1, #0x10
- cmp r2, #0x3
- blo _02028D5E
- b _02028D7C
-_02028D72:
- add r1, r2, #0x1
- lsl r1, r1, #0x10
- lsr r2, r1, #0x10
- cmp r2, #0x4
- blo _02028D4C
-_02028D7C:
- bl FUN_02028C70
- ldrb r2, [r4, #0x0]
- mov r1, #0x3f
- and r1, r2
- ldrh r2, [r4, #0x2]
- lsl r3, r2, #0x10
- ldrh r2, [r4, #0x4]
- lsl r2, r2, #0x16
- lsr r2, r2, #0x10
- orr r2, r3
- orr r1, r2
- str r1, [r0, #0x0]
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02028D98
-FUN_02028D98: ; 0x02028D98
- push {r4-r6, lr}
- add r4, r1, #0x0
- mov r6, #0x0
- mov r1, #0x3f
-_02028DA0:
- lsl r5, r6, #0x2
- ldr r3, [r0, r5]
- add r2, r3, #0x0
- and r2, r1
- cmp r2, #0x9
- bne _02028DD4
- lsr r3, r3, #0x10
- lsl r3, r3, #0x10
- ldrh r2, [r4, #0x2]
- lsr r3, r3, #0x10
- cmp r2, r3
- bne _02028DD4
- mov r1, #0x0
- str r1, [r0, r5]
- cmp r6, #0x3
- bhs _02028DDE
-_02028DC0:
- lsl r2, r6, #0x2
- add r1, r0, r2
- ldr r1, [r1, #0x4]
- str r1, [r0, r2]
- add r1, r6, #0x1
- lsl r1, r1, #0x10
- lsr r6, r1, #0x10
- cmp r6, #0x3
- blo _02028DC0
- b _02028DDE
-_02028DD4:
- add r2, r6, #0x1
- lsl r2, r2, #0x10
- lsr r6, r2, #0x10
- cmp r6, #0x4
- blo _02028DA0
-_02028DDE:
- bl FUN_02028C70
- ldrb r2, [r4, #0x0]
- mov r1, #0x3f
- and r1, r2
- ldrh r2, [r4, #0x2]
- lsl r3, r2, #0x10
- ldrh r2, [r4, #0x4]
- lsl r2, r2, #0x16
- lsr r2, r2, #0x10
- orr r2, r3
- orr r1, r2
- str r1, [r0, #0x0]
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02028DFC
-FUN_02028DFC: ; 0x02028DFC
- push {r4, lr}
- add r4, r1, #0x0
- mov r2, #0x0
- add r3, r0, #0x0
-_02028E04:
- ldr r1, [r3, #0x0]
- cmp r1, #0x0
- beq _02028E12
- add r2, r2, #0x1
- add r3, r3, #0x4
- cmp r2, #0x4
- blo _02028E04
-_02028E12:
- cmp r2, #0x0
- beq _02028E30
- lsl r1, r2, #0x2
- add r1, r0, r1
- sub r1, r1, #0x4
- ldr r3, [r1, #0x0]
- mov r1, #0x3f
- ldrb r2, [r4, #0x0]
- and r1, r3
- cmp r2, r1
- bne _02028E30
- ldrh r2, [r4, #0x2]
- lsr r1, r3, #0x10
- cmp r2, r1
- beq _02028E42
-_02028E30:
- bl FUN_02028C70
- ldrh r1, [r4, #0x2]
- ldrb r2, [r4, #0x0]
- lsl r3, r1, #0x10
- mov r1, #0x3f
- and r1, r2
- orr r1, r3
- str r1, [r0, #0x0]
-_02028E42:
- pop {r4, pc}
-
- thumb_func_start FUN_02028E44
-FUN_02028E44: ; 0x02028E44
- push {r4, lr}
- add r4, r1, #0x0
- mov r2, #0x0
- add r3, r0, #0x0
-_02028E4C:
- ldr r1, [r3, #0x0]
- cmp r1, #0x0
- beq _02028E5A
- add r2, r2, #0x1
- add r3, r3, #0x4
- cmp r2, #0x4
- blo _02028E4C
-_02028E5A:
- cmp r2, #0x0
- beq _02028E78
- lsl r1, r2, #0x2
- add r1, r0, r1
- sub r1, r1, #0x4
- ldr r3, [r1, #0x0]
- mov r1, #0x3f
- ldrb r2, [r4, #0x0]
- and r1, r3
- cmp r2, r1
- bne _02028E78
- ldrh r2, [r4, #0x6]
- lsr r1, r3, #0x10
- cmp r2, r1
- beq _02028E8A
-_02028E78:
- bl FUN_02028C70
- ldrh r1, [r4, #0x6]
- ldrb r2, [r4, #0x0]
- lsl r3, r1, #0x10
- mov r1, #0x3f
- and r1, r2
- orr r1, r3
- str r1, [r0, #0x0]
-_02028E8A:
- pop {r4, pc}
-
- thumb_func_start FUN_02028E8C
-FUN_02028E8C: ; 0x02028E8C
- push {r4, lr}
- add r4, r1, #0x0
- mov r2, #0x0
- add r3, r0, #0x0
-_02028E94:
- ldr r1, [r3, #0x0]
- cmp r1, #0x0
- beq _02028EA2
- add r2, r2, #0x1
- add r3, r3, #0x4
- cmp r2, #0x4
- blo _02028E94
-_02028EA2:
- cmp r2, #0x0
- beq _02028EC0
- lsl r1, r2, #0x2
- add r1, r0, r1
- sub r1, r1, #0x4
- ldr r3, [r1, #0x0]
- mov r1, #0x3f
- ldrb r2, [r4, #0x0]
- and r1, r3
- cmp r2, r1
- bne _02028EC0
- ldrh r2, [r4, #0x2]
- lsr r1, r3, #0x10
- cmp r2, r1
- beq _02028ED2
-_02028EC0:
- bl FUN_02028C70
- ldrh r1, [r4, #0x2]
- ldrb r2, [r4, #0x0]
- lsl r3, r1, #0x10
- mov r1, #0x3f
- and r1, r2
- orr r1, r3
- str r1, [r0, #0x0]
-_02028ED2:
- pop {r4, pc}
-
- thumb_func_start FUN_02028ED4
-FUN_02028ED4: ; 0x02028ED4
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- ldrb r0, [r4, #0x0]
- strb r0, [r5, #0x0]
- ldrb r3, [r4, #0x1]
- lsl r1, r3, #0x1c
- lsr r2, r1, #0x1a
- lsl r1, r3, #0x1b
- lsr r1, r1, #0x1f
- lsl r0, r3, #0x1a
- lsl r1, r1, #0x1
- orr r1, r2
- lsr r0, r0, #0x1f
- orr r0, r1
- strb r0, [r5, #0x1]
- add r0, r4, #0x2
- add r1, r5, #0x2
- mov r2, #0x8
- bl FUN_020292D4
- add r4, #0x12
- add r5, #0x12
- add r0, r4, #0x0
- add r1, r5, #0x0
- mov r2, #0x8
- bl FUN_020292D4
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02028F10
-FUN_02028F10: ; 0x02028F10
- add r2, r0, #0x0
- ldrb r0, [r1, #0x0]
- ldr r3, _02028F28 ; =FUN_020292D4
- strb r0, [r2, #0x0]
- ldrb r0, [r1, #0x1]
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x1f
- strb r0, [r2, #0x1]
- add r0, r1, #0x2
- add r1, r2, #0x2
- mov r2, #0x8
- bx r3
- .balign 4
-_02028F28: .word FUN_020292D4
-
- thumb_func_start FUN_02028F2C
-FUN_02028F2C: ; 0x02028F2C
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- ldrb r0, [r4, #0x0]
- mov r2, #0x8
- strb r0, [r5, #0x0]
- ldrb r0, [r4, #0x1]
- lsl r1, r0, #0x1b
- lsr r1, r1, #0x1f
- lsl r0, r0, #0x18
- lsl r1, r1, #0x2
- lsr r0, r0, #0x1e
- orr r0, r1
- strb r0, [r5, #0x1]
- add r0, r4, #0x2
- add r1, r5, #0x2
- bl FUN_020292D4
- add r4, #0x22
- add r5, #0x12
- add r0, r4, #0x0
- add r1, r5, #0x0
- mov r2, #0xc
- bl FUN_020292D4
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02028F60
-FUN_02028F60: ; 0x02028F60
- push {r4, lr}
- add r4, r1, #0x0
- mov r3, #0x0
- add r2, r0, #0x0
-_02028F68:
- ldrb r1, [r2, #0x1c]
- cmp r1, #0x0
- beq _02028F76
- add r3, r3, #0x1
- add r2, #0x2a
- cmp r3, #0x2
- blo _02028F68
-_02028F76:
- cmp r3, #0x0
- beq _02028F8A
- mov r1, #0x2a
- mul r1, r3
- add r1, r0, r1
- sub r1, #0xe
- ldrb r2, [r4, #0x0]
- ldrb r1, [r1, #0x0]
- cmp r2, r1
- beq _02028F92
-_02028F8A:
- bl FUN_02028CA8
- ldrb r1, [r4, #0x0]
- strb r1, [r0, #0x0]
-_02028F92:
- pop {r4, pc}
-
- thumb_func_start FUN_02028F94
-FUN_02028F94: ; 0x02028F94
- ldrb r2, [r1, #0x0]
- strb r2, [r0, #0x0]
- ldrb r1, [r1, #0x1]
- lsl r1, r1, #0x1c
- lsr r1, r1, #0x1c
- strb r1, [r0, #0x1]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02028FA4
-FUN_02028FA4: ; 0x02028FA4
- push {r3-r5, lr}
- sub sp, #0x10
- add r5, r0, #0x0
- add r0, r1, #0x0
- mov r1, #0x4
- bl FUN_02016998
- add r4, r0, #0x0
- add r0, sp, #0x0
- bl FUN_020126B4
- ldr r2, [r4, #0x0]
- mov r0, #0x7f
- bic r2, r0
- ldr r1, [sp, #0x0]
- mov r0, #0x7f
- and r0, r1
- add r1, r2, #0x0
- orr r1, r0
- str r1, [r4, #0x0]
- add r2, r1, #0x0
- ldr r1, [sp, #0x4]
- ldr r0, _02029008 ; =0xFFFFF87F
- lsl r1, r1, #0x1c
- and r2, r0
- lsr r1, r1, #0x15
- orr r2, r1
- ldr r1, _0202900C ; =0xFFF83FFF
- str r2, [r4, #0x0]
- and r2, r1
- ldr r1, [sp, #0x8]
- lsr r0, r0, #0xd
- lsl r1, r1, #0x1b
- lsr r1, r1, #0xd
- orr r2, r1
- ldr r1, _02029010 ; =0xFFFFC7FF
- str r2, [r4, #0x0]
- and r2, r1
- ldr r1, [sp, #0xc]
- lsl r1, r1, #0x1d
- lsr r1, r1, #0x12
- orr r1, r2
- and r1, r0
- lsl r0, r5, #0x13
- orr r0, r1
- str r0, [r4, #0x0]
- add r0, r4, #0x0
- add sp, #0x10
- pop {r3-r5, pc}
- nop
-_02029008: .word 0xFFFFF87F
-_0202900C: .word 0xFFF83FFF
-_02029010: .word 0xFFFFC7FF
-
- thumb_func_start FUN_02029014
-FUN_02029014: ; 0x02029014
- push {r3, lr}
- mov r1, #0x8
- bl FUN_02016998
- mov r1, #0x0
- strb r1, [r0, #0x0]
- strb r1, [r0, #0x1]
- strb r1, [r0, #0x2]
- strb r1, [r0, #0x3]
- strb r1, [r0, #0x4]
- strb r1, [r0, #0x5]
- strb r1, [r0, #0x6]
- strb r1, [r0, #0x7]
- pop {r3, pc}
-
- thumb_func_start FUN_02029030
-FUN_02029030: ; 0x02029030
- push {r3, lr}
- bl FUN_02029014
- mov r1, #0x1
- strb r1, [r0, #0x0]
- pop {r3, pc}
-
- thumb_func_start FUN_0202903C
-FUN_0202903C: ; 0x0202903C
- push {r3, lr}
- bl FUN_02029014
- mov r1, #0x2
- strb r1, [r0, #0x0]
- pop {r3, pc}
-
- thumb_func_start FUN_02029048
-FUN_02029048: ; 0x02029048
- push {r3, lr}
- bl FUN_02029014
- mov r1, #0x3
- strb r1, [r0, #0x0]
- pop {r3, pc}
-
- thumb_func_start FUN_02029054
-FUN_02029054: ; 0x02029054
- push {r3, lr}
- bl FUN_02029014
- mov r1, #0x4
- strb r1, [r0, #0x0]
- pop {r3, pc}
-
- thumb_func_start FUN_02029060
-FUN_02029060: ; 0x02029060
- push {r3, lr}
- bl FUN_02029014
- mov r1, #0x5
- strb r1, [r0, #0x0]
- pop {r3, pc}
-
- thumb_func_start FUN_0202906C
-FUN_0202906C: ; 0x0202906C
- push {r3, lr}
- bl FUN_02029014
- mov r1, #0x6
- strb r1, [r0, #0x0]
- pop {r3, pc}
-
- thumb_func_start FUN_02029078
-FUN_02029078: ; 0x02029078
- push {r3, lr}
- bl FUN_02029014
- mov r1, #0x7
- strb r1, [r0, #0x0]
- pop {r3, pc}
-
- thumb_func_start FUN_02029084
-FUN_02029084: ; 0x02029084
- push {r3, lr}
- bl FUN_02029014
- mov r1, #0x8
- strb r1, [r0, #0x0]
- pop {r3, pc}
-
- thumb_func_start FUN_02029090
-FUN_02029090: ; 0x02029090
- push {r4, lr}
- add r4, r0, #0x0
- add r0, r1, #0x0
- bl FUN_02029014
- mov r1, #0x9
- strb r1, [r0, #0x0]
- strh r4, [r0, #0x2]
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_020290A4
-FUN_020290A4: ; 0x020290A4
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r0, r2, #0x0
- add r4, r1, #0x0
- bl FUN_02029014
- mov r1, #0xa
- strb r1, [r0, #0x0]
- strh r5, [r0, #0x2]
- strh r4, [r0, #0x4]
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_020290BC
-FUN_020290BC: ; 0x020290BC
- push {r4, lr}
- add r4, r0, #0x0
- add r0, r1, #0x0
- bl FUN_02029014
- mov r1, #0xb
- strb r1, [r0, #0x0]
- strh r4, [r0, #0x4]
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_020290D0
-FUN_020290D0: ; 0x020290D0
- push {r4, lr}
- add r4, r0, #0x0
- add r0, r1, #0x0
- bl FUN_02029014
- mov r1, #0xc
- strb r1, [r0, #0x0]
- strh r4, [r0, #0x4]
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_020290E4
-FUN_020290E4: ; 0x020290E4
- push {r4, lr}
- add r4, r0, #0x0
- add r0, r1, #0x0
- bl FUN_02029014
- mov r1, #0xd
- strb r1, [r0, #0x0]
- strh r4, [r0, #0x2]
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_020290F8
-FUN_020290F8: ; 0x020290F8
- push {r4, lr}
- add r4, r0, #0x0
- add r0, r1, #0x0
- bl FUN_02029014
- mov r1, #0xe
- strb r1, [r0, #0x0]
- strh r4, [r0, #0x2]
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0202910C
-FUN_0202910C: ; 0x0202910C
- push {r4, lr}
- add r4, r0, #0x0
- add r0, r1, #0x0
- bl FUN_02029014
- mov r1, #0xf
- strb r1, [r0, #0x0]
- strh r4, [r0, #0x2]
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02029120
-FUN_02029120: ; 0x02029120
- push {r3, lr}
- bl FUN_02029014
- mov r1, #0x10
- strb r1, [r0, #0x0]
- pop {r3, pc}
-
- thumb_func_start FUN_0202912C
-FUN_0202912C: ; 0x0202912C
- push {r3, lr}
- bl FUN_02029014
- mov r1, #0x11
- strb r1, [r0, #0x0]
- pop {r3, pc}
-
- thumb_func_start FUN_02029138
-FUN_02029138: ; 0x02029138
- push {r4, lr}
- add r4, r0, #0x0
- add r0, r1, #0x0
- bl FUN_02029014
- mov r1, #0x12
- strb r1, [r0, #0x0]
- strh r4, [r0, #0x6]
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0202914C
-FUN_0202914C: ; 0x0202914C
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r0, r2, #0x0
- add r4, r1, #0x0
- bl FUN_02029014
- add r5, #0x13
- strb r5, [r0, #0x0]
- strh r4, [r0, #0x2]
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02029160
-FUN_02029160: ; 0x02029160
- push {r3, lr}
- bl FUN_02029014
- mov r1, #0x22
- strb r1, [r0, #0x0]
- pop {r3, pc}
-
- thumb_func_start FUN_0202916C
-FUN_0202916C: ; 0x0202916C
- push {r3, lr}
- bl FUN_02029014
- mov r1, #0x23
- strb r1, [r0, #0x0]
- pop {r3, pc}
-
- thumb_func_start FUN_02029178
-FUN_02029178: ; 0x02029178
- push {r3, lr}
- mov r1, #0x4
- bl FUN_02016998
- mov r1, #0x0
- strb r1, [r0, #0x0]
- strb r1, [r0, #0x1]
- strb r1, [r0, #0x2]
- strb r1, [r0, #0x3]
- pop {r3, pc}
-
- thumb_func_start FUN_0202918C
-FUN_0202918C: ; 0x0202918C
- push {r3-r7, lr}
- str r0, [sp, #0x0]
- ldr r0, [sp, #0x18]
- add r5, r1, #0x0
- add r6, r2, #0x0
- add r7, r3, #0x0
- bl FUN_02029178
- add r4, r0, #0x0
- mov r0, #0x1
- strb r0, [r4, #0x0]
- strh r5, [r4, #0x2]
- ldrb r1, [r4, #0x1]
- mov r0, #0xc0
- bic r1, r0
- lsl r0, r6, #0x1e
- lsr r0, r0, #0x18
- orr r0, r1
- strb r0, [r4, #0x1]
- ldrb r1, [r4, #0x1]
- mov r0, #0x3c
- bic r1, r0
- lsl r0, r7, #0x1c
- lsr r0, r0, #0x1a
- orr r0, r1
- strb r0, [r4, #0x1]
- ldr r0, [sp, #0x0]
- bl FUN_02029EC0
- mov r1, #0xa
- bl _s32_div_f
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- beq _020291DA
- cmp r0, #0x2
- beq _020291DA
- cmp r0, #0x4
- bne _020291E4
-_020291DA:
- ldrb r1, [r4, #0x1]
- mov r0, #0x3
- bic r1, r0
- strb r1, [r4, #0x1]
- b _02029206
-_020291E4:
- cmp r0, #0x1
- beq _020291EC
- cmp r0, #0x3
- bne _020291FA
-_020291EC:
- ldrb r1, [r4, #0x1]
- mov r0, #0x3
- bic r1, r0
- mov r0, #0x1
- orr r0, r1
- strb r0, [r4, #0x1]
- b _02029206
-_020291FA:
- ldrb r1, [r4, #0x1]
- mov r0, #0x3
- bic r1, r0
- mov r0, #0x2
- orr r0, r1
- strb r0, [r4, #0x1]
-_02029206:
- add r0, r4, #0x0
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0202920C
-FUN_0202920C: ; 0x0202920C
- push {r3-r7, lr}
- str r0, [sp, #0x0]
- ldr r0, [sp, #0x18]
- add r5, r1, #0x0
- add r6, r2, #0x0
- add r7, r3, #0x0
- bl FUN_02029178
- add r4, r0, #0x0
- mov r0, #0x2
- strb r0, [r4, #0x0]
- strh r5, [r4, #0x2]
- ldrb r1, [r4, #0x1]
- mov r0, #0xc0
- bic r1, r0
- lsl r0, r6, #0x1e
- lsr r0, r0, #0x18
- orr r0, r1
- strb r0, [r4, #0x1]
- ldrb r1, [r4, #0x1]
- mov r0, #0x3c
- bic r1, r0
- lsl r0, r7, #0x1c
- lsr r0, r0, #0x1a
- orr r0, r1
- strb r0, [r4, #0x1]
- ldr r0, [sp, #0x0]
- bl FUN_02029EC0
- mov r1, #0xa
- bl _s32_div_f
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- cmp r0, #0x1
- beq _0202925C
- cmp r0, #0x3
- beq _0202925C
- cmp r0, #0x5
- bne _02029266
-_0202925C:
- ldrb r1, [r4, #0x1]
- mov r0, #0x3
- bic r1, r0
- strb r1, [r4, #0x1]
- b _02029288
-_02029266:
- cmp r0, #0x2
- beq _0202926E
- cmp r0, #0x4
- bne _0202927C
-_0202926E:
- ldrb r1, [r4, #0x1]
- mov r0, #0x3
- bic r1, r0
- mov r0, #0x1
- orr r0, r1
- strb r0, [r4, #0x1]
- b _02029288
-_0202927C:
- ldrb r1, [r4, #0x1]
- mov r0, #0x3
- bic r1, r0
- mov r0, #0x2
- orr r0, r1
- strb r0, [r4, #0x1]
-_02029288:
- add r0, r4, #0x0
- pop {r3-r7, pc}
-
- thumb_func_start FUN_0202928C
-FUN_0202928C: ; 0x0202928C
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- add r0, r2, #0x0
- mov r1, #0x4
- bl FUN_02016998
- ldrh r2, [r0, #0x0]
- mov r1, #0x1
- bic r2, r1
- mov r1, #0x1
- orr r1, r2
- strh r1, [r0, #0x0]
- strh r5, [r0, #0x2]
- ldrh r2, [r0, #0x0]
- ldr r1, _020292B8 ; =0xFFFF0001
- and r2, r1
- lsl r1, r4, #0x11
- lsr r1, r1, #0x10
- orr r1, r2
- strh r1, [r0, #0x0]
- pop {r3-r5, pc}
- .balign 4
-_020292B8: .word 0xFFFF0001
-
- thumb_func_start FUN_020292BC
-FUN_020292BC: ; 0x020292BC
- push {r4, lr}
- mov r1, #0x3a
- bl FUN_02016998
- mov r1, #0x0
- mov r2, #0x3a
- add r4, r0, #0x0
- bl Call_FillMemWithValue
- add r0, r4, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_020292D4
-FUN_020292D4: ; 0x020292D4
- push {r4-r5}
- mov r4, #0x0
- cmp r2, #0x0
- bls _020292EA
- ldr r3, _02029308 ; =0x0000FFFF
- add r5, r1, #0x0
-_020292E0:
- add r4, r4, #0x1
- strh r3, [r5, #0x0]
- add r5, r5, #0x2
- cmp r4, r2
- blo _020292E0
-_020292EA:
- mov r5, #0x0
- cmp r2, #0x0
- bls _02029304
- ldr r3, _02029308 ; =0x0000FFFF
-_020292F2:
- ldrh r4, [r0, #0x0]
- cmp r4, r3
- beq _02029304
- add r5, r5, #0x1
- strh r4, [r1, #0x0]
- add r0, r0, #0x2
- add r1, r1, #0x2
- cmp r5, r2
- blo _020292F2
-_02029304:
- pop {r4-r5}
- bx lr
- .balign 4
-_02029308: .word 0x0000FFFF
-
- thumb_func_start FUN_0202930C
-FUN_0202930C: ; 0x0202930C
- push {r3-r7, lr}
- add r7, r0, #0x0
- add r0, r3, #0x0
- add r5, r1, #0x0
- add r6, r2, #0x0
- bl FUN_020292BC
- add r4, r0, #0x0
- mov r0, #0x1
- strb r0, [r4, #0x0]
- ldrb r0, [r4, #0x1]
- mov r1, #0xf
- mov r2, #0x8
- bic r0, r1
- mov r1, #0xf
- and r1, r6
- orr r0, r1
- strb r0, [r4, #0x1]
- ldrb r1, [r4, #0x1]
- mov r0, #0x10
- bic r1, r0
- lsl r0, r5, #0x1f
- lsr r0, r0, #0x1b
- orr r0, r1
- strb r0, [r4, #0x1]
- add r0, r7, #0x0
- add r1, r4, #0x2
- bl FUN_020292D4
- add r0, r4, #0x0
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0202934C
-FUN_0202934C: ; 0x0202934C
- push {r3-r7, lr}
- add r7, r0, #0x0
- add r0, r3, #0x0
- add r5, r1, #0x0
- add r6, r2, #0x0
- bl FUN_020292BC
- add r4, r0, #0x0
- mov r0, #0x2
- strb r0, [r4, #0x0]
- ldrb r0, [r4, #0x1]
- mov r1, #0xf
- mov r2, #0x8
- bic r0, r1
- mov r1, #0xf
- and r1, r6
- orr r0, r1
- strb r0, [r4, #0x1]
- ldrb r1, [r4, #0x1]
- mov r0, #0x10
- bic r1, r0
- lsl r0, r5, #0x1f
- lsr r0, r0, #0x1b
- orr r0, r1
- strb r0, [r4, #0x1]
- add r0, r7, #0x0
- add r1, r4, #0x2
- bl FUN_020292D4
- add r0, r4, #0x0
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0202938C
-FUN_0202938C: ; 0x0202938C
- push {r3-r7, lr}
- add r7, r0, #0x0
- ldr r0, [sp, #0x1c]
- str r1, [sp, #0x0]
- add r5, r2, #0x0
- add r6, r3, #0x0
- bl FUN_020292BC
- add r4, r0, #0x0
- mov r0, #0x3
- strb r0, [r4, #0x0]
- ldrb r0, [r4, #0x1]
- mov r1, #0xf
- bic r0, r1
- add r1, sp, #0x8
- ldrb r2, [r1, #0x10]
- mov r1, #0xf
- and r1, r2
- orr r0, r1
- strb r0, [r4, #0x1]
- ldrb r0, [r4, #0x1]
- mov r1, #0x10
- mov r2, #0x8
- bic r0, r1
- lsl r1, r5, #0x1f
- lsr r1, r1, #0x1b
- orr r0, r1
- strb r0, [r4, #0x1]
- ldrb r1, [r4, #0x1]
- mov r0, #0x20
- bic r1, r0
- lsl r0, r6, #0x1f
- lsr r0, r0, #0x1a
- orr r0, r1
- strb r0, [r4, #0x1]
- add r0, r7, #0x0
- add r1, r4, #0x2
- bl FUN_020292D4
- add r1, r4, #0x0
- ldr r0, [sp, #0x0]
- add r1, #0x12
- mov r2, #0x8
- bl FUN_020292D4
- add r0, r4, #0x0
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_020293EC
-FUN_020293EC: ; 0x020293EC
- push {r3-r7, lr}
- add r7, r0, #0x0
- add r0, r3, #0x0
- add r5, r1, #0x0
- add r6, r2, #0x0
- bl FUN_020292BC
- add r4, r0, #0x0
- mov r0, #0x4
- strb r0, [r4, #0x0]
- ldrb r0, [r4, #0x1]
- mov r1, #0xf
- mov r2, #0x8
- bic r0, r1
- mov r1, #0xf
- and r1, r6
- orr r0, r1
- strb r0, [r4, #0x1]
- ldrb r1, [r4, #0x1]
- mov r0, #0x10
- bic r1, r0
- lsl r0, r5, #0x1f
- lsr r0, r0, #0x1b
- orr r0, r1
- strb r0, [r4, #0x1]
- add r0, r7, #0x0
- add r1, r4, #0x2
- bl FUN_020292D4
- add r0, r4, #0x0
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0202942C
-FUN_0202942C: ; 0x0202942C
- push {r4-r6, lr}
- add r6, r0, #0x0
- add r0, r2, #0x0
- add r5, r1, #0x0
- bl FUN_020292BC
- add r4, r0, #0x0
- mov r0, #0x6
- strb r0, [r4, #0x0]
- ldrb r1, [r4, #0x1]
- mov r0, #0x10
- mov r2, #0x8
- bic r1, r0
- lsl r0, r5, #0x1f
- lsr r0, r0, #0x1b
- orr r0, r1
- strb r0, [r4, #0x1]
- add r0, r6, #0x0
- add r1, r4, #0x2
- bl FUN_020292D4
- add r0, r4, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_0202945C
-FUN_0202945C: ; 0x0202945C
- push {r3-r7, lr}
- add r7, r0, #0x0
- ldr r0, [sp, #0x18]
- add r5, r1, #0x0
- str r2, [sp, #0x0]
- add r6, r3, #0x0
- bl FUN_020292BC
- add r4, r0, #0x0
- mov r0, #0x7
- strb r0, [r4, #0x0]
- ldrb r0, [r4, #0x1]
- mov r1, #0x10
- mov r2, #0x8
- bic r0, r1
- lsl r1, r5, #0x1f
- lsr r1, r1, #0x1b
- orr r0, r1
- strb r0, [r4, #0x1]
- ldrb r1, [r4, #0x1]
- mov r0, #0xc0
- bic r1, r0
- lsl r0, r6, #0x1e
- lsr r0, r0, #0x18
- orr r0, r1
- strb r0, [r4, #0x1]
- add r0, r7, #0x0
- add r1, r4, #0x2
- bl FUN_020292D4
- add r1, r4, #0x0
- ldr r0, [sp, #0x0]
- add r1, #0x22
- mov r2, #0xc
- bl FUN_020292D4
- add r0, r4, #0x0
- pop {r3-r7, pc}
-
- thumb_func_start FUN_020294A8
-FUN_020294A8: ; 0x020294A8
- push {r3, lr}
- bl FUN_020292BC
- mov r1, #0x8
- strb r1, [r0, #0x0]
- pop {r3, pc}
-
- thumb_func_start FUN_020294B4
-FUN_020294B4: ; 0x020294B4
- push {r3-r7, lr}
- add r7, r0, #0x0
- add r0, r3, #0x0
- add r5, r1, #0x0
- add r6, r2, #0x0
- bl FUN_020292BC
- add r4, r0, #0x0
- mov r0, #0xb
- strb r0, [r4, #0x0]
- ldrb r0, [r4, #0x1]
- mov r1, #0xf
- mov r2, #0x8
- bic r0, r1
- mov r1, #0xf
- and r1, r6
- orr r0, r1
- strb r0, [r4, #0x1]
- ldrb r1, [r4, #0x1]
- mov r0, #0x10
- bic r1, r0
- lsl r0, r5, #0x1f
- lsr r0, r0, #0x1b
- orr r0, r1
- strb r0, [r4, #0x1]
- add r0, r7, #0x0
- add r1, r4, #0x2
- bl FUN_020292D4
- add r0, r4, #0x0
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_020294F4
-FUN_020294F4: ; 0x020294F4
- push {r3, lr}
- bl FUN_020292BC
- mov r1, #0xc
- strb r1, [r0, #0x0]
- pop {r3, pc}
-
- thumb_func_start FUN_02029500
-FUN_02029500: ; 0x02029500
- push {r4, lr}
- add r4, r0, #0x0
- add r0, r1, #0x0
- bl FUN_020292BC
- mov r1, #0xd
- strb r1, [r0, #0x0]
- ldrb r2, [r0, #0x1]
- mov r1, #0xf
- bic r2, r1
- mov r1, #0xf
- and r1, r4
- orr r1, r2
- strb r1, [r0, #0x1]
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02029520
-FUN_02029520: ; 0x02029520
- push {r3, lr}
- bl FUN_020292BC
- mov r1, #0xe
- strb r1, [r0, #0x0]
- pop {r3, pc}
-
- thumb_func_start FUN_0202952C
-FUN_0202952C: ; 0x0202952C
- push {r3-r7, lr}
- add r7, r0, #0x0
- ldr r0, [sp, #0x18]
- add r5, r1, #0x0
- str r2, [sp, #0x0]
- add r6, r3, #0x0
- bl FUN_020292BC
- add r4, r0, #0x0
- mov r0, #0xf
- strb r0, [r4, #0x0]
- ldrb r0, [r4, #0x1]
- mov r1, #0x10
- mov r2, #0x8
- bic r0, r1
- lsl r1, r5, #0x1f
- lsr r1, r1, #0x1b
- orr r0, r1
- strb r0, [r4, #0x1]
- ldrb r1, [r4, #0x1]
- mov r0, #0xc0
- bic r1, r0
- lsl r0, r6, #0x1e
- lsr r0, r0, #0x18
- orr r0, r1
- strb r0, [r4, #0x1]
- add r0, r7, #0x0
- add r1, r4, #0x2
- bl FUN_020292D4
- add r1, r4, #0x0
- ldr r0, [sp, #0x0]
- add r1, #0x22
- mov r2, #0xc
- bl FUN_020292D4
- add r0, r4, #0x0
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02029578
-FUN_02029578: ; 0x02029578
- push {r3, lr}
- bl FUN_020292BC
- mov r1, #0x10
- strb r1, [r0, #0x0]
- pop {r3, pc}
-
- thumb_func_start FUN_02029584
-FUN_02029584: ; 0x02029584
- push {r3, lr}
- cmp r2, #0x4
- bhi _020295DA
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_02029596: ; jump table (using 16-bit offset)
- .short _020295A0 - _02029596 - 2; case 0
- .short _020295AC - _02029596 - 2; case 1
- .short _020295B8 - _02029596 - 2; case 2
- .short _020295C4 - _02029596 - 2; case 3
- .short _020295D0 - _02029596 - 2; case 4
-_020295A0:
- mov r2, #0x70
- mul r2, r3
- add r0, r0, r2
- bl FUN_020295DC
- pop {r3, pc}
-_020295AC:
- mov r2, #0x70
- mul r2, r3
- add r0, r0, r2
- bl FUN_020295E4
- pop {r3, pc}
-_020295B8:
- mov r2, #0x70
- mul r2, r3
- add r0, r0, r2
- bl FUN_02029690
- pop {r3, pc}
-_020295C4:
- mov r2, #0x70
- mul r2, r3
- add r0, r0, r2
- bl FUN_0202969C
- pop {r3, pc}
-_020295D0:
- mov r2, #0x70
- mul r2, r3
- add r0, r0, r2
- bl FUN_020296A8
-_020295DA:
- pop {r3, pc}
-
- thumb_func_start FUN_020295DC
-FUN_020295DC: ; 0x020295DC
- ldr r0, [r0, #0x0]
- str r0, [r1, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_020295E4
-FUN_020295E4: ; 0x020295E4
- push {r3-r7, lr}
- mov r6, #0x0
- add r5, r0, #0x0
- add r4, r1, #0x0
- add r7, r6, #0x0
-_020295EE:
- strb r7, [r4, #0x0]
- strb r7, [r4, #0x1]
- strb r7, [r4, #0x2]
- strb r7, [r4, #0x3]
- strb r7, [r4, #0x4]
- strb r7, [r4, #0x5]
- strb r7, [r4, #0x6]
- strb r7, [r4, #0x7]
- ldr r0, [r5, #0x4]
- mov r1, #0x3f
- and r1, r0
- cmp r1, #0x23
- bhi _02029682
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #0x6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02029614: ; jump table (using 16-bit offset)
- .short _02029682 - _02029614 - 2; case 0
- .short _0202965C - _02029614 - 2; case 1
- .short _0202965C - _02029614 - 2; case 2
- .short _0202965C - _02029614 - 2; case 3
- .short _0202965C - _02029614 - 2; case 4
- .short _0202965C - _02029614 - 2; case 5
- .short _0202965C - _02029614 - 2; case 6
- .short _0202965C - _02029614 - 2; case 7
- .short _0202965C - _02029614 - 2; case 8
- .short _02029664 - _02029614 - 2; case 9
- .short _02029664 - _02029614 - 2; case 10
- .short _02029664 - _02029614 - 2; case 11
- .short _02029664 - _02029614 - 2; case 12
- .short _0202966C - _02029614 - 2; case 13
- .short _0202966C - _02029614 - 2; case 14
- .short _0202966C - _02029614 - 2; case 15
- .short _0202965C - _02029614 - 2; case 16
- .short _0202965C - _02029614 - 2; case 17
- .short _02029674 - _02029614 - 2; case 18
- .short _0202967C - _02029614 - 2; case 19
- .short _0202967C - _02029614 - 2; case 20
- .short _0202967C - _02029614 - 2; case 21
- .short _0202967C - _02029614 - 2; case 22
- .short _0202967C - _02029614 - 2; case 23
- .short _0202967C - _02029614 - 2; case 24
- .short _0202967C - _02029614 - 2; case 25
- .short _0202967C - _02029614 - 2; case 26
- .short _0202967C - _02029614 - 2; case 27
- .short _0202967C - _02029614 - 2; case 28
- .short _0202967C - _02029614 - 2; case 29
- .short _0202967C - _02029614 - 2; case 30
- .short _02029682 - _02029614 - 2; case 31
- .short _0202967C - _02029614 - 2; case 32
- .short _0202967C - _02029614 - 2; case 33
- .short _0202965C - _02029614 - 2; case 34
- .short _0202965C - _02029614 - 2; case 35
-_0202965C:
- add r1, r4, #0x0
- bl FUN_02029730
- b _02029682
-_02029664:
- add r1, r4, #0x0
- bl FUN_02029738
- b _02029682
-_0202966C:
- add r1, r4, #0x0
- bl FUN_02029750
- b _02029682
-_02029674:
- add r1, r4, #0x0
- bl FUN_0202975C
- b _02029682
-_0202967C:
- add r1, r4, #0x0
- bl FUN_02029768
-_02029682:
- add r6, r6, #0x1
- add r4, #0x8
- add r5, r5, #0x4
- cmp r6, #0x4
- blo _020295EE
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02029690
-FUN_02029690: ; 0x02029690
- ldrh r2, [r0, #0x14]
- strh r2, [r1, #0x0]
- ldrh r0, [r0, #0x16]
- strh r0, [r1, #0x2]
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202969C
-FUN_0202969C: ; 0x0202969C
- ldrh r2, [r0, #0x18]
- strh r2, [r1, #0x0]
- ldrh r0, [r0, #0x1a]
- strh r0, [r1, #0x2]
- bx lr
- .balign 4
-
- thumb_func_start FUN_020296A8
-FUN_020296A8: ; 0x020296A8
- push {r3-r7, lr}
- add r6, r0, #0x0
- add r5, r6, #0x0
- add r4, r1, #0x0
- mov r7, #0x0
- add r5, #0x1c
-_020296B4:
- add r0, r4, #0x0
- mov r1, #0x0
- mov r2, #0x3a
- bl Call_FillMemWithValue
- ldrb r0, [r6, #0x1c]
- cmp r0, #0x10
- bhi _02029722
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_020296D0: ; jump table (using 16-bit offset)
- .short _02029722 - _020296D0 - 2; case 0
- .short _020296F2 - _020296D0 - 2; case 1
- .short _020296F2 - _020296D0 - 2; case 2
- .short _020296F2 - _020296D0 - 2; case 3
- .short _020296F2 - _020296D0 - 2; case 4
- .short _020296F2 - _020296D0 - 2; case 5
- .short _020296FC - _020296D0 - 2; case 6
- .short _02029706 - _020296D0 - 2; case 7
- .short _02029710 - _020296D0 - 2; case 8
- .short _02029706 - _020296D0 - 2; case 9
- .short _02029710 - _020296D0 - 2; case 10
- .short _020296F2 - _020296D0 - 2; case 11
- .short _02029710 - _020296D0 - 2; case 12
- .short _0202971A - _020296D0 - 2; case 13
- .short _02029710 - _020296D0 - 2; case 14
- .short _02029706 - _020296D0 - 2; case 15
- .short _02029710 - _020296D0 - 2; case 16
-_020296F2:
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02029774
- b _02029722
-_020296FC:
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_020297E4
- b _02029722
-_02029706:
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02029808
- b _02029722
-_02029710:
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02029860
- b _02029722
-_0202971A:
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02029868
-_02029722:
- add r7, r7, #0x1
- add r4, #0x3a
- add r6, #0x2a
- add r5, #0x2a
- cmp r7, #0x2
- blo _020296B4
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02029730
-FUN_02029730: ; 0x02029730
- mov r2, #0x3f
- and r0, r2
- strb r0, [r1, #0x0]
- bx lr
-
- thumb_func_start FUN_02029738
-FUN_02029738: ; 0x02029738
- mov r2, #0x3f
- and r2, r0
- strb r2, [r1, #0x0]
- lsr r3, r0, #0x6
- ldr r2, _0202974C ; =0x000003FF
- lsr r0, r0, #0x10
- and r2, r3
- strh r2, [r1, #0x4]
- strh r0, [r1, #0x2]
- bx lr
- .balign 4
-_0202974C: .word 0x000003FF
-
- thumb_func_start FUN_02029750
-FUN_02029750: ; 0x02029750
- mov r2, #0x3f
- and r2, r0
- strb r2, [r1, #0x0]
- lsr r0, r0, #0x10
- strh r0, [r1, #0x2]
- bx lr
-
- thumb_func_start FUN_0202975C
-FUN_0202975C: ; 0x0202975C
- mov r2, #0x3f
- and r2, r0
- strb r2, [r1, #0x0]
- lsr r0, r0, #0x10
- strh r0, [r1, #0x6]
- bx lr
-
- thumb_func_start FUN_02029768
-FUN_02029768: ; 0x02029768
- mov r2, #0x3f
- and r2, r0
- strb r2, [r1, #0x0]
- lsr r0, r0, #0x10
- strh r0, [r1, #0x2]
- bx lr
-
- thumb_func_start FUN_02029774
-FUN_02029774: ; 0x02029774
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldrb r0, [r5, #0x0]
- add r4, r1, #0x0
- mov r1, #0xf
- strb r0, [r4, #0x0]
- ldrb r0, [r4, #0x1]
- bic r0, r1
- ldrb r1, [r5, #0x1]
- asr r2, r1, #0x2
- mov r1, #0x1f
- and r1, r2
- lsl r1, r1, #0x18
- lsr r2, r1, #0x18
- mov r1, #0xf
- and r1, r2
- orr r0, r1
- strb r0, [r4, #0x1]
- ldrb r0, [r4, #0x1]
- mov r1, #0x10
- mov r2, #0x1
- bic r0, r1
- ldrb r1, [r5, #0x1]
- asr r1, r1, #0x1
- and r1, r2
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- lsl r1, r1, #0x1f
- lsr r1, r1, #0x1b
- orr r0, r1
- strb r0, [r4, #0x1]
- ldrb r0, [r4, #0x1]
- mov r1, #0x20
- bic r0, r1
- ldrb r1, [r5, #0x1]
- and r1, r2
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- lsl r1, r1, #0x1f
- lsr r1, r1, #0x1a
- orr r0, r1
- strb r0, [r4, #0x1]
- add r0, r5, #0x2
- add r1, r4, #0x2
- mov r2, #0x8
- bl FUN_020292D4
- add r5, #0x12
- add r4, #0x12
- add r0, r5, #0x0
- add r1, r4, #0x0
- mov r2, #0x8
- bl FUN_020292D4
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_020297E4
-FUN_020297E4: ; 0x020297E4
- ldrb r2, [r0, #0x0]
- strb r2, [r1, #0x0]
- ldrb r3, [r1, #0x1]
- mov r2, #0x10
- bic r3, r2
- ldrb r2, [r0, #0x1]
- add r0, r0, #0x2
- lsl r2, r2, #0x1f
- lsr r2, r2, #0x1b
- orr r2, r3
- strb r2, [r1, #0x1]
- ldr r3, _02029804 ; =FUN_020292D4
- add r1, r1, #0x2
- mov r2, #0x8
- bx r3
- nop
-_02029804: .word FUN_020292D4
-
- thumb_func_start FUN_02029808
-FUN_02029808: ; 0x02029808
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldrb r0, [r5, #0x0]
- add r4, r1, #0x0
- mov r1, #0x10
- strb r0, [r4, #0x0]
- ldrb r0, [r4, #0x1]
- bic r0, r1
- ldrb r1, [r5, #0x1]
- asr r2, r1, #0x2
- mov r1, #0x1
- and r1, r2
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- lsl r1, r1, #0x1f
- lsr r1, r1, #0x1b
- orr r0, r1
- strb r0, [r4, #0x1]
- ldrb r0, [r4, #0x1]
- mov r1, #0xc0
- ldrb r2, [r5, #0x1]
- bic r0, r1
- mov r1, #0x3
- and r1, r2
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- lsl r1, r1, #0x1e
- lsr r1, r1, #0x18
- orr r0, r1
- strb r0, [r4, #0x1]
- add r0, r5, #0x2
- add r1, r4, #0x2
- mov r2, #0x8
- bl FUN_020292D4
- add r5, #0x12
- add r4, #0x22
- add r0, r5, #0x0
- add r1, r4, #0x0
- mov r2, #0xc
- bl FUN_020292D4
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02029860
-FUN_02029860: ; 0x02029860
- ldrb r0, [r0, #0x0]
- strb r0, [r1, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02029868
-FUN_02029868: ; 0x02029868
- ldrb r2, [r0, #0x0]
- strb r2, [r1, #0x0]
- ldrb r3, [r1, #0x1]
- mov r2, #0xf
- bic r3, r2
- ldrb r2, [r0, #0x1]
- mov r0, #0xf
- and r0, r2
- orr r0, r3
- strb r0, [r1, #0x1]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02029880
-FUN_02029880: ; 0x02029880
- push {r4-r7, lr}
- sub sp, #0xc
- add r7, r0, #0x0
- mov r0, #0x0
- add r4, r3, #0x0
- str r0, [sp, #0x4]
- add r0, r4, #0x0
- str r1, [sp, #0x0]
- add r5, r2, #0x0
- ldr r6, [sp, #0x20]
- bl FUN_02034930
- cmp r0, #0x1
- bne _020298BA
- add r0, r5, #0x0
- bl FUN_02034964
- cmp r0, #0x1
- bne _02029942
- add r0, r4, #0x0
- bl FUN_02034824
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- add r1, r6, #0x0
- bl FUN_020290F8
- str r0, [sp, #0x4]
- b _02029942
-_020298BA:
- add r0, r4, #0x0
- bl FUN_02034944
- cmp r0, #0x1
- bne _0202991A
- add r0, r5, #0x0
- bl FUN_02034964
- cmp r0, #0x1
- bne _02029942
- ldr r0, _02029958 ; =0x0000019E
- cmp r4, r0
- bne _020298DE
- add r0, r6, #0x0
- bl FUN_02029030
- str r0, [sp, #0x4]
- b _02029942
-_020298DE:
- add r0, #0x8
- cmp r4, r0
- bne _020298EE
- add r0, r6, #0x0
- bl FUN_0202903C
- str r0, [sp, #0x4]
- b _02029942
-_020298EE:
- add r0, r4, #0x0
- bl FUN_02034824
- add r7, r0, #0x0
- lsl r0, r7, #0x10
- lsr r0, r0, #0x10
- ldr r5, _0202995C ; =0x020EE9A4
- mov r4, #0x0
- str r0, [sp, #0x8]
-_02029900:
- ldr r0, [r5, #0x0]
- cmp r7, r0
- bne _02029910
- ldr r0, [sp, #0x8]
- add r1, r6, #0x0
- bl FUN_0202910C
- str r0, [sp, #0x4]
-_02029910:
- add r4, r4, #0x1
- add r5, #0x8
- cmp r4, #0x1b
- blo _02029900
- b _02029942
-_0202991A:
- add r0, r4, #0x0
- bl FUN_02034964
- cmp r0, #0x1
- bne _02029942
- add r0, r5, #0x0
- bl FUN_02034944
- cmp r0, #0x1
- bne _02029942
- add r0, r7, #0x0
- add r1, r5, #0x0
- bl FUN_02029988
- cmp r0, #0xff
- beq _02029942
- add r1, r6, #0x0
- bl FUN_02029090
- str r0, [sp, #0x4]
-_02029942:
- ldr r0, [sp, #0x4]
- cmp r0, #0x0
- beq _02029952
- ldr r0, [sp, #0x0]
- ldr r1, [sp, #0x4]
- mov r2, #0x1
- bl FUN_02028AD4
-_02029952:
- add sp, #0xc
- pop {r4-r7, pc}
- nop
-_02029958: .word 0x0000019E
-_0202995C: .word 0x020EE9A4
-
- thumb_func_start FUN_02029960
-FUN_02029960: ; 0x02029960
- ldr r3, _02029980 ; =0x020EE9A4
- mov r2, #0x0
-_02029964:
- ldr r1, [r3, #0x0]
- cmp r0, r1
- bne _02029972
- ldr r0, _02029984 ; =0x020EE9A8
- lsl r1, r2, #0x3
- ldr r0, [r0, r1]
- bx lr
-_02029972:
- add r2, r2, #0x1
- add r3, #0x8
- cmp r2, #0x1b
- blo _02029964
- mov r0, #0x0
- bx lr
- nop
-_02029980: .word 0x020EE9A4
-_02029984: .word 0x020EE9A8
-
- thumb_func_start FUN_02029988
-FUN_02029988: ; 0x02029988
- push {r3-r5, lr}
- ldr r2, _020299B8 ; =0x020EE964
- mov r4, #0x0
-_0202998E:
- lsl r3, r4, #0x3
- add r5, r2, r3
- ldrh r5, [r5, #0x4]
- cmp r1, r5
- bne _020299A8
- ldr r1, _020299BC ; =0x020EE96A
- ldrh r1, [r1, r3]
- bl FUN_020239D0
- cmp r0, #0x0
- bne _020299B2
- add r0, r4, #0x0
- pop {r3-r5, pc}
-_020299A8:
- add r3, r4, #0x1
- lsl r3, r3, #0x18
- lsr r4, r3, #0x18
- cmp r4, #0x8
- blo _0202998E
-_020299B2:
- mov r0, #0xff
- pop {r3-r5, pc}
- nop
-_020299B8: .word 0x020EE964
-_020299BC: .word 0x020EE96A
-
- thumb_func_start FUN_020299C0
-FUN_020299C0: ; 0x020299C0
- push {r4, lr}
- add r4, r0, #0x0
- lsl r0, r1, #0x10
- lsr r0, r0, #0x10
- add r1, r2, #0x0
- bl FUN_020290E4
- add r1, r0, #0x0
- add r0, r4, #0x0
- mov r2, #0x1
- bl FUN_02028AD4
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_020299DC
-FUN_020299DC: ; 0x020299DC
- push {r3-r7, lr}
- add r4, r2, #0x0
- add r5, r0, #0x0
- add r0, r4, #0x0
- add r7, r1, #0x0
- add r6, r3, #0x0
- bl FUN_02029A48
- cmp r0, #0x8
- bhs _02029A04
- add r1, r4, #0x0
- add r2, r6, #0x0
- bl FUN_020290A4
- add r1, r0, #0x0
- add r0, r5, #0x0
- mov r2, #0x1
- bl FUN_02028AD4
- pop {r3-r7, pc}
-_02029A04:
- bne _02029A1A
- add r0, r4, #0x0
- add r1, r6, #0x0
- bl FUN_020290BC
- add r1, r0, #0x0
- add r0, r5, #0x0
- mov r2, #0x1
- bl FUN_02028AD4
- pop {r3-r7, pc}
-_02029A1A:
- cmp r0, #0x9
- bne _02029A32
- add r0, r4, #0x0
- add r1, r6, #0x0
- bl FUN_020290D0
- add r1, r0, #0x0
- add r0, r5, #0x0
- mov r2, #0x1
- bl FUN_02028AD4
- pop {r3-r7, pc}
-_02029A32:
- add r0, r7, #0x0
- add r1, r4, #0x0
- add r2, r6, #0x0
- bl FUN_0202928C
- add r1, r0, #0x0
- add r0, r5, #0x0
- mov r2, #0x3
- bl FUN_02028AD4
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02029A48
-FUN_02029A48: ; 0x02029A48
- ldr r2, _02029A7C ; =0x020EE964
- mov r3, #0x0
-_02029A4C:
- lsl r1, r3, #0x3
- ldr r1, [r2, r1]
- cmp r0, r1
- bne _02029A58
- add r0, r3, #0x0
- bx lr
-_02029A58:
- add r1, r3, #0x1
- lsl r1, r1, #0x18
- lsr r3, r1, #0x18
- cmp r3, #0x8
- blo _02029A4C
- ldr r1, _02029A80 ; =0x00000105
- sub r2, r0, r1
- cmp r2, #0x3
- bhi _02029A6E
- mov r0, #0x8
- bx lr
-_02029A6E:
- add r1, r1, #0x6
- cmp r0, r1
- bne _02029A78
- mov r0, #0x9
- bx lr
-_02029A78:
- mov r0, #0xa
- bx lr
- .balign 4
-_02029A7C: .word 0x020EE964
-_02029A80: .word 0x00000105
-
- thumb_func_start FUN_02029A84
-FUN_02029A84: ; 0x02029A84
- mov r0, #0x62
- lsl r0, r0, #0x4
- bx lr
- .balign 4
-
- thumb_func_start FUN_02029A8C
-FUN_02029A8C: ; 0x02029A8C
- push {r4-r6, lr}
- mov r2, #0x62
- add r4, r0, #0x0
- mov r1, #0x0
- lsl r2, r2, #0x4
- bl Call_FillMemWithValue
- add r0, r4, #0x0
- bl FUN_02029ACC
- add r5, r0, #0x0
- mov r4, #0x0
- mov r6, #0x8c
-_02029AA6:
- lsl r0, r4, #0x18
- lsr r0, r0, #0x18
- add r1, r6, #0x0
- add r2, r5, #0x0
- bl FUN_02029AD8
- add r4, r4, #0x1
- cmp r4, #0x8
- blt _02029AA6
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02029ABC
-FUN_02029ABC: ; 0x02029ABC
- ldr r3, _02029AC4 ; =FUN_02022610
- mov r1, #0x13
- bx r3
- nop
-_02029AC4: .word FUN_02022610
-
- thumb_func_start FUN_02029AC8
-FUN_02029AC8: ; 0x02029AC8
- add r0, #0x20
- bx lr
-
- thumb_func_start FUN_02029ACC
-FUN_02029ACC: ; 0x02029ACC
- bx lr
- .balign 4
-
- thumb_func_start FUN_02029AD0
-FUN_02029AD0: ; 0x02029AD0
- lsl r0, r0, #0x2
- ldr r0, [r1, r0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02029AD8
-FUN_02029AD8: ; 0x02029AD8
- lsl r0, r0, #0x2
- str r1, [r2, r0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02029AE0
-FUN_02029AE0: ; 0x02029AE0
- ldr r0, _02029AE4 ; =0x00000FF8
- bx lr
- .balign 4
-_02029AE4: .word 0x00000FF8
-
- thumb_func_start FUN_02029AE8
-FUN_02029AE8: ; 0x02029AE8
- ldr r3, _02029AF4 ; =MIi_CpuClear32
- add r1, r0, #0x0
- mov r0, #0x0
- ldr r2, _02029AF8 ; =0x00000FF8
- bx r3
- nop
-_02029AF4: .word MIi_CpuClear32
-_02029AF8: .word 0x00000FF8
-
- thumb_func_start FUN_02029AFC
-FUN_02029AFC: ; 0x02029AFC
- ldr r3, _02029B04 ; =FUN_02022610
- mov r1, #0x1e
- bx r3
- nop
-_02029B04: .word FUN_02022610
-
- thumb_func_start FUN_02029B08
-FUN_02029B08: ; 0x02029B08
- push {r4-r6, lr}
- add r6, r0, #0x0
- mov r0, #0x1
- add r5, r1, #0x0
- lsl r0, r0, #0x8
- add r4, r2, #0x0
- cmp r5, r0
- blt _02029B1C
- bl ErrorHandling
-_02029B1C:
- cmp r4, #0x40
- blt _02029B24
- bl ErrorHandling
-_02029B24:
- strb r5, [r6, #0x5]
- add r0, r6, #0x0
- add r1, r5, #0x0
- add r2, r4, #0x0
- mov r3, #0x3
- strb r4, [r6, #0x6]
- bl FUN_02029B90
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02029B38
-FUN_02029B38: ; 0x02029B38
- ldrb r0, [r0, #0x5]
- bx lr
-
- thumb_func_start FUN_02029B3C
-FUN_02029B3C: ; 0x02029B3C
- ldrb r0, [r0, #0x6]
- bx lr
-
- thumb_func_start FUN_02029B40
-FUN_02029B40: ; 0x02029B40
- push {r4-r6, lr}
- add r6, r0, #0x0
- mov r0, #0x1
- add r5, r1, #0x0
- lsl r0, r0, #0x8
- add r4, r2, #0x0
- cmp r5, r0
- blt _02029B54
- bl ErrorHandling
-_02029B54:
- cmp r4, #0x40
- blt _02029B5C
- bl ErrorHandling
-_02029B5C:
- cmp r5, #0x0
- bne _02029B64
- mov r0, #0x0
- pop {r4-r6, pc}
-_02029B64:
- asr r0, r4, #0x1
- lsr r0, r0, #0x1e
- add r0, r4, r0
- asr r1, r0, #0x2
- sub r0, r5, #0x1
- lsl r0, r0, #0x4
- add r0, r1, r0
- add r0, r6, r0
- ldrb r3, [r0, #0x7]
- lsr r2, r4, #0x1f
- lsl r1, r4, #0x1e
- sub r1, r1, r2
- mov r0, #0x1e
- ror r1, r0
- add r0, r2, r1
- lsl r0, r0, #0x1
- add r1, r3, #0x0
- asr r1, r0
- mov r0, #0x3
- and r0, r1
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02029B90
-FUN_02029B90: ; 0x02029B90
- push {r3-r7, lr}
- add r7, r0, #0x0
- add r5, r1, #0x0
- add r4, r2, #0x0
- str r3, [sp, #0x0]
- cmp r3, #0x4
- blt _02029BA2
- bl ErrorHandling
-_02029BA2:
- mov r0, #0x1
- lsl r0, r0, #0x8
- cmp r5, r0
- blt _02029BAE
- bl ErrorHandling
-_02029BAE:
- cmp r4, #0x40
- blt _02029BB6
- bl ErrorHandling
-_02029BB6:
- cmp r5, #0x0
- beq _02029BFE
- asr r0, r4, #0x1
- lsr r0, r0, #0x1e
- add r0, r4, r0
- asr r2, r0, #0x2
- sub r0, r5, #0x1
- lsl r0, r0, #0x4
- add r0, r2, r0
- lsr r2, r4, #0x1f
- lsl r4, r4, #0x1e
- sub r4, r4, r2
- mov r3, #0x1e
- ror r4, r3
- add r2, r2, r4
- lsl r6, r2, #0x1
- mov r2, #0x3
- add r3, r2, #0x0
- add r1, r7, #0x7
- ldrb r4, [r1, r0]
- lsl r3, r6
- mov r2, #0xff
- eor r2, r3
- and r2, r4
- ldr r3, [sp, #0x0]
- strb r2, [r1, r0]
- ldrb r2, [r1, r0]
- lsl r3, r6
- orr r2, r3
- strb r2, [r1, r0]
- cmp r5, #0x67
- beq _02029BFE
- add r0, r7, #0x0
- mov r1, #0x1
- bl FUN_02029C04
-_02029BFE:
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02029C00
-FUN_02029C00: ; 0x02029C00
- ldrb r0, [r0, #0x4]
- bx lr
-
- thumb_func_start FUN_02029C04
-FUN_02029C04: ; 0x02029C04
- strb r1, [r0, #0x4]
- bx lr
-
- thumb_func_start FUN_02029C08
-FUN_02029C08: ; 0x02029C08
- push {r3-r7, lr}
- mov lr, r0
- mov r0, #0x3
- mov r7, #0x0
- mov r4, #0x2
- mov r6, #0xff
- add r3, r0, #0x0
-_02029C16:
- mov r1, lr
- add r1, r1, r7
- ldrb r2, [r1, #0x7]
- mov r12, r1
- mov r1, #0x0
-_02029C20:
- add r5, r2, #0x0
- asr r5, r1
- and r5, r3
- cmp r5, #0x1
- bne _02029C40
- add r5, r0, #0x0
- lsl r5, r1
- eor r5, r6
- and r2, r5
- lsl r2, r2, #0x18
- lsr r5, r2, #0x18
- add r2, r4, #0x0
- lsl r2, r1
- orr r2, r5
- lsl r2, r2, #0x18
- lsr r2, r2, #0x18
-_02029C40:
- add r1, r1, #0x2
- cmp r1, #0x8
- blt _02029C20
- mov r1, r12
- strb r2, [r1, #0x7]
- mov r1, #0xff
- add r7, r7, #0x1
- lsl r1, r1, #0x4
- cmp r7, r1
- blt _02029C16
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02029C58
-FUN_02029C58: ; 0x02029C58
- mov r0, #0x17
- lsl r0, r0, #0x4
- bx lr
- .balign 4
-
- thumb_func_start FUN_02029C60
-FUN_02029C60: ; 0x02029C60
- push {r4, lr}
- add r4, r0, #0x0
- bl FUN_02029C58
- add r2, r0, #0x0
- add r0, r4, #0x0
- mov r1, #0x0
- bl MI_CpuFill8
- pop {r4, pc}
-
- thumb_func_start FUN_02029C74
-FUN_02029C74: ; 0x02029C74
- ldr r3, _02029C7C ; =MI_CpuCopy8
- mov r2, #0x18
- bx r3
- nop
-_02029C7C: .word MI_CpuCopy8
-
- thumb_func_start FUN_02029C80
-FUN_02029C80: ; 0x02029C80
- ldr r3, _02029C88 ; =FUN_02022610
- mov r1, #0x15
- bx r3
- nop
-_02029C88: .word FUN_02022610
-
- thumb_func_start FUN_02029C8C
-FUN_02029C8C: ; 0x02029C8C
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- cmp r4, #0xc
- blt _02029C9A
- bl ErrorHandling
-_02029C9A:
- mov r0, #0x18
- mul r0, r4
- add r0, r5, r0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02029CA4
-FUN_02029CA4: ; 0x02029CA4
- push {r4-r6, lr}
- add r6, r2, #0x0
- add r5, r0, #0x0
- add r4, r1, #0x0
- cmp r6, #0xc
- blt _02029CB4
- bl ErrorHandling
-_02029CB4:
- add r0, r5, #0x0
- add r1, r6, #0x0
- bl FUN_02029C8C
- add r1, r0, #0x0
- add r0, r4, #0x0
- bl FUN_02029C74
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02029CC8
-FUN_02029CC8: ; 0x02029CC8
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- cmp r4, #0x8
- blt _02029CD6
- bl ErrorHandling
-_02029CD6:
- lsl r0, r4, #0x1
- add r0, r4, r0
- add r0, r5, r0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02029CE0
-FUN_02029CE0: ; 0x02029CE0
- ldrb r0, [r0, #0x0]
- bx lr
-
- thumb_func_start FUN_02029CE4
-FUN_02029CE4: ; 0x02029CE4
- ldrb r0, [r0, #0x1]
- bx lr
-
- thumb_func_start FUN_02029CE8
-FUN_02029CE8: ; 0x02029CE8
- ldrb r0, [r0, #0x2]
- bx lr
-
- thumb_func_start FUN_02029CEC
-FUN_02029CEC: ; 0x02029CEC
- mov r1, #0x12
- lsl r1, r1, #0x4
- add r0, r0, r1
- bx lr
-
- thumb_func_start FUN_02029CF4
-FUN_02029CF4: ; 0x02029CF4
- ldrb r0, [r0, r1]
- bx lr
-
- thumb_func_start FUN_02029CF8
-FUN_02029CF8: ; 0x02029CF8
- mov r3, #0x0
- add r2, r1, #0x1
-_02029CFC:
- ldrb r1, [r0, #0x0]
- cmp r2, r1
- bne _02029D06
- mov r0, #0x1
- bx lr
-_02029D06:
- add r3, r3, #0x1
- add r0, r0, #0x3
- cmp r3, #0x8
- blt _02029CFC
- mov r0, #0x0
- bx lr
- .balign 4
-
- thumb_func_start FUN_02029D14
-FUN_02029D14: ; 0x02029D14
- push {r4-r7}
- mov r6, #0x0
- add r4, r6, #0x0
- add r2, r1, #0x1
- add r3, r6, #0x0
-_02029D1E:
- add r5, r3, #0x0
- add r7, r0, #0x0
-_02029D22:
- ldrb r1, [r7, #0x0]
- cmp r2, r1
- bne _02029D2A
- add r6, r6, #0x1
-_02029D2A:
- add r5, r5, #0x1
- add r7, r7, #0x3
- cmp r5, #0x8
- blt _02029D22
- add r4, r4, #0x1
- add r0, #0x18
- cmp r4, #0xc
- blt _02029D1E
- add r0, r6, #0x0
- pop {r4-r7}
- bx lr
-
- thumb_func_start FUN_02029D40
-FUN_02029D40: ; 0x02029D40
- strb r2, [r0, r1]
- bx lr
-
- thumb_func_start FUN_02029D44
-FUN_02029D44: ; 0x02029D44
- push {r4-r6, lr}
- add r5, r1, #0x0
- sub r1, r5, #0x1
- add r6, r0, #0x0
- add r4, r2, #0x0
- bl FUN_02029D14
- mov r1, #0x12
- lsl r1, r1, #0x4
- add r2, r6, r1
- sub r1, r5, #0x1
- ldrb r3, [r2, r1]
- add r0, r0, r3
- cmp r4, #0x0
- bge _02029D6E
- add r0, r4, r3
- bmi _02029D6A
- strb r0, [r2, r1]
- b _02029D7E
-_02029D6A:
- mov r0, #0x0
- pop {r4-r6, pc}
-_02029D6E:
- add r0, r0, r4
- cmp r0, #0x63
- bgt _02029D7A
- add r0, r3, r4
- strb r0, [r2, r1]
- b _02029D7E
-_02029D7A:
- mov r0, #0x0
- pop {r4-r6, pc}
-_02029D7E:
- mov r0, #0x1
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02029D84
-FUN_02029D84: ; 0x02029D84
- push {r4-r6, lr}
- add r5, r1, #0x0
- sub r1, r5, #0x1
- add r6, r0, #0x0
- add r4, r2, #0x0
- bl FUN_02029D14
- cmp r4, #0x0
- bge _02029DAC
- mov r0, #0x12
- lsl r0, r0, #0x4
- add r2, r6, r0
- sub r1, r5, #0x1
- ldrb r0, [r2, r1]
- add r0, r4, r0
- bmi _02029DA8
- strb r0, [r2, r1]
- b _02029DD0
-_02029DA8:
- mov r0, #0x0
- pop {r4-r6, pc}
-_02029DAC:
- add r0, r0, r4
- cmp r0, #0x63
- bgt _02029DCC
- mov r0, #0x12
- lsl r0, r0, #0x4
- add r2, r6, r0
- sub r1, r5, #0x1
- ldrb r0, [r2, r1]
- add r0, r0, r4
- strb r0, [r2, r1]
- ldrb r0, [r2, r1]
- cmp r0, #0x63
- blo _02029DD0
- mov r0, #0x63
- strb r0, [r2, r1]
- b _02029DD0
-_02029DCC:
- mov r0, #0x0
- pop {r4-r6, pc}
-_02029DD0:
- mov r0, #0x1
- pop {r4-r6, pc}
-
- thumb_func_start FUN_02029DD4
-FUN_02029DD4: ; 0x02029DD4
- push {r4-r6, lr}
- add r5, r1, #0x0
- sub r1, r5, #0x1
- add r6, r0, #0x0
- add r4, r2, #0x0
- bl FUN_02029D14
- sub r1, r5, #0x1
- add r2, r6, r1
- mov r1, #0x12
- lsl r1, r1, #0x4
- ldrb r1, [r2, r1]
- add r0, r0, r1
- cmp r4, #0x0
- bge _02029DFE
- add r0, r4, r1
- bmi _02029DFA
- mov r0, #0x1
- pop {r4-r6, pc}
-_02029DFA:
- mov r0, #0x0
- pop {r4-r6, pc}
-_02029DFE:
- add r0, r0, r4
- cmp r0, #0x63
- bgt _02029E08
- mov r0, #0x1
- pop {r4-r6, pc}
-_02029E08:
- mov r0, #0x0
- pop {r4-r6, pc}
-
- thumb_func_start FUN_02029E0C
-FUN_02029E0C: ; 0x02029E0C
- push {r4-r6, lr}
- add r6, r0, #0x0
- mov r5, #0x0
- mov r4, #0x1
-_02029E14:
- add r0, r6, #0x0
- add r1, r4, #0x0
- bl FUN_02029E2C
- cmp r0, #0x0
- beq _02029E22
- add r5, r5, #0x1
-_02029E22:
- add r4, r4, #0x1
- cmp r4, #0x51
- blt _02029E14
- add r0, r5, #0x0
- pop {r4-r6, pc}
-
- thumb_func_start FUN_02029E2C
-FUN_02029E2C: ; 0x02029E2C
- push {r3-r5, lr}
- add r5, r1, #0x0
- sub r1, r5, #0x1
- add r4, r0, #0x0
- bl FUN_02029D14
- sub r1, r5, #0x1
- add r2, r4, r1
- mov r1, #0x12
- lsl r1, r1, #0x4
- ldrb r1, [r2, r1]
- add r0, r0, r1
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02029E48
-FUN_02029E48: ; 0x02029E48
- mov r1, #0x0
- strh r1, [r0, #0x0]
- strb r1, [r0, #0x2]
- strb r1, [r0, #0x3]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02029E54
-FUN_02029E54: ; 0x02029E54
- push {r3-r7, lr}
- add r5, r0, #0x0
- ldrh r6, [r5, #0x0]
- ldr r0, _02029EB8 ; =0x000003E7
- cmp r6, r0
- bne _02029E6C
- ldrb r0, [r5, #0x2]
- cmp r0, #0x3b
- bne _02029E6C
- ldrb r0, [r5, #0x3]
- cmp r0, #0x3b
- beq _02029EB4
-_02029E6C:
- ldrb r0, [r5, #0x3]
- ldrb r4, [r5, #0x2]
- add r7, r0, r1
- cmp r7, #0x3b
- bls _02029EAE
- add r0, r7, #0x0
- mov r1, #0x3c
- bl _u32_div_f
- add r4, r4, r0
- add r0, r7, #0x0
- mov r1, #0x3c
- bl _u32_div_f
- add r7, r1, #0x0
- cmp r4, #0x3b
- bls _02029EAE
- add r0, r4, #0x0
- mov r1, #0x3c
- bl _u32_div_f
- add r6, r6, r0
- add r0, r4, #0x0
- mov r1, #0x3c
- bl _u32_div_f
- ldr r0, _02029EB8 ; =0x000003E7
- add r4, r1, #0x0
- cmp r6, r0
- blo _02029EAE
- mov r4, #0x3b
- add r6, r0, #0x0
- add r7, r4, #0x0
-_02029EAE:
- strh r6, [r5, #0x0]
- strb r4, [r5, #0x2]
- strb r7, [r5, #0x3]
-_02029EB4:
- pop {r3-r7, pc}
- nop
-_02029EB8: .word 0x000003E7
-
- thumb_func_start FUN_02029EBC
-FUN_02029EBC: ; 0x02029EBC
- ldrh r0, [r0, #0x0]
- bx lr
-
- thumb_func_start FUN_02029EC0
-FUN_02029EC0: ; 0x02029EC0
- ldrb r0, [r0, #0x2]
- bx lr
-
- thumb_func_start FUN_02029EC4
-FUN_02029EC4: ; 0x02029EC4
- mov r0, #0xfb
- lsl r0, r0, #0x2
- bx lr
- .balign 4
-
- thumb_func_start FUN_02029ECC
-FUN_02029ECC: ; 0x02029ECC
- push {r4, lr}
- add r4, r0, #0x0
- mov r2, #0xfb
- mov r0, #0x0
- add r1, r4, #0x0
- lsl r2, r2, #0x2
- bl MIi_CpuClear32
- mov r0, #0x0
- str r0, [r4, #0x0]
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02029EE4
-FUN_02029EE4: ; 0x02029EE4
- push {r4, lr}
- mov r1, #0xfb
- lsl r1, r1, #0x2
- bl FUN_02016998
- add r4, r0, #0x0
- bl FUN_02029ECC
- add r0, r4, #0x0
- pop {r4, pc}
-
- thumb_func_start FUN_02029EF8
-FUN_02029EF8: ; 0x02029EF8
- ldr r3, _02029F00 ; =FUN_02022610
- mov r1, #0x16
- bx r3
- nop
-_02029F00: .word FUN_02022610
-
- thumb_func_start FUN_02029F04
-FUN_02029F04: ; 0x02029F04
- ldr r0, [r0, #0x0]
- bx lr
-
- thumb_func_start FUN_02029F08
-FUN_02029F08: ; 0x02029F08
- mov r1, #0x0
- str r1, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02029F10
-FUN_02029F10: ; 0x02029F10
- add r0, r0, #0x4
- bx lr
-
- thumb_func_start FUN_02029F14
-FUN_02029F14: ; 0x02029F14
- push {r4-r7}
- mov r5, #0x0
- mov r2, #0xfa
- add r4, r5, #0x0
- mov r6, #0xf
- lsl r2, r2, #0x2
-_02029F20:
- ldrsb r7, [r1, r4]
- add r3, r0, r5
- and r7, r6
- lsl r7, r7, #0x18
- lsr r7, r7, #0x18
- sub r7, #0x8
- lsl r7, r7, #0x18
- asr r7, r7, #0x14
- strb r7, [r0, r5]
- ldrsb r7, [r1, r4]
- add r4, r4, #0x1
- add r5, r5, #0x2
- lsl r7, r7, #0x14
- lsr r7, r7, #0x18
- sub r7, #0x8
- lsl r7, r7, #0x18
- asr r7, r7, #0x14
- strb r7, [r3, #0x1]
- cmp r4, r2
- blt _02029F20
- pop {r4-r7}
- bx lr
-
- thumb_func_start FUN_02029F4C
-FUN_02029F4C: ; 0x02029F4C
- push {r4-r7}
- add r3, r0, #0x0
- add r2, r1, #0x0
- mov r0, #0x1
- mov r1, #0x0
- str r0, [r3, #0x0]
- add r0, r1, #0x0
-_02029F5A:
- ldrsb r4, [r2, r0]
- add r6, r3, r1
- add r7, r2, r0
- asr r5, r4, #0x3
- lsr r5, r5, #0x1c
- add r5, r4, r5
- lsl r4, r5, #0x14
- asr r4, r4, #0x18
- add r4, #0x8
- strb r4, [r6, #0x4]
- mov r4, #0x4
- ldrsb r5, [r6, r4]
- mov r4, #0x1
- ldrsb r4, [r7, r4]
- add r0, r0, #0x2
- add r1, r1, #0x1
- asr r7, r4, #0x3
- lsr r7, r7, #0x1c
- add r7, r4, r7
- lsl r4, r7, #0x14
- asr r4, r4, #0x18
- add r4, #0x8
- lsl r4, r4, #0x18
- lsr r4, r4, #0x14
- orr r4, r5
- strb r4, [r6, #0x4]
- mov r4, #0x7d
- lsl r4, r4, #0x4
- cmp r0, r4
- blt _02029F5A
- pop {r4-r7}
- bx lr
- .balign 4
-
- thumb_func_start FUN_02029F9C
-FUN_02029F9C: ; 0x02029F9C
- add r2, r0, #0x0
- add r0, r1, #0x0
- add r1, r2, #0x0
- mov r2, #0xfb
- ldr r3, _02029FAC ; =MIi_CpuCopyFast
- lsl r2, r2, #0x2
- bx r3
- nop
-_02029FAC: .word MIi_CpuCopyFast
-
- thumb_func_start FUN_02029FB0
-FUN_02029FB0: ; 0x02029FB0
- mov r0, #0x53
- lsl r0, r0, #0x2
- bx lr
- .balign 4
-
- thumb_func_start FUN_02029FB8
-FUN_02029FB8: ; 0x02029FB8
- ldr r3, _02029FC4 ; =MIi_CpuClear32
- mov r2, #0x53
- add r1, r0, #0x0
- mov r0, #0x0
- lsl r2, r2, #0x2
- bx r3
- .balign 4
-_02029FC4: .word MIi_CpuClear32
-
- thumb_func_start FUN_02029FC8
-FUN_02029FC8: ; 0x02029FC8
- ldr r3, _02029FD0 ; =FUN_02022610
- mov r1, #0x14
- bx r3
- nop
-_02029FD0: .word FUN_02022610
-
- thumb_func_start FUN_02029FD4
-FUN_02029FD4: ; 0x02029FD4
- push {r3, lr}
- cmp r1, #0x2c
- bge _02029FE0
- lsl r1, r1, #0x2
- ldr r0, [r0, r1]
- pop {r3, pc}
-_02029FE0:
- cmp r1, #0x79
- bge _02029FF0
- sub r1, #0x2c
- lsl r1, r1, #0x1
- add r0, r0, r1
- add r0, #0xb0
- ldrh r0, [r0, #0x0]
- pop {r3, pc}
-_02029FF0:
- bl ErrorHandling
- mov r0, #0x0
- pop {r3, pc}
-
- thumb_func_start FUN_02029FF8
-FUN_02029FF8: ; 0x02029FF8
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- cmp r4, #0x2c
- bge _0202A008
- lsl r0, r4, #0x2
- str r2, [r5, r0]
- b _0202A01E
-_0202A008:
- cmp r4, #0x79
- bge _0202A01A
- add r0, r4, #0x0
- sub r0, #0x2c
- lsl r0, r0, #0x1
- add r0, r5, r0
- add r0, #0xb0
- strh r2, [r0, #0x0]
- b _0202A01E
-_0202A01A:
- bl ErrorHandling
-_0202A01E:
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02029FD4
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0202A028
-FUN_0202A028: ; 0x0202A028
- push {r3, lr}
- cmp r0, #0x2c
- bge _0202A03E
- ldr r1, _0202A05C ; =0x02105CD8
- ldrb r0, [r1, r0]
- cmp r0, #0x0
- beq _0202A03A
- ldr r0, _0202A060 ; =0x3B9AC9FF
- pop {r3, pc}
-_0202A03A:
- ldr r0, _0202A064 ; =0x000F423F
- pop {r3, pc}
-_0202A03E:
- cmp r0, #0x79
- bge _0202A052
- ldr r1, _0202A05C ; =0x02105CD8
- ldrb r0, [r1, r0]
- cmp r0, #0x0
- beq _0202A04E
- ldr r0, _0202A068 ; =0x0000FFFF
- pop {r3, pc}
-_0202A04E:
- ldr r0, _0202A06C ; =0x0000270F
- pop {r3, pc}
-_0202A052:
- bl ErrorHandling
- mov r0, #0x0
- pop {r3, pc}
- nop
-_0202A05C: .word 0x02105CD8
-_0202A060: .word 0x3B9AC9FF
-_0202A064: .word 0x000F423F
-_0202A068: .word 0x0000FFFF
-_0202A06C: .word 0x0000270F
-
- thumb_func_start FUN_0202A070
-FUN_0202A070: ; 0x0202A070
- lsl r1, r0, #0x1
- ldr r0, _0202A078 ; =0x020EEA7C
- ldrh r0, [r0, r1]
- bx lr
- .balign 4
-_0202A078: .word 0x020EEA7C
-
- thumb_func_start FUN_0202A07C
-FUN_0202A07C: ; 0x0202A07C
- push {r4-r6, lr}
- add r5, r1, #0x0
- add r6, r0, #0x0
- add r0, r5, #0x0
- add r4, r2, #0x0
- bl FUN_0202A028
- add r2, r0, #0x0
- cmp r4, r2
- bhs _0202A09C
- add r0, r6, #0x0
- add r1, r5, #0x0
- add r2, r4, #0x0
- bl FUN_02029FF8
- pop {r4-r6, pc}
-_0202A09C:
- add r0, r6, #0x0
- add r1, r5, #0x0
- bl FUN_02029FF8
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_0202A0A8
-FUN_0202A0A8: ; 0x0202A0A8
- push {r3-r7, lr}
- add r6, r1, #0x0
- add r7, r0, #0x0
- add r0, r6, #0x0
- add r5, r2, #0x0
- bl FUN_0202A028
- add r4, r0, #0x0
- add r0, r7, #0x0
- add r1, r6, #0x0
- bl FUN_02029FD4
- cmp r5, r4
- bls _0202A0C6
- add r5, r4, #0x0
-_0202A0C6:
- cmp r0, r5
- bhs _0202A0D6
- add r0, r7, #0x0
- add r1, r6, #0x0
- add r2, r5, #0x0
- bl FUN_02029FF8
- pop {r3-r7, pc}
-_0202A0D6:
- cmp r0, r4
- bls _0202A0E4
- add r0, r7, #0x0
- add r1, r6, #0x0
- add r2, r4, #0x0
- bl FUN_02029FF8
-_0202A0E4:
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0202A0E8
-FUN_0202A0E8: ; 0x0202A0E8
- push {r4-r6, lr}
- add r6, r1, #0x0
- add r5, r0, #0x0
- add r0, r6, #0x0
- bl FUN_0202A028
- add r4, r0, #0x0
- add r0, r5, #0x0
- add r1, r6, #0x0
- bl FUN_02029FD4
- add r2, r0, #0x1
- cmp r2, r4
- bhs _0202A10E
- add r0, r5, #0x0
- add r1, r6, #0x0
- bl FUN_02029FF8
- pop {r4-r6, pc}
-_0202A10E:
- add r0, r5, #0x0
- add r1, r6, #0x0
- add r2, r4, #0x0
- bl FUN_02029FF8
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_0202A11C
-FUN_0202A11C: ; 0x0202A11C
- push {r3-r7, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- add r0, r4, #0x0
- add r7, r2, #0x0
- bl FUN_0202A028
- add r6, r0, #0x0
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02029FD4
- add r2, r0, r7
- cmp r2, r6
- bhs _0202A144
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02029FF8
- pop {r3-r7, pc}
-_0202A144:
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r2, r6, #0x0
- bl FUN_02029FF8
- pop {r3-r7, pc}
-
- thumb_func_start FUN_0202A150
-FUN_0202A150: ; 0x0202A150
- push {r4-r6, lr}
- add r6, r1, #0x0
- add r5, r0, #0x0
- add r0, r6, #0x0
- bl FUN_0202A028
- add r4, r0, #0x0
- add r0, r5, #0x0
- add r1, r6, #0x0
- bl FUN_02029FD4
- cmp r0, r4
- bhi _0202A16C
- add r4, r0, #0x0
-_0202A16C:
- add r0, r4, #0x0
- pop {r4-r6, pc}
-
- thumb_func_start FUN_0202A170
-FUN_0202A170: ; 0x0202A170
- push {r4-r6, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- cmp r4, #0x26
- blt _0202A17E
- bl ErrorHandling
-_0202A17E:
- add r0, r5, #0x0
- mov r1, #0x0
- bl FUN_0202A150
- add r6, r0, #0x0
- add r0, r4, #0x0
- bl FUN_0202A070
- ldr r2, _0202A1B4 ; =0x05F5E0FF
- add r0, r6, r0
- cmp r0, r2
- bls _0202A1A0
- add r0, r5, #0x0
- mov r1, #0x0
- bl FUN_0202A07C
- pop {r4-r6, pc}
-_0202A1A0:
- add r0, r4, #0x0
- bl FUN_0202A070
- add r2, r0, #0x0
- add r0, r5, #0x0
- mov r1, #0x0
- bl FUN_0202A11C
- pop {r4-r6, pc}
- nop
-_0202A1B4: .word 0x05F5E0FF
-
- thumb_func_start FUN_0202A1B8
-FUN_0202A1B8: ; 0x0202A1B8
- ldr r3, _0202A1C0 ; =FUN_0202A150
- mov r1, #0x0
- bx r3
- nop
-_0202A1C0: .word FUN_0202A150
-
- thumb_func_start FUN_0202A1C4
-FUN_0202A1C4: ; 0x0202A1C4
- push {r4, lr}
- add r4, r0, #0x0
- add r0, r1, #0x0
- add r1, r2, #0x0
- bl FUN_02024594
- cmp r0, #0x0
- bne _0202A1DC
- add r0, r4, #0x0
- mov r1, #0x16
- bl FUN_0202A170
-_0202A1DC:
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0202A1E0
-FUN_0202A1E0: ; 0x0202A1E0
- mov r0, #0xe4
- bx lr
-
- thumb_func_start FUN_0202A1E4
-FUN_0202A1E4: ; 0x0202A1E4
- ldr r3, _0202A1EC ; =MI_CpuFill8
- mov r1, #0x0
- mov r2, #0x3c
- bx r3
- .balign 4
-_0202A1EC: .word MI_CpuFill8
-
- thumb_func_start FUN_0202A1F0
-FUN_0202A1F0: ; 0x0202A1F0
- push {r4, lr}
- mov r2, #0x5a
- mov r1, #0x0
- lsl r2, r2, #0x2
- add r4, r0, #0x0
- bl MI_CpuFill8
- mov r0, #0x1
- strb r0, [r4, #0x3]
- pop {r4, pc}
-
- thumb_func_start FUN_0202A204
-FUN_0202A204: ; 0x0202A204
- push {r4, lr}
- add r4, r0, #0x0
- mov r1, #0x0
- bl FUN_02013764
- add r0, r4, #0x0
- add r0, #0x8
- mov r1, #0x1
- bl FUN_02013764
- add r0, r4, #0x0
- add r0, #0x10
- mov r1, #0x2
- bl FUN_02013764
- add r4, #0x18
- add r0, r4, #0x0
- mov r1, #0x3
- bl FUN_02013764
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0202A230
-FUN_0202A230: ; 0x0202A230
- ldr r3, _0202A238 ; =MI_CpuFill8
- mov r1, #0x0
- ldr r2, _0202A23C ; =0x00000B3C
- bx r3
- .balign 4
-_0202A238: .word MI_CpuFill8
-_0202A23C: .word 0x00000B3C
-
- thumb_func_start FUN_0202A240
-FUN_0202A240: ; 0x0202A240
- push {r3, lr}
- cmp r1, #0xa
- bhi _0202A2BE
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #0x6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0202A252: ; jump table (using 16-bit offset)
- .short _0202A268 - _0202A252 - 2; case 0
- .short _0202A270 - _0202A252 - 2; case 1
- .short _0202A274 - _0202A252 - 2; case 2
- .short _0202A278 - _0202A252 - 2; case 3
- .short _0202A27C - _0202A252 - 2; case 4
- .short _0202A280 - _0202A252 - 2; case 5
- .short _0202A28E - _0202A252 - 2; case 6
- .short _0202A29C - _0202A252 - 2; case 7
- .short _0202A2A4 - _0202A252 - 2; case 8
- .short _0202A2B2 - _0202A252 - 2; case 9
- .short _0202A2BA - _0202A252 - 2; case 10
-_0202A268:
- ldrb r0, [r0, #0x0]
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x1d
- pop {r3, pc}
-_0202A270:
- ldrb r0, [r0, #0x2]
- pop {r3, pc}
-_0202A274:
- ldrb r0, [r0, #0x3]
- pop {r3, pc}
-_0202A278:
- ldrh r0, [r0, #0x4]
- pop {r3, pc}
-_0202A27C:
- ldrh r0, [r0, #0x6]
- pop {r3, pc}
-_0202A280:
- add r1, r2, #0x0
- add r0, #0x8
- mov r2, #0x4
- bl MI_CpuCopy8
- mov r0, #0x0
- pop {r3, pc}
-_0202A28E:
- add r1, r2, #0x0
- add r0, #0x2c
- mov r2, #0x10
- bl MI_CpuCopy8
- mov r0, #0x0
- pop {r3, pc}
-_0202A29C:
- ldrb r0, [r0, #0x0]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- pop {r3, pc}
-_0202A2A4:
- add r1, r2, #0x0
- add r0, #0xc
- mov r2, #0x1c
- bl MI_CpuCopy8
- mov r0, #0x0
- pop {r3, pc}
-_0202A2B2:
- ldrb r0, [r0, #0x0]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x1d
- pop {r3, pc}
-_0202A2BA:
- ldr r0, [r0, #0x28]
- pop {r3, pc}
-_0202A2BE:
- mov r0, #0x0
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_0202A2C4
-FUN_0202A2C4: ; 0x0202A2C4
- push {r4, lr}
- add r3, r0, #0x0
- cmp r1, #0xa
- bhi _0202A36A
- add r0, r1, r1
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0202A2D8: ; jump table (using 16-bit offset)
- .short _0202A2EE - _0202A2D8 - 2; case 0
- .short _0202A300 - _0202A2D8 - 2; case 1
- .short _0202A306 - _0202A2D8 - 2; case 2
- .short _0202A30C - _0202A2D8 - 2; case 3
- .short _0202A312 - _0202A2D8 - 2; case 4
- .short _0202A318 - _0202A2D8 - 2; case 5
- .short _0202A326 - _0202A2D8 - 2; case 6
- .short _0202A334 - _0202A2D8 - 2; case 7
- .short _0202A346 - _0202A2D8 - 2; case 8
- .short _0202A35A - _0202A2D8 - 2; case 9
- .short _0202A354 - _0202A2D8 - 2; case 10
-_0202A2EE:
- ldrb r1, [r3, #0x0]
- mov r0, #0x1c
- bic r1, r0
- ldrb r0, [r2, #0x0]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x1b
- orr r0, r1
- strb r0, [r3, #0x0]
- pop {r4, pc}
-_0202A300:
- ldrb r0, [r2, #0x0]
- strb r0, [r3, #0x2]
- pop {r4, pc}
-_0202A306:
- ldrb r0, [r2, #0x0]
- strb r0, [r3, #0x3]
- pop {r4, pc}
-_0202A30C:
- ldrh r0, [r2, #0x0]
- strh r0, [r3, #0x4]
- pop {r4, pc}
-_0202A312:
- ldrh r0, [r2, #0x0]
- strh r0, [r3, #0x6]
- pop {r4, pc}
-_0202A318:
- add r3, #0x8
- add r0, r2, #0x0
- add r1, r3, #0x0
- mov r2, #0x4
- bl MI_CpuCopy8
- pop {r4, pc}
-_0202A326:
- add r3, #0x2c
- add r0, r2, #0x0
- add r1, r3, #0x0
- mov r2, #0x10
- bl MI_CpuCopy8
- pop {r4, pc}
-_0202A334:
- ldrb r4, [r3, #0x0]
- ldrb r1, [r2, #0x0]
- mov r0, #0x1
- bic r4, r0
- mov r0, #0x1
- and r0, r1
- orr r0, r4
- strb r0, [r3, #0x0]
- pop {r4, pc}
-_0202A346:
- add r3, #0xc
- add r0, r2, #0x0
- add r1, r3, #0x0
- mov r2, #0x1c
- bl MI_CpuCopy8
- pop {r4, pc}
-_0202A354:
- ldr r0, [r2, #0x0]
- str r0, [r3, #0x28]
- pop {r4, pc}
-_0202A35A:
- ldrb r1, [r3, #0x0]
- mov r0, #0xe0
- bic r1, r0
- ldrb r0, [r2, #0x0]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x18
- orr r0, r1
- strb r0, [r3, #0x0]
-_0202A36A:
- pop {r4, pc}
-
- thumb_func_start FUN_0202A36C
-FUN_0202A36C: ; 0x0202A36C
- push {r3-r4}
- ldrb r4, [r0, #0x3]
- add r1, r4, r1
- cmp r1, #0xff
- bge _0202A378
- strb r1, [r0, #0x3]
-_0202A378:
- ldrh r1, [r0, #0x4]
- add r2, r1, r2
- ldr r1, _0202A394 ; =0x0000FFFF
- cmp r2, r1
- bge _0202A384
- strh r2, [r0, #0x4]
-_0202A384:
- ldrh r1, [r0, #0x6]
- add r2, r1, r3
- ldr r1, _0202A394 ; =0x0000FFFF
- cmp r2, r1
- bge _0202A390
- strh r2, [r0, #0x6]
-_0202A390:
- pop {r3-r4}
- bx lr
- .balign 4
-_0202A394: .word 0x0000FFFF
-
- thumb_func_start FUN_0202A398
-FUN_0202A398: ; 0x0202A398
- ldrb r0, [r0, #0x0]
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x1f
- bx lr
-
- thumb_func_start FUN_0202A3A0
-FUN_0202A3A0: ; 0x0202A3A0
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- lsl r1, r1, #0x1f
- ldrb r3, [r0, #0x0]
- mov r2, #0x2
- lsr r1, r1, #0x1e
- bic r3, r2
- orr r1, r3
- strb r1, [r0, #0x0]
- bx lr
-
- thumb_func_start FUN_0202A3B4
-FUN_0202A3B4: ; 0x0202A3B4
- cmp r2, #0x6
- bhi _0202A402
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0202A3C4: ; jump table (using 16-bit offset)
- .short _0202A402 - _0202A3C4 - 2; case 0
- .short _0202A3D2 - _0202A3C4 - 2; case 1
- .short _0202A402 - _0202A3C4 - 2; case 2
- .short _0202A402 - _0202A3C4 - 2; case 3
- .short _0202A402 - _0202A3C4 - 2; case 4
- .short _0202A3E0 - _0202A3C4 - 2; case 5
- .short _0202A3F2 - _0202A3C4 - 2; case 6
-_0202A3D2:
- ldr r2, _0202A408 ; =0x0000270F
- cmp r1, r2
- bls _0202A3DC
- strh r2, [r0, #0x0]
- b _0202A402
-_0202A3DC:
- strh r1, [r0, #0x0]
- b _0202A402
-_0202A3E0:
- ldrh r2, [r0, #0x0]
- add r2, r2, r1
- ldr r1, _0202A408 ; =0x0000270F
- cmp r2, r1
- ble _0202A3EE
- strh r1, [r0, #0x0]
- b _0202A402
-_0202A3EE:
- strh r2, [r0, #0x0]
- b _0202A402
-_0202A3F2:
- ldrh r2, [r0, #0x0]
- cmp r2, r1
- bhs _0202A3FE
- mov r1, #0x0
- strh r1, [r0, #0x0]
- b _0202A402
-_0202A3FE:
- sub r1, r2, r1
- strh r1, [r0, #0x0]
-_0202A402:
- ldrh r0, [r0, #0x0]
- bx lr
- nop
-_0202A408: .word 0x0000270F
-
- thumb_func_start FUN_0202A40C
-FUN_0202A40C: ; 0x0202A40C
- cmp r1, #0x2
- beq _0202A416
- cmp r1, #0x3
- beq _0202A424
- b _0202A440
-_0202A416:
- mov r1, #0x0
- strb r1, [r0, #0x2]
- ldrh r2, [r0, #0x8]
- mov r1, #0x10
- bic r2, r1
- strh r2, [r0, #0x8]
- b _0202A440
-_0202A424:
- ldrh r1, [r0, #0x8]
- lsl r1, r1, #0x1b
- lsr r1, r1, #0x1f
- beq _0202A434
- ldrb r1, [r0, #0x2]
- add r1, r1, #0x1
- strb r1, [r0, #0x2]
- b _0202A440
-_0202A434:
- mov r1, #0x1
- strb r1, [r0, #0x2]
- ldrh r2, [r0, #0x8]
- mov r1, #0x10
- orr r1, r2
- strh r1, [r0, #0x8]
-_0202A440:
- ldrb r0, [r0, #0x2]
- bx lr
-
- thumb_func_start FUN_0202A444
-FUN_0202A444: ; 0x0202A444
- cmp r1, #0x2
- beq _0202A452
- cmp r1, #0x3
- beq _0202A458
- cmp r1, #0x4
- beq _0202A464
- b _0202A46E
-_0202A452:
- mov r1, #0x1
- strb r1, [r0, #0x3]
- b _0202A46E
-_0202A458:
- ldrb r1, [r0, #0x3]
- cmp r1, #0xa
- bhs _0202A46E
- add r1, r1, #0x1
- strb r1, [r0, #0x3]
- b _0202A46E
-_0202A464:
- ldrb r1, [r0, #0x3]
- cmp r1, #0x1
- bls _0202A46E
- sub r1, r1, #0x1
- strb r1, [r0, #0x3]
-_0202A46E:
- ldrb r0, [r0, #0x3]
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202A474
-FUN_0202A474: ; 0x0202A474
- push {r3, lr}
- add r3, r0, #0x0
- cmp r1, #0x0
- bne _0202A48A
- add r3, #0xc0
- add r0, r2, #0x0
- add r1, r3, #0x0
- mov r2, #0xa8
- bl MI_CpuCopy8
- pop {r3, pc}
-_0202A48A:
- add r3, #0x18
- add r0, r2, #0x0
- add r1, r3, #0x0
- mov r2, #0xa8
- bl MI_CpuCopy8
- pop {r3, pc}
-
- thumb_func_start FUN_0202A498
-FUN_0202A498: ; 0x0202A498
- push {r3, lr}
- cmp r1, #0x0
- bne _0202A4AA
- add r1, r2, #0x0
- add r0, #0xc0
- mov r2, #0xa8
- bl MI_CpuCopy8
- pop {r3, pc}
-_0202A4AA:
- add r1, r2, #0x0
- add r0, #0x18
- mov r2, #0xa8
- bl MI_CpuCopy8
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_0202A4B8
-FUN_0202A4B8: ; 0x0202A4B8
- push {r4-r6, lr}
- add r6, r0, #0x0
- ldrb r0, [r1, #0x2]
- mov r2, #0xfa
- lsl r2, r2, #0x2
- sub r0, r0, #0x1
- add r3, r0, #0x0
- mul r3, r2
- lsl r0, r3, #0x10
- lsr r4, r0, #0x10
- ldrh r3, [r1, #0x4]
- mov r0, #0xa
- ldrb r5, [r1, #0x3]
- mul r0, r3
- mov r3, #0x14
- mul r3, r5
- lsl r0, r0, #0x10
- lsl r3, r3, #0x10
- lsr r0, r0, #0x10
- lsr r3, r3, #0x10
- add r3, r0, r3
- add r0, r2, #0x0
- sub r0, #0x32
- cmp r3, r0
- ble _0202A4EE
- mov r5, #0x0
- b _0202A4F6
-_0202A4EE:
- sub r2, #0x32
- sub r0, r2, r3
- lsl r0, r0, #0x10
- lsr r5, r0, #0x10
-_0202A4F6:
- ldrh r1, [r1, #0x6]
- ldr r0, _0202A51C ; =0x000003CA
- cmp r1, r0
- bls _0202A502
- mov r1, #0x0
- b _0202A510
-_0202A502:
- add r0, #0x1e
- sub r0, r0, r1
- mov r1, #0x1e
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r1, r0, #0x10
-_0202A510:
- add r0, r4, r5
- add r0, r1, r0
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- strh r0, [r6, #0x16]
- pop {r4-r6, pc}
- .balign 4
-_0202A51C: .word 0x000003CA
-
- thumb_func_start FUN_0202A520
-FUN_0202A520: ; 0x0202A520
- ldrh r0, [r0, #0x16]
- bx lr
-
- thumb_func_start FUN_0202A524
-FUN_0202A524: ; 0x0202A524
- push {r3, lr}
- ldrh r0, [r0, #0x16]
- mov r1, #0xfa
- lsl r1, r1, #0x2
- bl _s32_div_f
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_0202A538
-FUN_0202A538: ; 0x0202A538
- push {r4-r5}
- cmp r1, #0x5
- bne _0202A544
- mov r0, #0x0
- pop {r4-r5}
- bx lr
-_0202A544:
- cmp r2, #0x2
- beq _0202A54E
- cmp r2, #0x3
- beq _0202A558
- b _0202A56A
-_0202A54E:
- lsl r2, r1, #0x1
- mov r3, #0x0
- add r2, r0, r2
- strh r3, [r2, #0xc]
- b _0202A56A
-_0202A558:
- add r5, r0, #0x0
- add r5, #0xc
- lsl r4, r1, #0x1
- ldrh r3, [r5, r4]
- ldr r2, _0202A574 ; =0x0000FFFE
- cmp r3, r2
- bhs _0202A56A
- add r2, r3, #0x1
- strh r2, [r5, r4]
-_0202A56A:
- lsl r1, r1, #0x1
- add r0, r0, r1
- ldrh r0, [r0, #0xc]
- pop {r4-r5}
- bx lr
- .balign 4
-_0202A574: .word 0x0000FFFE
-
- thumb_func_start FUN_0202A578
-FUN_0202A578: ; 0x0202A578
- push {r3-r4}
- mov r3, #0x1
- mov r4, #0x0
- cmp r1, #0x0
- bls _0202A590
-_0202A582:
- add r4, r4, #0x1
- lsl r4, r4, #0x10
- lsl r3, r3, #0x11
- lsr r4, r4, #0x10
- lsr r3, r3, #0x10
- cmp r4, r1
- blo _0202A582
-_0202A590:
- cmp r2, #0x0
- beq _0202A5B4
- cmp r2, #0x1
- beq _0202A5AC
- cmp r2, #0x2
- bne _0202A5C2
- ldr r1, _0202A5C8 ; =0x0000FFFF
- eor r1, r3
- lsl r1, r1, #0x10
- lsr r2, r1, #0x10
- ldrh r1, [r0, #0x8]
- and r1, r2
- strh r1, [r0, #0x8]
- b _0202A5C2
-_0202A5AC:
- ldrh r1, [r0, #0x8]
- orr r1, r3
- strh r1, [r0, #0x8]
- b _0202A5C2
-_0202A5B4:
- ldrh r0, [r0, #0x8]
- add r2, r0, #0x0
- asr r2, r1
- mov r0, #0x1
- and r0, r2
- pop {r3-r4}
- bx lr
-_0202A5C2:
- mov r0, #0x0
- pop {r3-r4}
- bx lr
- .balign 4
-_0202A5C8: .word 0x0000FFFF
-
- thumb_func_start FUN_0202A5CC
-FUN_0202A5CC: ; 0x0202A5CC
- str r1, [r0, #0x4]
- bx lr
-
- thumb_func_start FUN_0202A5D0
-FUN_0202A5D0: ; 0x0202A5D0
- ldr r0, [r0, #0x4]
- bx lr
-
- thumb_func_start FUN_0202A5D4
-FUN_0202A5D4: ; 0x0202A5D4
- push {r3-r5, lr}
- add r5, r1, #0x0
- mov r1, #0x17
- add r4, r2, #0x0
- bl FUN_02022610
- mov r1, #0x69
- lsl r1, r1, #0x2
- add r1, r0, r1
- lsl r0, r5, #0x3
- add r0, r1, r0
- add r1, r4, #0x0
- bl FUN_02013960
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0202A5F4
-FUN_0202A5F4: ; 0x0202A5F4
- push {r4, lr}
- add r4, r1, #0x0
- mov r1, #0x17
- bl FUN_02022610
- mov r1, #0x69
- lsl r1, r1, #0x2
- add r1, r0, r1
- lsl r0, r4, #0x3
- add r0, r1, r0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0202A60C
-FUN_0202A60C: ; 0x0202A60C
- push {r3-r6}
- add r4, r3, #0x0
- mov r3, #0x1
- cmp r2, #0x0
- beq _0202A66C
- cmp r2, #0xc8
- bhi _0202A66C
- cmp r1, #0x0
- beq _0202A66C
- cmp r1, #0xa
- bhi _0202A66C
- sub r5, r2, #0x1
- sub r2, r1, #0x1
- mov r1, #0xc8
- mul r1, r2
- add r1, r5, r1
- lsl r1, r1, #0x10
- lsr r1, r1, #0x10
- lsr r6, r1, #0x1f
- lsl r5, r1, #0x1d
- sub r5, r5, r6
- mov r2, #0x1d
- ror r5, r2
- add r2, r6, r5
- lsl r2, r2, #0x18
- lsr r2, r2, #0x18
- lsl r3, r2
- lsl r2, r3, #0x18
- lsl r1, r1, #0x15
- lsr r5, r2, #0x18
- add r3, r0, #0x4
- lsr r2, r1, #0x18
- ldrb r1, [r3, r2]
- orr r1, r5
- strb r1, [r3, r2]
- ldr r3, [r4, #0x0]
- ldr r1, [r4, #0x8]
- lsl r5, r3, #0x18
- ldr r3, [r4, #0x4]
- lsl r1, r1, #0x18
- lsl r3, r3, #0x18
- lsr r3, r3, #0x8
- ldr r2, [r4, #0xc]
- lsr r1, r1, #0x10
- orr r3, r5
- orr r1, r3
- orr r1, r2
- str r1, [r0, #0x0]
-_0202A66C:
- pop {r3-r6}
- bx lr
-
- thumb_func_start FUN_0202A670
-FUN_0202A670: ; 0x0202A670
- push {r4, lr}
- add r4, r0, #0x0
- add r0, r4, #0x4
- mov r1, #0x0
- mov r2, #0xfa
- bl MI_CpuFill8
- add r0, r4, #0x0
- mov r1, #0x0
- mov r2, #0x4
- bl MI_CpuFill8
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0202A68C
-FUN_0202A68C: ; 0x0202A68C
- ldr r3, [r0, #0x0]
- ldr r2, [r1, #0x0]
- cmp r3, r2
- bls _0202A698
- mov r0, #0x1
- bx lr
-_0202A698:
- ldr r3, [r0, #0x4]
- ldr r2, [r1, #0x4]
- cmp r3, r2
- bls _0202A6A4
- mov r0, #0x1
- bx lr
-_0202A6A4:
- ldr r2, [r0, #0x8]
- ldr r0, [r1, #0x8]
- cmp r2, r0
- bls _0202A6B0
- mov r0, #0x1
- bx lr
-_0202A6B0:
- mov r0, #0x0
- bx lr
-
- thumb_func_start FUN_0202A6B4
-FUN_0202A6B4: ; 0x0202A6B4
- push {r3-r7, lr}
- sub sp, #0x10
- add r6, r2, #0x0
- add r5, r0, #0x0
- add r4, r1, #0x0
- mov r7, #0x1
- cmp r6, #0xc8
- bhi _0202A6C8
- cmp r4, #0xa
- bls _0202A6CE
-_0202A6C8:
- add sp, #0x10
- mov r0, #0x0
- pop {r3-r7, pc}
-_0202A6CE:
- ldr r0, [r5, #0x0]
- lsr r1, r0, #0x18
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- str r1, [sp, #0x0]
- lsr r1, r0, #0x10
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- str r1, [sp, #0x4]
- lsr r1, r0, #0x8
- lsl r1, r1, #0x18
- lsl r0, r0, #0x18
- lsr r1, r1, #0x18
- lsr r0, r0, #0x18
- str r1, [sp, #0x8]
- str r0, [sp, #0xc]
- add r0, r3, #0x0
- add r1, sp, #0x0
- bl FUN_0202A68C
- cmp r0, #0x0
- beq _0202A706
- add r0, r5, #0x0
- bl FUN_0202A670
- add sp, #0x10
- mov r0, #0x0
- pop {r3-r7, pc}
-_0202A706:
- sub r1, r4, #0x1
- mov r0, #0xc8
- mul r0, r1
- sub r2, r6, #0x1
- add r0, r2, r0
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- lsr r3, r0, #0x1f
- lsl r2, r0, #0x1d
- lsl r0, r0, #0x15
- lsr r0, r0, #0x18
- add r0, r5, r0
- sub r2, r2, r3
- mov r1, #0x1d
- ror r2, r1
- add r1, r3, r2
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- add r2, r7, #0x0
- lsl r2, r1
- lsl r1, r2, #0x18
- ldrb r0, [r0, #0x4]
- lsr r1, r1, #0x18
- tst r0, r1
- beq _0202A73E
- add sp, #0x10
- add r0, r7, #0x0
- pop {r3-r7, pc}
-_0202A73E:
- mov r0, #0x0
- add sp, #0x10
- pop {r3-r7, pc}
-
- thumb_func_start FUN_0202A744
-FUN_0202A744: ; 0x0202A744
- add r0, #0xfe
- ldrb r0, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202A74C
-FUN_0202A74C: ; 0x0202A74C
- add r0, #0xff
- ldrb r0, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202A754
-FUN_0202A754: ; 0x0202A754
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r0, r1, #0x0
- mov r1, #0x41
- add r4, r2, #0x0
- lsl r1, r1, #0x2
- ldr r2, _0202A77C ; =0x0000063C
- add r1, r5, r1
- add r6, r3, #0x0
- bl MI_CpuCopy8
- ldr r0, _0202A780 ; =0x00000101
- strb r4, [r5, r0]
- sub r0, r0, #0x1
- strb r6, [r5, r0]
- mov r0, #0x1
- add r5, #0xfe
- strb r0, [r5, #0x0]
- pop {r4-r6, pc}
- nop
-_0202A77C: .word 0x0000063C
-_0202A780: .word 0x00000101
-
- thumb_func_start FUN_0202A784
-FUN_0202A784: ; 0x0202A784
- ldr r2, _0202A794 ; =0x00000101
- ldrb r3, [r0, r2]
- sub r2, r2, #0x1
- strb r3, [r1, #0x0]
- ldrb r0, [r0, r2]
- strb r0, [r1, #0x1]
- bx lr
- nop
-_0202A794: .word 0x00000101
-
- thumb_func_start FUN_0202A798
-FUN_0202A798: ; 0x0202A798
- push {r3-r7, lr}
- add r6, r1, #0x0
- mov r1, #0x41
- lsl r1, r1, #0x2
- add r5, r0, r1
- mov r0, #0xe4
- add r4, r2, #0x0
- mul r4, r0
- ldr r0, _0202A834 ; =0x00002710
- add r7, r6, #0x0
- str r0, [r6, #0x0]
- add r0, r5, r4
- add r0, #0xc9
- ldrb r0, [r0, #0x0]
- add r7, #0x30
- strh r0, [r6, #0x4]
- add r0, r5, r4
- add r0, #0xc8
- ldrb r0, [r0, #0x0]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- beq _0202A7EE
- mov r0, #0x0
- mov r1, #0x1a
- mov r2, #0x11
- mov r3, #0xb
- bl FUN_0200A86C
- add r1, r5, r4
- add r1, #0xc8
- ldrb r1, [r1, #0x0]
- add r2, r6, #0x0
- str r0, [sp, #0x0]
- lsl r1, r1, #0x1e
- lsr r1, r1, #0x1f
- add r1, #0x16
- add r2, #0x8
- bl FUN_0200A968
- ldr r0, [sp, #0x0]
- bl FUN_0200A8B8
- b _0202A7FC
-_0202A7EE:
- add r0, r5, r4
- add r1, r6, #0x0
- add r0, #0xa8
- add r1, #0x8
- mov r2, #0x10
- bl MI_CpuCopy8
-_0202A7FC:
- add r0, r5, r4
- add r1, r6, #0x0
- add r0, #0xca
- add r1, #0x18
- mov r2, #0x8
- bl MI_CpuCopy8
- add r0, r5, r4
- add r1, r6, #0x0
- add r0, #0xd2
- add r1, #0x20
- mov r2, #0x8
- bl MI_CpuCopy8
- add r0, r5, r4
- add r6, #0x28
- add r0, #0xda
- add r1, r6, #0x0
- mov r2, #0x8
- bl MI_CpuCopy8
- add r0, r5, r4
- add r1, r7, #0x0
- mov r2, #0xa8
- bl MI_CpuCopy8
- pop {r3-r7, pc}
- nop
-_0202A834: .word 0x00002710
-
- thumb_func_start FUN_0202A838
-FUN_0202A838: ; 0x0202A838
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r0, r1, #0x0
- mov r1, #0x1d
- add r4, r2, #0x0
- lsl r1, r1, #0x6
- mov r2, #0xff
- add r1, r5, r1
- lsl r2, r2, #0x2
- add r6, r3, #0x0
- bl MI_CpuCopy8
- ldr r0, _0202A860 ; =0x00000103
- strb r4, [r5, r0]
- sub r0, r0, #0x1
- strb r6, [r5, r0]
- mov r0, #0x1
- add r5, #0xff
- strb r0, [r5, #0x0]
- pop {r4-r6, pc}
- .balign 4
-_0202A860: .word 0x00000103
-
- thumb_func_start FUN_0202A864
-FUN_0202A864: ; 0x0202A864
- ldr r2, _0202A874 ; =0x00000103
- ldrb r3, [r0, r2]
- sub r2, r2, #0x1
- strb r3, [r1, #0x0]
- ldrb r0, [r0, r2]
- strb r0, [r1, #0x1]
- bx lr
- nop
-_0202A874: .word 0x00000103
-
- thumb_func_start FUN_0202A878
-FUN_0202A878: ; 0x0202A878
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r0, r1, #0x0
- mov r1, #0xff
- lsl r1, r1, #0x2
- bl FUN_02016998
- add r4, r0, #0x0
- mov r0, #0x1d
- lsl r0, r0, #0x6
- mov r2, #0xff
- add r0, r5, r0
- add r1, r4, #0x0
- lsl r2, r2, #0x2
- bl MI_CpuCopy8
- add r0, r4, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0202A89C
-FUN_0202A89C: ; 0x0202A89C
- mov r0, #0xd
- lsl r0, r0, #0x8
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202A8A4
-FUN_0202A8A4: ; 0x0202A8A4
- push {r4, lr}
- add r4, r0, #0x0
- bl FUN_0202A1E4
- add r0, r4, #0x0
- add r0, #0x3c
- bl FUN_0202A1F0
- mov r0, #0x69
- lsl r0, r0, #0x2
- add r0, r4, r0
- bl FUN_0202A204
- mov r0, #0x71
- lsl r0, r0, #0x2
- add r0, r4, r0
- bl FUN_0202A230
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0202A8CC
-FUN_0202A8CC: ; 0x0202A8CC
- ldr r3, _0202A8D4 ; =FUN_02022610
- mov r1, #0x17
- bx r3
- nop
-_0202A8D4: .word FUN_02022610
-
- thumb_func_start FUN_0202A8D8
-FUN_0202A8D8: ; 0x0202A8D8
- push {r3, lr}
- mov r1, #0x17
- bl FUN_02022610
- add r0, #0x3c
- pop {r3, pc}
-
- thumb_func_start FUN_0202A8E4
-FUN_0202A8E4: ; 0x0202A8E4
- push {r3, lr}
- mov r1, #0x17
- bl FUN_02022610
- mov r1, #0x71
- lsl r1, r1, #0x2
- add r0, r0, r1
- pop {r3, pc}
-
- thumb_func_start FUN_0202A8F4
-FUN_0202A8F4: ; 0x0202A8F4
- mov r0, #0xe
- bx lr
-
- thumb_func_start FUN_0202A8F8
-FUN_0202A8F8: ; 0x0202A8F8
- mov r1, #0x0
- strb r1, [r0, #0x0]
- strb r1, [r0, #0x1]
- strb r1, [r0, #0x2]
- strb r1, [r0, #0x3]
- strb r1, [r0, #0x4]
- strb r1, [r0, #0x5]
- strb r1, [r0, #0x6]
- strb r1, [r0, #0x7]
- strb r1, [r0, #0x8]
- strb r1, [r0, #0x9]
- strb r1, [r0, #0xa]
- strb r1, [r0, #0xb]
- strb r1, [r0, #0xc]
- strb r1, [r0, #0xd]
- bx lr
-
- thumb_func_start FUN_0202A918
-FUN_0202A918: ; 0x0202A918
- ldr r3, _0202A920 ; =FUN_02022610
- mov r1, #0x18
- bx r3
- nop
-_0202A920: .word FUN_02022610
-
- thumb_func_start FUN_0202A924
-FUN_0202A924: ; 0x0202A924
- mov r0, #0x45
- lsl r0, r0, #0x2
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202A92C
-FUN_0202A92C: ; 0x0202A92C
- push {r4, lr}
- mov r2, #0x45
- add r4, r0, #0x0
- mov r1, #0x0
- lsl r2, r2, #0x2
- bl Call_FillMemWithValue
- bl FUN_0201BA60
- str r0, [r4, #0x0]
- bl FUN_0201BA60
- str r0, [r4, #0x4]
- mov r1, #0x0
- add r3, r4, #0x0
- ldr r0, _0202A980 ; =0x0000FFFF
- str r1, [r4, #0x8]
- strh r0, [r4, #0xc]
- strh r0, [r4, #0xe]
- mov r0, #0x15
- add r3, #0x10
- strb r0, [r4, #0x10]
- add r2, r1, #0x0
-_0202A95A:
- str r2, [r3, #0x4]
- strb r2, [r3, #0x8]
- strb r2, [r3, #0x9]
- strb r2, [r3, #0xa]
- strb r2, [r3, #0xb]
- add r1, r1, #0x1
- add r3, #0x8
- cmp r1, #0x15
- blt _0202A95A
- ldr r0, _0202A984 ; =0x0000010F
- strb r2, [r4, r0]
- add r1, r0, #0x1
- strb r2, [r4, r1]
- add r1, r0, #0x2
- strb r2, [r4, r1]
- add r0, r0, #0x3
- strb r2, [r4, r0]
- pop {r4, pc}
- nop
-_0202A980: .word 0x0000FFFF
-_0202A984: .word 0x0000010F
-
- thumb_func_start FUN_0202A988
-FUN_0202A988: ; 0x0202A988
- str r1, [r0, #0x0]
- str r1, [r0, #0x4]
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202A990
-FUN_0202A990: ; 0x0202A990
- push {r3, lr}
- cmp r1, #0x1
- beq _0202A99C
- cmp r1, #0x2
- beq _0202A9A0
- b _0202A9A4
-_0202A99C:
- ldr r0, [r0, #0x0]
- pop {r3, pc}
-_0202A9A0:
- ldr r0, [r0, #0x4]
- pop {r3, pc}
-_0202A9A4:
- bl ErrorHandling
- mov r0, #0x0
- pop {r3, pc}
-
- thumb_func_start FUN_0202A9AC
-FUN_0202A9AC: ; 0x0202A9AC
- add r0, #0xbc
- bx lr
-
- thumb_func_start FUN_0202A9B0
-FUN_0202A9B0: ; 0x0202A9B0
- ldr r3, _0202A9B8 ; =FUN_02022610
- mov r1, #0x19
- bx r3
- nop
-_0202A9B8: .word FUN_02022610
-
- thumb_func_start FUN_0202A9BC
-FUN_0202A9BC: ; 0x0202A9BC
- add r0, #0x10
- bx lr
-
- thumb_func_start FUN_0202A9C0
-FUN_0202A9C0: ; 0x0202A9C0
- ldrb r0, [r0, #0x0]
- bx lr
-
- thumb_func_start FUN_0202A9C4
-FUN_0202A9C4: ; 0x0202A9C4
- strb r0, [r1, #0x0]
- bx lr
-
- thumb_func_start FUN_0202A9C8
-FUN_0202A9C8: ; 0x0202A9C8
- add r1, r1, #0x4
- lsl r0, r0, #0x3
- add r0, r1, r0
- bx lr
-
- thumb_func_start FUN_0202A9D0
-FUN_0202A9D0: ; 0x0202A9D0
- push {r3-r7, lr}
- add r5, r1, #0x0
- bl FUN_0202A9B0
- add r6, r0, #0x0
- mov r4, #0x0
- add r6, #0x10
- add r7, r4, #0x0
-_0202A9E0:
- lsl r0, r4, #0x18
- lsr r0, r0, #0x18
- add r1, r6, #0x0
- bl FUN_0202A9C8
- ldr r1, [r0, #0x0]
- cmp r1, #0x0
- beq _0202A9F8
- sub r1, r1, r5
- str r1, [r0, #0x0]
- bpl _0202A9F8
- str r7, [r0, #0x0]
-_0202A9F8:
- add r4, r4, #0x1
- cmp r4, #0x15
- blt _0202A9E0
- pop {r3-r7, pc}
-
- thumb_func_start FUN_0202AA00
-FUN_0202AA00: ; 0x0202AA00
- push {r3, lr}
- bl FUN_0202A9B0
- ldr r1, _0202AA10 ; =0x0000010F
- mov r2, #0x1
- strb r2, [r0, r1]
- pop {r3, pc}
- nop
-_0202AA10: .word 0x0000010F
-
- thumb_func_start FUN_0202AA14
-FUN_0202AA14: ; 0x0202AA14
- ldr r1, _0202AA1C ; =0x0000010F
- ldrb r0, [r0, r1]
- bx lr
- nop
-_0202AA1C: .word 0x0000010F
-
- thumb_func_start FUN_0202AA20
-FUN_0202AA20: ; 0x0202AA20
- add r2, r0, #0x0
- add r2, #0xc8
- ldr r3, [r2, #0x0]
- cmp r3, r1
- beq _0202AA34
- add r2, r0, #0x0
- add r2, #0xcc
- str r3, [r2, #0x0]
- add r0, #0xc8
- str r1, [r0, #0x0]
-_0202AA34:
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202AA38
-FUN_0202AA38: ; 0x0202AA38
- add r0, #0xcc
- ldr r0, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202AA40
-FUN_0202AA40: ; 0x0202AA40
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- cmp r4, #0x3
- blo _0202AA4E
- bl ErrorHandling
-_0202AA4E:
- mov r0, #0x43
- add r1, r5, r4
- lsl r0, r0, #0x2
- ldrb r0, [r1, r0]
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0202AA58
-FUN_0202AA58: ; 0x0202AA58
- push {r4-r6, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- add r6, r2, #0x0
- cmp r4, #0x3
- blo _0202AA68
- bl ErrorHandling
-_0202AA68:
- mov r0, #0x43
- add r1, r5, r4
- lsl r0, r0, #0x2
- strb r6, [r1, r0]
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_0202AA74
-FUN_0202AA74: ; 0x0202AA74
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- cmp r4, #0x3
- blo _0202AA82
- bl ErrorHandling
-_0202AA82:
- mov r0, #0x14
- mul r0, r4
- add r0, r5, r0
- add r0, #0xe2
- ldrb r0, [r0, #0x0]
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0202AA90
-FUN_0202AA90: ; 0x0202AA90
- ldr r2, [r0, #0x0]
- mov r1, #0x14
- mov r0, #0x0
-_0202AA96:
- strb r0, [r2, #0x0]
- add r2, r2, #0x1
- sub r1, r1, #0x1
- bne _0202AA96
- bx lr
-
- thumb_func_start FUN_0202AAA0
-FUN_0202AAA0: ; 0x0202AAA0
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- cmp r4, #0x3
- blo _0202AAAE
- bl ErrorHandling
-_0202AAAE:
- mov r0, #0x14
- add r5, #0xd0
- mul r0, r4
- add r0, r5, r0
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0202AAB8
-FUN_0202AAB8: ; 0x0202AAB8
- cmp r1, #0x8
- bhi _0202AAF8
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #0x6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0202AAC8: ; jump table (using 16-bit offset)
- .short _0202AAF8 - _0202AAC8 - 2; case 0
- .short _0202AADA - _0202AAC8 - 2; case 1
- .short _0202AADE - _0202AAC8 - 2; case 2
- .short _0202AAE2 - _0202AAC8 - 2; case 3
- .short _0202AAE6 - _0202AAC8 - 2; case 4
- .short _0202AAEA - _0202AAC8 - 2; case 5
- .short _0202AAEE - _0202AAC8 - 2; case 6
- .short _0202AAF2 - _0202AAC8 - 2; case 7
- .short _0202AAF6 - _0202AAC8 - 2; case 8
-_0202AADA:
- ldr r0, [r0, #0x0]
- bx lr
-_0202AADE:
- ldr r0, [r0, #0x4]
- bx lr
-_0202AAE2:
- ldr r0, [r0, #0x8]
- bx lr
-_0202AAE6:
- ldrh r0, [r0, #0xc]
- bx lr
-_0202AAEA:
- ldrh r0, [r0, #0xe]
- bx lr
-_0202AAEE:
- ldrb r0, [r0, #0x10]
- bx lr
-_0202AAF2:
- ldrb r0, [r0, #0x11]
- bx lr
-_0202AAF6:
- ldrb r0, [r0, #0x12]
-_0202AAF8:
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202AAFC
-FUN_0202AAFC: ; 0x0202AAFC
- cmp r1, #0x8
- bhi _0202AB3C
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #0x6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0202AB0C: ; jump table (using 16-bit offset)
- .short _0202AB3C - _0202AB0C - 2; case 0
- .short _0202AB1E - _0202AB0C - 2; case 1
- .short _0202AB22 - _0202AB0C - 2; case 2
- .short _0202AB26 - _0202AB0C - 2; case 3
- .short _0202AB2A - _0202AB0C - 2; case 4
- .short _0202AB2E - _0202AB0C - 2; case 5
- .short _0202AB32 - _0202AB0C - 2; case 6
- .short _0202AB36 - _0202AB0C - 2; case 7
- .short _0202AB3A - _0202AB0C - 2; case 8
-_0202AB1E:
- str r2, [r0, #0x0]
- bx lr
-_0202AB22:
- str r2, [r0, #0x4]
- bx lr
-_0202AB26:
- str r2, [r0, #0x8]
- bx lr
-_0202AB2A:
- strh r2, [r0, #0xc]
- bx lr
-_0202AB2E:
- strh r2, [r0, #0xe]
- bx lr
-_0202AB32:
- strb r2, [r0, #0x10]
- bx lr
-_0202AB36:
- strb r2, [r0, #0x11]
- bx lr
-_0202AB3A:
- strb r2, [r0, #0x12]
-_0202AB3C:
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202AB40
-FUN_0202AB40: ; 0x0202AB40
- ldr r1, _0202AB48 ; =0x00000111
- add r0, r0, r1
- bx lr
- nop
-_0202AB48: .word 0x00000111
-
- thumb_func_start FUN_0202AB4C
-FUN_0202AB4C: ; 0x0202AB4C
- mov r1, #0x11
- lsl r1, r1, #0x4
- add r0, r0, r1
- bx lr
-
- thumb_func_start FUN_0202AB54
-FUN_0202AB54: ; 0x0202AB54
- mov r1, #0x11
- lsl r1, r1, #0x4
- ldrb r0, [r0, r1]
- cmp r0, #0x0
- bne _0202AB62
- mov r0, #0x1
- bx lr
-_0202AB62:
- mov r0, #0x0
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202AB68
-FUN_0202AB68: ; 0x0202AB68
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- cmp r4, #0x2
- bls _0202AB76
- bl ErrorHandling
-_0202AB76:
- ldr r0, _0202AB7C ; =0x00000112
- strb r4, [r5, r0]
- pop {r3-r5, pc}
- .balign 4
-_0202AB7C: .word 0x00000112
-
- thumb_func_start FUN_0202AB80
-FUN_0202AB80: ; 0x0202AB80
- ldr r1, _0202AB88 ; =0x00000112
- ldrb r0, [r0, r1]
- bx lr
- nop
-_0202AB88: .word 0x00000112
-
- thumb_func_start FUN_0202AB8C
-FUN_0202AB8C: ; 0x0202AB8C
- push {r3-r5, lr}
- add r5, r1, #0x0
- add r4, r2, #0x0
- bl FUN_0202A9B0
- ldrh r1, [r0, #0xc]
- strh r1, [r5, #0x0]
- ldrh r0, [r0, #0xe]
- strh r0, [r4, #0x0]
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0202ABA0
-FUN_0202ABA0: ; 0x0202ABA0
- push {r3-r5, lr}
- add r5, r1, #0x0
- bl FUN_0202A9B0
- add r4, r0, #0x0
- cmp r5, #0x10
- blo _0202ABB2
- bl ErrorHandling
-_0202ABB2:
- ldrh r0, [r4, #0xc]
- strh r0, [r4, #0xe]
- strh r5, [r4, #0xc]
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0202ABBC
-FUN_0202ABBC: ; 0x0202ABBC
- ldr r3, _0202ABC4 ; =FUN_02022610
- mov r1, #0x1a
- bx r3
- nop
-_0202ABC4: .word FUN_02022610
-
- thumb_func_start FUN_0202ABC8
-FUN_0202ABC8: ; 0x0202ABC8
- mov r0, #0xf4
- bx lr
-
- thumb_func_start FUN_0202ABCC
-FUN_0202ABCC: ; 0x0202ABCC
- ldr r3, _0202ABD8 ; =MIi_CpuClearFast
- add r1, r0, #0x0
- mov r0, #0x0
- mov r2, #0xf4
- bx r3
- nop
-_0202ABD8: .word MIi_CpuClearFast
-
- thumb_func_start FUN_0202ABDC
-FUN_0202ABDC: ; 0x0202ABDC
- add r0, #0xec
- ldrh r0, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202ABE4
-FUN_0202ABE4: ; 0x0202ABE4
- add r0, #0xec
- strh r1, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202ABEC
-FUN_0202ABEC: ; 0x0202ABEC
- ldr r3, _0202ABF4 ; =MIi_CpuCopyFast
- mov r2, #0xec
- bx r3
- nop
-_0202ABF4: .word MIi_CpuCopyFast
-
- thumb_func_start FUN_0202ABF8
-FUN_0202ABF8: ; 0x0202ABF8
- ldr r3, _0202AC04 ; =MIi_CpuCopyFast
- add r2, r0, #0x0
- add r0, r1, #0x0
- add r1, r2, #0x0
- mov r2, #0xec
- bx r3
- .balign 4
-_0202AC04: .word MIi_CpuCopyFast
-
- thumb_func_start FUN_0202AC08
-FUN_0202AC08: ; 0x0202AC08
- add r0, #0xf0
- ldr r0, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202AC10
-FUN_0202AC10: ; 0x0202AC10
- add r0, #0xf0
- str r1, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202AC18
-FUN_0202AC18: ; 0x0202AC18
- add r0, #0xee
- ldrh r0, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202AC20
-FUN_0202AC20: ; 0x0202AC20
- ldr r0, _0202AC24 ; =0x00001354
- bx lr
- .balign 4
-_0202AC24: .word 0x00001354
-
- thumb_func_start FUN_0202AC28
-FUN_0202AC28: ; 0x0202AC28
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202AC2C
-FUN_0202AC2C: ; 0x0202AC2C
- push {r4-r6, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- cmp r4, #0x8
- blt _0202AC3A
- bl ErrorHandling
-_0202AC3A:
- mov r0, #0x1
- lsl r0, r0, #0x8
- add r6, r5, r0
- lsl r3, r4, #0x2
- ldr r2, [r6, r3]
- ldr r1, _0202AC60 ; =0xEDB88320
- cmp r2, r1
- bne _0202AC58
- add r0, #0x2c
- add r1, r5, r0
- lsl r0, r4, #0x6
- add r0, r4, r0
- lsl r0, r0, #0x2
- add r0, r1, r0
- pop {r4-r6, pc}
-_0202AC58:
- mov r0, #0x0
- str r0, [r6, r3]
- pop {r4-r6, pc}
- nop
-_0202AC60: .word 0xEDB88320
-
- thumb_func_start FUN_0202AC64
-FUN_0202AC64: ; 0x0202AC64
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- cmp r4, #0x3
- blt _0202AC72
- bl ErrorHandling
-_0202AC72:
- lsl r0, r4, #0x2
- add r1, r5, r0
- mov r0, #0x12
- lsl r0, r0, #0x4
- ldr r0, [r1, r0]
- cmp r0, #0x0
- beq _0202AC8E
- ldr r0, _0202AC94 ; =0x0000094C
- add r1, r5, r0
- mov r0, #0xd6
- lsl r0, r0, #0x2
- mul r0, r4
- add r0, r1, r0
- pop {r3-r5, pc}
-_0202AC8E:
- mov r0, #0x0
- pop {r3-r5, pc}
- nop
-_0202AC94: .word 0x0000094C
-
- thumb_func_start FUN_0202AC98
-FUN_0202AC98: ; 0x0202AC98
- push {r3-r7, lr}
- add r5, r0, #0x0
- str r1, [sp, #0x0]
- add r7, r2, #0x0
- bl FUN_0202ADF0
- cmp r0, #0x0
- bne _0202ACAC
- mov r0, #0x0
- pop {r3-r7, pc}
-_0202ACAC:
- mov r0, #0x1
- mov r4, #0x0
- add r2, r5, #0x0
- lsl r0, r0, #0x8
-_0202ACB4:
- ldr r1, [r2, r0]
- cmp r1, #0x0
- bne _0202ACF6
- lsl r0, r4, #0x6
- mov r2, #0x4b
- add r0, r4, r0
- lsl r2, r2, #0x2
- lsl r6, r0, #0x2
- add r1, r5, r2
- ldr r0, [sp, #0x0]
- add r1, r1, r6
- sub r2, #0x28
- bl MI_CpuCopy8
- lsl r0, r4, #0x2
- add r1, r5, r0
- mov r0, #0x1
- ldr r2, _0202AD04 ; =0xEDB88320
- lsl r0, r0, #0x8
- str r2, [r1, r0]
- add r0, #0x2e
- add r1, r5, r0
- ldrh r0, [r1, r6]
- mov r2, #0x3
- bic r0, r2
- lsl r2, r7, #0x10
- lsr r3, r2, #0x10
- mov r2, #0x3
- and r2, r3
- orr r0, r2
- strh r0, [r1, r6]
- mov r0, #0x1
- pop {r3-r7, pc}
-_0202ACF6:
- add r4, r4, #0x1
- add r2, r2, #0x4
- cmp r4, #0x8
- blt _0202ACB4
- mov r0, #0x0
- pop {r3-r7, pc}
- nop
-_0202AD04: .word 0xEDB88320
-
- thumb_func_start FUN_0202AD08
-FUN_0202AD08: ; 0x0202AD08
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r6, r1, #0x0
- bl FUN_0202AE0C
- cmp r0, #0x0
- bne _0202AD1A
- mov r0, #0x0
- pop {r4-r6, pc}
-_0202AD1A:
- ldr r0, _0202AD88 ; =0x00000152
- ldrb r0, [r6, r0]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1f
- cmp r0, #0x1
- bne _0202AD34
- add r0, r5, #0x0
- bl FUN_0202ADF0
- cmp r0, #0x0
- bne _0202AD34
- mov r0, #0x0
- pop {r4-r6, pc}
-_0202AD34:
- mov r0, #0x12
- mov r4, #0x0
- add r2, r5, #0x0
- lsl r0, r0, #0x4
-_0202AD3C:
- ldr r1, [r2, r0]
- cmp r1, #0x0
- bne _0202AD7C
- ldr r1, _0202AD8C ; =0x0000094C
- mov r2, #0xd6
- add r3, r5, r1
- lsl r2, r2, #0x2
- add r1, r4, #0x0
- mul r1, r2
- add r0, r6, #0x0
- add r1, r3, r1
- bl MI_CpuCopy8
- lsl r0, r4, #0x2
- add r1, r5, r0
- mov r0, #0x12
- ldr r2, _0202AD90 ; =0xEDB88320
- lsl r0, r0, #0x4
- str r2, [r1, r0]
- add r0, #0x32
- ldrb r0, [r6, r0]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1f
- cmp r0, #0x1
- bne _0202AD78
- add r0, r5, #0x0
- add r1, r6, #0x0
- add r2, r4, #0x1
- bl FUN_0202AC98
-_0202AD78:
- mov r0, #0x1
- pop {r4-r6, pc}
-_0202AD7C:
- add r4, r4, #0x1
- add r2, r2, #0x4
- cmp r4, #0x3
- blt _0202AD3C
- mov r0, #0x0
- pop {r4-r6, pc}
- .balign 4
-_0202AD88: .word 0x00000152
-_0202AD8C: .word 0x0000094C
-_0202AD90: .word 0xEDB88320
-
- thumb_func_start FUN_0202AD94
-FUN_0202AD94: ; 0x0202AD94
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- sub r0, r4, #0x1
- cmp r0, #0x8
- blt _0202ADA4
- bl ErrorHandling
-_0202ADA4:
- sub r4, r4, #0x1
- lsl r0, r4, #0x2
- add r1, r5, r0
- mov r0, #0x1
- mov r2, #0x0
- lsl r0, r0, #0x8
- str r2, [r1, r0]
- add r0, #0x2e
- add r3, r5, r0
- lsl r0, r4, #0x6
- add r0, r4, r0
- lsl r2, r0, #0x2
- ldrh r1, [r3, r2]
- mov r0, #0x3
- bic r1, r0
- strh r1, [r3, r2]
- mov r0, #0x1
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0202ADC8
-FUN_0202ADC8: ; 0x0202ADC8
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- cmp r4, #0x3
- blt _0202ADD6
- bl ErrorHandling
-_0202ADD6:
- lsl r0, r4, #0x2
- add r1, r5, r0
- mov r0, #0x12
- mov r2, #0x0
- lsl r0, r0, #0x4
- str r2, [r1, r0]
- add r0, r5, #0x0
- add r1, r4, #0x1
- bl FUN_0202AEC4
- mov r0, #0x1
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0202ADF0
-FUN_0202ADF0: ; 0x0202ADF0
- mov r1, #0x1
- mov r3, #0x0
- lsl r1, r1, #0x8
-_0202ADF6:
- ldr r2, [r0, r1]
- cmp r2, #0x0
- bne _0202AE00
- mov r0, #0x1
- bx lr
-_0202AE00:
- add r3, r3, #0x1
- add r0, r0, #0x4
- cmp r3, #0x8
- blt _0202ADF6
- mov r0, #0x0
- bx lr
-
- thumb_func_start FUN_0202AE0C
-FUN_0202AE0C: ; 0x0202AE0C
- mov r1, #0x12
- mov r3, #0x0
- lsl r1, r1, #0x4
-_0202AE12:
- ldr r2, [r0, r1]
- cmp r2, #0x0
- bne _0202AE1C
- mov r0, #0x1
- bx lr
-_0202AE1C:
- add r3, r3, #0x1
- add r0, r0, #0x4
- cmp r3, #0x3
- blt _0202AE12
- mov r0, #0x0
- bx lr
-
- thumb_func_start FUN_0202AE28
-FUN_0202AE28: ; 0x0202AE28
- push {r3-r5, lr}
- add r5, r1, #0x0
- add r4, r0, #0x0
- cmp r5, #0x8
- blt _0202AE36
- bl ErrorHandling
-_0202AE36:
- lsl r0, r5, #0x2
- add r1, r4, r0
- mov r0, #0x1
- lsl r0, r0, #0x8
- ldr r0, [r1, r0]
- cmp r0, #0x0
- bne _0202AE48
- mov r0, #0x0
- pop {r3-r5, pc}
-_0202AE48:
- mov r0, #0x1
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0202AE4C
-FUN_0202AE4C: ; 0x0202AE4C
- push {r3-r5, lr}
- add r5, r1, #0x0
- add r4, r0, #0x0
- cmp r5, #0x3
- blt _0202AE5A
- bl ErrorHandling
-_0202AE5A:
- lsl r0, r5, #0x2
- add r1, r4, r0
- mov r0, #0x12
- lsl r0, r0, #0x4
- ldr r0, [r1, r0]
- cmp r0, #0x0
- bne _0202AE6C
- mov r0, #0x0
- pop {r3-r5, pc}
-_0202AE6C:
- mov r0, #0x1
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0202AE70
-FUN_0202AE70: ; 0x0202AE70
- push {r3-r5, lr}
- add r5, r0, #0x0
- mov r4, #0x0
-_0202AE76:
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_0202AE4C
- cmp r0, #0x1
- bne _0202AE86
- mov r0, #0x1
- pop {r3-r5, pc}
-_0202AE86:
- add r4, r4, #0x1
- cmp r4, #0x3
- blt _0202AE76
- mov r0, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0202AE90
-FUN_0202AE90: ; 0x0202AE90
- push {r3-r4}
- cmp r1, #0x0
- beq _0202AEB8
- ldr r2, _0202AEC0 ; =0x0000012E
- mov r3, #0x0
- add r4, r0, r2
- add r0, r2, #0x0
- sub r0, #0x2a
-_0202AEA0:
- ldrh r2, [r4, #0x0]
- lsl r2, r2, #0x1e
- lsr r2, r2, #0x1e
- cmp r1, r2
- bne _0202AEB0
- mov r0, #0x1
- pop {r3-r4}
- bx lr
-_0202AEB0:
- add r3, r3, #0x1
- add r4, r4, r0
- cmp r3, #0x8
- blt _0202AEA0
-_0202AEB8:
- mov r0, #0x0
- pop {r3-r4}
- bx lr
- nop
-_0202AEC0: .word 0x0000012E
-
- thumb_func_start FUN_0202AEC4
-FUN_0202AEC4: ; 0x0202AEC4
- push {r3-r5, lr}
- cmp r1, #0x0
- beq _0202AEEE
- ldr r3, _0202AEF0 ; =0x0000012E
- mov r4, #0x41
- mov r2, #0x0
- add r3, r0, r3
- lsl r4, r4, #0x2
-_0202AED4:
- ldrh r5, [r3, #0x0]
- lsl r5, r5, #0x1e
- lsr r5, r5, #0x1e
- cmp r1, r5
- bne _0202AEE6
- add r1, r2, #0x1
- bl FUN_0202AD94
- pop {r3-r5, pc}
-_0202AEE6:
- add r2, r2, #0x1
- add r3, r3, r4
- cmp r2, #0x8
- blt _0202AED4
-_0202AEEE:
- pop {r3-r5, pc}
- .balign 4
-_0202AEF0: .word 0x0000012E
-
- thumb_func_start FUN_0202AEF4
-FUN_0202AEF4: ; 0x0202AEF4
- push {r3-r5, lr}
- add r5, r0, #0x0
- mov r0, #0x2
- add r4, r1, #0x0
- lsl r0, r0, #0xa
- cmp r4, r0
- blt _0202AF06
- bl ErrorHandling
-_0202AF06:
- mov r0, #0x1
- mov r1, #0x7
- add r2, r4, #0x0
- and r2, r1
- add r1, r0, #0x0
- lsl r1, r2
- asr r2, r4, #0x2
- lsr r2, r2, #0x1d
- add r2, r4, r2
- asr r2, r2, #0x3
- ldrb r2, [r5, r2]
- tst r1, r2
- bne _0202AF22
- mov r0, #0x0
-_0202AF22:
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0202AF24
-FUN_0202AF24: ; 0x0202AF24
- push {r3-r5, lr}
- add r5, r0, #0x0
- mov r0, #0x2
- add r4, r1, #0x0
- lsl r0, r0, #0xa
- cmp r4, r0
- blt _0202AF36
- bl ErrorHandling
-_0202AF36:
- asr r0, r4, #0x2
- lsr r0, r0, #0x1d
- add r0, r4, r0
- asr r0, r0, #0x3
- mov r1, #0x7
- ldrb r3, [r5, r0]
- mov r2, #0x1
- and r1, r4
- lsl r2, r1
- add r1, r3, #0x0
- orr r1, r2
- strb r1, [r5, r0]
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0202AF50
-FUN_0202AF50: ; 0x0202AF50
- ldr r3, _0202AF58 ; =FUN_0202AEF4
- ldr r1, _0202AF5C ; =0x000007FF
- bx r3
- nop
-_0202AF58: .word FUN_0202AEF4
-_0202AF5C: .word 0x000007FF
-
- thumb_func_start FUN_0202AF60
-FUN_0202AF60: ; 0x0202AF60
- ldr r3, _0202AF68 ; =FUN_0202AF24
- ldr r1, _0202AF6C ; =0x000007FF
- bx r3
- nop
-_0202AF68: .word FUN_0202AF24
-_0202AF6C: .word 0x000007FF
-
- thumb_func_start FUN_0202AF70
-FUN_0202AF70: ; 0x0202AF70
- push {r3, lr}
- ldr r1, _0202AF84 ; =0x021C59D4
- ldr r1, [r1, #0x0]
- cmp r1, #0x0
- bne _0202AF82
- bl FUN_0202251C
- ldr r1, _0202AF84 ; =0x021C59D4
- str r0, [r1, #0x0]
-_0202AF82:
- pop {r3, pc}
- .balign 4
-_0202AF84: .word 0x021C59D4
-
- thumb_func_start FUN_0202AF88
-FUN_0202AF88: ; 0x0202AF88
- ldr r0, _0202AF98 ; =0x021C59D4
- ldr r1, [r0, #0x0]
- cmp r1, #0x0
- beq _0202AF94
- mov r1, #0x0
- str r1, [r0, #0x0]
-_0202AF94:
- bx lr
- nop
-_0202AF98: .word 0x021C59D4
-
- thumb_func_start FUN_0202AF9C
-FUN_0202AF9C: ; 0x0202AF9C
- push {r3-r5, lr}
- ldr r4, _0202AFBC ; =0x021C59D4
- mov r5, #0x0
-_0202AFA2:
- ldr r0, [r4, #0x0]
- add r1, r5, #0x0
- bl FUN_0202AE28
- cmp r0, #0x1
- bne _0202AFB2
- add r0, r5, #0x1
- pop {r3-r5, pc}
-_0202AFB2:
- add r5, r5, #0x1
- cmp r5, #0x8
- blt _0202AFA2
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-_0202AFBC: .word 0x021C59D4
-
- thumb_func_start FUN_0202AFC0
-FUN_0202AFC0: ; 0x0202AFC0
- push {r4, lr}
- add r4, r0, #0x0
- bne _0202AFCA
- mov r0, #0x0
- pop {r4, pc}
-_0202AFCA:
- sub r0, r4, #0x1
- cmp r0, #0x8
- blt _0202AFD4
- bl ErrorHandling
-_0202AFD4:
- ldr r0, _0202AFF8 ; =0x021C59D4
- sub r1, r4, #0x1
- ldr r0, [r0, #0x0]
- bl FUN_0202AE28
- cmp r0, #0x1
- bne _0202AFF4
- ldr r0, _0202AFF8 ; =0x021C59D4
- sub r1, r4, #0x1
- ldr r0, [r0, #0x0]
- bl FUN_0202AC2C
- cmp r0, #0x0
- beq _0202AFF4
- ldrh r0, [r0, #0x0]
- pop {r4, pc}
-_0202AFF4:
- mov r0, #0x0
- pop {r4, pc}
- .balign 4
-_0202AFF8: .word 0x021C59D4
-
- thumb_func_start FUN_0202AFFC
-FUN_0202AFFC: ; 0x0202AFFC
- cmp r0, #0x0
- beq _0202B016
- ldr r1, _0202B01C ; =0x021C59D4
- ldr r2, [r1, #0x0]
- mov r1, #0x13
- lsl r1, r1, #0x4
- add r2, r2, r1
- sub r1, r0, #0x1
- lsl r0, r1, #0x6
- add r0, r1, r0
- lsl r0, r0, #0x2
- add r0, r2, r0
- bx lr
-_0202B016:
- mov r0, #0x0
- bx lr
- nop
-_0202B01C: .word 0x021C59D4
-
- thumb_func_start FUN_0202B020
-FUN_0202B020: ; 0x0202B020
- add r1, r0, #0x0
- ldr r0, _0202B02C ; =0x021C59D4
- ldr r3, _0202B030 ; =FUN_0202AD94
- ldr r0, [r0, #0x0]
- bx r3
- nop
-_0202B02C: .word 0x021C59D4
-_0202B030: .word FUN_0202AD94
-
- thumb_func_start FUN_0202B034
-FUN_0202B034: ; 0x0202B034
- ldr r0, _0202B038 ; =0x00002AB0
- bx lr
- .balign 4
-_0202B038: .word 0x00002AB0
-
- thumb_func_start FUN_0202B03C
-FUN_0202B03C: ; 0x0202B03C
- ldr r3, _0202B048 ; =MIi_CpuClear32
- add r1, r0, #0x0
- mov r0, #0x0
- ldr r2, _0202B04C ; =0x00002AB0
- bx r3
- nop
-_0202B048: .word MIi_CpuClear32
-_0202B04C: .word 0x00002AB0
-
- thumb_func_start FUN_0202B050
-FUN_0202B050: ; 0x0202B050
- push {r3-r7, lr}
- sub sp, #0x18
- str r0, [sp, #0x0]
- str r1, [sp, #0x4]
- str r2, [sp, #0x8]
- cmp r0, #0x0
- bne _0202B062
- bl ErrorHandling
-_0202B062:
- ldr r1, _0202B1E0 ; =0x00002AA8
- ldr r0, [sp, #0x0]
- ldr r0, [r0, r1]
- cmp r0, #0x1e
- blo _0202B070
- bl ErrorHandling
-_0202B070:
- ldr r1, _0202B1E4 ; =0x00002AAC
- ldr r0, [sp, #0x0]
- ldr r2, [r0, r1]
- ldr r0, _0202B1E8 ; =0x0000270F
- cmp r2, r0
- blo _0202B07E
- b _0202B1DC
-_0202B07E:
- ldr r0, [sp, #0x0]
- sub r1, r1, #0x4
- ldr r1, [r0, r1]
- mov r0, #0x5b
- lsl r0, r0, #0x2
- add r2, r1, #0x0
- mul r2, r0
- ldr r0, [sp, #0x0]
- add r0, r0, r2
- str r0, [sp, #0x14]
- ldr r0, [sp, #0x4]
- bl FUN_0206B9AC
- str r0, [sp, #0x10]
- mov r0, #0xb
- mov r1, #0x0
- bl FUN_020219F4
- mov r2, #0x5a
- add r6, r0, #0x0
- ldr r1, [sp, #0x14]
- mov r0, #0x0
- lsl r2, r2, #0x2
- bl MIi_CpuClear16
- ldr r0, [sp, #0x10]
- mov r7, #0x0
- cmp r0, #0x0
- ble _0202B18E
- ldr r5, [sp, #0x14]
-_0202B0BA:
- ldr r0, [sp, #0x4]
- add r1, r7, #0x0
- bl FUN_0206B9B0
- add r4, r0, #0x0
- bl FUN_020669D4
- str r0, [sp, #0xc]
- add r0, r4, #0x0
- mov r1, #0x4c
- mov r2, #0x0
- bl FUN_020671BC
- cmp r0, #0x0
- bne _0202B17E
- add r0, r4, #0x0
- mov r1, #0x5
- mov r2, #0x0
- bl FUN_020671BC
- strh r0, [r5, #0x0]
- add r0, r4, #0x0
- mov r1, #0xa0
- mov r2, #0x0
- bl FUN_020671BC
- strb r0, [r5, #0x2]
- add r0, r4, #0x0
- mov r1, #0x70
- mov r2, #0x0
- bl FUN_020671BC
- mov r1, #0x0
- strb r0, [r5, #0x3]
- add r0, r4, #0x0
- add r2, r1, #0x0
- bl FUN_020671BC
- str r0, [r5, #0x4]
- add r0, r4, #0x0
- mov r1, #0x7
- mov r2, #0x0
- bl FUN_020671BC
- str r0, [r5, #0x8]
- add r0, r4, #0x0
- mov r1, #0x36
- mov r2, #0x0
- bl FUN_020671BC
- strh r0, [r5, #0x32]
- add r0, r4, #0x0
- mov r1, #0x37
- mov r2, #0x0
- bl FUN_020671BC
- strh r0, [r5, #0x34]
- add r0, r4, #0x0
- mov r1, #0x38
- mov r2, #0x0
- bl FUN_020671BC
- strh r0, [r5, #0x36]
- add r0, r4, #0x0
- mov r1, #0x39
- mov r2, #0x0
- bl FUN_020671BC
- strh r0, [r5, #0x38]
- cmp r6, #0x0
- beq _0202B176
- add r0, r4, #0x0
- mov r1, #0x76
- add r2, r6, #0x0
- bl FUN_020671BC
- add r1, r5, #0x0
- add r0, r6, #0x0
- add r1, #0xc
- mov r2, #0xb
- bl FUN_02021EF0
- add r0, r4, #0x0
- mov r1, #0x90
- add r2, r6, #0x0
- bl FUN_020671BC
- add r1, r5, #0x0
- add r0, r6, #0x0
- add r1, #0x22
- mov r2, #0x8
- bl FUN_02021EF0
- b _0202B17C
-_0202B176:
- ldr r0, _0202B1EC ; =0x0000FFFF
- strh r0, [r5, #0xc]
- strh r0, [r5, #0x22]
-_0202B17C:
- add r5, #0x3c
-_0202B17E:
- ldr r1, [sp, #0xc]
- add r0, r4, #0x0
- bl FUN_02066A20
- ldr r0, [sp, #0x10]
- add r7, r7, #0x1
- cmp r7, r0
- blt _0202B0BA
-_0202B18E:
- ldr r0, [sp, #0x8]
- mov r1, #0x5a
- ldr r2, [r0, #0x0]
- ldr r0, [sp, #0x14]
- lsl r1, r1, #0x2
- strh r2, [r0, r1]
- ldr r0, [sp, #0x8]
- add r2, r1, #0x2
- ldr r3, [r0, #0x4]
- ldr r0, [sp, #0x14]
- add r1, r1, #0x3
- strb r3, [r0, r2]
- ldr r0, [sp, #0x8]
- ldr r2, [r0, #0x8]
- ldr r0, [sp, #0x14]
- strb r2, [r0, r1]
- ldr r1, _0202B1E0 ; =0x00002AA8
- ldr r0, [sp, #0x0]
- ldr r0, [r0, r1]
- add r2, r0, #0x1
- ldr r0, [sp, #0x0]
- str r2, [r0, r1]
- ldr r0, [r0, r1]
- cmp r0, #0x1e
- blo _0202B1C6
- ldr r0, [sp, #0x0]
- mov r2, #0x0
- str r2, [r0, r1]
-_0202B1C6:
- ldr r1, _0202B1E4 ; =0x00002AAC
- ldr r0, [sp, #0x0]
- ldr r0, [r0, r1]
- add r2, r0, #0x1
- ldr r0, [sp, #0x0]
- cmp r6, #0x0
- str r2, [r0, r1]
- beq _0202B1DC
- add r0, r6, #0x0
- bl FUN_02021A20
-_0202B1DC:
- add sp, #0x18
- pop {r3-r7, pc}
- .balign 4
-_0202B1E0: .word 0x00002AA8
-_0202B1E4: .word 0x00002AAC
-_0202B1E8: .word 0x0000270F
-_0202B1EC: .word 0x0000FFFF
-
- thumb_func_start FUN_0202B1F0
-FUN_0202B1F0: ; 0x0202B1F0
- push {r4, lr}
- add r4, r0, #0x0
- bne _0202B1FA
- bl ErrorHandling
-_0202B1FA:
- ldr r0, _0202B214 ; =0x00002AA8
- ldr r0, [r4, r0]
- cmp r0, #0x1e
- blo _0202B206
- bl ErrorHandling
-_0202B206:
- ldr r0, _0202B218 ; =0x00002AAC
- ldr r0, [r4, r0]
- cmp r0, #0x1e
- blo _0202B210
- mov r0, #0x1e
-_0202B210:
- pop {r4, pc}
- nop
-_0202B214: .word 0x00002AA8
-_0202B218: .word 0x00002AAC
-
- thumb_func_start FUN_0202B21C
-FUN_0202B21C: ; 0x0202B21C
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- cmp r5, #0x0
- bne _0202B22A
- bl ErrorHandling
-_0202B22A:
- ldr r0, _0202B248 ; =0x00002AA8
- ldr r0, [r5, r0]
- cmp r0, #0x1e
- blo _0202B236
- bl ErrorHandling
-_0202B236:
- cmp r4, #0x1e
- blt _0202B23E
- bl ErrorHandling
-_0202B23E:
- ldr r0, _0202B24C ; =0x00002AAC
- ldr r0, [r5, r0]
- sub r0, r0, r4
- pop {r3-r5, pc}
- nop
-_0202B248: .word 0x00002AA8
-_0202B24C: .word 0x00002AAC
-
- thumb_func_start FUN_0202B250
-FUN_0202B250: ; 0x0202B250
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- cmp r5, #0x0
- bne _0202B25E
- bl ErrorHandling
-_0202B25E:
- ldr r0, _0202B298 ; =0x00002AA8
- ldr r0, [r5, r0]
- cmp r0, #0x1e
- blo _0202B26A
- bl ErrorHandling
-_0202B26A:
- cmp r4, #0x1e
- blt _0202B272
- bl ErrorHandling
-_0202B272:
- ldr r0, _0202B298 ; =0x00002AA8
- ldr r0, [r5, r0]
- sub r0, r0, #0x1
- sub r2, r0, r4
- bpl _0202B27E
- add r2, #0x1e
-_0202B27E:
- mov r1, #0x5b
- lsl r1, r1, #0x2
- mul r1, r2
- mov r0, #0x0
- add r2, r5, r1
-_0202B288:
- ldrh r1, [r2, #0x0]
- cmp r1, #0x0
- beq _0202B296
- add r0, r0, #0x1
- add r2, #0x3c
- cmp r0, #0x6
- blo _0202B288
-_0202B296:
- pop {r3-r5, pc}
- .balign 4
-_0202B298: .word 0x00002AA8
-
- thumb_func_start FUN_0202B29C
-FUN_0202B29C: ; 0x0202B29C
- push {r3-r7, lr}
- add r5, r0, #0x0
- add r6, r1, #0x0
- add r7, r2, #0x0
- add r4, r3, #0x0
- cmp r5, #0x0
- bne _0202B2AE
- bl ErrorHandling
-_0202B2AE:
- ldr r0, _0202B318 ; =0x00002AA8
- ldr r0, [r5, r0]
- cmp r0, #0x1e
- blo _0202B2BA
- bl ErrorHandling
-_0202B2BA:
- cmp r6, #0x1e
- blt _0202B2C2
- bl ErrorHandling
-_0202B2C2:
- ldr r0, _0202B318 ; =0x00002AA8
- ldr r0, [r5, r0]
- sub r0, r0, #0x1
- sub r1, r0, r6
- bpl _0202B2CE
- add r1, #0x1e
-_0202B2CE:
- mov r0, #0x5b
- lsl r0, r0, #0x2
- mul r0, r1
- add r1, r5, r0
- mov r0, #0x3c
- mul r0, r7
- add r5, r1, r0
- ldrh r0, [r1, r0]
- add r1, r5, #0x0
- add r1, #0xc
- strh r0, [r4, #0x10]
- ldrb r0, [r5, #0x2]
- strb r0, [r4, #0x12]
- ldr r0, [r5, #0x4]
- str r0, [r4, #0x8]
- ldr r0, [r5, #0x8]
- str r0, [r4, #0xc]
- ldrb r0, [r5, #0x3]
- strb r0, [r4, #0x13]
- ldr r0, [r4, #0x0]
- bl FUN_02021E28
- add r1, r5, #0x0
- ldr r0, [r4, #0x4]
- add r1, #0x22
- bl FUN_02021E28
- mov r1, #0x0
-_0202B306:
- ldrh r0, [r5, #0x32]
- add r1, r1, #0x1
- add r5, r5, #0x2
- strh r0, [r4, #0x14]
- add r4, r4, #0x2
- cmp r1, #0x4
- blt _0202B306
- pop {r3-r7, pc}
- nop
-_0202B318: .word 0x00002AA8
-
- thumb_func_start FUN_0202B31C
-FUN_0202B31C: ; 0x0202B31C
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r6, r1, #0x0
- add r4, r2, #0x0
- cmp r5, #0x0
- bne _0202B32C
- bl ErrorHandling
-_0202B32C:
- ldr r0, _0202B370 ; =0x00002AA8
- ldr r0, [r5, r0]
- cmp r0, #0x1e
- blo _0202B338
- bl ErrorHandling
-_0202B338:
- cmp r6, #0x1e
- blt _0202B340
- bl ErrorHandling
-_0202B340:
- ldr r0, _0202B370 ; =0x00002AA8
- ldr r0, [r5, r0]
- sub r0, r0, #0x1
- sub r2, r0, r6
- bpl _0202B34C
- add r2, #0x1e
-_0202B34C:
- mov r0, #0x5b
- lsl r0, r0, #0x2
- add r1, r2, #0x0
- mul r1, r0
- add r2, r5, r1
- sub r1, r0, #0x4
- ldrh r1, [r2, r1]
- str r1, [r4, #0x0]
- sub r1, r0, #0x2
- ldrb r1, [r2, r1]
- sub r0, r0, #0x1
- str r1, [r4, #0x4]
- ldrb r0, [r2, r0]
- str r0, [r4, #0x8]
- mov r0, #0x0
- str r0, [r4, #0xc]
- pop {r4-r6, pc}
- nop
-_0202B370: .word 0x00002AA8
-
- thumb_func_start FUN_0202B374
-FUN_0202B374: ; 0x0202B374
- ldr r0, _0202B378 ; =0x00000B88
- bx lr
- .balign 4
-_0202B378: .word 0x00000B88
-
- thumb_func_start FUN_0202B37C
-FUN_0202B37C: ; 0x0202B37C
- ldr r3, _0202B388 ; =MIi_CpuClearFast
- add r1, r0, #0x0
- mov r0, #0x0
- ldr r2, _0202B38C ; =0x00000B88
- bx r3
- nop
-_0202B388: .word MIi_CpuClearFast
-_0202B38C: .word 0x00000B88
-
- thumb_func_start FUN_0202B390
-FUN_0202B390: ; 0x0202B390
- push {r4, lr}
- add r4, r0, #0x0
- add r1, r4, #0x0
- mov r0, #0x0
- add r1, #0xc
- mov r2, #0xc0
- bl MIi_CpuClearFast
- add r1, r4, #0x0
- mov r0, #0x0
- add r1, #0xcc
- mov r2, #0xc0
- bl MIi_CpuClearFast
- mov r1, #0x63
- lsl r1, r1, #0x2
- mov r0, #0x0
- add r1, r4, r1
- mov r2, #0xc0
- bl MIi_CpuClearFast
- add r0, r4, #0x0
- bl FUN_0202B3F8
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0202B3C4
-FUN_0202B3C4: ; 0x0202B3C4
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, [r4, #0x4]
- cmp r0, r1
- ble _0202B3D4
- sub r0, r0, r1
- str r0, [r4, #0x4]
- pop {r4, pc}
-_0202B3D4:
- add r0, r2, #0x0
- mov r1, #0xf
- bl _s32_div_f
- mov r0, #0xf
- sub r1, r0, r1
- str r1, [r4, #0x4]
- bne _0202B3E6
- str r0, [r4, #0x4]
-_0202B3E6:
- mov r1, #0x0
- strb r1, [r4, #0x8]
- add r0, r1, #0x0
-_0202B3EC:
- strb r0, [r4, r1]
- add r1, r1, #0x1
- cmp r1, #0x4
- blt _0202B3EC
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0202B3F8
-FUN_0202B3F8: ; 0x0202B3F8
- push {r4, lr}
- add r4, r0, #0x0
- mov r1, #0x0
- bl FUN_0202B40C
- add r0, r4, #0x0
- bl FUN_0202B430
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0202B40C
-FUN_0202B40C: ; 0x0202B40C
- strb r1, [r0, #0x8]
- bx lr
-
- thumb_func_start FUN_0202B410
-FUN_0202B410: ; 0x0202B410
- ldrb r0, [r0, #0x8]
- bx lr
-
- thumb_func_start FUN_0202B414
-FUN_0202B414: ; 0x0202B414
- push {r3, lr}
- mov r3, #0x0
-_0202B418:
- ldrb r2, [r0, r3]
- cmp r2, #0x0
- bne _0202B422
- strb r1, [r0, r3]
- pop {r3, pc}
-_0202B422:
- add r3, r3, #0x1
- cmp r3, #0x4
- blt _0202B418
- bl ErrorHandling
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_0202B430
-FUN_0202B430: ; 0x0202B430
- mov r2, #0x0
- add r1, r2, #0x0
-_0202B434:
- strb r1, [r0, r2]
- add r2, r2, #0x1
- cmp r2, #0x4
- blt _0202B434
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202B440
-FUN_0202B440: ; 0x0202B440
- mov r3, #0x0
-_0202B442:
- ldrb r2, [r0, r3]
- cmp r1, r2
- bne _0202B44C
- mov r0, #0x1
- bx lr
-_0202B44C:
- add r3, r3, #0x1
- cmp r3, #0x4
- blt _0202B442
- mov r0, #0x0
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202B458
-FUN_0202B458: ; 0x0202B458
- mov r2, #0x0
- add r3, r2, #0x0
-_0202B45C:
- ldrb r1, [r0, r2]
- cmp r1, #0x0
- beq _0202B464
- add r3, r3, #0x1
-_0202B464:
- add r2, r2, #0x1
- cmp r2, #0x4
- blt _0202B45C
- add r0, r3, #0x0
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202B470
-FUN_0202B470: ; 0x0202B470
- push {r4-r6, lr}
- sub sp, #0x10
- add r5, r0, #0x0
- add r0, sp, #0x0
- add r4, r1, #0x0
- add r6, r2, #0x0
- bl FUN_020126B4
- ldr r0, [sp, #0x8]
- ldr r3, [sp, #0x4]
- lsl r0, r0, #0x18
- lsr r1, r0, #0x10
- ldr r0, [sp, #0x0]
- lsl r3, r3, #0x18
- lsl r0, r0, #0x18
- lsr r3, r3, #0x8
- orr r0, r3
- ldr r2, [sp, #0xc]
- orr r0, r1
- orr r0, r2
- str r0, [r5, #0x4]
- strb r4, [r5, #0x0]
- mov r0, #0x0
- strb r0, [r5, #0x1]
- add r5, #0x8
- add r0, r6, #0x0
- add r1, r5, #0x0
- mov r2, #0x28
- bl MIi_CpuCopyFast
- add sp, #0x10
- pop {r4-r6, pc}
-
- thumb_func_start FUN_0202B4B0
-FUN_0202B4B0: ; 0x0202B4B0
- push {r3-r5, lr}
- add r5, r2, #0x0
- add r4, r3, #0x0
- bl FUN_0202B548
- mov r2, #0x0
- add r3, r0, #0x0
-_0202B4BE:
- ldrb r1, [r3, #0x0]
- cmp r5, r1
- bne _0202B4E0
- mov r1, #0x30
- mul r1, r2
- add r0, r0, r1
- ldrb r1, [r0, #0x1]
- cmp r1, #0x3
- blo _0202B4DC
- add r1, r5, #0x0
- add r2, r4, #0x0
- bl FUN_0202B470
- mov r0, #0x1
- pop {r3-r5, pc}
-_0202B4DC:
- mov r0, #0x0
- pop {r3-r5, pc}
-_0202B4E0:
- add r2, r2, #0x1
- add r3, #0x30
- cmp r2, #0x4
- blt _0202B4BE
- mov r1, #0x0
- add r3, r0, #0x0
-_0202B4EC:
- ldrb r2, [r3, #0x0]
- cmp r2, #0x0
- bne _0202B504
- mov r2, #0x30
- mul r2, r1
- add r0, r0, r2
- add r1, r5, #0x0
- add r2, r4, #0x0
- bl FUN_0202B470
- mov r0, #0x1
- pop {r3-r5, pc}
-_0202B504:
- add r1, r1, #0x1
- add r3, #0x30
- cmp r1, #0x4
- blt _0202B4EC
- mov r1, #0x0
- add r3, r0, #0x0
-_0202B510:
- ldrb r2, [r3, #0x1]
- cmp r2, #0x3
- blo _0202B528
- mov r2, #0x30
- mul r2, r1
- add r0, r0, r2
- add r1, r5, #0x0
- add r2, r4, #0x0
- bl FUN_0202B470
- mov r0, #0x1
- pop {r3-r5, pc}
-_0202B528:
- add r1, r1, #0x1
- add r3, #0x30
- cmp r1, #0x4
- blt _0202B510
- mov r0, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0202B534
-FUN_0202B534: ; 0x0202B534
- add r0, #0x8
- bx lr
-
- thumb_func_start FUN_0202B538
-FUN_0202B538: ; 0x0202B538
- ldrb r0, [r0, #0x6]
- bx lr
-
- thumb_func_start FUN_0202B53C
-FUN_0202B53C: ; 0x0202B53C
- ldrb r0, [r0, #0x5]
- bx lr
-
- thumb_func_start FUN_0202B540
-FUN_0202B540: ; 0x0202B540
- add r0, #0x18
- bx lr
-
- thumb_func_start FUN_0202B544
-FUN_0202B544: ; 0x0202B544
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202B548
-FUN_0202B548: ; 0x0202B548
- push {r4, lr}
- mov r4, #0x0
- cmp r1, #0x4
- bhi _0202B57E
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #0x6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0202B55C: ; jump table (using 16-bit offset)
- .short _0202B57E - _0202B55C - 2; case 0
- .short _0202B566 - _0202B55C - 2; case 1
- .short _0202B56E - _0202B55C - 2; case 2
- .short _0202B574 - _0202B55C - 2; case 3
- .short _0202B57A - _0202B55C - 2; case 4
-_0202B566:
- mov r1, #0x63
- lsl r1, r1, #0x2
- add r4, r0, r1
- b _0202B57E
-_0202B56E:
- add r4, r0, #0x0
- add r4, #0xc
- b _0202B57E
-_0202B574:
- add r4, r0, #0x0
- add r4, #0xcc
- b _0202B57E
-_0202B57A:
- bl ErrorHandling
-_0202B57E:
- add r0, r4, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0202B584
-FUN_0202B584: ; 0x0202B584
- push {r4, lr}
- mov r4, #0x0
- cmp r1, #0x4
- bhi _0202B5BA
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #0x6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0202B598: ; jump table (using 16-bit offset)
- .short _0202B5BA - _0202B598 - 2; case 0
- .short _0202B5B0 - _0202B598 - 2; case 1
- .short _0202B5A2 - _0202B598 - 2; case 2
- .short _0202B5AA - _0202B598 - 2; case 3
- .short _0202B5B6 - _0202B598 - 2; case 4
-_0202B5A2:
- mov r1, #0x93
- lsl r1, r1, #0x2
- add r4, r0, r1
- b _0202B5BA
-_0202B5AA:
- ldr r1, _0202B5C0 ; =0x000006CC
- add r4, r0, r1
- b _0202B5BA
-_0202B5B0:
- ldr r1, _0202B5C4 ; =0x0000090C
- add r4, r0, r1
- b _0202B5BA
-_0202B5B6:
- bl ErrorHandling
-_0202B5BA:
- add r0, r4, #0x0
- pop {r4, pc}
- nop
-_0202B5C0: .word 0x000006CC
-_0202B5C4: .word 0x0000090C
-
- thumb_func_start FUN_0202B5C8
-FUN_0202B5C8: ; 0x0202B5C8
- ldrb r0, [r0, #0x0]
- bx lr
-
- thumb_func_start FUN_0202B5CC
-FUN_0202B5CC: ; 0x0202B5CC
- ldrb r1, [r0, #0x1]
- cmp r1, #0x3
- bhs _0202B5D6
- add r1, r1, #0x1
- strb r1, [r0, #0x1]
-_0202B5D6:
- bx lr
-
- thumb_func_start FUN_0202B5D8
-FUN_0202B5D8: ; 0x0202B5D8
- add r0, #0x8
- bx lr
-
- thumb_func_start FUN_0202B5DC
-FUN_0202B5DC: ; 0x0202B5DC
- push {r4-r7}
- mov r5, #0x0
- add r4, r5, #0x0
- ldr r6, [sp, #0x10]
- cmp r1, #0x0
- ble _0202B616
-_0202B5E8:
- ldrb r7, [r0, #0x0]
- cmp r2, r7
- bne _0202B60E
- ldrb r7, [r0, #0x1]
- cmp r3, #0x0
- beq _0202B600
- cmp r7, #0x0
- beq _0202B600
- add r7, r4, #0x1
- strb r7, [r6, r5]
- add r5, r5, #0x1
- b _0202B60E
-_0202B600:
- cmp r3, #0x0
- bne _0202B60E
- cmp r7, #0x0
- bne _0202B60E
- add r7, r4, #0x1
- strb r7, [r6, r5]
- add r5, r5, #0x1
-_0202B60E:
- add r4, r4, #0x1
- add r0, #0x30
- cmp r4, r1
- blt _0202B5E8
-_0202B616:
- add r0, r5, #0x0
- pop {r4-r7}
- bx lr
-
- thumb_func_start FUN_0202B61C
-FUN_0202B61C: ; 0x0202B61C
- push {r4-r7, lr}
- sub sp, #0xc
- add r6, r0, #0x0
- mov r5, #0x0
- add r0, r1, #0x0
- add r4, r5, #0x0
- str r1, [sp, #0x0]
- str r2, [sp, #0x4]
- str r3, [sp, #0x8]
- ldr r7, [sp, #0x20]
- cmp r0, #0x0
- ble _0202B672
-_0202B634:
- ldrb r2, [r6, #0x18]
- ldr r1, [sp, #0x4]
- ldrb r0, [r6, #0x19]
- cmp r1, r2
- bne _0202B668
- ldr r1, [sp, #0x8]
- cmp r1, #0x0
- beq _0202B654
- cmp r0, #0x0
- beq _0202B654
- add r0, r4, #0x1
- bl FUN_0202B830
- strb r0, [r7, r5]
- add r5, r5, #0x1
- b _0202B668
-_0202B654:
- ldr r1, [sp, #0x8]
- cmp r1, #0x0
- bne _0202B668
- cmp r0, #0x0
- bne _0202B668
- add r0, r4, #0x1
- bl FUN_0202B830
- strb r0, [r7, r5]
- add r5, r5, #0x1
-_0202B668:
- ldr r0, [sp, #0x0]
- add r4, r4, #0x1
- add r6, #0x48
- cmp r4, r0
- blt _0202B634
-_0202B672:
- add r0, r5, #0x0
- add sp, #0xc
- pop {r4-r7, pc}
-
- thumb_func_start FUN_0202B678
-FUN_0202B678: ; 0x0202B678
- push {r3-r5, lr}
- ldr r5, [sp, #0x10]
- ldr r4, [sp, #0x14]
- cmp r1, #0x4
- bhi _0202B702
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #0x6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0202B68E: ; jump table (using 16-bit offset)
- .short _0202B702 - _0202B68E - 2; case 0
- .short _0202B6DA - _0202B68E - 2; case 1
- .short _0202B698 - _0202B68E - 2; case 2
- .short _0202B6BA - _0202B68E - 2; case 3
- .short _0202B6FE - _0202B68E - 2; case 4
-_0202B698:
- cmp r3, #0x0
- str r4, [sp, #0x0]
- beq _0202B6AA
- add r0, #0xc
- mov r1, #0x4
- add r3, r5, #0x0
- bl FUN_0202B5DC
- pop {r3-r5, pc}
-_0202B6AA:
- mov r1, #0x93
- lsl r1, r1, #0x2
- add r0, r0, r1
- mov r1, #0x10
- add r3, r5, #0x0
- bl FUN_0202B61C
- pop {r3-r5, pc}
-_0202B6BA:
- cmp r3, #0x0
- str r4, [sp, #0x0]
- beq _0202B6CC
- add r0, #0xcc
- mov r1, #0x4
- add r3, r5, #0x0
- bl FUN_0202B5DC
- pop {r3-r5, pc}
-_0202B6CC:
- ldr r1, _0202B708 ; =0x000006CC
- add r3, r5, #0x0
- add r0, r0, r1
- mov r1, #0x8
- bl FUN_0202B61C
- pop {r3-r5, pc}
-_0202B6DA:
- cmp r3, #0x0
- str r4, [sp, #0x0]
- beq _0202B6F0
- mov r1, #0x63
- lsl r1, r1, #0x2
- add r0, r0, r1
- mov r1, #0x4
- add r3, r5, #0x0
- bl FUN_0202B5DC
- pop {r3-r5, pc}
-_0202B6F0:
- ldr r1, _0202B70C ; =0x0000090C
- add r3, r5, #0x0
- add r0, r0, r1
- mov r1, #0x8
- bl FUN_0202B61C
- pop {r3-r5, pc}
-_0202B6FE:
- mov r0, #0x0
- pop {r3-r5, pc}
-_0202B702:
- mov r0, #0x0
- pop {r3-r5, pc}
- nop
-_0202B708: .word 0x000006CC
-_0202B70C: .word 0x0000090C
-
- thumb_func_start FUN_0202B710
-FUN_0202B710: ; 0x0202B710
- push {r4-r7, lr}
- sub sp, #0xc
- add r4, r0, #0x0
- add r6, r1, #0x0
- add r5, r2, #0x0
- add r0, sp, #0x8
- mov r1, #0x0
- mov r2, #0x4
- bl MI_CpuFill8
- mov r0, #0x0
- str r0, [sp, #0x0]
- add r0, sp, #0x8
- str r0, [sp, #0x4]
- add r0, r4, #0x0
- add r1, r6, #0x0
- add r2, r5, #0x0
- mov r3, #0x1
- bl FUN_0202B678
- cmp r0, #0x0
- beq _0202B742
- add sp, #0xc
- mov r0, #0x0
- pop {r4-r7, pc}
-_0202B742:
- mov r3, #0x1
- str r3, [sp, #0x0]
- add r0, sp, #0x8
- str r0, [sp, #0x4]
- add r0, r4, #0x0
- add r1, r6, #0x0
- add r2, r5, #0x0
- bl FUN_0202B678
- cmp r0, #0x0
- beq _0202B79E
- add r0, sp, #0x8
- ldrb r0, [r0, #0x0]
- mov r7, #0x0
- cmp r0, #0x0
- beq _0202B798
- add r5, sp, #0x8
-_0202B764:
- ldrb r2, [r5, #0x0]
- add r0, r4, #0x0
- add r1, r6, #0x0
- bl FUN_0202B7C8
- ldrb r0, [r0, #0x1]
- cmp r0, #0x3
- blo _0202B77A
- add sp, #0xc
- mov r0, #0x1
- pop {r4-r7, pc}
-_0202B77A:
- add r7, r7, #0x1
- add r5, r5, #0x1
- cmp r7, #0x4
- bge _0202B786
- mov r1, #0x1
- b _0202B788
-_0202B786:
- mov r1, #0x0
-_0202B788:
- ldrb r0, [r5, #0x0]
- cmp r0, #0x0
- beq _0202B792
- mov r0, #0x1
- b _0202B794
-_0202B792:
- mov r0, #0x0
-_0202B794:
- tst r0, r1
- bne _0202B764
-_0202B798:
- add sp, #0xc
- mov r0, #0x0
- pop {r4-r7, pc}
-_0202B79E:
- mov r5, #0x1
-_0202B7A0:
- add r0, r4, #0x0
- add r1, r6, #0x0
- add r2, r5, #0x0
- bl FUN_0202B7C8
- ldrb r1, [r0, #0x0]
- cmp r1, #0x0
- beq _0202B7B6
- ldrb r0, [r0, #0x1]
- cmp r0, #0x3
- blo _0202B7BC
-_0202B7B6:
- add sp, #0xc
- mov r0, #0x1
- pop {r4-r7, pc}
-_0202B7BC:
- add r5, r5, #0x1
- cmp r5, #0x4
- ble _0202B7A0
- mov r0, #0x0
- add sp, #0xc
- pop {r4-r7, pc}
-
- thumb_func_start FUN_0202B7C8
-FUN_0202B7C8: ; 0x0202B7C8
- push {r4-r6, lr}
- add r4, r2, #0x0
- add r5, r0, #0x0
- add r0, r4, #0x0
- add r6, r1, #0x0
- bl FUN_0202B820
- cmp r0, #0x1
- beq _0202B7DE
- bl ErrorHandling
-_0202B7DE:
- add r0, r5, #0x0
- add r1, r6, #0x0
- bl FUN_0202B548
- mov r1, #0x80
- bic r4, r1
- sub r2, r4, #0x1
- mov r1, #0x30
- mul r1, r2
- add r0, r0, r1
- pop {r4-r6, pc}
-
- thumb_func_start FUN_0202B7F4
-FUN_0202B7F4: ; 0x0202B7F4
- push {r4-r6, lr}
- add r4, r2, #0x0
- add r5, r0, #0x0
- add r0, r4, #0x0
- add r6, r1, #0x0
- bl FUN_0202B820
- cmp r0, #0x0
- beq _0202B80A
- bl ErrorHandling
-_0202B80A:
- add r0, r5, #0x0
- add r1, r6, #0x0
- bl FUN_0202B584
- mov r1, #0x80
- bic r4, r1
- sub r2, r4, #0x1
- mov r1, #0x48
- mul r1, r2
- add r0, r0, r1
- pop {r4-r6, pc}
-
- thumb_func_start FUN_0202B820
-FUN_0202B820: ; 0x0202B820
- mov r1, #0x80
- tst r0, r1
- bne _0202B82A
- mov r0, #0x1
- bx lr
-_0202B82A:
- mov r0, #0x0
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202B830
-FUN_0202B830: ; 0x0202B830
- mov r1, #0x80
- orr r0, r1
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202B838
-FUN_0202B838: ; 0x0202B838
- ldr r1, _0202B840 ; =0x00000B4C
- add r0, r0, r1
- bx lr
- nop
-_0202B840: .word 0x00000B4C
-
- thumb_func_start FUN_0202B844
-FUN_0202B844: ; 0x0202B844
- ldr r1, _0202B84C ; =0x00000B56
- add r0, r0, r1
- bx lr
- nop
-_0202B84C: .word 0x00000B56
-
- thumb_func_start FUN_0202B850
-FUN_0202B850: ; 0x0202B850
- ldr r1, _0202B858 ; =0x00000B7A
- add r0, r0, r1
- bx lr
- nop
-_0202B858: .word 0x00000B7A
-
- thumb_func_start FUN_0202B85C
-FUN_0202B85C: ; 0x0202B85C
- ldr r1, _0202B864 ; =0x00000B7C
- add r0, r0, r1
- bx lr
- nop
-_0202B864: .word 0x00000B7C
-
- thumb_func_start FUN_0202B868
-FUN_0202B868: ; 0x0202B868
- mov r1, #0x2e
- lsl r1, r1, #0x6
- add r0, r0, r1
- bx lr
-
- thumb_func_start FUN_0202B870
-FUN_0202B870: ; 0x0202B870
- lsl r1, r0, #0x1
- ldr r0, _0202B878 ; =0x020EEAC8
- ldrb r0, [r0, r1]
- bx lr
- .balign 4
-_0202B878: .word 0x020EEAC8
-
- thumb_func_start FUN_0202B87C
-FUN_0202B87C: ; 0x0202B87C
- lsl r1, r0, #0x1
- ldr r0, _0202B884 ; =0x020EEAC9
- ldrb r0, [r0, r1]
- bx lr
- .balign 4
-_0202B884: .word 0x020EEAC9
-
- thumb_func_start FUN_0202B888
-FUN_0202B888: ; 0x0202B888
- mov r1, #0x0
- str r1, [r0, #0x0]
- str r1, [r0, #0x4]
- ldr r3, _0202B898 ; =StringFillEOS
- add r0, #0x8
- mov r1, #0x8
- bx r3
- nop
-_0202B898: .word StringFillEOS
-
- thumb_func_start FUN_0202B89C
-FUN_0202B89C: ; 0x0202B89C
- push {r3, lr}
- add r0, #0x8
- bl StringLength
- cmp r0, #0x0
- beq _0202B8AC
- mov r0, #0x1
- pop {r3, pc}
-_0202B8AC:
- mov r0, #0x0
- pop {r3, pc}
-
- thumb_func_start FUN_0202B8B0
-FUN_0202B8B0: ; 0x0202B8B0
- mov r0, #0xea
- lsl r0, r0, #0x4
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202B8B8
-FUN_0202B8B8: ; 0x0202B8B8
- push {r3-r7, lr}
- mov r2, #0xea
- mov r1, #0x0
- lsl r2, r2, #0x4
- add r6, r0, #0x0
- bl MI_CpuFill8
- mov r7, #0x0
-_0202B8C8:
- mov r4, #0x0
- add r5, r6, #0x0
-_0202B8CC:
- add r0, r5, #0x0
- bl FUN_0202B888
- add r4, r4, #0x1
- add r5, #0x18
- cmp r4, #0x6
- blt _0202B8CC
- add r7, r7, #0x1
- add r6, #0x90
- cmp r7, #0x1a
- blt _0202B8C8
- pop {r3-r7, pc}
-
- thumb_func_start FUN_0202B8E4
-FUN_0202B8E4: ; 0x0202B8E4
- ldr r3, _0202B8EC ; =FUN_02022610
- mov r1, #0x1c
- bx r3
- nop
-_0202B8EC: .word FUN_02022610
-
- thumb_func_start FUN_0202B8F0
-FUN_0202B8F0: ; 0x0202B8F0
- push {r4-r6, lr}
- cmp r2, #0x6
- blo _0202B8FE
- blo _0202B930
- bl ErrorHandling
- pop {r4-r6, pc}
-_0202B8FE:
- mov r3, #0x90
- mul r3, r1
- add r3, r0, r3
- cmp r2, #0x5
- bge _0202B928
- mov r0, #0x18
- mul r0, r2
- add r6, r3, r0
-_0202B90E:
- add r5, r6, #0x0
- add r5, #0x18
- add r4, r6, #0x0
- ldmia r5!, {r0-r1}
- stmia r4!, {r0-r1}
- ldmia r5!, {r0-r1}
- stmia r4!, {r0-r1}
- ldmia r5!, {r0-r1}
- add r2, r2, #0x1
- add r6, #0x18
- stmia r4!, {r0-r1}
- cmp r2, #0x5
- blt _0202B90E
-_0202B928:
- add r3, #0x78
- add r0, r3, #0x0
- bl FUN_0202B888
-_0202B930:
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_0202B934
-FUN_0202B934: ; 0x0202B934
- mov r0, #0x4e
- lsl r0, r0, #0x2
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202B93C
-FUN_0202B93C: ; 0x0202B93C
- push {r3-r7, lr}
- sub sp, #0x8
- add r5, r1, #0x0
- bl FUN_02029FC8
- add r4, r0, #0x0
- add r0, r5, #0x0
- mov r1, #0x34
- bl FUN_020169D8
- str r0, [sp, #0x4]
- add r5, r0, #0x0
- ldr r0, _0202B9E8 ; =0x020EEAD0
- mov r6, #0x0
- str r0, [sp, #0x0]
-_0202B95A:
- cmp r6, #0x5
- beq _0202B968
- cmp r6, #0xa
- beq _0202B988
- cmp r6, #0xb
- beq _0202B9A0
- b _0202B9C8
-_0202B968:
- add r0, r4, #0x0
- mov r1, #0xf
- bl FUN_0202A150
- add r7, r0, #0x0
- beq _0202B984
- add r0, r4, #0x0
- mov r1, #0x1d
- bl FUN_0202A150
- add r1, r7, #0x0
- bl _u32_div_f
- add r7, r0, #0x0
-_0202B984:
- str r7, [r5, #0x0]
- b _0202B9D4
-_0202B988:
- add r0, r4, #0x0
- mov r1, #0x41
- bl FUN_0202A150
- add r7, r0, #0x0
- add r0, r4, #0x0
- mov r1, #0x42
- bl FUN_0202A150
- add r0, r7, r0
- str r0, [r5, #0x0]
- b _0202B9D4
-_0202B9A0:
- add r0, r4, #0x0
- mov r1, #0x3f
- bl FUN_0202A150
- add r7, r0, #0x0
- add r0, r4, #0x0
- mov r1, #0x40
- bl FUN_0202A150
- add r1, r7, r0
- beq _0202B9C4
- ldr r0, [sp, #0x4]
- ldr r2, [r0, #0x28]
- mov r0, #0x64
- mul r0, r2
- bl _u32_div_f
- add r1, r0, #0x0
-_0202B9C4:
- str r1, [r5, #0x0]
- b _0202B9D4
-_0202B9C8:
- ldr r1, [sp, #0x0]
- add r0, r4, #0x0
- ldr r1, [r1, #0x0]
- bl FUN_0202A150
- str r0, [r5, #0x0]
-_0202B9D4:
- ldr r0, [sp, #0x0]
- add r6, r6, #0x1
- add r0, r0, #0x4
- add r5, r5, #0x4
- str r0, [sp, #0x0]
- cmp r6, #0xd
- blt _0202B95A
- ldr r0, [sp, #0x4]
- add sp, #0x8
- pop {r3-r7, pc}
- .balign 4
-_0202B9E8: .word 0x020EEAD0
-
- thumb_func_start FUN_0202B9EC
-FUN_0202B9EC: ; 0x0202B9EC
- push {r4-r7, lr}
- sub sp, #0xc
- add r5, r0, #0x0
- add r4, r1, #0x0
- bl FUN_020238F4
- mov r1, #0x4e
- add r6, r0, #0x0
- add r0, r4, #0x0
- lsl r1, r1, #0x2
- bl FUN_020169D8
- mov r2, #0x4e
- mov r1, #0x0
- lsl r2, r2, #0x2
- str r0, [sp, #0x4]
- bl MI_CpuFill8
- add r0, r5, #0x0
- bl FUN_0202881C
- mov r1, #0x1
- bl FUN_0202877C
- str r0, [sp, #0x8]
- add r0, r6, #0x0
- add r1, r4, #0x0
- bl FUN_020239A0
- add r7, r0, #0x0
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_0202B93C
- ldr r4, [sp, #0x4]
- str r0, [sp, #0x0]
- mov r6, #0x0
- add r5, r0, #0x0
-_0202BA38:
- ldr r0, [sp, #0x8]
- add r1, r4, #0x0
- str r0, [r4, #0x0]
- add r0, r7, #0x0
- add r1, #0x8
- mov r2, #0x8
- bl FUN_02021EF0
- ldr r0, [r5, #0x0]
- add r6, r6, #0x1
- str r0, [r4, #0x4]
- add r4, #0x18
- add r5, r5, #0x4
- cmp r6, #0xd
- blt _0202BA38
- ldr r0, [sp, #0x0]
- bl FUN_02016A18
- add r0, r7, #0x0
- bl FUN_02021A20
- ldr r0, [sp, #0x4]
- add sp, #0xc
- pop {r4-r7, pc}
-
- thumb_func_start FUN_0202BA68
-FUN_0202BA68: ; 0x0202BA68
- push {r3-r5, lr}
- add r5, r0, #0x0
- mov r4, #0x0
-_0202BA6E:
- add r0, r5, #0x0
- bl FUN_0202B888
- add r4, r4, #0x1
- add r5, #0x18
- cmp r4, #0x6
- blt _0202BA6E
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0202BA80
-FUN_0202BA80: ; 0x0202BA80
- push {r3, lr}
- ldr r3, [r0, #0x0]
- ldr r2, [r1, #0x0]
- cmp r3, r2
- beq _0202BA8E
- mov r0, #0x0
- pop {r3, pc}
-_0202BA8E:
- add r0, #0x8
- add r1, #0x8
- bl StringNotEqual
- cmp r0, #0x0
- bne _0202BA9E
- mov r0, #0x1
- pop {r3, pc}
-_0202BA9E:
- mov r0, #0x0
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_0202BAA4
-FUN_0202BAA4: ; 0x0202BAA4
- push {r3-r7, lr}
- add r6, r0, #0x0
- ldr r0, [r6, #0x4]
- add r7, r1, #0x0
- mov r4, #0x0
- cmp r0, #0x0
- ble _0202BACE
- add r5, r6, #0x0
-_0202BAB4:
- ldr r0, [r5, #0xc]
- add r1, r7, #0x0
- bl FUN_0202BA80
- cmp r0, #0x0
- beq _0202BAC4
- mov r0, #0x1
- pop {r3-r7, pc}
-_0202BAC4:
- ldr r0, [r6, #0x4]
- add r4, r4, #0x1
- add r5, r5, #0x4
- cmp r4, r0
- blt _0202BAB4
-_0202BACE:
- mov r0, #0x0
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0202BAD4
-FUN_0202BAD4: ; 0x0202BAD4
- push {r4-r7, lr}
- sub sp, #0xc
- add r6, r1, #0x0
- add r5, r0, #0x0
- str r2, [sp, #0x0]
- add r0, r6, #0x0
- mov r1, #0x0
- mov r2, #0xe0
- add r4, r3, #0x0
- bl MI_CpuFill8
- add r0, sp, #0x10
- ldrb r0, [r0, #0x10]
- cmp r0, #0x0
- bne _0202BB64
- mov r2, #0x90
- add r0, r4, #0x0
- mul r0, r2
- add r1, r6, #0x0
- add r0, r5, r0
- add r1, #0x50
- str r0, [sp, #0x8]
- bl MI_CpuCopy8
- add r1, sp, #0x10
- ldrb r3, [r1, #0x18]
- mov r0, #0x0
- cmp r3, #0x0
- ble _0202BB2E
- mov r2, #0x18
- ldr r1, [sp, #0x24]
- mul r2, r4
-_0202BB14:
- ldr r5, [r6, #0x4]
- add r0, r0, #0x1
- add r4, r5, #0x0
- add r4, r4, #0x1
- str r4, [r6, #0x4]
- ldr r4, [r1, #0x0]
- lsl r5, r5, #0x2
- add r4, r4, r2
- add r5, r6, r5
- str r4, [r5, #0xc]
- add r1, r1, #0x4
- cmp r0, r3
- blt _0202BB14
-_0202BB2E:
- add r4, r6, #0x0
- add r4, #0x50
- mov r7, #0x0
- add r5, r4, #0x0
-_0202BB36:
- add r0, r4, #0x0
- bl FUN_0202B89C
- cmp r0, #0x0
- beq _0202BB58
- add r0, r6, #0x0
- add r1, r5, #0x0
- bl FUN_0202BAA4
- cmp r0, #0x0
- bne _0202BB58
- ldr r1, [r6, #0x0]
- add r0, r1, #0x1
- str r0, [r6, #0x0]
- lsl r0, r1, #0x2
- add r0, r6, r0
- str r4, [r0, #0x38]
-_0202BB58:
- add r7, r7, #0x1
- add r4, #0x18
- add r5, #0x18
- cmp r7, #0x6
- blt _0202BB36
- b _0202BBF8
-_0202BB64:
- add r0, r4, #0x0
- add r0, #0xd
- mov r2, #0x90
- add r1, r0, #0x0
- mul r1, r2
- add r0, r5, r1
- add r1, r6, #0x0
- add r1, #0x50
- str r0, [sp, #0x8]
- bl MI_CpuCopy8
- add r0, sp, #0x10
- ldrb r2, [r0, #0x18]
- mov r3, #0x0
- cmp r2, #0x0
- ble _0202BBB2
- mov r1, #0x18
- ldr r0, [sp, #0x24]
- mul r1, r4
-_0202BB8A:
- ldr r4, [r0, #0x0]
- ldr r5, [r1, r4]
- cmp r5, #0x0
- beq _0202BBAA
- ldr r4, [sp, #0x0]
- cmp r4, r5
- bne _0202BBAA
- ldr r5, [r6, #0x4]
- add r4, r5, #0x0
- add r4, r4, #0x1
- str r4, [r6, #0x4]
- ldr r4, [r0, #0x0]
- lsl r5, r5, #0x2
- add r4, r4, r1
- add r5, r6, r5
- str r4, [r5, #0xc]
-_0202BBAA:
- add r3, r3, #0x1
- add r0, r0, #0x4
- cmp r3, r2
- blt _0202BB8A
-_0202BBB2:
- add r4, r6, #0x0
- mov r0, #0x0
- add r4, #0x50
- str r0, [sp, #0x4]
- add r5, r6, #0x0
- add r7, r4, #0x0
-_0202BBBE:
- add r0, r4, #0x0
- bl FUN_0202B89C
- cmp r0, #0x0
- beq _0202BBE8
- ldr r1, [r5, #0x50]
- ldr r0, [sp, #0x0]
- cmp r0, r1
- bne _0202BBE8
- add r0, r6, #0x0
- add r1, r7, #0x0
- bl FUN_0202BAA4
- cmp r0, #0x0
- bne _0202BBE8
- ldr r1, [r6, #0x0]
- add r0, r1, #0x1
- str r0, [r6, #0x0]
- lsl r0, r1, #0x2
- add r0, r6, r0
- str r4, [r0, #0x38]
-_0202BBE8:
- ldr r0, [sp, #0x4]
- add r4, #0x18
- add r0, r0, #0x1
- add r5, #0x18
- add r7, #0x18
- str r0, [sp, #0x4]
- cmp r0, #0x6
- blt _0202BBBE
-_0202BBF8:
- ldr r1, [r6, #0x4]
- ldr r0, [r6, #0x0]
- mov r2, #0x0
- add r0, r1, r0
- str r0, [r6, #0x8]
- ldr r0, [r6, #0x0]
- cmp r0, #0x0
- ble _0202BC20
- add r1, r6, #0x0
-_0202BC0A:
- ldr r3, [r6, #0x4]
- ldr r0, [r1, #0x38]
- add r3, r2, r3
- lsl r3, r3, #0x2
- add r3, r6, r3
- str r0, [r3, #0xc]
- ldr r0, [r6, #0x0]
- add r2, r2, #0x1
- add r1, r1, #0x4
- cmp r2, r0
- blt _0202BC0A
-_0202BC20:
- mov r0, #0x0
- mov r12, r0
- ldr r0, [r6, #0x8]
- sub r5, r0, #0x1
- cmp r5, #0x0
- ble _0202BC64
- add r3, r6, #0x0
-_0202BC2E:
- mov r0, r12
- cmp r5, r0
- ble _0202BC52
- lsl r0, r5, #0x2
- add r4, r6, r0
-_0202BC38:
- ldr r2, [r4, #0xc]
- ldr r7, [r3, #0xc]
- ldr r0, [r2, #0x4]
- ldr r1, [r7, #0x4]
- cmp r1, r0
- bhs _0202BC48
- str r2, [r3, #0xc]
- str r7, [r4, #0xc]
-_0202BC48:
- sub r5, r5, #0x1
- mov r0, r12
- sub r4, r4, #0x4
- cmp r5, r0
- bgt _0202BC38
-_0202BC52:
- mov r0, r12
- add r0, r0, #0x1
- mov r12, r0
- ldr r0, [r6, #0x8]
- add r3, r3, #0x4
- sub r5, r0, #0x1
- mov r0, r12
- cmp r0, r5
- blt _0202BC2E
-_0202BC64:
- ldr r0, [sp, #0x8]
- bl FUN_0202BA68
- mov r3, #0x0
- add r2, r6, #0x0
- b _0202BC8A
-_0202BC70:
- ldr r5, [r2, #0xc]
- ldr r4, [sp, #0x8]
- ldmia r5!, {r0-r1}
- stmia r4!, {r0-r1}
- ldmia r5!, {r0-r1}
- stmia r4!, {r0-r1}
- ldmia r5!, {r0-r1}
- stmia r4!, {r0-r1}
- ldr r0, [sp, #0x8]
- add r2, r2, #0x4
- add r0, #0x18
- str r0, [sp, #0x8]
- add r3, r3, #0x1
-_0202BC8A:
- cmp r3, #0x6
- bge _0202BC94
- ldr r0, [r6, #0x8]
- cmp r3, r0
- blt _0202BC70
-_0202BC94:
- add sp, #0xc
- pop {r4-r7, pc}
-
- thumb_func_start FUN_0202BC98
-FUN_0202BC98: ; 0x0202BC98
- push {r4-r7, lr}
- sub sp, #0x14
- add r7, r0, #0x0
- add r5, r1, #0x0
- ldr r0, [sp, #0x2c]
- mov r1, #0xe0
- str r2, [sp, #0x10]
- add r4, r3, #0x0
- bl FUN_020169D8
- add r6, r0, #0x0
- mov r0, #0x0
- str r0, [sp, #0x0]
- str r4, [sp, #0x4]
- add r0, sp, #0x18
- ldrb r0, [r0, #0x10]
- add r1, r6, #0x0
- add r2, r5, #0x0
- str r0, [sp, #0x8]
- ldr r0, [sp, #0x2c]
- str r0, [sp, #0xc]
- ldr r3, [sp, #0x10]
- add r0, r7, #0x0
- bl FUN_0202BAD4
- cmp r5, #0x0
- beq _0202BCEA
- mov r0, #0x1
- str r0, [sp, #0x0]
- str r4, [sp, #0x4]
- add r0, sp, #0x18
- ldrb r0, [r0, #0x10]
- add r1, r6, #0x0
- add r2, r5, #0x0
- str r0, [sp, #0x8]
- ldr r0, [sp, #0x2c]
- str r0, [sp, #0xc]
- ldr r3, [sp, #0x10]
- add r0, r7, #0x0
- bl FUN_0202BAD4
-_0202BCEA:
- add r0, r6, #0x0
- bl FUN_02016A18
- add sp, #0x14
- pop {r4-r7, pc}
-
- thumb_func_start FUN_0202BCF4
-FUN_0202BCF4: ; 0x0202BCF4
- push {r4-r7, lr}
- sub sp, #0x24
- add r6, r1, #0x0
- ldr r1, [sp, #0x38]
- add r4, r0, #0x0
- add r5, r2, #0x0
- add r7, r3, #0x0
- str r1, [sp, #0x38]
- bl FUN_0202B8E4
- str r0, [sp, #0x8]
- add r0, r4, #0x0
- bl FUN_0202881C
- mov r1, #0x1
- bl FUN_0202877C
- mov r4, #0x0
- add r3, r4, #0x0
- str r0, [sp, #0xc]
- cmp r5, #0x0
- bls _0202BD44
-_0202BD20:
- cmp r3, r6
- beq _0202BD3A
- lsl r0, r3, #0x2
- ldr r2, [r7, r0]
- cmp r2, #0x0
- beq _0202BD3A
- add r1, r4, #0x1
- add r0, r4, #0x0
- lsl r1, r1, #0x18
- lsr r4, r1, #0x18
- lsl r1, r0, #0x2
- add r0, sp, #0x10
- str r2, [r0, r1]
-_0202BD3A:
- add r0, r3, #0x1
- lsl r0, r0, #0x18
- lsr r3, r0, #0x18
- cmp r3, r5
- blo _0202BD20
-_0202BD44:
- cmp r4, #0x0
- beq _0202BD68
- mov r5, #0x0
- add r6, sp, #0x10
-_0202BD4C:
- ldr r0, [sp, #0x38]
- str r4, [sp, #0x0]
- str r0, [sp, #0x4]
- ldr r0, [sp, #0x8]
- ldr r1, [sp, #0xc]
- add r2, r5, #0x0
- add r3, r6, #0x0
- bl FUN_0202BC98
- add r0, r5, #0x1
- lsl r0, r0, #0x18
- lsr r5, r0, #0x18
- cmp r5, #0xd
- blo _0202BD4C
-_0202BD68:
- add sp, #0x24
- pop {r4-r7, pc}
-
- thumb_func_start FUN_0202BD6C
-FUN_0202BD6C: ; 0x0202BD6C
- push {r3-r7, lr}
- sub sp, #0x10
- str r2, [sp, #0x0]
- add r4, r0, #0x0
- add r5, r1, #0x0
- bl FUN_020238F4
- str r0, [sp, #0x4]
- ldr r0, [sp, #0x0]
- mov r1, #0x4c
- bl FUN_02016998
- mov r1, #0x0
- mov r2, #0x4c
- add r7, r0, #0x0
- bl MI_CpuFill8
- add r0, r4, #0x0
- bl FUN_0202881C
- mov r1, #0x1
- bl FUN_0202877C
- str r0, [sp, #0xc]
- ldr r1, [sp, #0x0]
- add r0, r4, #0x0
- bl FUN_0202B93C
- str r0, [sp, #0x8]
- add r0, r5, #0x0
- bl FUN_0202B870
- str r0, [r7, #0x0]
- add r0, r5, #0x0
- bl FUN_0202B87C
- ldr r1, [r7, #0x0]
- mov r6, #0x0
- cmp r1, #0x0
- ble _0202BDE2
- lsl r1, r0, #0x2
- ldr r0, [sp, #0x8]
- add r4, r7, #0x0
- add r5, r0, r1
-_0202BDC4:
- ldr r0, [sp, #0xc]
- ldr r1, [sp, #0x0]
- str r0, [r4, #0x4]
- ldr r0, [r5, #0x0]
- str r0, [r4, #0x8]
- ldr r0, [sp, #0x4]
- bl FUN_020239A0
- str r0, [r4, #0xc]
- ldr r0, [r7, #0x0]
- add r6, r6, #0x1
- add r4, #0xc
- add r5, r5, #0x4
- cmp r6, r0
- blt _0202BDC4
-_0202BDE2:
- ldr r0, [sp, #0x8]
- bl FUN_02016A18
- add r0, r7, #0x0
- add sp, #0x10
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0202BDF0
-FUN_0202BDF0: ; 0x0202BDF0
- push {r3-r7, lr}
- add r7, r2, #0x0
- add r5, r0, #0x0
- str r1, [sp, #0x0]
- add r0, r7, #0x0
- mov r1, #0x4c
- bl FUN_02016998
- mov r1, #0x0
- mov r2, #0x4c
- add r4, r0, #0x0
- bl MI_CpuFill8
- ldr r0, [sp, #0x0]
- mov r1, #0x90
- mul r1, r0
- mov r6, #0x0
- add r5, r5, r1
-_0202BE14:
- add r0, r5, #0x0
- bl FUN_0202B89C
- cmp r0, #0x0
- beq _0202BE60
- ldr r2, [r4, #0x0]
- mov r1, #0xc
- mul r1, r2
- ldr r0, [r5, #0x0]
- add r1, r4, r1
- str r0, [r1, #0x4]
- ldr r2, [r4, #0x0]
- mov r1, #0xc
- mul r1, r2
- ldr r0, [r5, #0x4]
- add r1, r4, r1
- str r0, [r1, #0x8]
- mov r0, #0x8
- add r1, r7, #0x0
- bl FUN_020219F4
- ldr r2, [r4, #0x0]
- mov r1, #0xc
- mul r1, r2
- add r1, r4, r1
- str r0, [r1, #0xc]
- ldr r1, [r4, #0x0]
- mov r0, #0xc
- mul r0, r1
- add r0, r4, r0
- add r1, r5, #0x0
- ldr r0, [r0, #0xc]
- add r1, #0x8
- bl FUN_02021E28
- ldr r0, [r4, #0x0]
- add r0, r0, #0x1
- str r0, [r4, #0x0]
-_0202BE60:
- add r6, r6, #0x1
- add r5, #0x18
- cmp r6, #0x6
- blt _0202BE14
- add r0, r4, #0x0
- pop {r3-r7, pc}
-
- thumb_func_start FUN_0202BE6C
-FUN_0202BE6C: ; 0x0202BE6C
- push {r4-r6, lr}
- add r6, r0, #0x0
- mov r4, #0x0
- add r5, r6, #0x0
-_0202BE74:
- ldr r0, [r5, #0xc]
- cmp r0, #0x0
- beq _0202BE7E
- bl FUN_02021A20
-_0202BE7E:
- add r4, r4, #0x1
- add r5, #0xc
- cmp r4, #0x6
- blt _0202BE74
- add r0, r6, #0x0
- mov r1, #0x0
- mov r2, #0x4c
- bl MI_CpuFill8
- add r0, r6, #0x0
- bl FUN_02016A18
- pop {r4-r6, pc}
-
- thumb_func_start FUN_0202BE98
-FUN_0202BE98: ; 0x0202BE98
- ldr r0, _0202BE9C ; =0x00000688
- bx lr
- .balign 4
-_0202BE9C: .word 0x00000688
-
- thumb_func_start FUN_0202BEA0
-FUN_0202BEA0: ; 0x0202BEA0
- push {r3-r7, lr}
- add r5, r0, #0x0
- ldr r2, _0202BED8 ; =0x00000688
- mov r0, #0x0
- add r1, r5, #0x0
- bl MIi_CpuClearFast
- mov r4, #0x0
- mov r6, #0xab
- add r7, r4, #0x0
-_0202BEB4:
- add r0, r5, #0x0
- bl FUN_02066978
- add r0, r5, #0x0
- add r1, r6, #0x0
- add r2, r7, #0x0
- bl FUN_020671BC
- cmp r0, #0x0
- beq _0202BECC
- bl ErrorHandling
-_0202BECC:
- add r4, r4, #0x1
- add r5, #0xec
- cmp r4, #0x6
- blt _0202BEB4
- pop {r3-r7, pc}
- nop
-_0202BED8: .word 0x00000688
-
- thumb_func_start FUN_0202BEDC
-FUN_0202BEDC: ; 0x0202BEDC
- push {r3-r7, lr}
- add r5, r0, #0x0
- ldr r2, _0202BF14 ; =0x00000588
- mov r0, #0x0
- add r1, r5, #0x0
- bl MIi_CpuClearFast
- mov r4, #0x0
- mov r6, #0xab
- add r7, r4, #0x0
-_0202BEF0:
- add r0, r5, #0x0
- bl FUN_02066978
- add r0, r5, #0x0
- add r1, r6, #0x0
- add r2, r7, #0x0
- bl FUN_020671BC
- cmp r0, #0x0
- beq _0202BF08
- bl ErrorHandling
-_0202BF08:
- add r4, r4, #0x1
- add r5, #0xec
- cmp r4, #0x6
- blt _0202BEF0
- pop {r3-r7, pc}
- nop
-_0202BF14: .word 0x00000588
-
- thumb_func_start FUN_0202BF18
-FUN_0202BF18: ; 0x0202BF18
- push {r4-r7}
- add r2, r0, #0x0
- ldr r3, _0202BF70 ; =0x00000588
- mov r0, #0x0
- add r5, r2, #0x0
-_0202BF22:
- ldr r4, [r5, r3]
- cmp r1, r4
- beq _0202BF6C
- add r0, r0, #0x1
- add r5, r5, #0x4
- cmp r0, #0x14
- blt _0202BF22
- ldr r1, _0202BF70 ; =0x00000588
- mov r0, #0x0
- add r4, r2, #0x0
-_0202BF36:
- ldr r3, [r4, r1]
- cmp r3, #0x0
- beq _0202BF6C
- add r0, r0, #0x1
- add r4, r4, #0x4
- cmp r0, #0x14
- blt _0202BF36
- mov r3, #0x0
- ldr r4, _0202BF74 ; =0x7FFFFFFF
- add r5, r3, #0x0
-_0202BF4A:
- ldr r0, _0202BF78 ; =0x000005D8
- ldr r1, [r2, r0]
- add r0, r0, #0x4
- ldr r0, [r2, r0]
- sub r6, r1, r4
- mov r12, r0
- mov r6, r12
- sbc r6, r3
- bge _0202BF62
- add r4, r1, #0x0
- add r3, r0, #0x0
- add r7, r5, #0x0
-_0202BF62:
- add r5, r5, #0x1
- add r2, #0x8
- cmp r5, #0x14
- blt _0202BF4A
- add r0, r7, #0x0
-_0202BF6C:
- pop {r4-r7}
- bx lr
- .balign 4
-_0202BF70: .word 0x00000588
-_0202BF74: .word 0x7FFFFFFF
-_0202BF78: .word 0x000005D8
-
- thumb_func_start FUN_0202BF7C
-FUN_0202BF7C: ; 0x0202BF7C
- add r3, r0, #0x0
- add r0, r1, #0x0
- mov r1, #0xec
- mul r1, r2
- add r1, r3, r1
- ldr r3, _0202BF8C ; =FUN_02069A64
- bx r3
- nop
-_0202BF8C: .word FUN_02069A64
-
- thumb_func_start FUN_0202BF90
-FUN_0202BF90: ; 0x0202BF90
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- bl FUN_0202BF18
- add r6, r0, #0x0
- lsl r0, r6, #0x2
- add r1, r5, r0
- ldr r0, _0202BFCC ; =0x00000588
- str r4, [r1, r0]
- bl FUN_020126FC
- lsl r2, r6, #0x3
- add r3, r5, r2
- ldr r2, _0202BFD0 ; =0x000005D8
- str r0, [r3, r2]
- add r0, r2, #0x4
- str r1, [r3, r0]
- bl OS_GetOwnerRtcOffset
- ldr r2, _0202BFD4 ; =0x00000678
- str r0, [r5, r2]
- add r0, r2, #0x4
- add r2, #0x8
- str r1, [r5, r0]
- add r0, r5, r2
- bl OS_GetMacAddress
- pop {r4-r6, pc}
- nop
-_0202BFCC: .word 0x00000588
-_0202BFD0: .word 0x000005D8
-_0202BFD4: .word 0x00000678
-
- thumb_func_start FUN_0202BFD8
-FUN_0202BFD8: ; 0x0202BFD8
- push {r4-r6, lr}
- add r5, r1, #0x0
- add r6, r0, #0x0
- add r4, r2, #0x0
- cmp r5, #0x6
- blt _0202BFE8
- bl ErrorHandling
-_0202BFE8:
- mov r0, #0xec
- mul r0, r5
- add r3, r6, r0
- mov r2, #0x1d
-_0202BFF0:
- ldmia r3!, {r0-r1}
- stmia r4!, {r0-r1}
- sub r2, r2, #0x1
- bne _0202BFF0
- ldr r0, [r3, #0x0]
- str r0, [r4, #0x0]
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_0202C000
-FUN_0202C000: ; 0x0202C000
- push {r3-r7, lr}
- mov r4, #0x0
- add r5, r0, #0x0
- add r6, r4, #0x0
- mov r7, #0xab
-_0202C00A:
- add r0, r5, #0x0
- add r1, r7, #0x0
- mov r2, #0x0
- bl FUN_020671BC
- cmp r0, #0x0
- beq _0202C01A
- add r4, r4, #0x1
-_0202C01A:
- add r6, r6, #0x1
- add r5, #0xec
- cmp r6, #0x6
- blt _0202C00A
- add r0, r4, #0x0
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0202C028
-FUN_0202C028: ; 0x0202C028
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- bl FUN_020126FC
- ldr r1, _0202C058 ; =0x00000588
- mov r3, #0x0
- add r6, r5, #0x0
-_0202C038:
- ldr r2, [r6, r1]
- cmp r4, r2
- bne _0202C04A
- lsl r1, r3, #0x3
- add r2, r5, r1
- ldr r1, _0202C05C ; =0x000005D8
- ldr r1, [r2, r1]
- sub r0, r0, r1
- pop {r4-r6, pc}
-_0202C04A:
- add r3, r3, #0x1
- add r6, r6, #0x4
- cmp r3, #0x14
- blt _0202C038
- mov r0, #0x0
- pop {r4-r6, pc}
- nop
-_0202C058: .word 0x00000588
-_0202C05C: .word 0x000005D8
-
- thumb_func_start FUN_0202C060
-FUN_0202C060: ; 0x0202C060
- push {r3-r5, lr}
- sub sp, #0x8
- add r4, r0, #0x0
- add r0, sp, #0x0
- bl OS_GetMacAddress
- mov r0, #0x1a
- mov r3, #0x0
- add r5, sp, #0x0
- lsl r0, r0, #0x6
-_0202C074:
- add r1, r4, r3
- ldrb r2, [r5, #0x0]
- ldrb r1, [r1, r0]
- cmp r2, r1
- beq _0202C084
- add sp, #0x8
- mov r0, #0x0
- pop {r3-r5, pc}
-_0202C084:
- add r3, r3, #0x1
- add r5, r5, #0x1
- cmp r3, #0x6
- blt _0202C074
- mov r0, #0x1
- add sp, #0x8
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0202C094
-FUN_0202C094: ; 0x0202C094
- push {r4, lr}
- add r4, r0, #0x0
- bl OS_GetOwnerRtcOffset
- ldr r2, _0202C0B4 ; =0x00000678
- ldr r3, [r4, r2]
- add r2, r2, #0x4
- ldr r2, [r4, r2]
- eor r0, r3
- eor r1, r2
- orr r0, r1
- bne _0202C0B0
- mov r0, #0x1
- pop {r4, pc}
-_0202C0B0:
- mov r0, #0x0
- pop {r4, pc}
- .balign 4
-_0202C0B4: .word 0x00000678
-
- thumb_func_start FUN_0202C0B8
-FUN_0202C0B8: ; 0x0202C0B8
- push {r3-r4}
- mov r4, #0x0
- mov r1, #0x1a
- add r3, r4, #0x0
- lsl r1, r1, #0x6
-_0202C0C2:
- add r2, r0, r3
- ldrb r2, [r2, r1]
- add r3, r3, #0x1
- orr r4, r2
- cmp r3, #0x6
- blt _0202C0C2
- cmp r4, #0x0
- bne _0202C0D8
- mov r0, #0x1
- pop {r3-r4}
- bx lr
-_0202C0D8:
- mov r0, #0x0
- pop {r3-r4}
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202C0E0
-FUN_0202C0E0: ; 0x0202C0E0
- mov r0, #0x28
- bx lr
-
- thumb_func_start FUN_0202C0E4
-FUN_0202C0E4: ; 0x0202C0E4
- push {r4-r5}
- mov r4, #0x0
- add r1, r4, #0x0
- add r2, r4, #0x0
-_0202C0EC:
- add r3, r2, #0x0
- add r5, r0, #0x0
-_0202C0F0:
- add r3, r3, #0x1
- strh r1, [r5, #0x0]
- add r5, r5, #0x2
- cmp r3, #0x4
- blt _0202C0F0
- add r4, r4, #0x1
- add r0, #0x8
- cmp r4, #0x5
- blt _0202C0EC
- pop {r4-r5}
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202C108
-FUN_0202C108: ; 0x0202C108
- push {r3-r5, lr}
- add r5, r1, #0x0
- mov r1, #0x21
- add r4, r2, #0x0
- bl FUN_02022610
- lsl r1, r5, #0x3
- add r3, r0, r1
- lsl r2, r4, #0x1
- ldrh r1, [r3, r2]
- ldr r0, _0202C128 ; =0x0000270F
- cmp r1, r0
- bhs _0202C126
- add r0, r1, #0x1
- strh r0, [r3, r2]
-_0202C126:
- pop {r3-r5, pc}
- .balign 4
-_0202C128: .word 0x0000270F
-
- thumb_func_start FUN_0202C12C
-FUN_0202C12C: ; 0x0202C12C
- push {r3-r5, lr}
- add r5, r1, #0x0
- mov r1, #0x21
- add r4, r2, #0x0
- bl FUN_02022610
- lsl r2, r5, #0x3
- lsl r1, r4, #0x1
- add r0, r0, r2
- ldrh r0, [r1, r0]
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0202C144
-FUN_0202C144: ; 0x0202C144
- push {r3-r7, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- add r0, r4, #0x0
- mov r1, #0x4c
- mov r2, #0x0
- bl FUN_020671BC
- cmp r0, #0x0
- bne _0202C194
- add r0, r5, #0x0
- bl FUN_02024DA0
- add r6, r0, #0x0
- add r0, r5, #0x0
- bl FUN_02029FC8
- add r7, r0, #0x0
- add r0, r4, #0x0
- mov r1, #0x5
- mov r2, #0x0
- bl FUN_020671BC
- add r2, r0, #0x0
- lsl r2, r2, #0x10
- add r0, r7, #0x0
- add r1, r6, #0x0
- lsr r2, r2, #0x10
- bl FUN_0202A1C4
- add r0, r6, #0x0
- add r1, r4, #0x0
- bl FUN_02024AF0
- add r0, r5, #0x0
- bl FUN_0204C1A8
- add r1, r4, #0x0
- bl FUN_0204C104
-_0202C194:
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0202C198
-FUN_0202C198: ; 0x0202C198
- ldr r1, _0202C1A4 ; =0x021C59D8
- ldr r2, [r1, #0x4]
- ldr r1, _0202C1A8 ; =0x00001310
- str r0, [r2, r1]
- bx lr
- nop
-_0202C1A4: .word 0x021C59D8
-_0202C1A8: .word 0x00001310
-
- thumb_func_start FUN_0202C1AC
-FUN_0202C1AC: ; 0x0202C1AC
- ldr r1, _0202C1C0 ; =0x021C59D8
- ldr r3, [r1, #0x4]
- ldr r1, _0202C1C4 ; =0x00001310
- ldr r2, [r3, r1]
- sub r2, #0x9
- cmp r2, #0x1
- bls _0202C1BE
- add r1, #0x20
- str r0, [r3, r1]
-_0202C1BE:
- bx lr
- .balign 4
-_0202C1C0: .word 0x021C59D8
-_0202C1C4: .word 0x00001310
-
- thumb_func_start FUN_0202C1C8
-FUN_0202C1C8: ; 0x0202C1C8
- push {r3, lr}
- mov r0, #0x3
- bl FUN_0202C198
- ldr r1, _0202C1F0 ; =0x021C59D8
- ldr r0, _0202C1F4 ; =FUN_0202C1F8
- ldr r1, [r1, #0x4]
- bl WM_SetParentParameter
- cmp r0, #0x2
- beq _0202C1EC
- bl FUN_0202C1AC
- mov r0, #0x9
- bl FUN_0202C198
- mov r0, #0x0
- pop {r3, pc}
-_0202C1EC:
- mov r0, #0x1
- pop {r3, pc}
- .balign 4
-_0202C1F0: .word 0x021C59D8
-_0202C1F4: .word FUN_0202C1F8
-
- thumb_func_start FUN_0202C1F8
-FUN_0202C1F8: ; 0x0202C1F8
- push {r3, lr}
- ldrh r0, [r0, #0x2]
- cmp r0, #0x0
- beq _0202C20C
- bl FUN_0202C1AC
- mov r0, #0x9
- bl FUN_0202C198
- pop {r3, pc}
-_0202C20C:
- bl FUN_0202C21C
- cmp r0, #0x0
- bne _0202C21A
- mov r0, #0x9
- bl FUN_0202C198
-_0202C21A:
- pop {r3, pc}
-
- thumb_func_start FUN_0202C21C
-FUN_0202C21C: ; 0x0202C21C
- push {r4, lr}
- ldr r0, _0202C278 ; =0x021C59D8
- ldr r1, [r0, #0x4]
- ldr r0, _0202C27C ; =0x00001310
- ldr r0, [r1, r0]
- sub r0, r0, #0x4
- cmp r0, #0x2
- bhi _0202C230
- mov r0, #0x1
- pop {r4, pc}
-_0202C230:
- bl WMi_GetStatusAddress
- add r4, r0, #0x0
- mov r0, #0x66
- lsl r0, r0, #0x2
- add r0, r4, r0
- mov r1, #0x4
- bl DC_InvalidateRange
- mov r0, #0x66
- mov r1, #0x0
- lsl r0, r0, #0x2
- str r1, [r4, r0]
- add r0, r4, r0
- mov r1, #0x4
- bl DC_FlushRange
- ldr r0, _0202C280 ; =FUN_0202C288
- bl WM_StartParent
- cmp r0, #0x2
- beq _0202C264
- bl FUN_0202C1AC
- mov r0, #0x0
- pop {r4, pc}
-_0202C264:
- ldr r2, _0202C278 ; =0x021C59D8
- ldr r1, _0202C284 ; =0x0000132C
- ldr r0, [r2, #0x4]
- mov r3, #0x0
- strh r3, [r0, r1]
- ldr r2, [r2, #0x4]
- mov r0, #0x1
- add r1, r1, #0x2
- strh r0, [r2, r1]
- pop {r4, pc}
- .balign 4
-_0202C278: .word 0x021C59D8
-_0202C27C: .word 0x00001310
-_0202C280: .word FUN_0202C288
-_0202C284: .word 0x0000132C
-
- thumb_func_start FUN_0202C288
-FUN_0202C288: ; 0x0202C288
- push {r4-r6, lr}
- add r5, r0, #0x0
- ldrh r0, [r5, #0x10]
- mov r1, #0x1
- lsl r1, r0
- lsl r0, r1, #0x10
- lsr r4, r0, #0x10
- ldrh r0, [r5, #0x2]
- cmp r0, #0x0
- beq _0202C2A8
- bl FUN_0202C1AC
- mov r0, #0x9
- bl FUN_0202C198
- pop {r4-r6, pc}
-_0202C2A8:
- ldrh r0, [r5, #0x8]
- cmp r0, #0x7
- bgt _0202C2C0
- bge _0202C2DA
- cmp r0, #0x2
- bgt _0202C378
- cmp r0, #0x0
- blt _0202C378
- beq _0202C36A
- cmp r0, #0x2
- beq _0202C2CC
- pop {r4-r6, pc}
-_0202C2C0:
- cmp r0, #0x9
- bgt _0202C2C8
- beq _0202C34C
- pop {r4-r6, pc}
-_0202C2C8:
- cmp r0, #0x1a
- pop {r4-r6, pc}
-_0202C2CC:
- ldr r0, _0202C37C ; =0x021C59D8
- ldr r2, [r0, #0x4]
- ldr r0, _0202C380 ; =0x00001345
- ldrb r1, [r2, r0]
- add r1, r1, #0x1
- strb r1, [r2, r0]
- pop {r4-r6, pc}
-_0202C2DA:
- ldr r0, _0202C37C ; =0x021C59D8
- ldr r2, [r0, #0x4]
- ldr r0, _0202C384 ; =0x00001343
- ldrb r1, [r2, r0]
- cmp r1, #0x1
- beq _0202C318
- sub r0, r0, #0x1
- ldrb r0, [r2, r0]
- cmp r0, #0x1
- beq _0202C318
- bl FUN_0202CBA0
- ldr r1, _0202C37C ; =0x021C59D8
- ldr r2, [r1, #0x4]
- ldr r1, _0202C388 ; =0x00001334
- ldrb r1, [r2, r1]
- cmp r0, r1
- bge _0202C318
- bl FUN_02033534
- ldrb r1, [r5, #0x14]
- cmp r1, r0
- bne _0202C318
- add r1, r5, #0x0
- ldr r0, _0202C38C ; =0x02105D54
- add r1, #0x15
- mov r2, #0x3
- bl memcmp
- cmp r0, #0x0
- beq _0202C330
-_0202C318:
- ldrh r1, [r5, #0x10]
- mov r0, #0x0
- bl WM_Disconnect
- cmp r0, #0x2
- beq _0202C378
- bl FUN_0202C1AC
- mov r0, #0x9
- bl FUN_0202C198
- pop {r4-r6, pc}
-_0202C330:
- ldr r1, _0202C37C ; =0x021C59D8
- ldr r0, _0202C390 ; =0x0000132E
- ldr r3, [r1, #0x4]
- ldrh r2, [r3, r0]
- orr r2, r4
- strh r2, [r3, r0]
- ldr r1, [r1, #0x4]
- sub r0, r0, #0x6
- ldr r1, [r1, r0]
- cmp r1, #0x0
- beq _0202C378
- ldrh r0, [r5, #0x10]
- blx r1
- pop {r4-r6, pc}
-_0202C34C:
- ldr r2, _0202C37C ; =0x021C59D8
- ldr r1, _0202C390 ; =0x0000132E
- ldr r0, [r2, #0x4]
- mvn r3, r4
- ldrh r6, [r0, r1]
- and r3, r6
- strh r3, [r0, r1]
- ldr r0, [r2, #0x4]
- sub r1, #0xa
- ldr r1, [r0, r1]
- cmp r1, #0x0
- beq _0202C378
- ldrh r0, [r5, #0x10]
- blx r1
- pop {r4-r6, pc}
-_0202C36A:
- bl FUN_0202C394
- cmp r0, #0x0
- bne _0202C378
- mov r0, #0x9
- bl FUN_0202C198
-_0202C378:
- pop {r4-r6, pc}
- nop
-_0202C37C: .word 0x021C59D8
-_0202C380: .word 0x00001345
-_0202C384: .word 0x00001343
-_0202C388: .word 0x00001334
-_0202C38C: .word 0x02105D54
-_0202C390: .word 0x0000132E
-
- thumb_func_start FUN_0202C394
-FUN_0202C394: ; 0x0202C394
- push {r4, lr}
- sub sp, #0x8
- ldr r0, _0202C3F0 ; =0x021C59D8
- ldr r1, [r0, #0x4]
- ldr r0, _0202C3F4 ; =0x00001310
- ldr r0, [r1, r0]
- sub r0, r0, #0x4
- cmp r0, #0x2
- bhi _0202C3AC
- add sp, #0x8
- mov r0, #0x1
- pop {r4, pc}
-_0202C3AC:
- mov r0, #0x4
- bl FUN_0202C198
- ldr r0, _0202C3F0 ; =0x021C59D8
- ldr r2, _0202C3F8 ; =0x00001304
- ldr r4, [r0, #0x4]
- ldr r3, _0202C3FC ; =0x00001020
- ldr r0, [r4, r2]
- add r2, r2, #0x4
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x0]
- mov r0, #0x1
- str r0, [sp, #0x4]
- ldr r2, [r4, r2]
- add r1, r4, r3
- lsl r2, r2, #0x10
- sub r3, #0xe0
- ldr r0, _0202C400 ; =FUN_0202C404
- lsr r2, r2, #0x10
- add r3, r4, r3
- bl WM_StartMP
- cmp r0, #0x2
- beq _0202C3E8
- bl FUN_0202C1AC
- add sp, #0x8
- mov r0, #0x0
- pop {r4, pc}
-_0202C3E8:
- mov r0, #0x1
- add sp, #0x8
- pop {r4, pc}
- nop
-_0202C3F0: .word 0x021C59D8
-_0202C3F4: .word 0x00001310
-_0202C3F8: .word 0x00001304
-_0202C3FC: .word 0x00001020
-_0202C400: .word FUN_0202C404
-
- thumb_func_start FUN_0202C404
-FUN_0202C404: ; 0x0202C404
- push {r3, lr}
- ldrh r1, [r0, #0x2]
- cmp r1, #0x0
- beq _0202C41A
- add r0, r1, #0x0
- bl FUN_0202C1AC
- mov r0, #0x9
- bl FUN_0202C198
- pop {r3, pc}
-_0202C41A:
- ldrh r0, [r0, #0x4]
- sub r0, #0xa
- cmp r0, #0x3
- bhi _0202C454
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0202C42E: ; jump table (using 16-bit offset)
- .short _0202C436 - _0202C42E - 2; case 0
- .short _0202C454 - _0202C42E - 2; case 1
- .short _0202C454 - _0202C42E - 2; case 2
- .short _0202C454 - _0202C42E - 2; case 3
-_0202C436:
- ldr r0, _0202C458 ; =0x021C59D8
- ldr r2, [r0, #0x4]
- ldr r0, _0202C45C ; =0x00001314
- ldr r1, [r2, r0]
- cmp r1, #0x2
- bne _0202C44E
- sub r0, r0, #0x4
- ldr r0, [r2, r0]
- cmp r0, #0x4
- beq _0202C44E
- cmp r0, #0x6
- beq _0202C454
-_0202C44E:
- mov r0, #0x4
- bl FUN_0202C198
-_0202C454:
- pop {r3, pc}
- nop
-_0202C458: .word 0x021C59D8
-_0202C45C: .word 0x00001314
-
- thumb_func_start FUN_0202C460
-FUN_0202C460: ; 0x0202C460
- push {r3, lr}
- mov r0, #0x3
- bl FUN_0202C198
- ldr r0, _0202C480 ; =FUN_0202C484
- bl WM_EndMP
- cmp r0, #0x2
- beq _0202C47A
- bl FUN_0202C1AC
- mov r0, #0x0
- pop {r3, pc}
-_0202C47A:
- mov r0, #0x1
- pop {r3, pc}
- nop
-_0202C480: .word FUN_0202C484
-
- thumb_func_start FUN_0202C484
-FUN_0202C484: ; 0x0202C484
- push {r3, lr}
- ldrh r0, [r0, #0x2]
- cmp r0, #0x0
- beq _0202C496
- bl FUN_0202C1AC
- bl FUN_0202D0D8
- pop {r3, pc}
-_0202C496:
- bl FUN_0202C4A4
- cmp r0, #0x0
- bne _0202C4A2
- bl FUN_0202D0D8
-_0202C4A2:
- pop {r3, pc}
-
- thumb_func_start FUN_0202C4A4
-FUN_0202C4A4: ; 0x0202C4A4
- push {r3, lr}
- ldr r0, _0202C4BC ; =FUN_0202C4C0
- bl WM_EndParent
- cmp r0, #0x2
- beq _0202C4B8
- bl FUN_0202C1AC
- mov r0, #0x0
- pop {r3, pc}
-_0202C4B8:
- mov r0, #0x1
- pop {r3, pc}
- .balign 4
-_0202C4BC: .word FUN_0202C4C0
-
- thumb_func_start FUN_0202C4C0
-FUN_0202C4C0: ; 0x0202C4C0
- push {r3, lr}
- ldrh r0, [r0, #0x2]
- cmp r0, #0x0
- beq _0202C4CE
- bl FUN_0202C1AC
- pop {r3, pc}
-_0202C4CE:
- mov r0, #0x1
- bl FUN_0202C198
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_0202C4D8
-FUN_0202C4D8: ; 0x0202C4D8
- push {r3-r7, lr}
- add r6, r2, #0x0
- ldr r2, _0202C564 ; =0x021C59D8
- add r5, r0, #0x0
- add r4, r1, #0x0
- mov r3, #0x2
- ldr r0, [r2, #0x4]
- ldr r1, _0202C568 ; =0x00001308
- lsl r3, r3, #0x8
- str r3, [r0, r1]
- ldr r2, [r2, #0x4]
- mov r0, #0x40
- sub r1, r1, #0x4
- str r0, [r2, r1]
- mov r0, #0x2
- bl FUN_0202C198
- ldr r1, _0202C564 ; =0x021C59D8
- ldr r0, _0202C56C ; =0x00001256
- ldr r3, [r1, #0x4]
- mov r2, #0x1
- strh r2, [r3, r0]
- add r7, r0, #0x0
- ldrh r3, [r4, #0x4]
- ldr r2, [r1, #0x4]
- add r7, #0x96
- strh r3, [r2, r7]
- add r7, r0, #0x0
- ldrh r3, [r4, #0x2]
- ldr r2, [r1, #0x4]
- add r7, #0x94
- strh r3, [r2, r7]
- add r2, r0, #0x0
- ldrh r4, [r4, #0x0]
- ldr r3, [r1, #0x4]
- add r2, #0x92
- strh r4, [r3, r2]
- add r2, r0, #0x0
- ldr r3, [r1, #0x4]
- add r2, #0xbe
- str r5, [r3, r2]
- add r3, r0, #0x0
- ldr r4, [r1, #0x4]
- mov r2, #0x0
- add r3, #0xaa
- str r2, [r4, r3]
- add r3, r0, #0x0
- ldr r4, [r1, #0x4]
- add r3, #0xb6
- strh r6, [r4, r3]
- add r3, r0, #0x0
- ldr r4, [r1, #0x4]
- add r3, #0x8e
- strh r2, [r4, r3]
- ldr r2, [r1, #0x4]
- add r0, #0xb8
- mov r1, #0x1
- strh r1, [r2, r0]
- bl FUN_0202C5D8
- cmp r0, #0x0
- bne _0202C55E
- mov r0, #0x9
- bl FUN_0202C198
- mov r0, #0x0
- pop {r3-r7, pc}
-_0202C55E:
- mov r0, #0x1
- pop {r3-r7, pc}
- nop
-_0202C564: .word 0x021C59D8
-_0202C568: .word 0x00001308
-_0202C56C: .word 0x00001256
-
- thumb_func_start FUN_0202C570
-FUN_0202C570: ; 0x0202C570
- push {r4-r6, lr}
- add r5, r0, #0x0
- mov r0, #0x2
- add r4, r1, #0x0
- add r6, r2, #0x0
- bl FUN_0202C198
- ldr r1, _0202C5D4 ; =0x021C59D8
- mov r0, #0x13
- ldr r2, [r1, #0x4]
- lsl r0, r0, #0x8
- str r5, [r2, r0]
- add r2, r0, #0x0
- ldr r3, [r1, #0x4]
- add r2, #0xc
- strh r6, [r3, r2]
- add r3, r0, #0x0
- ldr r5, [r1, #0x4]
- mov r2, #0x0
- sub r3, #0x1c
- strh r2, [r5, r3]
- add r3, r0, #0x0
- ldr r5, [r1, #0x4]
- add r3, #0xe
- strh r2, [r5, r3]
- add r2, r0, #0x0
- ldrh r5, [r4, #0x4]
- ldr r3, [r1, #0x4]
- sub r2, #0x14
- strh r5, [r3, r2]
- add r2, r0, #0x0
- ldrh r5, [r4, #0x2]
- ldr r3, [r1, #0x4]
- sub r2, #0x16
- strh r5, [r3, r2]
- ldrh r2, [r4, #0x0]
- ldr r1, [r1, #0x4]
- sub r0, #0x18
- strh r2, [r1, r0]
- bl FUN_0202C5D8
- cmp r0, #0x0
- bne _0202C5D0
- mov r0, #0x9
- bl FUN_0202C198
- mov r0, #0x0
- pop {r4-r6, pc}
-_0202C5D0:
- mov r0, #0x1
- pop {r4-r6, pc}
- .balign 4
-_0202C5D4: .word 0x021C59D8
-
- thumb_func_start FUN_0202C5D8
-FUN_0202C5D8: ; 0x0202C5D8
- push {r3-r7, lr}
- bl WM_GetAllowedChannel
- add r5, r0, #0x0
- mov r0, #0x2
- lsl r0, r0, #0xe
- cmp r5, r0
- bne _0202C5F8
- mov r0, #0x3
- bl FUN_0202C1AC
- mov r0, #0x1
- bl FUN_020336A0
- mov r0, #0x0
- pop {r3-r7, pc}
-_0202C5F8:
- cmp r5, #0x0
- bne _0202C60C
- mov r0, #0x16
- bl FUN_0202C1AC
- mov r0, #0x1
- bl FUN_020336A0
- mov r0, #0x0
- pop {r3-r7, pc}
-_0202C60C:
- ldr r1, _0202C684 ; =0x021C59D8
- ldr r0, _0202C688 ; =0x0000130C
- ldr r3, [r1, #0x4]
- ldrh r2, [r3, r0]
- cmp r2, #0x0
- bne _0202C64C
- add r7, r0, #0x0
- mov r3, #0x1
- add r2, r3, #0x0
- sub r7, #0x28
- sub r0, #0x28
-_0202C622:
- ldr r4, [r1, #0x4]
- ldr r6, _0202C68C ; =0x000012E4
- ldrh r6, [r4, r6]
- add r6, r6, #0x1
- strh r6, [r4, r7]
- ldr r4, [r1, #0x4]
- ldrh r6, [r4, r0]
- cmp r6, #0x10
- bls _0202C638
- ldr r6, _0202C68C ; =0x000012E4
- strh r3, [r4, r6]
-_0202C638:
- ldr r6, [r1, #0x4]
- ldr r4, _0202C68C ; =0x000012E4
- ldrh r4, [r6, r4]
- add r6, r2, #0x0
- sub r4, r4, #0x1
- lsl r6, r4
- add r4, r5, #0x0
- tst r4, r6
- bne _0202C650
- b _0202C622
-_0202C64C:
- sub r0, #0x28
- strh r2, [r3, r0]
-_0202C650:
- bl WM_GetDispersionScanPeriod
- ldr r2, _0202C684 ; =0x021C59D8
- ldr r1, _0202C690 ; =0x000012E6
- ldr r3, [r2, #0x4]
- strh r0, [r3, r1]
- add r0, r1, #0x0
- ldr r3, [r2, #0x4]
- sub r0, #0xc6
- add r4, r3, r0
- sub r0, r1, #0x6
- str r4, [r3, r0]
- ldr r2, [r2, #0x4]
- sub r1, r1, #0x6
- ldr r0, _0202C694 ; =FUN_0202C698
- add r1, r2, r1
- bl WM_StartScan
- cmp r0, #0x2
- beq _0202C680
- bl FUN_0202C1AC
- mov r0, #0x0
- pop {r3-r7, pc}
-_0202C680:
- mov r0, #0x1
- pop {r3-r7, pc}
- .balign 4
-_0202C684: .word 0x021C59D8
-_0202C688: .word 0x0000130C
-_0202C68C: .word 0x000012E4
-_0202C690: .word 0x000012E6
-_0202C694: .word FUN_0202C698
-
- thumb_func_start FUN_0202C698
-FUN_0202C698: ; 0x0202C698
- push {r4, lr}
- add r4, r0, #0x0
- ldrh r0, [r4, #0x2]
- cmp r0, #0x0
- beq _0202C6AE
- bl FUN_0202C1AC
- mov r0, #0x9
- bl FUN_0202C198
- pop {r4, pc}
-_0202C6AE:
- ldr r0, _0202C760 ; =0x021C59D8
- ldr r2, [r0, #0x4]
- ldr r0, _0202C764 ; =0x00001310
- ldr r1, [r2, r0]
- cmp r1, #0x2
- beq _0202C6D0
- mov r1, #0x0
- sub r0, r0, #0x2
- strh r1, [r2, r0]
- bl FUN_0202C794
- cmp r0, #0x0
- bne _0202C75C
- mov r0, #0x9
- bl FUN_0202C198
- pop {r4, pc}
-_0202C6D0:
- ldrh r1, [r4, #0x8]
- cmp r1, #0x3
- beq _0202C75C
- cmp r1, #0x4
- beq _0202C74E
- cmp r1, #0x5
- bne _0202C74E
- sub r0, #0xf0
- add r0, r2, r0
- mov r1, #0xc0
- bl DC_InvalidateRange
- ldr r0, _0202C760 ; =0x021C59D8
- ldr r1, [r0, #0x4]
- ldr r0, _0202C768 ; =0x00001320
- ldr r2, [r1, r0]
- cmp r2, #0x0
- beq _0202C704
- ldrh r0, [r4, #0x36]
- cmp r0, #0x8
- blo _0202C704
- add r1, r4, #0x0
- add r1, #0x48
- ldrb r1, [r1, #0x4]
- ldr r0, [r4, #0x3c]
- blx r2
-_0202C704:
- ldrh r0, [r4, #0x36]
- cmp r0, #0x8
- blo _0202C74E
- ldr r0, _0202C760 ; =0x021C59D8
- ldr r2, [r4, #0x3c]
- ldr r0, [r0, #0x4]
- ldr r1, [r0, #0x8]
- cmp r2, r1
- bne _0202C74E
- add r4, #0x43
- ldrb r2, [r4, #0x0]
- mov r1, #0x3
- and r1, r2
- cmp r1, #0x1
- bne _0202C74E
- mov r1, #0x13
- lsl r1, r1, #0x8
- ldr r2, [r0, r1]
- cmp r2, #0x0
- beq _0202C732
- sub r1, #0xe0
- add r0, r0, r1
- blx r2
-_0202C732:
- ldr r0, _0202C760 ; =0x021C59D8
- ldr r1, [r0, #0x4]
- ldr r0, _0202C76C ; =0x0000130E
- ldrh r0, [r1, r0]
- cmp r0, #0x0
- beq _0202C74E
- bl FUN_0202C794
- cmp r0, #0x0
- bne _0202C75C
- mov r0, #0x9
- bl FUN_0202C198
- pop {r4, pc}
-_0202C74E:
- bl FUN_0202C5D8
- cmp r0, #0x0
- bne _0202C75C
- mov r0, #0x9
- bl FUN_0202C198
-_0202C75C:
- pop {r4, pc}
- nop
-_0202C760: .word 0x021C59D8
-_0202C764: .word 0x00001310
-_0202C768: .word 0x00001320
-_0202C76C: .word 0x0000130E
-
- thumb_func_start FUN_0202C770
-FUN_0202C770: ; 0x0202C770
- push {r3, lr}
- ldr r0, _0202C78C ; =0x021C59D8
- ldr r1, [r0, #0x4]
- ldr r0, _0202C790 ; =0x00001310
- ldr r0, [r1, r0]
- cmp r0, #0x2
- beq _0202C782
- mov r0, #0x0
- pop {r3, pc}
-_0202C782:
- mov r0, #0x3
- bl FUN_0202C198
- mov r0, #0x1
- pop {r3, pc}
- .balign 4
-_0202C78C: .word 0x021C59D8
-_0202C790: .word 0x00001310
-
- thumb_func_start FUN_0202C794
-FUN_0202C794: ; 0x0202C794
- push {r3, lr}
- ldr r0, _0202C7AC ; =FUN_0202C7B0
- bl WM_EndScan
- cmp r0, #0x2
- beq _0202C7A8
- bl FUN_0202C1AC
- mov r0, #0x0
- pop {r3, pc}
-_0202C7A8:
- mov r0, #0x1
- pop {r3, pc}
- .balign 4
-_0202C7AC: .word FUN_0202C7B0
-
- thumb_func_start FUN_0202C7B0
-FUN_0202C7B0: ; 0x0202C7B0
- push {r3, lr}
- ldrh r0, [r0, #0x2]
- cmp r0, #0x0
- beq _0202C7BE
- bl FUN_0202C1AC
- pop {r3, pc}
-_0202C7BE:
- mov r0, #0x1
- bl FUN_0202C198
- ldr r0, _0202C7E0 ; =0x021C59D8
- ldr r1, [r0, #0x4]
- ldr r0, _0202C7E4 ; =0x0000130E
- ldrh r0, [r1, r0]
- cmp r0, #0x0
- beq _0202C7DE
- bl FUN_0202C7E8
- cmp r0, #0x0
- bne _0202C7DE
- mov r0, #0x9
- bl FUN_0202C198
-_0202C7DE:
- pop {r3, pc}
- .balign 4
-_0202C7E0: .word 0x021C59D8
-_0202C7E4: .word 0x0000130E
-
- thumb_func_start FUN_0202C7E8
-FUN_0202C7E8: ; 0x0202C7E8
- push {lr}
- sub sp, #0x24
- ldr r0, _0202C844 ; =0x021C59D8
- ldr r1, [r0, #0x4]
- ldr r0, _0202C848 ; =0x00001310
- ldr r0, [r1, r0]
- sub r0, r0, #0x4
- cmp r0, #0x2
- bhi _0202C800
- add sp, #0x24
- mov r0, #0x1
- pop {pc}
-_0202C800:
- mov r0, #0x3
- bl FUN_0202C198
- add r1, sp, #0x4
- ldr r0, _0202C84C ; =0x02105D54
- add r1, #0x1
- mov r2, #0x3
- bl MI_CpuCopy8
- bl FUN_02033534
- add r1, sp, #0x4
- strb r0, [r1, #0x0]
- mov r0, #0x0
- str r0, [sp, #0x0]
- ldr r1, _0202C844 ; =0x021C59D8
- ldr r0, _0202C850 ; =FUN_0202C858
- ldr r2, [r1, #0x4]
- ldr r1, _0202C854 ; =0x00001220
- mov r3, #0x1
- add r1, r2, r1
- add r2, sp, #0x4
- bl WM_StartConnectEx
- cmp r0, #0x2
- beq _0202C83E
- bl FUN_0202C1AC
- add sp, #0x24
- mov r0, #0x0
- pop {pc}
-_0202C83E:
- mov r0, #0x1
- add sp, #0x24
- pop {pc}
- .balign 4
-_0202C844: .word 0x021C59D8
-_0202C848: .word 0x00001310
-_0202C84C: .word 0x02105D54
-_0202C850: .word FUN_0202C858
-_0202C854: .word 0x00001220
-
- thumb_func_start FUN_0202C858
-FUN_0202C858: ; 0x0202C858
- push {r4, lr}
- add r4, r0, #0x0
- ldrh r0, [r4, #0x2]
- cmp r0, #0x0
- beq _0202C894
- bl FUN_0202C1AC
- ldrh r0, [r4, #0x2]
- cmp r0, #0xc
- bne _0202C874
- mov r0, #0x9
- bl FUN_0202C198
- pop {r4, pc}
-_0202C874:
- cmp r0, #0xb
- bne _0202C880
- mov r0, #0x9
- bl FUN_0202C198
- pop {r4, pc}
-_0202C880:
- cmp r0, #0x1
- bne _0202C88C
- mov r0, #0x8
- bl FUN_0202C198
- pop {r4, pc}
-_0202C88C:
- mov r0, #0x9
- bl FUN_0202C198
- pop {r4, pc}
-_0202C894:
- ldrh r0, [r4, #0x8]
- cmp r0, #0x8
- beq _0202C8FA
- cmp r0, #0x7
- bne _0202C8DA
- ldr r0, _0202C8FC ; =0x021C59D8
- ldr r1, [r0, #0x4]
- ldr r0, _0202C900 ; =0x00001335
- ldrb r0, [r1, r0]
- cmp r0, #0x0
- beq _0202C8B8
- mov r0, #0x14
- bl FUN_0202C1AC
- mov r0, #0x9
- bl FUN_0202C198
- pop {r4, pc}
-_0202C8B8:
- mov r0, #0x4
- bl FUN_0202C198
- bl FUN_0202C908
- cmp r0, #0x0
- bne _0202C8CE
- mov r0, #0x3
- bl FUN_0202C198
- pop {r4, pc}
-_0202C8CE:
- ldr r0, _0202C8FC ; =0x021C59D8
- ldrh r2, [r4, #0xa]
- ldr r1, [r0, #0x4]
- ldr r0, _0202C904 ; =0x0000132C
- strh r2, [r1, r0]
- pop {r4, pc}
-_0202C8DA:
- cmp r0, #0x6
- beq _0202C8FA
- cmp r0, #0x9
- bne _0202C8F0
- mov r0, #0x14
- bl FUN_0202C1AC
- mov r0, #0x9
- bl FUN_0202C198
- pop {r4, pc}
-_0202C8F0:
- cmp r0, #0x1a
- beq _0202C8FA
- mov r0, #0x9
- bl FUN_0202C198
-_0202C8FA:
- pop {r4, pc}
- .balign 4
-_0202C8FC: .word 0x021C59D8
-_0202C900: .word 0x00001335
-_0202C904: .word 0x0000132C
-
- thumb_func_start FUN_0202C908
-FUN_0202C908: ; 0x0202C908
- push {r4, lr}
- sub sp, #0x8
- ldr r0, _0202C948 ; =0x021C59D8
- ldr r2, _0202C94C ; =0x00001304
- ldr r4, [r0, #0x4]
- ldr r3, _0202C950 ; =0x00001020
- ldr r0, [r4, r2]
- add r1, r4, r3
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x0]
- mov r0, #0x1
- str r0, [sp, #0x4]
- add r2, r2, #0x4
- ldr r2, [r4, r2]
- sub r3, #0xe0
- lsl r2, r2, #0x10
- ldr r0, _0202C954 ; =FUN_0202C958
- lsr r2, r2, #0x10
- add r3, r4, r3
- bl WM_StartMP
- cmp r0, #0x2
- beq _0202C942
- bl FUN_0202C1AC
- add sp, #0x8
- mov r0, #0x0
- pop {r4, pc}
-_0202C942:
- mov r0, #0x1
- add sp, #0x8
- pop {r4, pc}
- .balign 4
-_0202C948: .word 0x021C59D8
-_0202C94C: .word 0x00001304
-_0202C950: .word 0x00001020
-_0202C954: .word FUN_0202C958
-
- thumb_func_start FUN_0202C958
-FUN_0202C958: ; 0x0202C958
- push {r3, lr}
- ldrh r1, [r0, #0x2]
- cmp r1, #0x0
- beq _0202C97A
- cmp r1, #0xf
- beq _0202C9B0
- cmp r1, #0x9
- beq _0202C9B0
- cmp r1, #0xd
- beq _0202C9B0
- add r0, r1, #0x0
- bl FUN_0202C1AC
- mov r0, #0x9
- bl FUN_0202C198
- pop {r3, pc}
-_0202C97A:
- ldrh r0, [r0, #0x4]
- sub r0, #0xa
- cmp r0, #0x3
- bhi _0202C9B0
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0202C98E: ; jump table (using 16-bit offset)
- .short _0202C996 - _0202C98E - 2; case 0
- .short _0202C9B0 - _0202C98E - 2; case 1
- .short _0202C9B0 - _0202C98E - 2; case 2
- .short _0202C9B0 - _0202C98E - 2; case 3
-_0202C996:
- ldr r0, _0202C9B4 ; =0x021C59D8
- ldr r2, [r0, #0x4]
- ldr r0, _0202C9B8 ; =0x00001314
- ldr r1, [r2, r0]
- cmp r1, #0x3
- bne _0202C9AA
- sub r0, r0, #0x4
- ldr r0, [r2, r0]
- cmp r0, #0x6
- beq _0202C9B0
-_0202C9AA:
- mov r0, #0x4
- bl FUN_0202C198
-_0202C9B0:
- pop {r3, pc}
- nop
-_0202C9B4: .word 0x021C59D8
-_0202C9B8: .word 0x00001314
-
- thumb_func_start FUN_0202C9BC
-FUN_0202C9BC: ; 0x0202C9BC
- push {r3, lr}
- mov r0, #0x3
- bl FUN_0202C198
- ldr r0, _0202C9DC ; =FUN_0202C9E0
- bl WM_EndMP
- cmp r0, #0x2
- beq _0202C9D6
- bl FUN_0202C1AC
- mov r0, #0x0
- pop {r3, pc}
-_0202C9D6:
- mov r0, #0x1
- pop {r3, pc}
- nop
-_0202C9DC: .word FUN_0202C9E0
-
- thumb_func_start FUN_0202C9E0
-FUN_0202C9E0: ; 0x0202C9E0
- push {r3, lr}
- ldrh r0, [r0, #0x2]
- cmp r0, #0x0
- beq _0202C9F2
- bl FUN_0202C1AC
- bl FUN_0202D100
- pop {r3, pc}
-_0202C9F2:
- bl FUN_0202CA04
- cmp r0, #0x0
- bne _0202CA00
- mov r0, #0x9
- bl FUN_0202C198
-_0202CA00:
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_0202CA04
-FUN_0202CA04: ; 0x0202CA04
- push {r3, lr}
- mov r0, #0x3
- bl FUN_0202C198
- ldr r0, _0202CA28 ; =FUN_0202CA2C
- mov r1, #0x0
- bl WM_Disconnect
- cmp r0, #0x2
- beq _0202CA24
- bl FUN_0202C1AC
- bl FUN_0202D0D8
- mov r0, #0x0
- pop {r3, pc}
-_0202CA24:
- mov r0, #0x1
- pop {r3, pc}
- .balign 4
-_0202CA28: .word FUN_0202CA2C
-
- thumb_func_start FUN_0202CA2C
-FUN_0202CA2C: ; 0x0202CA2C
- push {r3, lr}
- ldrh r0, [r0, #0x2]
- cmp r0, #0x0
- beq _0202CA3A
- bl FUN_0202C1AC
- pop {r3, pc}
-_0202CA3A:
- mov r0, #0x1
- bl FUN_0202C198
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_0202CA44
-FUN_0202CA44: ; 0x0202CA44
- push {r3, lr}
- mov r0, #0x3
- bl FUN_0202C198
- ldr r0, _0202CA64 ; =FUN_0202CA68
- bl WM_Reset
- cmp r0, #0x2
- beq _0202CA5E
- bl FUN_0202C1AC
- mov r0, #0x0
- pop {r3, pc}
-_0202CA5E:
- mov r0, #0x1
- pop {r3, pc}
- nop
-_0202CA64: .word FUN_0202CA68
-
- thumb_func_start FUN_0202CA68
-FUN_0202CA68: ; 0x0202CA68
- push {r4, lr}
- add r4, r0, #0x0
- ldrh r0, [r4, #0x2]
- cmp r0, #0x0
- beq _0202CA80
- mov r0, #0x9
- bl FUN_0202C198
- ldrh r0, [r4, #0x2]
- bl FUN_0202C1AC
- pop {r4, pc}
-_0202CA80:
- mov r0, #0x1
- bl FUN_0202C198
- pop {r4, pc}
-
- thumb_func_start FUN_0202CA88
-FUN_0202CA88: ; 0x0202CA88
- push {r4-r7, lr}
- sub sp, #0xc
- add r5, r0, #0x0
- ldr r0, _0202CAD0 ; =0x021C59D8
- add r6, r1, #0x0
- add r4, r2, #0x0
- ldr r1, [r0, #0x4]
- mov r0, #0x3d
- lsl r0, r0, #0x6
- ldr r2, _0202CAD4 ; =0x00001304
- add r0, r1, r0
- ldr r1, [r1, r2]
- add r7, r3, #0x0
- bl DC_FlushRange
- ldr r0, _0202CAD8 ; =0x0000FFFF
- add r1, r7, #0x0
- str r0, [sp, #0x0]
- lsl r0, r4, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x4]
- mov r0, #0x2
- str r0, [sp, #0x8]
- ldr r0, _0202CADC ; =FUN_0202CAE0
- add r2, r5, #0x0
- add r3, r6, #0x0
- bl WM_SetMPDataToPortEx
- cmp r0, #0x2
- bne _0202CACA
- add sp, #0xc
- mov r0, #0x1
- pop {r4-r7, pc}
-_0202CACA:
- mov r0, #0x0
- add sp, #0xc
- pop {r4-r7, pc}
- .balign 4
-_0202CAD0: .word 0x021C59D8
-_0202CAD4: .word 0x00001304
-_0202CAD8: .word 0x0000FFFF
-_0202CADC: .word FUN_0202CAE0
-
- thumb_func_start FUN_0202CAE0
-FUN_0202CAE0: ; 0x0202CAE0
- push {r3, lr}
- ldrh r1, [r0, #0x2]
- cmp r1, #0x0
- beq _0202CAF4
- cmp r1, #0xf
- beq _0202CAF4
- add r0, r1, #0x0
- bl FUN_0202C1AC
- pop {r3, pc}
-_0202CAF4:
- ldr r2, [r0, #0x20]
- cmp r2, #0x0
- beq _0202CB06
- cmp r1, #0x0
- bne _0202CB02
- mov r0, #0x1
- b _0202CB04
-_0202CB02:
- mov r0, #0x0
-_0202CB04:
- blx r2
-_0202CB06:
- pop {r3, pc}
-
- thumb_func_start FUN_0202CB08
-FUN_0202CB08: ; 0x0202CB08
- push {r3, lr}
- add r2, r0, #0x0
- ldrh r0, [r2, #0x2]
- cmp r0, #0x0
- beq _0202CB18
- bl FUN_0202C1AC
- pop {r3, pc}
-_0202CB18:
- ldr r0, _0202CB48 ; =0x021C59D8
- ldr r1, [r0, #0x4]
- ldr r0, _0202CB4C ; =0x00001318
- ldr r3, [r1, r0]
- cmp r3, #0x0
- beq _0202CB44
- ldrh r0, [r2, #0x4]
- cmp r0, #0x19
- beq _0202CB44
- cmp r0, #0x15
- bne _0202CB38
- ldrh r0, [r2, #0x12]
- ldr r1, [r2, #0xc]
- ldrh r2, [r2, #0x10]
- blx r3
- pop {r3, pc}
-_0202CB38:
- cmp r0, #0x9
- bne _0202CB44
- ldrh r0, [r2, #0x12]
- mov r1, #0x0
- add r2, r1, #0x0
- blx r3
-_0202CB44:
- pop {r3, pc}
- nop
-_0202CB48: .word 0x021C59D8
-_0202CB4C: .word 0x00001318
-
- thumb_func_start FUN_0202CB50
-FUN_0202CB50: ; 0x0202CB50
- push {r3, lr}
- ldrh r0, [r0, #0x2]
- cmp r0, #0x0
- beq _0202CB60
- mov r0, #0xa
- bl FUN_0202C198
- pop {r3, pc}
-_0202CB60:
- mov r0, #0x0
- add r1, r0, #0x0
- bl FUN_02090CC8
- mov r0, #0x0
- bl FUN_0202C198
- pop {r3, pc}
-
- thumb_func_start FUN_0202CB70
-FUN_0202CB70: ; 0x0202CB70
- ldr r1, _0202CB78 ; =0x021C59D8
- ldr r1, [r1, #0x4]
- str r0, [r1, #0x8]
- bx lr
- .balign 4
-_0202CB78: .word 0x021C59D8
-
- thumb_func_start FUN_0202CB7C
-FUN_0202CB7C: ; 0x0202CB7C
- ldr r2, _0202CB88 ; =0x021C59D8
- ldr r3, [r2, #0x4]
- str r0, [r3, #0x0]
- ldr r0, [r2, #0x4]
- strh r1, [r0, #0x4]
- bx lr
- .balign 4
-_0202CB88: .word 0x021C59D8
-
- thumb_func_start FUN_0202CB8C
-FUN_0202CB8C: ; 0x0202CB8C
- ldr r0, _0202CB98 ; =0x021C59D8
- ldr r1, [r0, #0x4]
- ldr r0, _0202CB9C ; =0x0000132E
- ldrh r0, [r1, r0]
- bx lr
- nop
-_0202CB98: .word 0x021C59D8
-_0202CB9C: .word 0x0000132E
-
- thumb_func_start FUN_0202CBA0
-FUN_0202CBA0: ; 0x0202CBA0
- push {r3-r4}
- ldr r0, _0202CBCC ; =0x021C59D8
- mov r2, #0x0
- ldr r1, [r0, #0x4]
- ldr r0, _0202CBD0 ; =0x0000132E
- add r3, r2, #0x0
- ldrh r4, [r1, r0]
- mov r1, #0x1
-_0202CBB0:
- add r0, r4, #0x0
- tst r0, r1
- beq _0202CBB8
- add r2, r2, #0x1
-_0202CBB8:
- lsl r0, r4, #0xf
- add r3, r3, #0x1
- lsr r4, r0, #0x10
- cmp r3, #0x10
- blt _0202CBB0
- lsl r0, r2, #0x10
- lsr r0, r0, #0x10
- pop {r3-r4}
- bx lr
- nop
-_0202CBCC: .word 0x021C59D8
-_0202CBD0: .word 0x0000132E
-
- thumb_func_start FUN_0202CBD4
-FUN_0202CBD4: ; 0x0202CBD4
- ldr r0, _0202CBE0 ; =0x021C59D8
- ldr r1, [r0, #0x4]
- ldr r0, _0202CBE4 ; =0x00001310
- ldr r0, [r1, r0]
- bx lr
- nop
-_0202CBE0: .word 0x021C59D8
-_0202CBE4: .word 0x00001310
-
- thumb_func_start FUN_0202CBE8
-FUN_0202CBE8: ; 0x0202CBE8
- ldr r0, _0202CBF4 ; =0x021C59D8
- ldr r1, [r0, #0x4]
- ldr r0, _0202CBF8 ; =0x00001330
- ldr r0, [r1, r0]
- bx lr
- nop
-_0202CBF4: .word 0x021C59D8
-_0202CBF8: .word 0x00001330
-
- thumb_func_start FUN_0202CBFC
-FUN_0202CBFC: ; 0x0202CBFC
- push {r3-r5, lr}
- sub sp, #0x8
- add r0, sp, #0x0
- bl OS_GetMacAddress
- ldr r0, _0202CC84 ; =0x027FFC3C
- ldr r3, [r0, #0x0]
- add r0, sp, #0x0
- ldrh r2, [r0, #0x4]
- ldrh r1, [r0, #0x2]
- ldrh r0, [r0, #0x0]
- add r0, r0, r3
- add r0, r1, r0
- add r1, r2, r0
- ldr r3, _0202CC88 ; =0x021C59D8
- ldr r2, _0202CC8C ; =0x00001338
- ldr r0, [r3, #0x4]
- str r1, [r0, r2]
- ldr r0, [r3, #0x4]
- ldr r1, _0202CC90 ; =0x00010DCD
- ldr r4, [r0, r2]
- add r5, r4, #0x0
- mul r5, r1
- ldr r1, _0202CC94 ; =0x00003039
- mov r4, #0x0
- add r1, r5, r1
- str r1, [r0, r2]
- ldr r1, [r3, #0x4]
- add r0, r2, #0x4
- strh r4, [r1, r0]
- ldr r1, [r3, #0x4]
- mov r4, #0x65
- add r0, r2, #0x6
- strh r4, [r1, r0]
- mov r0, #0x3
- bl FUN_0202C198
- mov r0, #0x1
- bl FUN_0202CC98
- cmp r0, #0x18
- bne _0202CC68
- mov r0, #0x18
- bl FUN_0202C1AC
- mov r0, #0x9
- bl FUN_0202C198
- mov r0, #0x1
- bl FUN_020336A0
- add sp, #0x8
- mov r0, #0x0
- pop {r3-r5, pc}
-_0202CC68:
- cmp r0, #0x2
- beq _0202CC7C
- bl FUN_0202C1AC
- mov r0, #0x9
- bl FUN_0202C198
- add sp, #0x8
- mov r0, #0x0
- pop {r3-r5, pc}
-_0202CC7C:
- mov r0, #0x1
- add sp, #0x8
- pop {r3-r5, pc}
- nop
-_0202CC84: .word 0x027FFC3C
-_0202CC88: .word 0x021C59D8
-_0202CC8C: .word 0x00001338
-_0202CC90: .word 0x00010DCD
-_0202CC94: .word 0x00003039
-
- thumb_func_start FUN_0202CC98
-FUN_0202CC98: ; 0x0202CC98
- push {r4, lr}
- add r4, r0, #0x0
- bl WM_GetAllowedChannel
- mov r1, #0x2
- lsl r1, r1, #0xe
- cmp r0, r1
- bne _0202CCBE
- mov r0, #0x3
- bl FUN_0202C1AC
- mov r0, #0x9
- bl FUN_0202C198
- mov r0, #0x1
- bl FUN_020336A0
- mov r0, #0x3
- pop {r4, pc}
-_0202CCBE:
- cmp r0, #0x0
- bne _0202CCD8
- mov r0, #0x16
- bl FUN_0202C1AC
- mov r0, #0x9
- bl FUN_0202C198
- mov r0, #0x1
- bl FUN_020336A0
- mov r0, #0x18
- pop {r4, pc}
-_0202CCD8:
- mov r2, #0x1
- sub r1, r4, #0x1
- lsl r2, r1
- add r1, r2, #0x0
- tst r1, r0
- bne _0202CD00
- mov r2, #0x1
-_0202CCE6:
- add r1, r4, #0x1
- lsl r1, r1, #0x10
- lsr r4, r1, #0x10
- cmp r4, #0x10
- bls _0202CCF4
- mov r0, #0x18
- pop {r4, pc}
-_0202CCF4:
- sub r1, r4, #0x1
- add r3, r2, #0x0
- lsl r3, r1
- add r1, r3, #0x0
- tst r1, r0
- beq _0202CCE6
-_0202CD00:
- ldr r0, _0202CD10 ; =FUN_0202CD14
- add r1, r4, #0x0
- bl FUN_0202CD90
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- pop {r4, pc}
- nop
-_0202CD10: .word FUN_0202CD14
-
- thumb_func_start FUN_0202CD14
-FUN_0202CD14: ; 0x0202CD14
- push {r3-r5, lr}
- ldrh r1, [r0, #0x2]
- cmp r1, #0x0
- beq _0202CD30
- add r0, r1, #0x0
- bl FUN_0202C1AC
- mov r0, #0x9
- bl FUN_0202C198
- mov r0, #0x1
- bl FUN_020336A0
- pop {r3-r5, pc}
-_0202CD30:
- ldr r2, _0202CD88 ; =0x021C59D8
- ldrh r1, [r0, #0x8]
- ldrh r5, [r0, #0xa]
- ldr r0, [r2, #0x4]
- ldr r3, _0202CD8C ; =0x0000133E
- ldrh r4, [r0, r3]
- cmp r4, r5
- bls _0202CD50
- strh r5, [r0, r3]
- mov r4, #0x1
- sub r0, r1, #0x1
- lsl r4, r0
- ldr r2, [r2, #0x4]
- add r0, r3, #0x2
- strh r4, [r2, r0]
- b _0202CD64
-_0202CD50:
- cmp r4, r5
- bne _0202CD64
- add r2, r3, #0x2
- ldrh r5, [r0, r2]
- mov r4, #0x1
- sub r2, r1, #0x1
- lsl r4, r2
- orr r4, r5
- add r2, r3, #0x2
- strh r4, [r0, r2]
-_0202CD64:
- add r0, r1, #0x1
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_0202CC98
- cmp r0, #0x18
- bne _0202CD7A
- mov r0, #0x7
- bl FUN_0202C198
- pop {r3-r5, pc}
-_0202CD7A:
- cmp r0, #0x2
- beq _0202CD84
- mov r0, #0x9
- bl FUN_0202C198
-_0202CD84:
- pop {r3-r5, pc}
- nop
-_0202CD88: .word 0x021C59D8
-_0202CD8C: .word 0x0000133E
-
- thumb_func_start FUN_0202CD90
-FUN_0202CD90: ; 0x0202CD90
- push {r3, lr}
- add r3, r1, #0x0
- mov r1, #0x1e
- str r1, [sp, #0x0]
- mov r1, #0x3
- mov r2, #0x11
- bl WM_MeasureChannel
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_0202CDA4
-FUN_0202CDA4: ; 0x0202CDA4
- push {r3, lr}
- mov r0, #0x1
- bl FUN_0202C198
- ldr r0, _0202CDC8 ; =0x021C59D8
- ldr r1, [r0, #0x4]
- mov r0, #0x4d
- lsl r0, r0, #0x6
- ldrh r0, [r1, r0]
- bl FUN_0202CDD0
- ldr r2, _0202CDC8 ; =0x021C59D8
- ldr r1, _0202CDCC ; =0x0000133C
- ldr r3, [r2, #0x4]
- strh r0, [r3, r1]
- ldr r0, [r2, #0x4]
- ldrh r0, [r0, r1]
- pop {r3, pc}
- .balign 4
-_0202CDC8: .word 0x021C59D8
-_0202CDCC: .word 0x0000133C
-
- thumb_func_start FUN_0202CDD0
-FUN_0202CDD0: ; 0x0202CDD0
- push {r4-r7}
- add r4, r0, #0x0
- mov r0, #0x0
- add r3, r0, #0x0
- add r2, r0, #0x0
- mov r1, #0x1
-_0202CDDC:
- add r5, r1, #0x0
- lsl r5, r2
- tst r5, r4
- beq _0202CDF0
- add r0, r2, #0x1
- add r3, r3, #0x1
- lsl r0, r0, #0x10
- lsl r3, r3, #0x10
- asr r0, r0, #0x10
- lsr r3, r3, #0x10
-_0202CDF0:
- add r2, r2, #0x1
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- cmp r2, #0x10
- blt _0202CDDC
- cmp r3, #0x1
- bls _0202CE4E
- ldr r5, _0202CE54 ; =0x021C59D8
- ldr r2, _0202CE58 ; =0x00001338
- ldr r0, [r5, #0x4]
- ldr r1, _0202CE5C ; =0x00010DCD
- ldr r6, [r0, r2]
- add r7, r6, #0x0
- mul r7, r1
- ldr r1, _0202CE60 ; =0x00003039
- add r1, r7, r1
- str r1, [r0, r2]
- ldr r0, [r5, #0x4]
- mov r1, #0x1
- ldr r0, [r0, r2]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- mul r0, r3
- lsl r0, r0, #0x8
- lsr r2, r0, #0x10
- mov r3, #0x0
-_0202CE24:
- add r0, r4, #0x0
- tst r0, r1
- beq _0202CE3E
- cmp r2, #0x0
- bne _0202CE38
- add r0, r3, #0x1
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- pop {r4-r7}
- bx lr
-_0202CE38:
- sub r0, r2, #0x1
- lsl r0, r0, #0x10
- lsr r2, r0, #0x10
-_0202CE3E:
- lsl r0, r4, #0xf
- lsr r4, r0, #0x10
- add r0, r3, #0x1
- lsl r0, r0, #0x10
- asr r3, r0, #0x10
- cmp r3, #0x10
- blt _0202CE24
- mov r0, #0x0
-_0202CE4E:
- pop {r4-r7}
- bx lr
- nop
-_0202CE54: .word 0x021C59D8
-_0202CE58: .word 0x00001338
-_0202CE5C: .word 0x00010DCD
-_0202CE60: .word 0x00003039
-
- thumb_func_start FUN_0202CE64
-FUN_0202CE64: ; 0x0202CE64
- push {r3-r5, lr}
- lsl r1, r0, #0x1b
- lsr r2, r1, #0x1b
- beq _0202CE72
- mov r1, #0x20
- sub r1, r1, r2
- add r0, r0, r1
-_0202CE72:
- ldr r2, _0202CEE4 ; =0x021C59D8
- ldr r1, _0202CEE8 ; =0x00001308
- str r0, [r2, #0x4]
- mov r3, #0x0
- str r3, [r0, r1]
- ldr r4, [r2, #0x4]
- sub r0, r1, #0x4
- str r3, [r4, r0]
- add r0, r1, #0x0
- ldr r4, [r2, #0x4]
- add r0, #0x10
- str r3, [r4, r0]
- add r0, r1, #0x0
- ldr r4, [r2, #0x4]
- add r0, #0x24
- strh r3, [r4, r0]
- add r0, r1, #0x0
- ldr r4, [r2, #0x4]
- mov r5, #0x1
- add r0, #0x26
- strh r5, [r4, r0]
- add r0, r1, #0x0
- ldr r4, [r2, #0x4]
- add r0, #0x28
- str r3, [r4, r0]
- add r0, r1, #0x0
- ldr r4, [r2, #0x4]
- add r0, #0x8
- str r3, [r4, r0]
- ldr r0, [r2, #0x4]
- mov r5, #0x8
- str r3, [r0, #0x0]
- ldr r0, [r2, #0x4]
- strh r3, [r0, #0x4]
- add r0, r1, #0x0
- ldr r4, [r2, #0x4]
- add r0, #0x14
- str r3, [r4, r0]
- add r0, r1, #0x0
- ldr r4, [r2, #0x4]
- add r0, #0x2c
- strb r5, [r4, r0]
- add r0, r1, #0x0
- ldr r4, [r2, #0x4]
- add r0, #0x2d
- strb r3, [r4, r0]
- ldr r0, [r2, #0x4]
- add r1, #0x3a
- strb r3, [r0, r1]
- bl FUN_0202CF0C
- cmp r0, #0x0
- bne _0202CEE0
- mov r0, #0x0
- pop {r3-r5, pc}
-_0202CEE0:
- mov r0, #0x1
- pop {r3-r5, pc}
- .balign 4
-_0202CEE4: .word 0x021C59D8
-_0202CEE8: .word 0x00001308
-
- thumb_func_start FUN_0202CEEC
-FUN_0202CEEC: ; 0x0202CEEC
- mov r0, #0x4e
- lsl r0, r0, #0x6
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202CEF4
-FUN_0202CEF4: ; 0x0202CEF4
- push {r3, lr}
- ldrh r0, [r0, #0x2]
- cmp r0, #0x8
- bne _0202CF08
- mov r0, #0x9
- bl FUN_0202C198
- mov r0, #0x19
- bl FUN_0202C1AC
-_0202CF08:
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_0202CF0C
-FUN_0202CF0C: ; 0x0202CF0C
- push {r3, lr}
- mov r0, #0x3
- bl FUN_0202C198
- ldr r0, _0202CF38 ; =0x021C59D8
- ldr r1, _0202CF3C ; =FUN_0202CF40
- ldr r0, [r0, #0x4]
- mov r2, #0x2
- add r0, #0x40
- bl WM_Initialize
- cmp r0, #0x2
- beq _0202CF34
- bl FUN_0202C1AC
- mov r0, #0xa
- bl FUN_0202C198
- mov r0, #0x0
- pop {r3, pc}
-_0202CF34:
- mov r0, #0x1
- pop {r3, pc}
- .balign 4
-_0202CF38: .word 0x021C59D8
-_0202CF3C: .word FUN_0202CF40
-
- thumb_func_start FUN_0202CF40
-FUN_0202CF40: ; 0x0202CF40
- push {r3, lr}
- ldrh r0, [r0, #0x2]
- cmp r0, #0x0
- beq _0202CF5A
- bl FUN_0202C1AC
- mov r0, #0xa
- bl FUN_0202C198
- mov r0, #0x1
- bl FUN_020336A0
- pop {r3, pc}
-_0202CF5A:
- ldr r0, _0202CF80 ; =FUN_0202CEF4
- bl WM_SetIndCallback
- cmp r0, #0x0
- beq _0202CF76
- bl FUN_0202C1AC
- mov r0, #0xa
- bl FUN_0202C198
- mov r0, #0x1
- bl FUN_020336A0
- pop {r3, pc}
-_0202CF76:
- mov r0, #0x1
- bl FUN_0202C198
- pop {r3, pc}
- nop
-_0202CF80: .word FUN_0202CEF4
-
- thumb_func_start FUN_0202CF84
-FUN_0202CF84: ; 0x0202CF84
- push {r3-r7, lr}
- add r6, r1, #0x0
- ldr r1, _0202D02C ; =0x021C59D8
- add r5, r0, #0x0
- add r7, r2, #0x0
- mov r0, #0x7
- ldr r2, [r1, #0x4]
- ldr r1, _0202D030 ; =0x00001308
- lsl r0, r0, #0x6
- str r0, [r2, r1]
- ldr r0, _0202D02C ; =0x021C59D8
- add r4, r3, #0x0
- ldr r2, [r0, #0x4]
- sub r0, r1, #0x4
- mov r3, #0xe0
- str r3, [r2, r0]
- ldr r0, _0202D02C ; =0x021C59D8
- add r1, #0xc
- ldr r0, [r0, #0x4]
- str r5, [r0, r1]
- mov r0, #0x3
- bl FUN_0202C198
- ldr r1, _0202D02C ; =0x021C59D8
- cmp r5, #0x0
- ldr r0, [r1, #0x4]
- strh r6, [r0, #0xc]
- ldr r0, [r1, #0x4]
- strh r7, [r0, #0x32]
- add r0, sp, #0x8
- ldrh r2, [r0, #0x10]
- ldr r0, [r1, #0x4]
- strh r2, [r0, #0x18]
- beq _0202CFCE
- cmp r5, #0x4
- beq _0202CFE8
- b _0202CFF4
-_0202CFCE:
- ldr r0, [r1, #0x4]
- mov r2, #0xc0
- strh r2, [r0, #0x34]
- cmp r4, #0x5
- blo _0202CFE0
- ldr r0, [r1, #0x4]
- mov r2, #0xc
- strh r2, [r0, #0x36]
- b _0202CFF4
-_0202CFE0:
- ldr r0, [r1, #0x4]
- mov r2, #0x26
- strh r2, [r0, #0x36]
- b _0202CFF4
-_0202CFE8:
- ldr r0, [r1, #0x4]
- mov r2, #0x64
- strh r2, [r0, #0x34]
- ldr r0, [r1, #0x4]
- mov r2, #0xc
- strh r2, [r0, #0x36]
-_0202CFF4:
- ldr r1, _0202D02C ; =0x021C59D8
- ldr r0, [r1, #0x4]
- strh r4, [r0, #0x10]
- ldr r2, [r1, #0x4]
- mov r0, #0x0
- strh r0, [r2, #0x16]
- ldr r2, [r1, #0x4]
- cmp r5, #0x2
- strh r0, [r2, #0x12]
- ldr r2, [sp, #0x1c]
- ldr r1, [r1, #0x4]
- strh r2, [r1, #0xe]
- bne _0202D010
- mov r0, #0x1
-_0202D010:
- ldr r1, _0202D02C ; =0x021C59D8
- cmp r5, #0x0
- ldr r1, [r1, #0x4]
- strh r0, [r1, #0x14]
- beq _0202D022
- cmp r5, #0x2
- beq _0202D022
- cmp r5, #0x4
- bne _0202D028
-_0202D022:
- bl FUN_0202C1C8
- pop {r3-r7, pc}
-_0202D028:
- mov r0, #0x0
- pop {r3-r7, pc}
- .balign 4
-_0202D02C: .word 0x021C59D8
-_0202D030: .word 0x00001308
-
- thumb_func_start FUN_0202D034
-FUN_0202D034: ; 0x0202D034
- push {r4-r6, lr}
- ldr r2, _0202D094 ; =0x021C59D8
- add r5, r0, #0x0
- add r4, r1, #0x0
- mov r3, #0x2
- ldr r0, [r2, #0x4]
- ldr r1, _0202D098 ; =0x00001308
- lsl r3, r3, #0x8
- str r3, [r0, r1]
- sub r0, r1, #0x4
- ldr r3, [r2, #0x4]
- mov r6, #0x40
- str r6, [r3, r0]
- ldr r0, [r2, #0x4]
- add r1, #0xc
- str r5, [r0, r1]
- mov r0, #0x3
- bl FUN_0202C198
- cmp r5, #0x1
- beq _0202D066
- cmp r5, #0x3
- beq _0202D066
- cmp r5, #0x5
- bne _0202D08E
-_0202D066:
- ldr r1, _0202D094 ; =0x021C59D8
- add r0, r4, #0x0
- ldr r2, [r1, #0x4]
- ldr r1, _0202D09C ; =0x00001220
- add r1, r2, r1
- mov r2, #0xc0
- bl MI_CpuCopy8
- ldr r0, _0202D094 ; =0x021C59D8
- ldr r1, [r0, #0x4]
- ldr r0, _0202D09C ; =0x00001220
- add r0, r1, r0
- mov r1, #0xc0
- bl DC_FlushRange
- bl DC_WaitWriteBufferEmpty
- bl FUN_0202C7E8
- pop {r4-r6, pc}
-_0202D08E:
- mov r0, #0x0
- pop {r4-r6, pc}
- nop
-_0202D094: .word 0x021C59D8
-_0202D098: .word 0x00001308
-_0202D09C: .word 0x00001220
-
- thumb_func_start FUN_0202D0A0
-FUN_0202D0A0: ; 0x0202D0A0
- push {r3, lr}
- ldr r2, _0202D0C4 ; =0x021C59D8
- ldr r3, [r2, #0x4]
- ldr r2, _0202D0C8 ; =0x00001318
- str r0, [r3, r2]
- lsl r0, r1, #0x10
- ldr r1, _0202D0CC ; =FUN_0202CB08
- lsr r0, r0, #0x10
- mov r2, #0x0
- bl WM_SetPortCallback
- cmp r0, #0x0
- beq _0202D0C2
- mov r0, #0x9
- bl FUN_0202C198
-_0202D0C0:
- b _0202D0C0
-_0202D0C2:
- pop {r3, pc}
- .balign 4
-_0202D0C4: .word 0x021C59D8
-_0202D0C8: .word 0x00001318
-_0202D0CC: .word FUN_0202CB08
-
- thumb_func_start FUN_0202D0D0
-FUN_0202D0D0: ; 0x0202D0D0
- push {r3, lr}
- bl FUN_0202CA88
- pop {r3, pc}
-
- thumb_func_start FUN_0202D0D8
-FUN_0202D0D8: ; 0x0202D0D8
- push {r3, lr}
- ldr r0, _0202D0F8 ; =0x021C59D8
- ldr r1, [r0, #0x4]
- ldr r0, _0202D0FC ; =0x00001310
- ldr r0, [r1, r0]
- cmp r0, #0x2
- bne _0202D0E8
-_0202D0E6:
- b _0202D0E6
-_0202D0E8:
- bl FUN_0202CA44
- cmp r0, #0x0
- bne _0202D0F6
- mov r0, #0xa
- bl FUN_0202C198
-_0202D0F6:
- pop {r3, pc}
- .balign 4
-_0202D0F8: .word 0x021C59D8
-_0202D0FC: .word 0x00001310
-
- thumb_func_start FUN_0202D100
-FUN_0202D100: ; 0x0202D100
- push {r3, lr}
- ldr r0, _0202D16C ; =0x021C59D8
- ldr r1, [r0, #0x4]
- ldr r0, _0202D170 ; =0x00001310
- ldr r0, [r1, r0]
- cmp r0, #0x1
- beq _0202D16A
- cmp r0, #0x6
- beq _0202D126
- cmp r0, #0x5
- beq _0202D126
- cmp r0, #0x4
- beq _0202D126
- mov r0, #0x3
- bl FUN_0202C198
- bl FUN_0202D0D8
- pop {r3, pc}
-_0202D126:
- mov r0, #0x3
- bl FUN_0202C198
- ldr r0, _0202D16C ; =0x021C59D8
- ldr r1, [r0, #0x4]
- ldr r0, _0202D174 ; =0x00001314
- ldr r0, [r1, r0]
- cmp r0, #0x5
- bhi _0202D16A
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0202D144: ; jump table (using 16-bit offset)
- .short _0202D15E - _0202D144 - 2; case 0
- .short _0202D150 - _0202D144 - 2; case 1
- .short _0202D16A - _0202D144 - 2; case 2
- .short _0202D16A - _0202D144 - 2; case 3
- .short _0202D15E - _0202D144 - 2; case 4
- .short _0202D150 - _0202D144 - 2; case 5
-_0202D150:
- bl FUN_0202C9BC
- cmp r0, #0x0
- bne _0202D16A
- bl FUN_0202D0D8
- pop {r3, pc}
-_0202D15E:
- bl FUN_0202C460
- cmp r0, #0x0
- bne _0202D16A
- bl FUN_0202D0D8
-_0202D16A:
- pop {r3, pc}
- .balign 4
-_0202D16C: .word 0x021C59D8
-_0202D170: .word 0x00001310
-_0202D174: .word 0x00001314
-
- thumb_func_start FUN_0202D178
-FUN_0202D178: ; 0x0202D178
- push {r3, lr}
- mov r0, #0x3
- bl FUN_0202C198
- ldr r0, _0202D198 ; =FUN_0202CB50
- bl WM_End
- cmp r0, #0x2
- beq _0202D194
- mov r0, #0x9
- bl FUN_0202C198
- mov r0, #0x0
- pop {r3, pc}
-_0202D194:
- mov r0, #0x1
- pop {r3, pc}
- .balign 4
-_0202D198: .word FUN_0202CB50
-
- thumb_func_start FUN_0202D19C
-FUN_0202D19C: ; 0x0202D19C
- ldr r0, _0202D1A8 ; =0x021C59D8
- ldr r1, [r0, #0x4]
- ldr r0, _0202D1AC ; =0x0000132C
- ldrh r0, [r1, r0]
- bx lr
- nop
-_0202D1A8: .word 0x021C59D8
-_0202D1AC: .word 0x0000132C
-
- thumb_func_start FUN_0202D1B0
-FUN_0202D1B0: ; 0x0202D1B0
- ldr r1, _0202D1C0 ; =0x021C59D8
- ldr r2, [r1, #0x4]
- cmp r2, #0x0
- beq _0202D1BC
- ldr r1, _0202D1C4 ; =0x00001334
- strb r0, [r2, r1]
-_0202D1BC:
- bx lr
- nop
-_0202D1C0: .word 0x021C59D8
-_0202D1C4: .word 0x00001334
-
- thumb_func_start FUN_0202D1C8
-FUN_0202D1C8: ; 0x0202D1C8
- ldr r0, _0202D1DC ; =0x021C59D8
- ldr r1, [r0, #0x4]
- ldr r0, _0202D1E0 ; =0x00001310
- ldr r0, [r1, r0]
- cmp r0, #0x1
- bne _0202D1D8
- mov r0, #0x1
- bx lr
-_0202D1D8:
- mov r0, #0x0
- bx lr
- .balign 4
-_0202D1DC: .word 0x021C59D8
-_0202D1E0: .word 0x00001310
-
- thumb_func_start FUN_0202D1E4
-FUN_0202D1E4: ; 0x0202D1E4
- ldr r0, _0202D1F8 ; =0x021C59D8
- ldr r1, [r0, #0x4]
- ldr r0, _0202D1FC ; =0x00001310
- ldr r0, [r1, r0]
- cmp r0, #0x3
- bne _0202D1F4
- mov r0, #0x1
- bx lr
-_0202D1F4:
- mov r0, #0x0
- bx lr
- .balign 4
-_0202D1F8: .word 0x021C59D8
-_0202D1FC: .word 0x00001310
-
- thumb_func_start FUN_0202D200
-FUN_0202D200: ; 0x0202D200
- ldr r0, _0202D214 ; =0x021C59D8
- ldr r1, [r0, #0x4]
- ldr r0, _0202D218 ; =0x00001310
- ldr r0, [r1, r0]
- cmp r0, #0x9
- bne _0202D210
- mov r0, #0x1
- bx lr
-_0202D210:
- mov r0, #0x0
- bx lr
- .balign 4
-_0202D214: .word 0x021C59D8
-_0202D218: .word 0x00001310
-
- thumb_func_start FUN_0202D21C
-FUN_0202D21C: ; 0x0202D21C
- ldr r0, _0202D238 ; =0x021C59D8
- ldr r1, [r0, #0x4]
- cmp r1, #0x0
- beq _0202D234
- ldr r0, _0202D23C ; =0x00001310
- ldr r0, [r1, r0]
- cmp r0, #0x2
- bne _0202D230
- mov r0, #0x1
- bx lr
-_0202D230:
- mov r0, #0x0
- bx lr
-_0202D234:
- mov r0, #0x0
- bx lr
- .balign 4
-_0202D238: .word 0x021C59D8
-_0202D23C: .word 0x00001310
-
- thumb_func_start FUN_0202D240
-FUN_0202D240: ; 0x0202D240
- push {r4-r6, lr}
- sub sp, #0x8
- add r6, r0, #0x0
- ldr r0, _0202D274 ; =0x021C59D8
- add r5, r1, #0x0
- ldr r1, [r0, #0x4]
- ldr r0, _0202D278 ; =0x00001310
- add r4, r2, #0x0
- ldr r0, [r1, r0]
- cmp r0, #0x4
- bne _0202D26E
- lsl r0, r3, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x0]
- mov r0, #0x1
- lsl r2, r5, #0x10
- str r0, [sp, #0x4]
- mov r0, #0x0
- add r1, r6, #0x0
- lsr r2, r2, #0x10
- add r3, r4, #0x0
- bl WM_SetGameInfo
-_0202D26E:
- add sp, #0x8
- pop {r4-r6, pc}
- nop
-_0202D274: .word 0x021C59D8
-_0202D278: .word 0x00001310
-
- thumb_func_start FUN_0202D27C
-FUN_0202D27C: ; 0x0202D27C
- ldrh r0, [r0, #0x2]
- cmp r0, #0x0
- bne _0202D28C
- ldr r0, _0202D290 ; =0x021C59D8
- mov r2, #0x1
- ldr r1, [r0, #0x4]
- ldr r0, _0202D294 ; =0x00001344
- strb r2, [r1, r0]
-_0202D28C:
- bx lr
- nop
-_0202D290: .word 0x021C59D8
-_0202D294: .word 0x00001344
-
- thumb_func_start FUN_0202D298
-FUN_0202D298: ; 0x0202D298
- push {r4, lr}
- ldr r2, _0202D2C4 ; =0x021C59D8
- add r1, r0, #0x0
- ldr r3, [r2, #0x4]
- ldr r0, _0202D2C8 ; =0x00001344
- mov r4, #0x0
- strb r4, [r3, r0]
- ldr r2, [r2, #0x4]
- sub r0, #0x34
- ldr r0, [r2, r0]
- cmp r0, #0x4
- bne _0202D2BE
- ldr r0, _0202D2CC ; =FUN_0202D27C
- bl WM_SetEntry
- cmp r0, #0x2
- bne _0202D2BE
- mov r0, #0x1
- pop {r4, pc}
-_0202D2BE:
- mov r0, #0x0
- pop {r4, pc}
- nop
-_0202D2C4: .word 0x021C59D8
-_0202D2C8: .word 0x00001344
-_0202D2CC: .word FUN_0202D27C
-
- thumb_func_start FUN_0202D2D0
-FUN_0202D2D0: ; 0x0202D2D0
- ldr r0, _0202D2EC ; =0x021C59D8
- ldr r1, [r0, #0x4]
- cmp r1, #0x0
- beq _0202D2E8
- ldr r0, _0202D2F0 ; =0x00001345
- ldrb r0, [r1, r0]
- cmp r0, #0x6
- blo _0202D2E4
- mov r0, #0x1
- bx lr
-_0202D2E4:
- mov r0, #0x0
- bx lr
-_0202D2E8:
- mov r0, #0x0
- bx lr
- .balign 4
-_0202D2EC: .word 0x021C59D8
-_0202D2F0: .word 0x00001345
-
- thumb_func_start FUN_0202D2F4
-FUN_0202D2F4: ; 0x0202D2F4
- ldr r0, _0202D300 ; =0x021C59D8
- mov r2, #0x0
- ldr r1, [r0, #0x4]
- ldr r0, _0202D304 ; =0x00001345
- strb r2, [r1, r0]
- bx lr
- .balign 4
-_0202D300: .word 0x021C59D8
-_0202D304: .word 0x00001345
-
- thumb_func_start FUN_0202D308
-FUN_0202D308: ; 0x0202D308
- ldr r1, _0202D314 ; =0x021C59D8
- ldr r2, [r1, #0x4]
- ldr r1, _0202D318 ; =0x00001320
- str r0, [r2, r1]
- bx lr
- nop
-_0202D314: .word 0x021C59D8
-_0202D318: .word 0x00001320
-
- thumb_func_start FUN_0202D31C
-FUN_0202D31C: ; 0x0202D31C
- ldr r1, _0202D328 ; =0x021C59D8
- ldr r2, [r1, #0x4]
- ldr r1, _0202D32C ; =0x00001324
- str r0, [r2, r1]
- bx lr
- nop
-_0202D328: .word 0x021C59D8
-_0202D32C: .word 0x00001324
-
- thumb_func_start FUN_0202D330
-FUN_0202D330: ; 0x0202D330
- ldr r1, _0202D33C ; =0x021C59D8
- ldr r2, [r1, #0x4]
- ldr r1, _0202D340 ; =0x00001328
- str r0, [r2, r1]
- bx lr
- nop
-_0202D33C: .word 0x021C59D8
-_0202D340: .word 0x00001328
-
- thumb_func_start FUN_0202D344
-FUN_0202D344: ; 0x0202D344
- ldr r1, _0202D350 ; =0x021C59D8
- ldr r2, [r1, #0x4]
- ldr r1, _0202D354 ; =0x00001342
- strb r0, [r2, r1]
- bx lr
- nop
-_0202D350: .word 0x021C59D8
-_0202D354: .word 0x00001342
-
- thumb_func_start FUN_0202D358
-FUN_0202D358: ; 0x0202D358
- ldr r0, _0202D364 ; =0x021C59D8
- ldr r1, [r0, #0x4]
- ldr r0, _0202D368 ; =0x00001342
- ldrb r0, [r1, r0]
- bx lr
- nop
-_0202D364: .word 0x021C59D8
-_0202D368: .word 0x00001342
-
- thumb_func_start FUN_0202D36C
-FUN_0202D36C: ; 0x0202D36C
- ldr r1, _0202D378 ; =0x021C59D8
- ldr r2, [r1, #0x4]
- ldr r1, _0202D37C ; =0x00001343
- strb r0, [r2, r1]
- bx lr
- nop
-_0202D378: .word 0x021C59D8
-_0202D37C: .word 0x00001343
-
- thumb_func_start FUN_0202D380
-FUN_0202D380: ; 0x0202D380
- ldr r1, _0202D38C ; =0x021C59D8
- ldr r2, [r1, #0x4]
- ldr r1, _0202D390 ; =0x00001335
- strb r0, [r2, r1]
- bx lr
- nop
-_0202D38C: .word 0x021C59D8
-_0202D390: .word 0x00001335
-
- thumb_func_start FUN_0202D394
-FUN_0202D394: ; 0x0202D394
- str r1, [r0, #0x0]
- strh r2, [r0, #0xa]
- mov r1, #0x0
- strh r1, [r0, #0x4]
- strh r1, [r0, #0x6]
- strh r1, [r0, #0x8]
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202D3A4
-FUN_0202D3A4: ; 0x0202D3A4
- push {r3-r7, lr}
- str r2, [sp, #0x0]
- add r5, r0, #0x0
- add r7, r1, #0x0
- bl FUN_0202D498
- ldr r1, [sp, #0x0]
- cmp r0, r1
- bgt _0202D3BC
- bl FUN_02031454
- pop {r3-r7, pc}
-_0202D3BC:
- mov r0, #0x8
- ldrsh r4, [r5, r0]
- ldrsh r1, [r5, r0]
- ldr r0, [sp, #0x0]
- mov r6, #0x0
- add r0, r1, r0
- cmp r4, r0
- bge _0202D3F2
-_0202D3CC:
- cmp r7, #0x0
- bne _0202D3D4
- bl ErrorHandling
-_0202D3D4:
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_0202D4A8
- ldrb r2, [r7, r6]
- ldr r1, [r5, #0x0]
- add r4, r4, #0x1
- strb r2, [r1, r0]
- mov r0, #0x8
- ldrsh r1, [r5, r0]
- ldr r0, [sp, #0x0]
- add r6, r6, #0x1
- add r0, r1, r0
- cmp r4, r0
- blt _0202D3CC
-_0202D3F2:
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_0202D4A8
- strh r0, [r5, #0x8]
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0202D400
-FUN_0202D400: ; 0x0202D400
- push {r3-r5, lr}
- add r5, r0, #0x0
- bl FUN_0202D42C
- mov r1, #0x4
- add r4, r0, #0x0
- ldrsh r1, [r5, r1]
- add r0, r5, #0x0
- add r1, r1, r4
- bl FUN_0202D4A8
- strh r0, [r5, #0x4]
- add r0, r4, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0202D41C
-FUN_0202D41C: ; 0x0202D41C
- push {r3, lr}
- add r1, sp, #0x0
- mov r2, #0x1
- bl FUN_0202D400
- add r0, sp, #0x0
- ldrb r0, [r0, #0x0]
- pop {r3, pc}
-
- thumb_func_start FUN_0202D42C
-FUN_0202D42C: ; 0x0202D42C
- push {r3-r7, lr}
- add r5, r0, #0x0
- mov r0, #0x4
- ldrsh r4, [r5, r0]
- add r7, r2, #0x0
- str r1, [sp, #0x0]
- add r0, r4, r7
- mov r6, #0x0
- cmp r4, r0
- bge _0202D472
-_0202D440:
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_0202D4A8
- mov r1, #0x6
- ldrsh r1, [r5, r1]
- cmp r1, r0
- bne _0202D454
- add r0, r6, #0x0
- pop {r3-r7, pc}
-_0202D454:
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_0202D4A8
- ldr r1, [r5, #0x0]
- add r4, r4, #0x1
- ldrb r1, [r1, r0]
- ldr r0, [sp, #0x0]
- strb r1, [r0, r6]
- mov r0, #0x4
- ldrsh r0, [r5, r0]
- add r6, r6, #0x1
- add r0, r0, r7
- cmp r4, r0
- blt _0202D440
-_0202D472:
- add r0, r6, #0x0
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0202D478
-FUN_0202D478: ; 0x0202D478
- mov r1, #0x4
- mov r3, #0x6
- ldrsh r1, [r0, r1]
- ldrsh r2, [r0, r3]
- cmp r1, r2
- ble _0202D490
- mov r2, #0xa
- ldrsh r2, [r0, r2]
- ldrsh r0, [r0, r3]
- add r0, r2, r0
- sub r0, r0, r1
- bx lr
-_0202D490:
- ldrsh r0, [r0, r3]
- sub r0, r0, r1
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202D498
-FUN_0202D498: ; 0x0202D498
- push {r4, lr}
- add r4, r0, #0x0
- bl FUN_0202D478
- mov r1, #0xa
- ldrsh r1, [r4, r1]
- sub r0, r1, r0
- pop {r4, pc}
-
- thumb_func_start FUN_0202D4A8
-FUN_0202D4A8: ; 0x0202D4A8
- push {r3, lr}
- add r2, r0, #0x0
- add r0, r1, #0x0
- mov r1, #0xa
- ldrsh r1, [r2, r1]
- bl _s32_div_f
- add r0, r1, #0x0
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_0202D4BC
-FUN_0202D4BC: ; 0x0202D4BC
- mov r1, #0x8
- ldrsh r1, [r0, r1]
- strh r1, [r0, #0x6]
- bx lr
-
- thumb_func_start FUN_0202D4C4
-FUN_0202D4C4: ; 0x0202D4C4
- ldr r3, [r0, #0x1c]
- mov r2, #0x0
- ldr r1, [r0, #0x18]
- cmp r3, #0x0
- ble _0202D4E0
-_0202D4CE:
- ldrb r0, [r1, #0xe]
- cmp r0, #0x0
- bne _0202D4D8
- add r0, r1, #0x0
- bx lr
-_0202D4D8:
- add r2, r2, #0x1
- add r1, #0x10
- cmp r2, r3
- blt _0202D4CE
-_0202D4E0:
- mov r0, #0x0
- bx lr
-
- thumb_func_start FUN_0202D4E4
-FUN_0202D4E4: ; 0x0202D4E4
- ldr r3, [r0, #0x1c]
- mov r2, #0x0
- ldr r1, [r0, #0x18]
- cmp r3, #0x0
- ble _0202D500
-_0202D4EE:
- ldrb r0, [r1, #0xe]
- cmp r0, #0x0
- beq _0202D4F8
- mov r0, #0x0
- bx lr
-_0202D4F8:
- add r2, r2, #0x1
- add r1, #0x10
- cmp r2, r3
- blt _0202D4EE
-_0202D500:
- mov r0, #0x1
- bx lr
-
- thumb_func_start FUN_0202D504
-FUN_0202D504: ; 0x0202D504
- ldr r1, [r0, #0x0]
- cmp r1, #0x0
- beq _0202D522
- ldr r1, [r1, #0x8]
- cmp r1, #0x0
- beq _0202D518
- str r1, [r0, #0x0]
- mov r0, #0x0
- str r0, [r1, #0x4]
- b _0202D51E
-_0202D518:
- mov r1, #0x0
- str r1, [r0, #0x0]
- str r1, [r0, #0x4]
-_0202D51E:
- mov r0, #0x1
- bx lr
-_0202D522:
- mov r0, #0x0
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202D528
-FUN_0202D528: ; 0x0202D528
- ldr r2, [r0, #0x0]
- strb r1, [r2, #0x0]
- ldr r1, [r0, #0x0]
- add r1, r1, #0x1
- str r1, [r0, #0x0]
- ldr r1, [r0, #0x4]
- sub r1, r1, #0x1
- str r1, [r0, #0x4]
- bne _0202D53E
- mov r0, #0x1
- bx lr
-_0202D53E:
- mov r0, #0x0
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202D544
-FUN_0202D544: ; 0x0202D544
- push {r4-r6, lr}
- add r5, r0, #0x0
- ldrb r0, [r5, #0xe]
- add r4, r1, #0x0
- bl FUN_0202D9A0
- add r6, r0, #0x0
- ldr r0, _0202D5B8 ; =0x0000FFFF
- cmp r6, r0
- ldr r0, [r4, #0x4]
- bne _0202D56A
- cmp r0, #0x3
- bge _0202D57A
- ldrb r1, [r5, #0xf]
- mov r0, #0x1
- bic r1, r0
- strb r1, [r5, #0xf]
- mov r0, #0x1
- pop {r4-r6, pc}
-_0202D56A:
- cmp r0, #0x1
- bge _0202D57A
- ldrb r1, [r5, #0xf]
- mov r0, #0x1
- bic r1, r0
- strb r1, [r5, #0xf]
- mov r0, #0x1
- pop {r4-r6, pc}
-_0202D57A:
- ldrb r1, [r5, #0xe]
- add r0, r4, #0x0
- bl FUN_0202D528
- ldr r0, _0202D5B8 ; =0x0000FFFF
- cmp r6, r0
- bne _0202D5A4
- ldrh r1, [r5, #0xc]
- add r0, r4, #0x0
- asr r1, r1, #0x8
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- bl FUN_0202D528
- ldrh r1, [r5, #0xc]
- add r0, r4, #0x0
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- bl FUN_0202D528
- b _0202D5A6
-_0202D5A4:
- strh r6, [r5, #0xc]
-_0202D5A6:
- ldrb r1, [r5, #0xf]
- mov r0, #0x1
- bic r1, r0
- mov r0, #0x1
- orr r0, r1
- strb r0, [r5, #0xf]
- mov r0, #0x0
- pop {r4-r6, pc}
- nop
-_0202D5B8: .word 0x0000FFFF
-
- thumb_func_start FUN_0202D5BC
-FUN_0202D5BC: ; 0x0202D5BC
- push {r3-r7, lr}
- add r5, r0, #0x0
- ldrb r0, [r5, #0xe]
- add r4, r1, #0x0
- add r6, r2, #0x0
- add r7, r3, #0x0
- bl FUN_0202D9A0
- ldr r1, _0202D680 ; =0x0000FFFF
- cmp r0, r1
- bne _0202D5D6
- mov r2, #0x3
- b _0202D5D8
-_0202D5D6:
- mov r2, #0x1
-_0202D5D8:
- ldrh r0, [r5, #0xc]
- ldr r1, [r4, #0x4]
- add r0, r0, r2
- cmp r1, r0
- bge _0202D5EA
- cmp r7, #0x0
- bne _0202D5EA
- mov r0, #0x0
- pop {r3-r7, pc}
-_0202D5EA:
- ldrb r0, [r5, #0xf]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- cmp r0, #0x1
- beq _0202D604
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_0202D544
- cmp r0, #0x0
- beq _0202D604
- mov r0, #0x0
- pop {r3-r7, pc}
-_0202D604:
- ldrh r3, [r5, #0xc]
- ldr r2, [r4, #0x4]
- cmp r2, r3
- ldrb r0, [r5, #0xf]
- bge _0202D64E
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x1f
- beq _0202D61E
- ldr r1, [r4, #0x0]
- add r0, r6, #0x0
- bl FUN_0202D400
- b _0202D634
-_0202D61E:
- mov r3, #0x0
- cmp r2, #0x0
- ble _0202D634
-_0202D624:
- ldr r0, [r5, #0x0]
- ldrb r1, [r0, r3]
- ldr r0, [r4, #0x0]
- strb r1, [r0, r3]
- ldr r0, [r4, #0x4]
- add r3, r3, #0x1
- cmp r3, r0
- blt _0202D624
-_0202D634:
- ldr r1, [r5, #0x0]
- ldr r0, [r4, #0x4]
- add r0, r1, r0
- str r0, [r5, #0x0]
- ldrh r1, [r5, #0xc]
- ldr r0, [r4, #0x4]
- sub r0, r1, r0
- strh r0, [r5, #0xc]
- mov r0, #0x0
- mvn r0, r0
- str r0, [r4, #0x4]
- mov r0, #0x1
- pop {r3-r7, pc}
-_0202D64E:
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x1f
- beq _0202D660
- ldr r1, [r4, #0x0]
- add r0, r6, #0x0
- add r2, r3, #0x0
- bl FUN_0202D400
- b _0202D66A
-_0202D660:
- ldr r0, [r5, #0x0]
- ldr r1, [r4, #0x0]
- add r2, r3, #0x0
- bl MI_CpuCopy8
-_0202D66A:
- ldrh r0, [r5, #0xc]
- ldr r1, [r4, #0x0]
- add r0, r1, r0
- str r0, [r4, #0x0]
- ldrh r0, [r5, #0xc]
- ldr r1, [r4, #0x4]
- sub r0, r1, r0
- str r0, [r4, #0x4]
- mov r0, #0x1
- pop {r3-r7, pc}
- nop
-_0202D680: .word 0x0000FFFF
-
- thumb_func_start FUN_0202D684
-FUN_0202D684: ; 0x0202D684
- push {r3-r7, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- str r1, [sp, #0x0]
- str r2, [sp, #0x4]
- add r7, r3, #0x0
- bl FUN_0202D4C4
- add r4, r0, #0x0
- bne _0202D69E
- add sp, #0x8
- mov r0, #0x0
- pop {r3-r7, pc}
-_0202D69E:
- ldr r0, _0202D710 ; =0x0000FFFE
- cmp r7, r0
- blt _0202D6A8
- bl ErrorHandling
-_0202D6A8:
- ldr r0, [sp, #0x0]
- bl FUN_0202D9A0
- add r6, r0, #0x0
- ldr r0, _0202D714 ; =0x0000FFFF
- cmp r6, r0
- bne _0202D6B8
- add r6, r7, #0x0
-_0202D6B8:
- ldr r0, [sp, #0x24]
- cmp r0, #0x0
- beq _0202D6EA
- ldr r0, [r5, #0x14]
- bl FUN_0202D498
- add r1, r6, #0x3
- cmp r1, r0
- blt _0202D6D0
- add sp, #0x8
- mov r0, #0x0
- pop {r3-r7, pc}
-_0202D6D0:
- ldr r0, [r5, #0x14]
- ldr r1, [sp, #0x4]
- ldr r3, _0202D718 ; =0x00000109
- add r2, r6, #0x0
- bl FUN_0202D3A4
- ldr r0, [r5, #0x14]
- bl FUN_0202D4BC
- ldrb r1, [r4, #0xf]
- mov r0, #0x2
- orr r0, r1
- strb r0, [r4, #0xf]
-_0202D6EA:
- ldr r0, [sp, #0x0]
- strh r6, [r4, #0xc]
- strb r0, [r4, #0xe]
- ldr r0, [sp, #0x4]
- str r0, [r4, #0x0]
- ldr r0, [r5, #0x4]
- cmp r0, #0x0
- bne _0202D700
- str r4, [r5, #0x4]
- str r4, [r5, #0x0]
- b _0202D708
-_0202D700:
- str r4, [r0, #0x8]
- ldr r0, [r5, #0x4]
- str r0, [r4, #0x4]
- str r4, [r5, #0x4]
-_0202D708:
- mov r0, #0x1
- add sp, #0x8
- pop {r3-r7, pc}
- nop
-_0202D710: .word 0x0000FFFE
-_0202D714: .word 0x0000FFFF
-_0202D718: .word 0x00000109
-
- thumb_func_start FUN_0202D71C
-FUN_0202D71C: ; 0x0202D71C
- ldr r1, [r0, #0x10]
- cmp r1, #0x0
- beq _0202D726
- add r0, r1, #0x0
- bx lr
-_0202D726:
- ldr r1, [r0, #0x0]
- cmp r1, #0x0
- beq _0202D730
- add r0, r1, #0x0
- bx lr
-_0202D730:
- ldr r0, [r0, #0x8]
- cmp r0, #0x0
- bne _0202D738
- mov r0, #0x0
-_0202D738:
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202D73C
-FUN_0202D73C: ; 0x0202D73C
- push {r4, lr}
- add r4, r0, #0x0
- ldr r1, [r4, #0x10]
- cmp r1, #0x0
- beq _0202D74C
- mov r0, #0x0
- str r0, [r4, #0x10]
- pop {r4, pc}
-_0202D74C:
- bl FUN_0202D504
- cmp r0, #0x0
- bne _0202D75C
- add r4, #0x8
- add r0, r4, #0x0
- bl FUN_0202D504
-_0202D75C:
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0202D760
-FUN_0202D760: ; 0x0202D760
- push {r3-r7, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- ldr r0, [r4, #0x4]
- mov r7, #0x1
- str r2, [sp, #0x0]
- cmp r0, #0x0
- ble _0202D7B6
-_0202D770:
- add r0, r5, #0x0
- bl FUN_0202D71C
- add r6, r0, #0x0
- beq _0202D7B6
- add r0, r5, #0x0
- bl FUN_0202D73C
- ldr r2, [r5, #0x14]
- add r0, r6, #0x0
- add r1, r4, #0x0
- add r3, r7, #0x0
- bl FUN_0202D5BC
- cmp r0, #0x0
- bne _0202D794
- str r6, [r5, #0x10]
- b _0202D7B6
-_0202D794:
- mov r0, #0x0
- ldr r1, [r4, #0x4]
- mvn r0, r0
- cmp r1, r0
- bne _0202D7A4
- str r6, [r5, #0x10]
- mov r0, #0x0
- pop {r3-r7, pc}
-_0202D7A4:
- add r0, r6, #0x0
- mov r1, #0x0
- mov r2, #0x10
- bl MI_CpuFill8
- ldr r0, [r4, #0x4]
- ldr r7, [sp, #0x0]
- cmp r0, #0x0
- bgt _0202D770
-_0202D7B6:
- ldr r0, [r4, #0x4]
- mov r2, #0x0
- cmp r0, #0x0
- ble _0202D7D2
- mov r1, #0xee
-_0202D7C0:
- ldr r0, [r4, #0x0]
- add r2, r2, #0x1
- strb r1, [r0, #0x0]
- ldr r0, [r4, #0x0]
- add r0, r0, #0x1
- str r0, [r4, #0x0]
- ldr r0, [r4, #0x4]
- cmp r2, r0
- blt _0202D7C0
-_0202D7D2:
- mov r0, #0x1
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0202D7D8
-FUN_0202D7D8: ; 0x0202D7D8
- push {r3-r7, lr}
- add r4, r1, #0x0
- add r6, r2, #0x0
- mov r1, #0x0
- mov r2, #0x20
- add r5, r0, #0x0
- bl MI_CpuFill8
- lsl r7, r4, #0x4
- mov r0, #0xf
- add r1, r7, #0x0
- bl FUN_02016998
- mov r1, #0x0
- add r2, r7, #0x0
- str r0, [r5, #0x18]
- bl MI_CpuFill8
- str r4, [r5, #0x1c]
- str r6, [r5, #0x14]
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0202D804
-FUN_0202D804: ; 0x0202D804
- push {r4, lr}
- add r4, r0, #0x0
- ldr r2, [r4, #0x1c]
- ldr r0, [r4, #0x18]
- mov r1, #0x0
- lsl r2, r2, #0x4
- bl MI_CpuFill8
- mov r0, #0x0
- str r0, [r4, #0x0]
- str r0, [r4, #0x4]
- str r0, [r4, #0x8]
- str r0, [r4, #0xc]
- str r0, [r4, #0x10]
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0202D824
-FUN_0202D824: ; 0x0202D824
- ldr r3, _0202D82C ; =FUN_02016A18
- ldr r0, [r0, #0x18]
- bx r3
- nop
-_0202D82C: .word FUN_02016A18
-
- thumb_func_start FUN_0202D830
-FUN_0202D830: ; 0x0202D830
- push {r3-r4}
- ldr r4, [r0, #0x1c]
- mov r2, #0x0
- ldr r3, [r0, #0x18]
- cmp r4, #0x0
- ble _0202D850
-_0202D83C:
- ldrb r0, [r3, #0xe]
- cmp r0, r1
- bne _0202D848
- mov r0, #0x1
- pop {r3-r4}
- bx lr
-_0202D848:
- add r2, r2, #0x1
- add r3, #0x10
- cmp r2, r4
- blt _0202D83C
-_0202D850:
- mov r0, #0x0
- pop {r3-r4}
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202D858
-FUN_0202D858: ; 0x0202D858
- push {r3-r4, lr}
- sub sp, #0x1c
- ldr r3, _0202D880 ; =0x020EEB04
- add r4, r0, #0x0
- add r2, sp, #0x0
- mov r1, #0x1a
-_0202D864:
- ldrb r0, [r3, #0x0]
- add r3, r3, #0x1
- strb r0, [r2, #0x0]
- add r2, r2, #0x1
- sub r1, r1, #0x1
- bne _0202D864
- cmp r4, #0x1a
- blo _0202D878
- bl ErrorHandling
-_0202D878:
- add r0, sp, #0x0
- ldrb r0, [r0, r4]
- add sp, #0x1c
- pop {r3-r4, pc}
- .balign 4
-_0202D880: .word 0x020EEB04
-
- thumb_func_start FUN_0202D884
-FUN_0202D884: ; 0x0202D884
- push {r3-r4, lr}
- sub sp, #0x1c
- ldr r3, _0202D8AC ; =0x020EEB1E
- add r4, r0, #0x0
- add r2, sp, #0x0
- mov r1, #0x1a
-_0202D890:
- ldrb r0, [r3, #0x0]
- add r3, r3, #0x1
- strb r0, [r2, #0x0]
- add r2, r2, #0x1
- sub r1, r1, #0x1
- bne _0202D890
- cmp r4, #0x1a
- blo _0202D8A4
- bl ErrorHandling
-_0202D8A4:
- add r0, sp, #0x0
- ldrb r0, [r0, r4]
- add sp, #0x1c
- pop {r3-r4, pc}
- .balign 4
-_0202D8AC: .word 0x020EEB1E
-
- thumb_func_start FUN_0202D8B0
-FUN_0202D8B0: ; 0x0202D8B0
- cmp r0, #0xd
- bgt _0202D8C4
- cmp r0, #0x7
- blt _0202D8CC
- beq _0202D8C8
- cmp r0, #0x9
- beq _0202D8C8
- cmp r0, #0xd
- beq _0202D8C8
- b _0202D8CC
-_0202D8C4:
- cmp r0, #0x12
- bne _0202D8CC
-_0202D8C8:
- mov r0, #0x1
- bx lr
-_0202D8CC:
- mov r0, #0x0
- bx lr
-
- thumb_func_start FUN_0202D8D0
-FUN_0202D8D0: ; 0x0202D8D0
- push {r4-r6, lr}
- add r5, r0, #0x0
- ldr r0, _0202D914 ; =0x021C59E0
- add r4, r1, #0x0
- ldr r0, [r0, #0x0]
- add r6, r2, #0x0
- cmp r0, #0x0
- bne _0202D8EC
- mov r0, #0xf
- mov r1, #0x18
- bl FUN_02016998
- ldr r1, _0202D914 ; =0x021C59E0
- str r0, [r1, #0x0]
-_0202D8EC:
- ldr r0, _0202D914 ; =0x021C59E0
- mov r3, #0x0
- ldr r1, [r0, #0x0]
- add r2, r3, #0x0
- str r5, [r1, #0x0]
- ldr r1, [r0, #0x0]
- str r4, [r1, #0x4]
- ldr r1, [r0, #0x0]
- str r6, [r1, #0x8]
-_0202D8FE:
- ldr r1, [r0, #0x0]
- add r1, r1, r3
- add r3, r3, #0x1
- strb r2, [r1, #0xc]
- cmp r3, #0x8
- blt _0202D8FE
- ldr r0, _0202D914 ; =0x021C59E0
- ldr r0, [r0, #0x0]
- strb r2, [r0, #0x14]
- pop {r4-r6, pc}
- nop
-_0202D914: .word 0x021C59E0
-
- thumb_func_start FUN_0202D918
-FUN_0202D918: ; 0x0202D918
- push {r3, lr}
- ldr r0, _0202D930 ; =0x021C59E0
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _0202D92C
- bl FUN_02016A18
- ldr r0, _0202D930 ; =0x021C59E0
- mov r1, #0x0
- str r1, [r0, #0x0]
-_0202D92C:
- pop {r3, pc}
- nop
-_0202D930: .word 0x021C59E0
-
- thumb_func_start FUN_0202D934
-FUN_0202D934: ; 0x0202D934
- push {r3-r7, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- add r6, r2, #0x0
- add r7, r3, #0x0
- cmp r4, #0x16
- bge _0202D94C
- mov r0, #0xc
- mul r1, r0
- ldr r0, _0202D998 ; =0x020EEB38
- ldr r4, [r0, r1]
- b _0202D974
-_0202D94C:
- ldr r0, _0202D99C ; =0x021C59E0
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- bne _0202D958
- bl ErrorHandling
-_0202D958:
- ldr r0, _0202D99C ; =0x021C59E0
- ldr r1, [r0, #0x0]
- ldr r0, [r1, #0x4]
- add r0, #0x16
- cmp r4, r0
- ble _0202D96A
- bl FUN_02031454
- pop {r3-r7, pc}
-_0202D96A:
- ldr r1, [r1, #0x0]
- sub r4, #0x16
- mov r0, #0xc
- mul r0, r4
- ldr r4, [r1, r0]
-_0202D974:
- cmp r4, #0x0
- beq _0202D996
- ldr r0, _0202D99C ; =0x021C59E0
- ldr r3, [r0, #0x0]
- cmp r3, #0x0
- beq _0202D98C
- ldr r3, [r3, #0x8]
- add r0, r5, #0x0
- add r1, r6, #0x0
- add r2, r7, #0x0
- blx r4
- pop {r3-r7, pc}
-_0202D98C:
- add r0, r5, #0x0
- add r1, r6, #0x0
- add r2, r7, #0x0
- mov r3, #0x0
- blx r4
-_0202D996:
- pop {r3-r7, pc}
- .balign 4
-_0202D998: .word 0x020EEB38
-_0202D99C: .word 0x021C59E0
-
- thumb_func_start FUN_0202D9A0
-FUN_0202D9A0: ; 0x0202D9A0
- push {r3-r5, lr}
- add r5, r0, #0x0
- mov r4, #0x0
- cmp r5, #0x16
- bge _0202D9B6
- mov r0, #0xc
- add r1, r5, #0x0
- mul r1, r0
- ldr r0, _0202D9FC ; =0x020EEB3C
- ldr r0, [r0, r1]
- b _0202D9EE
-_0202D9B6:
- ldr r0, _0202DA00 ; =0x021C59E0
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- bne _0202D9C2
- bl ErrorHandling
-_0202D9C2:
- ldr r0, _0202DA00 ; =0x021C59E0
- ldr r1, [r0, #0x0]
- cmp r1, #0x0
- bne _0202D9D2
- bl FUN_02031454
- mov r0, #0x0
- pop {r3-r5, pc}
-_0202D9D2:
- ldr r0, [r1, #0x4]
- add r0, #0x16
- cmp r5, r0
- ble _0202D9E2
- bl FUN_02031454
- mov r0, #0x0
- pop {r3-r5, pc}
-_0202D9E2:
- ldr r1, [r1, #0x0]
- sub r5, #0x16
- mov r0, #0xc
- mul r0, r5
- add r0, r1, r0
- ldr r0, [r0, #0x4]
-_0202D9EE:
- cmp r0, #0x0
- beq _0202D9F6
- blx r0
- add r4, r0, #0x0
-_0202D9F6:
- add r0, r4, #0x0
- pop {r3-r5, pc}
- nop
-_0202D9FC: .word 0x020EEB3C
-_0202DA00: .word 0x021C59E0
-
- thumb_func_start FUN_0202DA04
-FUN_0202DA04: ; 0x0202DA04
- cmp r0, #0x16
- bge _0202DA1C
- mov r1, #0xc
- mul r1, r0
- ldr r0, _0202DA38 ; =0x020EEB40
- ldr r0, [r0, r1]
- cmp r0, #0x0
- beq _0202DA18
- mov r0, #0x1
- bx lr
-_0202DA18:
- mov r0, #0x0
- bx lr
-_0202DA1C:
- ldr r1, _0202DA3C ; =0x021C59E0
- sub r0, #0x16
- ldr r1, [r1, #0x0]
- ldr r2, [r1, #0x0]
- mov r1, #0xc
- mul r1, r0
- add r0, r2, r1
- ldr r0, [r0, #0x8]
- cmp r0, #0x0
- beq _0202DA34
- mov r0, #0x1
- bx lr
-_0202DA34:
- mov r0, #0x0
- bx lr
- .balign 4
-_0202DA38: .word 0x020EEB40
-_0202DA3C: .word 0x021C59E0
-
- thumb_func_start FUN_0202DA40
-FUN_0202DA40: ; 0x0202DA40
- push {r3-r5, lr}
- add r3, r0, #0x0
- cmp r3, #0x16
- bge _0202DA58
- mov r4, #0xc
- mul r4, r3
- ldr r3, _0202DA70 ; =0x020EEB40
- add r0, r1, #0x0
- ldr r3, [r3, r4]
- mov r1, #0x0
- blx r3
- pop {r3-r5, pc}
-_0202DA58:
- ldr r0, _0202DA74 ; =0x021C59E0
- sub r3, #0x16
- ldr r4, [r0, #0x0]
- add r0, r1, #0x0
- ldr r1, [r4, #0x8]
- ldr r5, [r4, #0x0]
- mov r4, #0xc
- mul r4, r3
- add r3, r5, r4
- ldr r3, [r3, #0x8]
- blx r3
- pop {r3-r5, pc}
- .balign 4
-_0202DA70: .word 0x020EEB40
-_0202DA74: .word 0x021C59E0
-
- thumb_func_start FUN_0202DA78
-FUN_0202DA78: ; 0x0202DA78
- ldr r0, _0202DA7C ; =0x0000FFFF
- bx lr
- .balign 4
-_0202DA7C: .word 0x0000FFFF
-
- thumb_func_start FUN_0202DA80
-FUN_0202DA80: ; 0x0202DA80
- mov r0, #0x0
- bx lr
-
- thumb_func_start FUN_0202DA84
-FUN_0202DA84: ; 0x0202DA84
- mov r0, #0x1
- bx lr
-
- thumb_func_start FUN_0202DA88
-FUN_0202DA88: ; 0x0202DA88
- mov r0, #0x2
- bx lr
-
- thumb_func_start FUN_0202DA8C
-FUN_0202DA8C: ; 0x0202DA8C
- push {r3-r5, lr}
- add r5, r0, #0x0
- bl FUN_02031190
- cmp r0, #0x0
- bne _0202DACA
- ldr r4, _0202DACC ; =0x021C59E0
- mov r1, #0x1
- ldr r0, [r4, #0x0]
- add r0, r0, r5
- strb r1, [r0, #0xc]
- mov r5, #0x0
-_0202DAA4:
- lsl r0, r5, #0x10
- lsr r0, r0, #0x10
- bl FUN_02030E7C
- cmp r0, #0x0
- beq _0202DABA
- ldr r0, [r4, #0x0]
- add r0, r0, r5
- ldrb r0, [r0, #0xc]
- cmp r0, #0x0
- beq _0202DACA
-_0202DABA:
- add r5, r5, #0x1
- cmp r5, #0x8
- blt _0202DAA4
- mov r1, #0x0
- mov r0, #0xe
- add r2, r1, #0x0
- bl FUN_02030BC4
-_0202DACA:
- pop {r3-r5, pc}
- .balign 4
-_0202DACC: .word 0x021C59E0
-
- thumb_func_start FUN_0202DAD0
-FUN_0202DAD0: ; 0x0202DAD0
- ldr r0, _0202DAF0 ; =0x021C59E0
- mov r3, #0x0
- ldr r1, [r0, #0x0]
- str r3, [r1, #0x0]
- ldr r1, [r0, #0x0]
- str r3, [r1, #0x4]
- ldr r1, [r0, #0x0]
- str r3, [r1, #0x8]
- ldr r0, [r0, #0x0]
- mov r1, #0x1
- strb r1, [r0, #0x14]
- ldr r3, _0202DAF4 ; =FUN_020311D0
- mov r0, #0xf
- add r1, r2, #0x0
- bx r3
- nop
-_0202DAF0: .word 0x021C59E0
-_0202DAF4: .word FUN_020311D0
-
- thumb_func_start FUN_0202DAF8
-FUN_0202DAF8: ; 0x0202DAF8
- push {r4, lr}
- add r4, r0, #0x0
- bl FUN_02031190
- cmp r0, #0x0
- bne _0202DB0E
- ldr r0, _0202DB10 ; =0x021C59E0
- mov r1, #0x0
- ldr r0, [r0, #0x0]
- add r0, r0, r4
- strb r1, [r0, #0xc]
-_0202DB0E:
- pop {r4, pc}
- .balign 4
-_0202DB10: .word 0x021C59E0
-
- thumb_func_start FUN_0202DB14
-FUN_0202DB14: ; 0x0202DB14
- push {r4-r7, lr}
- sub sp, #0xc
- str r0, [sp, #0x0]
- str r1, [sp, #0x4]
- bl FUN_020238F4
- str r0, [sp, #0x8]
- ldr r0, _0202DBA0 ; =0x021C59E4
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- bne _0202DB9A
- mov r1, #0xe9
- mov r0, #0xf
- lsl r1, r1, #0x2
- bl FUN_02016998
- ldr r1, _0202DBA0 ; =0x021C59E4
- mov r2, #0xe9
- str r0, [r1, #0x0]
- mov r1, #0x0
- lsl r2, r2, #0x2
- bl MI_CpuFill8
- mov r6, #0x0
- ldr r7, _0202DBA0 ; =0x021C59E4
- add r4, r6, #0x0
- add r5, r6, #0x0
-_0202DB4A:
- ldr r1, [r7, #0x0]
- add r0, r1, #0x0
- add r0, #0x28
- add r2, r0, r4
- mov r0, #0xd2
- add r1, r1, r5
- lsl r0, r0, #0x2
- str r2, [r1, r0]
- add r0, r6, #0x0
- bl FUN_0202DE78
- add r6, r6, #0x1
- add r4, #0x68
- add r5, r5, #0x4
- cmp r6, #0x8
- blt _0202DB4A
- ldr r2, _0202DBA0 ; =0x021C59E4
- mov r1, #0x3a
- ldr r3, [r2, #0x0]
- mov r0, #0x0
- lsl r1, r1, #0x4
- strb r0, [r3, r1]
- ldr r4, [r2, #0x0]
- add r3, r1, #0x1
- strb r0, [r4, r3]
- add r3, r1, #0x2
- ldr r4, [r2, #0x0]
- sub r1, #0x58
- strb r0, [r4, r3]
- ldr r3, [r2, #0x0]
- ldr r0, [sp, #0x0]
- str r0, [r3, #0x4]
- ldr r3, [r2, #0x0]
- ldr r0, [sp, #0x4]
- str r0, [r3, #0x0]
- ldr r2, [r2, #0x0]
- ldr r0, [sp, #0x8]
- ldr r1, [r2, r1]
- bl FUN_0202393C
-_0202DB9A:
- add sp, #0xc
- pop {r4-r7, pc}
- nop
-_0202DBA0: .word 0x021C59E4
-
- thumb_func_start FUN_0202DBA4
-FUN_0202DBA4: ; 0x0202DBA4
- push {r3-r5, lr}
- ldr r1, _0202DBDC ; =0x021C59E4
- ldr r0, [r1, #0x0]
- cmp r0, #0x0
- beq _0202DBD8
- mov r4, #0x0
- mov r0, #0xd2
- add r5, r4, #0x0
- add r3, r4, #0x0
- lsl r0, r0, #0x2
-_0202DBB8:
- ldr r2, [r1, #0x0]
- add r4, r4, #0x1
- add r2, r2, r5
- add r5, r5, #0x4
- str r3, [r2, r0]
- cmp r4, #0x8
- blt _0202DBB8
- ldr r0, _0202DBDC ; =0x021C59E4
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _0202DBD2
- bl FUN_02016A18
-_0202DBD2:
- ldr r0, _0202DBDC ; =0x021C59E4
- mov r1, #0x0
- str r1, [r0, #0x0]
-_0202DBD8:
- pop {r3-r5, pc}
- nop
-_0202DBDC: .word 0x021C59E4
-
- thumb_func_start FUN_0202DBE0
-FUN_0202DBE0: ; 0x0202DBE0
- push {r3-r7, lr}
- bl FUN_02031190
- add r4, r0, #0x0
- ldr r0, _0202DCD8 ; =0x021C59E4
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x4]
- bl FUN_0202881C
- add r7, r0, #0x0
- ldr r0, _0202DCD8 ; =0x021C59E4
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x4]
- bl FUN_020286EC
- str r0, [sp, #0x0]
- ldr r0, _0202DCD8 ; =0x021C59E4
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x4]
- bl FUN_02029AFC
- add r6, r0, #0x0
- ldr r0, _0202DCD8 ; =0x021C59E4
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x4]
- bl FUN_020238F4
- ldr r1, _0202DCD8 ; =0x021C59E4
- ldr r2, [r1, #0x0]
- lsl r1, r4, #0x2
- add r2, r2, r1
- mov r1, #0xd2
- lsl r1, r1, #0x2
- ldr r1, [r2, r1]
- bl FUN_0202393C
- mov r0, #0x68
- add r5, r4, #0x0
- mul r5, r0
- ldr r0, _0202DCD8 ; =0x021C59E4
- ldr r0, [r0, #0x0]
- add r0, #0x64
- add r0, r0, r5
- bl OS_GetMacAddress
- add r0, r7, #0x0
- mov r1, #0x1
- mov r2, #0x0
- bl FUN_020287A8
- ldr r1, _0202DCD8 ; =0x021C59E4
- mov r2, #0x10
- ldr r1, [r1, #0x0]
- add r1, #0x54
- add r1, r1, r5
- bl MI_CpuCopy8
- add r0, r6, #0x0
- bl FUN_02029B38
- ldr r1, _0202DCD8 ; =0x021C59E4
- ldr r1, [r1, #0x0]
- add r1, r1, r5
- add r1, #0x6b
- strb r0, [r1, #0x0]
- add r0, r6, #0x0
- bl FUN_02029B3C
- ldr r2, _0202DCD8 ; =0x021C59E4
- ldr r1, [r2, #0x0]
- add r1, r1, r5
- add r1, #0x6c
- strb r0, [r1, #0x0]
- ldr r0, [r2, #0x0]
- ldr r0, [r0, #0x4]
- bl FUN_02025C18
- ldr r2, _0202DCD8 ; =0x021C59E4
- ldr r1, [r2, #0x0]
- add r1, r1, r5
- add r1, #0x6d
- strb r0, [r1, #0x0]
- ldr r2, [r2, #0x0]
- mov r0, #0x1
- add r2, #0x6d
- ldrb r1, [r2, r5]
- sub r0, r0, r1
- strb r0, [r2, r5]
- ldr r0, [sp, #0x0]
- bl FUN_02028228
- ldr r1, _0202DCD8 ; =0x021C59E4
- ldr r1, [r1, #0x0]
- add r1, #0x48
- add r1, r1, r5
- bl FUN_02096CCC
- ldr r0, _0202DCD8 ; =0x021C59E4
- mov r1, #0x0
- ldr r0, [r0, #0x0]
- mov r2, #0x20
- add r0, #0x8
- add r0, r0, r5
- bl MI_CpuFill8
- ldr r0, _0202DCD8 ; =0x021C59E4
- ldr r1, [r0, #0x0]
- ldr r0, [r1, #0x0]
- cmp r0, #0x0
- beq _0202DCC4
- add r1, #0x8
- add r1, r1, r5
- bl FUN_02023ACC
-_0202DCC4:
- ldr r1, _0202DCD8 ; =0x021C59E4
- mov r0, #0x3
- ldr r1, [r1, #0x0]
- mov r2, #0x68
- add r1, #0x8
- add r1, r1, r5
- bl FUN_02030ADC
- pop {r3-r7, pc}
- nop
-_0202DCD8: .word 0x021C59E4
-
- thumb_func_start FUN_0202DCDC
-FUN_0202DCDC: ; 0x0202DCDC
- mov r0, #0x68
- bx lr
-
- thumb_func_start FUN_0202DCE0
-FUN_0202DCE0: ; 0x0202DCE0
- ldr r0, _0202DCF4 ; =0x021C59E4
- ldr r2, [r0, #0x0]
- cmp r2, #0x0
- beq _0202DCF0
- mov r0, #0x3a
- mov r1, #0x1
- lsl r0, r0, #0x4
- strb r1, [r2, r0]
-_0202DCF0:
- bx lr
- nop
-_0202DCF4: .word 0x021C59E4
-
- thumb_func_start FUN_0202DCF8
-FUN_0202DCF8: ; 0x0202DCF8
- ldr r0, _0202DD04 ; =0x021C59E4
- ldr r1, [r0, #0x0]
- mov r0, #0x3a
- lsl r0, r0, #0x4
- ldrb r0, [r1, r0]
- bx lr
- .balign 4
-_0202DD04: .word 0x021C59E4
-
- thumb_func_start FUN_0202DD08
-FUN_0202DD08: ; 0x0202DD08
- push {r3-r5, lr}
- ldr r1, _0202DD78 ; =0x021C59E4
- add r4, r2, #0x0
- ldr r1, [r1, #0x0]
- cmp r1, #0x0
- beq _0202DD74
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_02030E7C
- cmp r0, #0x0
- beq _0202DD74
- ldr r1, _0202DD78 ; =0x021C59E4
- mov r2, #0x68
- ldr r5, [r1, #0x0]
- add r1, r4, #0x0
- add r1, #0x62
- ldrb r1, [r1, #0x0]
- add r5, #0x8
- add r0, r4, #0x0
- add r3, r1, #0x0
- mul r3, r2
- add r1, r5, r3
- bl MI_CpuCopy8
- add r4, #0x62
- ldr r2, _0202DD78 ; =0x021C59E4
- ldrb r3, [r4, #0x0]
- ldr r0, [r2, #0x0]
- ldr r1, _0202DD7C ; =0x000003A2
- strb r3, [r0, r1]
- add r0, r1, #0x0
- ldr r3, [r2, #0x0]
- sub r0, #0xa
- add r4, r3, r0
- ldrb r3, [r3, r1]
- ldrb r0, [r4, r3]
- cmp r0, #0x2
- bhs _0202DD74
- mov r0, #0x1
- strb r0, [r4, r3]
- ldr r0, [r2, #0x0]
- ldrb r4, [r0, r1]
- bl FUN_02031190
- cmp r4, r0
- bne _0202DD74
- ldr r0, _0202DD78 ; =0x021C59E4
- mov r2, #0x3
- ldr r0, [r0, #0x0]
- add r1, r0, r4
- mov r0, #0xe6
- lsl r0, r0, #0x2
- strb r2, [r1, r0]
-_0202DD74:
- pop {r3-r5, pc}
- nop
-_0202DD78: .word 0x021C59E4
-_0202DD7C: .word 0x000003A2
-
- thumb_func_start FUN_0202DD80
-FUN_0202DD80: ; 0x0202DD80
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldr r0, _0202DDE0 ; =0x021C59E4
- ldr r1, [r0, #0x0]
- cmp r1, #0x0
- beq _0202DDDC
- mov r3, #0x68
- add r4, r5, #0x0
- add r0, r2, #0x0
- mul r4, r3
- add r1, #0x8
- add r1, r1, r4
- add r2, r3, #0x0
- bl MI_CpuCopy8
- ldr r0, _0202DDE0 ; =0x021C59E4
- add r1, r5, #0x0
- ldr r0, [r0, #0x0]
- add r0, #0x64
- add r0, r0, r4
- bl FUN_0202EFAC
- ldr r0, _0202DDE0 ; =0x021C59E4
- mov r2, #0x1
- ldr r0, [r0, #0x0]
- add r1, r0, r5
- mov r0, #0xe6
- lsl r0, r0, #0x2
- strb r2, [r1, r0]
- bl FUN_02031190
- cmp r5, r0
- bne _0202DDD2
- ldr r0, _0202DDE0 ; =0x021C59E4
- mov r2, #0x3
- ldr r0, [r0, #0x0]
- add r1, r0, r5
- mov r0, #0xe6
- lsl r0, r0, #0x2
- strb r2, [r1, r0]
- pop {r3-r5, pc}
-_0202DDD2:
- ldr r0, _0202DDE0 ; =0x021C59E4
- mov r2, #0x1
- ldr r1, [r0, #0x0]
- ldr r0, _0202DDE4 ; =0x000003A1
- strb r2, [r1, r0]
-_0202DDDC:
- pop {r3-r5, pc}
- nop
-_0202DDE0: .word 0x021C59E4
-_0202DDE4: .word 0x000003A1
-
- thumb_func_start FUN_0202DDE8
-FUN_0202DDE8: ; 0x0202DDE8
- push {r3-r7, lr}
- ldr r0, _0202DE70 ; =0x021C59E4
- ldr r1, [r0, #0x0]
- ldr r0, _0202DE74 ; =0x000003A1
- ldrb r0, [r1, r0]
- cmp r0, #0x0
- bne _0202DDFA
- mov r0, #0x0
- pop {r3-r7, pc}
-_0202DDFA:
- mov r0, #0x5
- bl FUN_02031354
- cmp r0, #0x0
- bne _0202DE6C
- mov r4, #0x0
- add r5, r4, #0x0
- add r7, r4, #0x0
-_0202DE0A:
- ldr r0, _0202DE70 ; =0x021C59E4
- ldr r2, [r0, #0x0]
- mov r0, #0xe6
- add r1, r2, r4
- lsl r0, r0, #0x2
- ldrb r0, [r1, r0]
- cmp r0, #0x0
- beq _0202DE4A
- add r0, r2, r5
- add r0, #0x6a
- strb r4, [r0, #0x0]
- ldr r0, _0202DE70 ; =0x021C59E4
- ldr r6, [r0, #0x0]
- bl FUN_02023924
- add r2, r0, #0x0
- mov r0, #0xd2
- add r1, r6, r7
- lsl r0, r0, #0x2
- ldr r0, [r1, r0]
- add r6, #0x28
- add r1, r6, r5
- bl MI_CpuCopy8
- ldr r1, _0202DE70 ; =0x021C59E4
- mov r0, #0x4
- ldr r1, [r1, #0x0]
- mov r2, #0x68
- add r1, #0x8
- add r1, r1, r5
- bl FUN_02031000
-_0202DE4A:
- add r4, r4, #0x1
- add r5, #0x68
- add r7, r7, #0x4
- cmp r4, #0x8
- blt _0202DE0A
- mov r1, #0x0
- mov r0, #0x5
- add r2, r1, #0x0
- bl FUN_02031000
- ldr r0, _0202DE70 ; =0x021C59E4
- mov r2, #0x0
- ldr r1, [r0, #0x0]
- ldr r0, _0202DE74 ; =0x000003A1
- strb r2, [r1, r0]
- mov r0, #0x1
- pop {r3-r7, pc}
-_0202DE6C:
- mov r0, #0x0
- pop {r3-r7, pc}
- .balign 4
-_0202DE70: .word 0x021C59E4
-_0202DE74: .word 0x000003A1
-
- thumb_func_start FUN_0202DE78
-FUN_0202DE78: ; 0x0202DE78
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, _0202DEA0 ; =0x021C59E4
- ldr r1, [r0, #0x0]
- lsl r0, r4, #0x2
- add r1, r1, r0
- mov r0, #0xd2
- lsl r0, r0, #0x2
- ldr r0, [r1, r0]
- bl FUN_02023948
- ldr r0, _0202DEA0 ; =0x021C59E4
- mov r2, #0x0
- ldr r0, [r0, #0x0]
- add r1, r0, r4
- mov r0, #0xe6
- lsl r0, r0, #0x2
- strb r2, [r1, r0]
- pop {r4, pc}
- nop
-_0202DEA0: .word 0x021C59E4
-
- thumb_func_start FUN_0202DEA4
-FUN_0202DEA4: ; 0x0202DEA4
- ldr r1, _0202DEBC ; =0x021C59E4
- ldr r1, [r1, #0x0]
- add r1, r1, r0
- mov r0, #0xe6
- lsl r0, r0, #0x2
- ldrb r0, [r1, r0]
- cmp r0, #0x1
- bne _0202DEB8
- mov r0, #0x1
- bx lr
-_0202DEB8:
- mov r0, #0x0
- bx lr
- .balign 4
-_0202DEBC: .word 0x021C59E4
-
- thumb_func_start FUN_0202DEC0
-FUN_0202DEC0: ; 0x0202DEC0
- ldr r1, _0202DEDC ; =0x021C59E4
- mov r2, #0x1
- ldr r1, [r1, #0x0]
- add r1, r1, r0
- mov r0, #0xe6
- lsl r0, r0, #0x2
- ldrb r0, [r1, r0]
- cmp r0, #0x2
- beq _0202DED8
- cmp r0, #0x1
- beq _0202DED8
- mov r2, #0x0
-_0202DED8:
- add r0, r2, #0x0
- bx lr
- .balign 4
-_0202DEDC: .word 0x021C59E4
-
- thumb_func_start FUN_0202DEE0
-FUN_0202DEE0: ; 0x0202DEE0
- ldr r1, _0202DEF0 ; =0x021C59E4
- mov r2, #0x2
- ldr r1, [r1, #0x0]
- add r1, r1, r0
- mov r0, #0xe6
- lsl r0, r0, #0x2
- strb r2, [r1, r0]
- bx lr
- .balign 4
-_0202DEF0: .word 0x021C59E4
-
- thumb_func_start FUN_0202DEF4
-FUN_0202DEF4: ; 0x0202DEF4
- ldr r1, _0202DF04 ; =0x021C59E4
- mov r2, #0x3
- ldr r1, [r1, #0x0]
- add r1, r1, r0
- mov r0, #0xe6
- lsl r0, r0, #0x2
- strb r2, [r1, r0]
- bx lr
- .balign 4
-_0202DF04: .word 0x021C59E4
-
- thumb_func_start FUN_0202DF08
-FUN_0202DF08: ; 0x0202DF08
- ldr r1, _0202DF24 ; =0x021C59E4
- mov r0, #0x0
- ldr r3, [r1, #0x0]
- mov r1, #0xe6
- lsl r1, r1, #0x2
-_0202DF12:
- ldrb r2, [r3, r1]
- cmp r2, #0x1
- beq _0202DF22
- add r0, r0, #0x1
- add r3, r3, #0x1
- cmp r0, #0x8
- blt _0202DF12
- mov r0, #0xff
-_0202DF22:
- bx lr
- .balign 4
-_0202DF24: .word 0x021C59E4
-
- thumb_func_start FUN_0202DF28
-FUN_0202DF28: ; 0x0202DF28
- push {r3-r4}
- ldr r1, _0202DF50 ; =0x021C59E4
- mov r0, #0x0
- ldr r4, [r1, #0x0]
- mov r1, #0xe6
- add r3, r0, #0x0
- lsl r1, r1, #0x2
-_0202DF36:
- ldrb r2, [r4, r1]
- cmp r2, #0x2
- beq _0202DF40
- cmp r2, #0x3
- bne _0202DF42
-_0202DF40:
- add r0, r0, #0x1
-_0202DF42:
- add r3, r3, #0x1
- add r4, r4, #0x1
- cmp r3, #0x8
- blt _0202DF36
- pop {r3-r4}
- bx lr
- nop
-_0202DF50: .word 0x021C59E4
-
- thumb_func_start FUN_0202DF54
-FUN_0202DF54: ; 0x0202DF54
- push {r4-r6, lr}
- ldr r0, _0202DFA0 ; =0x021C59E4
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _0202DF9C
- bl FUN_02030F20
- cmp r0, #0x0
- beq _0202DF9C
- mov r6, #0xe6
- ldr r4, _0202DFA0 ; =0x021C59E4
- mov r5, #0x0
- lsl r6, r6, #0x2
-_0202DF6E:
- lsl r0, r5, #0x10
- lsr r0, r0, #0x10
- bl FUN_02030E7C
- cmp r0, #0x0
- bne _0202DF96
- cmp r5, #0x0
- bne _0202DF86
- bl FUN_02031280
- cmp r0, #0x0
- bne _0202DF96
-_0202DF86:
- ldr r0, [r4, #0x0]
- add r0, r0, r5
- ldrb r0, [r0, r6]
- cmp r0, #0x0
- beq _0202DF96
- add r0, r5, #0x0
- bl FUN_0202DE78
-_0202DF96:
- add r5, r5, #0x1
- cmp r5, #0x8
- blt _0202DF6E
-_0202DF9C:
- pop {r4-r6, pc}
- nop
-_0202DFA0: .word 0x021C59E4
-
- thumb_func_start FUN_0202DFA4
-FUN_0202DFA4: ; 0x0202DFA4
- ldr r1, _0202DFD4 ; =0x021C59E4
- ldr r3, [r1, #0x0]
- cmp r3, #0x0
- bne _0202DFB0
- mov r0, #0x0
- bx lr
-_0202DFB0:
- mov r1, #0xe6
- add r2, r3, r0
- lsl r1, r1, #0x2
- ldrb r1, [r2, r1]
- cmp r1, #0x1
- beq _0202DFC4
- cmp r1, #0x2
- beq _0202DFC4
- cmp r1, #0x3
- bne _0202DFD0
-_0202DFC4:
- lsl r0, r0, #0x2
- add r1, r3, r0
- mov r0, #0xd2
- lsl r0, r0, #0x2
- ldr r0, [r1, r0]
- bx lr
-_0202DFD0:
- mov r0, #0x0
- bx lr
- .balign 4
-_0202DFD4: .word 0x021C59E4
-
- thumb_func_start FUN_0202DFD8
-FUN_0202DFD8: ; 0x0202DFD8
- ldr r1, _0202DFF8 ; =0x021C59E4
- ldr r3, [r1, #0x0]
- mov r1, #0xe6
- add r2, r3, r0
- lsl r1, r1, #0x2
- ldrb r1, [r2, r1]
- cmp r1, #0x0
- beq _0202DFF2
- mov r1, #0x68
- add r3, #0x48
- mul r1, r0
- add r0, r3, r1
- bx lr
-_0202DFF2:
- mov r0, #0x0
- bx lr
- nop
-_0202DFF8: .word 0x021C59E4
-
- thumb_func_start FUN_0202DFFC
-FUN_0202DFFC: ; 0x0202DFFC
- ldr r1, _0202E01C ; =0x021C59E4
- ldr r3, [r1, #0x0]
- mov r1, #0xe6
- add r2, r3, r0
- lsl r1, r1, #0x2
- ldrb r1, [r2, r1]
- cmp r1, #0x0
- beq _0202E016
- mov r1, #0x68
- add r3, #0x54
- mul r1, r0
- add r0, r3, r1
- bx lr
-_0202E016:
- mov r0, #0x0
- bx lr
- nop
-_0202E01C: .word 0x021C59E4
-
- thumb_func_start FUN_0202E020
-FUN_0202E020: ; 0x0202E020
- ldr r1, _0202E040 ; =0x021C59E4
- ldr r3, [r1, #0x0]
- mov r1, #0xe6
- add r2, r3, r0
- lsl r1, r1, #0x2
- ldrb r1, [r2, r1]
- cmp r1, #0x0
- beq _0202E03C
- mov r1, #0x68
- mul r1, r0
- add r0, r3, r1
- add r0, #0x6b
- ldrb r0, [r0, #0x0]
- bx lr
-_0202E03C:
- mov r0, #0x0
- bx lr
- .balign 4
-_0202E040: .word 0x021C59E4
-
- thumb_func_start FUN_0202E044
-FUN_0202E044: ; 0x0202E044
- ldr r1, _0202E064 ; =0x021C59E4
- ldr r3, [r1, #0x0]
- mov r1, #0xe6
- add r2, r3, r0
- lsl r1, r1, #0x2
- ldrb r1, [r2, r1]
- cmp r1, #0x0
- beq _0202E060
- mov r1, #0x68
- mul r1, r0
- add r0, r3, r1
- add r0, #0x6c
- ldrb r0, [r0, #0x0]
- bx lr
-_0202E060:
- mov r0, #0x0
- bx lr
- .balign 4
-_0202E064: .word 0x021C59E4
-
- thumb_func_start FUN_0202E068
-FUN_0202E068: ; 0x0202E068
- ldr r1, _0202E088 ; =0x021C59E4
- ldr r3, [r1, #0x0]
- mov r1, #0xe6
- add r2, r3, r0
- lsl r1, r1, #0x2
- ldrb r1, [r2, r1]
- cmp r1, #0x0
- beq _0202E084
- mov r1, #0x68
- mul r1, r0
- add r0, r3, r1
- add r0, #0x6d
- ldrb r0, [r0, #0x0]
- bx lr
-_0202E084:
- mov r0, #0x0
- bx lr
- .balign 4
-_0202E088: .word 0x021C59E4
-
- thumb_func_start FUN_0202E08C
-FUN_0202E08C: ; 0x0202E08C
- push {r4-r6, lr}
- mov r4, #0x0
- add r5, r4, #0x0
- add r6, r4, #0x0
-_0202E094:
- lsl r0, r4, #0x10
- lsr r0, r0, #0x10
- bl FUN_02030E7C
- cmp r0, #0x0
- beq _0202E0E8
- ldr r0, _0202E0F4 ; =0x021C59E4
- ldr r0, [r0, #0x0]
- add r1, r0, r4
- mov r0, #0xe6
- lsl r0, r0, #0x2
- ldrb r0, [r1, r0]
- cmp r0, #0x0
- beq _0202E0E8
- add r0, r4, #0x1
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_02030E7C
- cmp r0, #0x0
- beq _0202E0E8
- ldr r0, _0202E0F4 ; =0x021C59E4
- ldr r1, _0202E0F8 ; =0x00000399
- ldr r0, [r0, #0x0]
- add r2, r0, r4
- ldrb r1, [r2, r1]
- cmp r1, #0x0
- beq _0202E0E8
- add r1, r6, #0x0
- add r2, r0, r5
-_0202E0D0:
- add r3, r2, #0x0
- add r3, #0x70
- ldrb r0, [r2, #0x8]
- ldrb r3, [r3, #0x0]
- cmp r0, r3
- beq _0202E0E0
- mov r0, #0x0
- pop {r4-r6, pc}
-_0202E0E0:
- add r1, r1, #0x1
- add r2, r2, #0x1
- cmp r1, #0x20
- blt _0202E0D0
-_0202E0E8:
- add r4, r4, #0x1
- add r5, #0x68
- cmp r4, #0x7
- blt _0202E094
- mov r0, #0x1
- pop {r4-r6, pc}
- .balign 4
-_0202E0F4: .word 0x021C59E4
-_0202E0F8: .word 0x00000399
-
- thumb_func_start FUN_0202E0FC
-FUN_0202E0FC: ; 0x0202E0FC
- push {r3-r7, lr}
- add r7, r0, #0x0
- ldr r0, _0202E1B4 ; =0x021C59E4
- add r6, r1, #0x0
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _0202E1B0
- cmp r7, #0x2
- beq _0202E11C
- bl FUN_02031190
- bl FUN_020313CC
- mov r1, #0x1
- and r0, r1
- str r0, [sp, #0x0]
-_0202E11C:
- mov r4, #0x0
- bl FUN_02030F20
- cmp r0, #0x0
- ble _0202E1B0
- add r5, r4, #0x0
-_0202E128:
- lsl r0, r4, #0x10
- lsr r0, r0, #0x10
- bl FUN_02030E7C
- cmp r0, #0x0
- beq _0202E1A4
- ldr r0, _0202E1B4 ; =0x021C59E4
- mov r1, #0xe6
- ldr r0, [r0, #0x0]
- lsl r1, r1, #0x2
- add r2, r0, r4
- ldrb r1, [r2, r1]
- cmp r1, #0x0
- beq _0202E1A4
- cmp r7, #0x0
- bne _0202E16E
- add r0, r4, #0x0
- bl FUN_020313CC
- mov r1, #0x1
- and r1, r0
- ldr r0, [sp, #0x0]
- cmp r0, r1
- beq _0202E1A4
- ldr r0, _0202E1B4 ; =0x021C59E4
- mov r1, #0xda
- ldr r0, [r0, #0x0]
- lsl r1, r1, #0x2
- add r0, r0, r5
- ldrh r1, [r0, r1]
- add r2, r1, r6
- mov r1, #0xda
- lsl r1, r1, #0x2
- strh r2, [r0, r1]
- b _0202E1A4
-_0202E16E:
- cmp r7, #0x1
- bne _0202E194
- add r0, r4, #0x0
- bl FUN_020313CC
- mov r1, #0x1
- and r1, r0
- ldr r0, [sp, #0x0]
- cmp r0, r1
- beq _0202E1A4
- ldr r0, _0202E1B4 ; =0x021C59E4
- ldr r1, _0202E1B8 ; =0x0000036A
- ldr r0, [r0, #0x0]
- add r0, r0, r5
- ldrh r1, [r0, r1]
- add r2, r1, r6
- ldr r1, _0202E1B8 ; =0x0000036A
- strh r2, [r0, r1]
- b _0202E1A4
-_0202E194:
- mov r1, #0xdb
- add r0, r0, r5
- lsl r1, r1, #0x2
- ldrh r1, [r0, r1]
- add r2, r1, r6
- mov r1, #0xdb
- lsl r1, r1, #0x2
- strh r2, [r0, r1]
-_0202E1A4:
- add r5, r5, #0x6
- add r4, r4, #0x1
- bl FUN_02030F20
- cmp r4, r0
- blt _0202E128
-_0202E1B0:
- pop {r3-r7, pc}
- nop
-_0202E1B4: .word 0x021C59E4
-_0202E1B8: .word 0x0000036A
-
- thumb_func_start FUN_0202E1BC
-FUN_0202E1BC: ; 0x0202E1BC
- push {r4-r7, lr}
- sub sp, #0xc
- add r7, r0, #0x0
- bl FUN_020286EC
- str r0, [sp, #0x4]
- mov r4, #0x0
- bl FUN_02030F20
- cmp r0, #0x0
- ble _0202E224
- add r5, r4, #0x0
-_0202E1D4:
- add r0, r4, #0x0
- bl FUN_0202DFD8
- add r1, r0, #0x0
- beq _0202E218
- add r0, r7, #0x0
- add r2, sp, #0x8
- bl FUN_02033874
- cmp r0, #0x0
- beq _0202E1EE
- cmp r0, #0x1
- bne _0202E218
-_0202E1EE:
- ldr r0, [sp, #0x8]
- cmp r0, #0x0
- bge _0202E1F8
- bl ErrorHandling
-_0202E1F8:
- ldr r0, _0202E254 ; =0x021C59E4
- mov r2, #0xda
- ldr r0, [r0, #0x0]
- ldr r3, _0202E258 ; =0x0000036A
- add r6, r0, r5
- mov r0, #0xdb
- lsl r0, r0, #0x2
- ldrh r0, [r6, r0]
- lsl r2, r2, #0x2
- str r0, [sp, #0x0]
- ldrh r2, [r6, r2]
- ldrh r3, [r6, r3]
- ldr r0, [sp, #0x4]
- ldr r1, [sp, #0x8]
- bl FUN_02028608
-_0202E218:
- add r5, r5, #0x6
- add r4, r4, #0x1
- bl FUN_02030F20
- cmp r4, r0
- blt _0202E1D4
-_0202E224:
- mov r3, #0xda
- mov r2, #0x0
- lsl r3, r3, #0x2
- ldr r6, _0202E254 ; =0x021C59E4
- add r1, r2, #0x0
- add r0, r2, #0x0
- add r4, r3, #0x2
- add r5, r3, #0x4
-_0202E234:
- ldr r7, [r6, #0x0]
- add r2, r2, #0x1
- add r7, r7, r1
- strh r0, [r7, r3]
- ldr r7, [r6, #0x0]
- add r7, r7, r1
- strh r0, [r7, r4]
- ldr r7, [r6, #0x0]
- add r7, r7, r1
- add r1, r1, #0x6
- strh r0, [r7, r5]
- cmp r2, #0x8
- blt _0202E234
- add sp, #0xc
- pop {r4-r7, pc}
- nop
-_0202E254: .word 0x021C59E4
-_0202E258: .word 0x0000036A
-
- thumb_func_start FUN_0202E25C
-FUN_0202E25C: ; 0x0202E25C
- push {r4, lr}
- add r4, r0, #0x0
- cmp r1, #0x1
- bne _0202E26E
- mov r0, #0x0
- mov r1, #0x1
- bl FUN_0202E0FC
- b _0202E27E
-_0202E26E:
- mov r0, #0x0
- mvn r0, r0
- cmp r1, r0
- bne _0202E27E
- mov r0, #0x1
- add r1, r0, #0x0
- bl FUN_0202E0FC
-_0202E27E:
- add r0, r4, #0x0
- bl FUN_0202E1BC
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0202E288
-FUN_0202E288: ; 0x0202E288
- push {r4, lr}
- add r4, r0, #0x0
- mov r0, #0x2
- bl FUN_0202E0FC
- add r0, r4, #0x0
- bl FUN_0202E1BC
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0202E29C
-FUN_0202E29C: ; 0x0202E29C
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, _0202E334 ; =0x021C59E8
- ldr r0, [r0, #0x8]
- cmp r0, #0x0
- bne _0202E332
- mov r1, #0xdb
- mov r0, #0xf
- lsl r1, r1, #0x4
- bl FUN_02016998
- ldr r1, _0202E334 ; =0x021C59E8
- mov r2, #0xdb
- str r0, [r1, #0x8]
- mov r1, #0x0
- lsl r2, r2, #0x4
- bl MI_CpuFill8
- bl FUN_0202CEEC
- add r1, r0, #0x0
- mov r0, #0xf
- bl FUN_02016998
- ldr r1, _0202E334 ; =0x021C59E8
- ldr r2, [r1, #0x8]
- ldr r1, _0202E338 ; =0x00000CA4
- str r0, [r2, r1]
- bl FUN_0202CEEC
- add r2, r0, #0x0
- ldr r0, _0202E334 ; =0x021C59E8
- ldr r1, [r0, #0x8]
- ldr r0, _0202E338 ; =0x00000CA4
- ldr r0, [r1, r0]
- mov r1, #0x0
- bl MI_CpuFill8
- bl FUN_02023AC4
- add r1, r0, #0x0
- mov r0, #0xf
- bl FUN_02016998
- ldr r1, _0202E334 ; =0x021C59E8
- ldr r2, [r1, #0x8]
- ldr r1, _0202E33C ; =0x00000CBC
- str r0, [r2, r1]
- bl FUN_02023AC4
- add r2, r0, #0x0
- ldr r0, _0202E334 ; =0x021C59E8
- ldr r1, [r0, #0x8]
- ldr r0, _0202E33C ; =0x00000CBC
- ldr r0, [r1, r0]
- mov r1, #0x0
- bl MI_CpuFill8
- ldr r2, _0202E334 ; =0x021C59E8
- mov r1, #0x33
- ldr r3, _0202E340 ; =0x00000333
- ldr r0, [r2, #0x8]
- lsl r1, r1, #0x6
- str r3, [r0, r1]
- add r0, r1, #0x0
- ldr r3, [r2, #0x8]
- sub r0, #0x8
- str r4, [r3, r0]
- ldr r0, [r2, #0x8]
- sub r1, #0x18
- add r0, r0, r1
- bl FUN_02013724
- bl FUN_0202E500
-_0202E332:
- pop {r4, pc}
- .balign 4
-_0202E334: .word 0x021C59E8
-_0202E338: .word 0x00000CA4
-_0202E33C: .word 0x00000CBC
-_0202E340: .word 0x00000333
-
- thumb_func_start FUN_0202E344
-FUN_0202E344: ; 0x0202E344
- ldr r0, _0202E354 ; =0x021C59E8
- ldr r0, [r0, #0x8]
- cmp r0, #0x0
- beq _0202E350
- mov r0, #0x1
- bx lr
-_0202E350:
- mov r0, #0x0
- bx lr
- .balign 4
-_0202E354: .word 0x021C59E8
-
- thumb_func_start FUN_0202E358
-FUN_0202E358: ; 0x0202E358
- push {r4-r5}
- mov r5, #0x0
- cmp r2, #0x0
- ble _0202E378
-_0202E360:
- ldrb r4, [r0, #0x0]
- ldrb r3, [r1, #0x0]
- cmp r4, r3
- beq _0202E36E
- mov r0, #0x0
- pop {r4-r5}
- bx lr
-_0202E36E:
- add r5, r5, #0x1
- add r0, r0, #0x1
- add r1, r1, #0x1
- cmp r5, r2
- blt _0202E360
-_0202E378:
- mov r0, #0x1
- pop {r4-r5}
- bx lr
- .balign 4
-
- thumb_func_start FUN_0202E380
-FUN_0202E380: ; 0x0202E380
- push {r3-r7, lr}
- add r7, r0, #0x0
- bl FUN_02033534
- add r5, r0, #0x0
- bl FUN_0203354C
- add r4, r7, #0x0
- add r6, r0, #0x0
- add r4, #0x50
- cmp r5, #0xe
- beq _0202E3C2
- ldrb r0, [r4, #0x4]
- bl FUN_0202D8B0
- cmp r0, #0x0
- beq _0202E3AC
- add r0, r5, #0x0
- bl FUN_0202D8B0
- cmp r0, #0x0
- bne _0202E3C2
-_0202E3AC:
- add r0, r4, #0x0
- add r0, #0x54
- ldrb r0, [r0, #0x0]
- cmp r0, #0x0
- beq _0202E3BC
- ldrb r0, [r4, #0x4]
- cmp r0, #0xa
- beq _0202E460
-_0202E3BC:
- ldrb r0, [r4, #0x4]
- cmp r0, r5
- bne _0202E460
-_0202E3C2:
- cmp r5, #0xe
- beq _0202E3CC
- ldrb r0, [r4, #0x5]
- cmp r0, r6
- bne _0202E460
-_0202E3CC:
- mov r6, #0x0
- add r4, r6, #0x0
- add r5, r6, #0x0
-_0202E3D2:
- ldr r0, _0202E464 ; =0x021C59E8
- ldr r1, _0202E468 ; =0x00000C84
- ldr r0, [r0, #0x8]
- add r2, r0, r4
- ldrh r1, [r2, r1]
- cmp r1, #0x0
- beq _0202E412
- add r0, #0x58
- add r0, r0, r5
- add r1, r7, #0x4
- mov r2, #0x6
- bl FUN_0202E358
- cmp r0, #0x0
- beq _0202E412
- ldr r2, _0202E464 ; =0x021C59E8
- lsl r1, r6, #0x1
- ldr r3, [r2, #0x8]
- mov r0, #0x96
- add r3, r3, r1
- ldr r1, _0202E468 ; =0x00000C84
- strh r0, [r3, r1]
- ldr r3, [r2, #0x8]
- mov r2, #0xc0
- add r1, r6, #0x0
- add r3, #0x54
- mul r1, r2
- add r0, r7, #0x0
- add r1, r3, r1
- bl MI_CpuCopy8
- pop {r3-r7, pc}
-_0202E412:
- add r6, r6, #0x1
- add r4, r4, #0x2
- add r5, #0xc0
- cmp r6, #0x10
- blt _0202E3D2
- ldr r0, _0202E464 ; =0x021C59E8
- ldr r2, _0202E468 ; =0x00000C84
- ldr r0, [r0, #0x8]
- mov r1, #0x0
- add r4, r0, #0x0
-_0202E426:
- ldrh r3, [r4, r2]
- cmp r3, #0x0
- beq _0202E434
- add r1, r1, #0x1
- add r4, r4, #0x2
- cmp r1, #0x10
- blt _0202E426
-_0202E434:
- cmp r1, #0x10
- bge _0202E460
- lsl r2, r1, #0x1
- add r2, r0, r2
- ldr r0, _0202E468 ; =0x00000C84
- mov r3, #0x96
- strh r3, [r2, r0]
- ldr r2, _0202E464 ; =0x021C59E8
- add r3, r1, #0x0
- ldr r4, [r2, #0x8]
- mov r2, #0xc0
- add r4, #0x54
- mul r3, r2
- add r0, r7, #0x0
- add r1, r4, r3
- bl MI_CpuCopy8
- ldr r0, _0202E464 ; =0x021C59E8
- mov r2, #0x1
- ldr r1, [r0, #0x8]
- ldr r0, _0202E46C ; =0x00000CB4
- strb r2, [r1, r0]
-_0202E460:
- pop {r3-r7, pc}
- nop
-_0202E464: .word 0x021C59E8
-_0202E468: .word 0x00000C84
-_0202E46C: .word 0x00000CB4
-
- thumb_func_start FUN_0202E470
-FUN_0202E470: ; 0x0202E470
- push {r3, lr}
- cmp r1, #0x0
- beq _0202E47A
- bl OS_Terminate
-_0202E47A:
- ldr r0, _0202E484 ; =0x021C59E8
- mov r1, #0x2
- str r1, [r0, #0x4]
- pop {r3, pc}
- nop
-_0202E484: .word 0x021C59E8
-
- thumb_func_start FUN_0202E488
-FUN_0202E488: ; 0x0202E488
- ldr r0, _0202E494 ; =0x021C59E8
- mov r1, #0x0
- str r1, [r0, #0x4]
- ldr r3, _0202E498 ; =FUN_02016454
- mov r0, #0x4
- bx r3
- .balign 4
-_0202E494: .word 0x021C59E8
-_0202E498: .word FUN_02016454
-
- thumb_func_start FUN_0202E49C
-FUN_0202E49C: ; 0x0202E49C
- push {r3, lr}
- mov r0, #0x4
- bl FUN_02016444
- ldr r0, _0202E4C0 ; =0x021C59E8
- mov r1, #0x1
- str r1, [r0, #0x4]
- ldr r1, _0202E4C4 ; =FUN_0202E470
- mov r0, #0x8
- mov r2, #0x0
- bl FUN_02090DB8
- cmp r0, #0x1
- beq _0202E4BC
- bl OS_Terminate
-_0202E4BC:
- pop {r3, pc}
- nop
-_0202E4C0: .word 0x021C59E8
-_0202E4C4: .word FUN_0202E470
-
- thumb_func_start FUN_0202E4C8
-FUN_0202E4C8: ; 0x0202E4C8
- ldr r0, _0202E4D8 ; =0x021C59E8
- ldr r0, [r0, #0x4]
- cmp r0, #0x2
- bne _0202E4D4
- mov r0, #0x1
- bx lr
-_0202E4D4:
- mov r0, #0x0
- bx lr
- .balign 4
-_0202E4D8: .word 0x021C59E8
-
- thumb_func_start FUN_0202E4DC
-FUN_0202E4DC: ; 0x0202E4DC
- ldr r0, _0202E4EC ; =0x021C59E8
- ldr r0, [r0, #0x4]
- cmp r0, #0x0
- beq _0202E4E8
- mov r0, #0x1
- bx lr
-_0202E4E8:
- mov r0, #0x0
- bx lr
- .balign 4
-_0202E4EC: .word 0x021C59E8
-
- thumb_func_start FUN_0202E4F0
-FUN_0202E4F0: ; 0x0202E4F0
- ldr r3, _0202E4F8 ; =FUN_02090CC8
- ldr r0, _0202E4FC ; =FUN_0202E488
- mov r1, #0x0
- bx r3
- .balign 4
-_0202E4F8: .word FUN_02090CC8
-_0202E4FC: .word FUN_0202E488
-
- thumb_func_start FUN_0202E500
-FUN_0202E500: ; 0x0202E500
- push {r3, lr}
- ldr r1, _0202E534 ; =0x021C59E8
- mov r0, #0xcb
- ldr r2, [r1, #0x8]
- mov r3, #0x0
- lsl r0, r0, #0x4
- str r3, [r2, r0]
- ldr r1, [r1, #0x8]
- sub r0, #0xc
- ldr r2, [r1, r0]
- mov r0, #0x1f
- add r1, r2, #0x0
- and r1, r0
- mov r0, #0x20
- sub r0, r0, r1
- add r0, r2, r0
- bl FUN_0202CE64
- ldr r0, _0202E534 ; =0x021C59E8
- ldr r1, [r0, #0x8]
- mov r0, #0x33
- lsl r0, r0, #0x6
- ldr r0, [r1, r0]
- bl FUN_0202CB70
- pop {r3, pc}
- .balign 4
-_0202E534: .word 0x021C59E8
-
- thumb_func_start FUN_0202E538
-FUN_0202E538: ; 0x0202E538
- push {r3-r5, lr}
- mov r4, #0x0
- ldr r2, _0202E564 ; =0x021C59E8
- ldr r0, _0202E568 ; =0x00000C84
- add r5, r4, #0x0
- add r1, r4, #0x0
-_0202E544:
- ldr r3, [r2, #0x8]
- add r4, r4, #0x1
- add r3, r3, r5
- add r5, r5, #0x2
- strh r1, [r3, r0]
- cmp r4, #0x10
- blt _0202E544
- ldr r0, _0202E564 ; =0x021C59E8
- mov r2, #0x3
- ldr r0, [r0, #0x8]
- lsl r2, r2, #0xa
- add r0, #0x54
- bl MI_CpuFill8
- pop {r3-r5, pc}
- nop
-_0202E564: .word 0x021C59E8
-_0202E568: .word 0x00000C84
-
- thumb_func_start FUN_0202E56C
-FUN_0202E56C: ; 0x0202E56C
- push {r3-r4}
- ldr r1, _0202E58C ; =0x021C59E8
- lsl r0, r0, #0x18
- ldr r2, [r1, #0x8]
- ldr r4, _0202E590 ; =0x00000DAD
- lsr r0, r0, #0x18
- ldrb r1, [r2, r4]
- mov r3, #0x8
- lsl r0, r0, #0x1f
- bic r1, r3
- lsr r0, r0, #0x1c
- orr r0, r1
- strb r0, [r2, r4]
- pop {r3-r4}
- bx lr
- nop
-_0202E58C: .word 0x021C59E8
-_0202E590: .word 0x00000DAD
-
- thumb_func_start FUN_0202E594
-FUN_0202E594: ; 0x0202E594
- push {r4-r5}
- ldr r1, _0202E5F0 ; =0x021C59E8
- ldr r0, _0202E5F4 ; =0x00000CB4
- ldr r3, [r1, #0x8]
- mov r2, #0x0
- strb r2, [r3, r0]
- add r3, r0, #0x0
- ldr r5, [r1, #0x8]
- add r3, #0xf9
- ldrb r4, [r5, r3]
- mov r3, #0x1
- bic r4, r3
- add r3, r0, #0x0
- add r3, #0xf9
- strb r4, [r5, r3]
- add r3, r0, #0x0
- ldr r5, [r1, #0x8]
- add r3, #0xf9
- ldrb r4, [r5, r3]
- mov r3, #0x4
- bic r4, r3
- add r3, r0, #0x0
- add r3, #0xf9
- strb r4, [r5, r3]
- add r3, r0, #0x0
- ldr r4, [r1, #0x8]
- add r3, #0xf6
- strb r2, [r4, r3]
- add r3, r0, #0x0
- ldr r5, [r1, #0x8]
- add r3, #0xf9
- ldrb r4, [r5, r3]
- mov r3, #0x10
- bic r4, r3
- add r3, r0, #0x0
- add r3, #0xf9
- strb r4, [r5, r3]
- add r3, r0, #0x0
- ldr r4, [r1, #0x8]
- add r3, #0xf8
- strb r2, [r4, r3]
- ldr r1, [r1, #0x8]
- add r0, #0xf7
- strb r2, [r1, r0]
- pop {r4-r5}
- bx lr
- .balign 4
-_0202E5F0: .word 0x021C59E8
-_0202E5F4: .word 0x00000CB4
-
- thumb_func_start FUN_0202E5F8
-FUN_0202E5F8: ; 0x0202E5F8
- push {r3-r5, lr}
- add r5, r1, #0x0
- add r4, r2, #0x0
- bl FUN_0202E594
- add r0, r5, #0x0
- bl FUN_0202E56C
- bl FUN_0202D2F4
- ldr r0, _0202E65C ; =0x021C59E8
- ldr r1, [r0, #0x8]
- ldr r0, _0202E660 ; =0x00000DAB
- ldrb r0, [r1, r0]
- cmp r0, #0x0
- bne _0202E62A
- ldr r0, _0202E664 ; =FUN_020303BC
- mov r1, #0xe
- bl FUN_0202D0A0
- ldr r0, _0202E65C ; =0x021C59E8
- mov r2, #0x1
- ldr r1, [r0, #0x8]
- ldr r0, _0202E660 ; =0x00000DAB
- strb r2, [r1, r0]
-_0202E62A:
- ldr r0, _0202E65C ; =0x021C59E8
- ldr r3, _0202E668 ; =0x00000DAD
- ldr r1, [r0, #0x8]
- mov r2, #0x20
- ldrb r0, [r1, r3]
- bic r0, r2
- lsl r2, r4, #0x18
- lsr r2, r2, #0x18
- lsl r2, r2, #0x1f
- lsr r2, r2, #0x1a
- orr r0, r2
- strb r0, [r1, r3]
- bl FUN_0202CBD4
- cmp r0, #0x1
- bne _0202E656
- bl FUN_0202CBFC
- cmp r0, #0x0
- beq _0202E656
- mov r0, #0x1
- pop {r3-r5, pc}
-_0202E656:
- mov r0, #0x0
- pop {r3-r5, pc}
- nop
-_0202E65C: .word 0x021C59E8
-_0202E660: .word 0x00000DAB
-_0202E664: .word FUN_020303BC
-_0202E668: .word 0x00000DAD
-
- thumb_func_start FUN_0202E66C
-FUN_0202E66C: ; 0x0202E66C
- push {r4, lr}
- sub sp, #0x8
- add r4, r1, #0x0
- bl FUN_0202E594
- cmp r4, #0x0
- beq _0202E67E
- bl FUN_0202E538
-_0202E67E:
- ldr r0, _0202E6DC ; =0x021C59E8
- ldr r1, [r0, #0x8]
- ldr r0, _0202E6E0 ; =0x00000DAB
- ldrb r0, [r1, r0]
- cmp r0, #0x0
- bne _0202E69C
- ldr r0, _0202E6E4 ; =FUN_02030238
- mov r1, #0xe
- bl FUN_0202D0A0
- ldr r0, _0202E6DC ; =0x021C59E8
- mov r2, #0x1
- ldr r1, [r0, #0x8]
- ldr r0, _0202E6E0 ; =0x00000DAB
- strb r2, [r1, r0]
-_0202E69C:
- bl FUN_0202CBD4
- cmp r0, #0x1
- bne _0202E6D4
- ldr r2, _0202E6E8 ; =0x020EEC40
- add r0, sp, #0x0
- ldrb r3, [r2, #0x0]
- add r1, sp, #0x0
- strb r3, [r0, #0x0]
- ldrb r3, [r2, #0x1]
- strb r3, [r0, #0x1]
- ldrb r3, [r2, #0x2]
- strb r3, [r0, #0x2]
- ldrb r3, [r2, #0x3]
- strb r3, [r0, #0x3]
- ldrb r3, [r2, #0x4]
- ldrb r2, [r2, #0x5]
- strb r3, [r0, #0x4]
- strb r2, [r0, #0x5]
- ldr r0, _0202E6EC ; =FUN_0202E380
- mov r2, #0x0
- bl FUN_0202C570
- cmp r0, #0x0
- beq _0202E6D4
- add sp, #0x8
- mov r0, #0x1
- pop {r4, pc}
-_0202E6D4:
- mov r0, #0x0
- add sp, #0x8
- pop {r4, pc}
- nop
-_0202E6DC: .word 0x021C59E8
-_0202E6E0: .word 0x00000DAB
-_0202E6E4: .word FUN_02030238
-_0202E6E8: .word 0x020EEC40
-_0202E6EC: .word FUN_0202E380
-
- thumb_func_start FUN_0202E6F0
-FUN_0202E6F0: ; 0x0202E6F0
- push {r3, lr}
- ldr r0, _0202E77C ; =0x021C59E8
- ldr r1, [r0, #0x8]
- cmp r1, #0x0
- bne _0202E6FE
- mov r0, #0x1
- pop {r3, pc}
-_0202E6FE:
- ldr r0, _0202E780 ; =0x00000DAC
- ldrb r0, [r1, r0]
- cmp r0, #0x0
- beq _0202E710
- cmp r0, #0x1
- beq _0202E740
- cmp r0, #0x2
- beq _0202E758
- b _0202E776
-_0202E710:
- bl FUN_0202D21C
- cmp r0, #0x0
- beq _0202E728
- bl FUN_0202C770
- ldr r0, _0202E77C ; =0x021C59E8
- mov r2, #0x1
- ldr r1, [r0, #0x8]
- ldr r0, _0202E780 ; =0x00000DAC
- strb r2, [r1, r0]
- b _0202E776
-_0202E728:
- bl FUN_0202D1E4
- cmp r0, #0x0
- bne _0202E776
- bl FUN_0202D100
- ldr r0, _0202E77C ; =0x021C59E8
- mov r2, #0x2
- ldr r1, [r0, #0x8]
- ldr r0, _0202E780 ; =0x00000DAC
- strb r2, [r1, r0]
- b _0202E776
-_0202E740:
- bl FUN_0202D1E4
- cmp r0, #0x0
- bne _0202E776
- bl FUN_0202D100
- ldr r0, _0202E77C ; =0x021C59E8
- mov r2, #0x2
- ldr r1, [r0, #0x8]
- ldr r0, _0202E780 ; =0x00000DAC
- strb r2, [r1, r0]
- b _0202E776
-_0202E758:
- bl FUN_0202D1C8
- cmp r0, #0x0
- beq _0202E764
- mov r0, #0x1
- pop {r3, pc}
-_0202E764:
- bl FUN_0202D200
- cmp r0, #0x0
- beq _0202E776
- ldr r0, _0202E77C ; =0x021C59E8
- mov r2, #0x1
- ldr r1, [r0, #0x8]
- ldr r0, _0202E780 ; =0x00000DAC
- strb r2, [r1, r0]
-_0202E776:
- mov r0, #0x0
- pop {r3, pc}
- nop
-_0202E77C: .word 0x021C59E8
-_0202E780: .word 0x00000DAC
-
- thumb_func_start FUN_0202E784
-FUN_0202E784: ; 0x0202E784
- push {r3, lr}
- ldr r0, _0202E7A8 ; =0x021C59E8
- ldr r2, [r0, #0x8]
- cmp r2, #0x0
- beq _0202E7A2
- ldr r0, _0202E7AC ; =0x00000DAA
- ldrb r1, [r2, r0]
- cmp r1, #0x0
- bne _0202E7A2
- mov r1, #0x1
- strb r1, [r2, r0]
- bl FUN_0202D100
- mov r0, #0x1
- pop {r3, pc}
-_0202E7A2:
- mov r0, #0x0
- pop {r3, pc}
- nop
-_0202E7A8: .word 0x021C59E8
-_0202E7AC: .word 0x00000DAA
-
- thumb_func_start FUN_0202E7B0
-FUN_0202E7B0: ; 0x0202E7B0
- push {r3, lr}
- ldr r1, _0202E7D0 ; =0x021C59E8
- ldr r2, [r1, #0x8]
- cmp r2, #0x0
- beq _0202E7CE
- cmp r0, #0x0
- ldr r0, _0202E7D4 ; =0x00000DAA
- beq _0202E7C6
- mov r1, #0x2
- strb r1, [r2, r0]
- pop {r3, pc}
-_0202E7C6:
- mov r1, #0x0
- strb r1, [r2, r0]
- bl FUN_0202E500
-_0202E7CE:
- pop {r3, pc}
- .balign 4
-_0202E7D0: .word 0x021C59E8
-_0202E7D4: .word 0x00000DAA
-
- thumb_func_start FUN_0202E7D8
-FUN_0202E7D8: ; 0x0202E7D8
- push {r3, lr}
- ldr r0, _0202E804 ; =0x021C59E8
- ldr r1, [r0, #0x8]
- ldr r0, _0202E808 ; =0x00000CBC
- ldr r0, [r1, r0]
- bl FUN_02016A18
- ldr r0, _0202E804 ; =0x021C59E8
- ldr r1, [r0, #0x8]
- ldr r0, _0202E80C ; =0x00000CA4
- ldr r0, [r1, r0]
- bl FUN_02016A18
- ldr r0, _0202E804 ; =0x021C59E8
- ldr r0, [r0, #0x8]
- bl FUN_02016A18
- ldr r0, _0202E804 ; =0x021C59E8
- mov r1, #0x0
- str r1, [r0, #0x8]
- pop {r3, pc}
- nop
-_0202E804: .word 0x021C59E8
-_0202E808: .word 0x00000CBC
-_0202E80C: .word 0x00000CA4
-
- thumb_func_start FUN_0202E810
-FUN_0202E810: ; 0x0202E810
- push {r4, lr}
- bl FUN_02030F40
- cmp r0, #0x0
- bne _0202E81E
- mov r0, #0x0
- pop {r4, pc}
-_0202E81E:
- ldr r1, _0202E83C ; =0x021C59E8
- mov r0, #0x0
- ldr r4, [r1, #0x8]
- ldr r1, _0202E840 ; =0x00000C84
- add r3, r0, #0x0
-_0202E828:
- ldrh r2, [r4, r1]
- cmp r2, #0x0
- beq _0202E830
- add r0, r0, #0x1
-_0202E830:
- add r3, r3, #0x1
- add r4, r4, #0x2
- cmp r3, #0x10
- blt _0202E828
- pop {r4, pc}
- nop
-_0202E83C: .word 0x021C59E8
-_0202E840: .word 0x00000C84
-
- thumb_func_start FUN_0202E844
-FUN_0202E844: ; 0x0202E844
- push {r3-r5, lr}
- ldr r1, _0202E870 ; =0x021C59E8
- mov r4, #0x0
- ldr r5, [r1, #0x8]
- ldr r1, _0202E874 ; =0x00000C84
- add r3, r4, #0x0
-_0202E850:
- ldrh r2, [r5, r1]
- cmp r2, #0x0
- beq _0202E860
- cmp r4, r0
- bne _0202E85E
- add r0, r3, #0x0
- pop {r3-r5, pc}
-_0202E85E:
- add r4, r4, #0x1
-_0202E860:
- add r3, r3, #0x1
- add r5, r5, #0x2
- cmp r3, #0x10
- blt _0202E850
- bl ErrorHandling
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-_0202E870: .word 0x021C59E8
-_0202E874: .word 0x00000C84
-
- thumb_func_start FUN_0202E878
-FUN_0202E878: ; 0x0202E878
- ldr r0, _0202E884 ; =0x021C59E8
- ldr r1, [r0, #0x8]
- ldr r0, _0202E888 ; =0x00000CB4
- ldrb r0, [r1, r0]
- bx lr
- nop
-_0202E884: .word 0x021C59E8
-_0202E888: .word 0x00000CB4
-
- thumb_func_start FUN_0202E88C
-FUN_0202E88C: ; 0x0202E88C
- ldr r0, _0202E898 ; =0x021C59E8
- mov r2, #0x0
- ldr r1, [r0, #0x8]
- ldr r0, _0202E89C ; =0x00000CB4
- strb r2, [r1, r0]
- bx lr
- .balign 4
-_0202E898: .word 0x021C59E8
-_0202E89C: .word 0x00000CB4
-
- thumb_func_start FUN_0202E8A0
-FUN_0202E8A0: ; 0x0202E8A0
- ldr r1, _0202E8C8 ; =0x021C59E8
- ldr r3, [r1, #0x8]
- lsl r1, r0, #0x1
- add r2, r3, r1
- ldr r1, _0202E8CC ; =0x00000C84
- ldrh r1, [r2, r1]
- cmp r1, #0x0
- beq _0202E8C2
- mov r1, #0xc0
- mul r1, r0
- add r0, r3, r1
- add r0, #0xaa
- ldrb r0, [r0, #0x0]
- cmp r0, #0x0
- bne _0202E8C4
- mov r0, #0x1
- bx lr
-_0202E8C2:
- mov r0, #0x0
-_0202E8C4:
- bx lr
- nop
-_0202E8C8: .word 0x021C59E8
-_0202E8CC: .word 0x00000C84
-
- thumb_func_start FUN_0202E8D0
-FUN_0202E8D0: ; 0x0202E8D0
- push {r3-r5, lr}
- add r5, r0, #0x0
- mov r4, #0xf
-_0202E8D6:
- add r0, r4, #0x0
- bl FUN_0202E8A0
- cmp r0, r5
- ble _0202E8E8
- cmp r0, #0x8
- bge _0202E8E8
- add r0, r4, #0x0
- pop {r3-r5, pc}
-_0202E8E8:
- sub r4, r4, #0x1
- bpl _0202E8D6
- mov r0, #0x0
- mvn r0, r0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0202E8F4
-FUN_0202E8F4: ; 0x0202E8F4
- push {r3-r7, lr}
- bl FUN_0202E810
- cmp r0, #0x0
- bne _0202E904
- mov r0, #0x0
- mvn r0, r0
- pop {r3-r7, pc}
-_0202E904:
- mov r5, #0x2d
- ldr r7, _0202E948 ; =0x021C59E8
- mov r6, #0xf
- mov r4, #0x1e
- lsl r5, r5, #0x6
-_0202E90E:
- ldr r0, [r7, #0x8]
- ldr r1, _0202E94C ; =0x00000C84
- add r2, r0, r4
- ldrh r1, [r2, r1]
- cmp r1, #0x0
- beq _0202E938
- add r0, #0x58
- add r0, r0, r5
- bl FUN_0202EFE4
- cmp r0, #0x0
- beq _0202E938
- add r0, r6, #0x0
- bl FUN_0202E8A0
- cmp r0, #0x1
- ble _0202E938
- cmp r0, #0x8
- bge _0202E938
- add r0, r6, #0x0
- pop {r3-r7, pc}
-_0202E938:
- sub r4, r4, #0x2
- sub r5, #0xc0
- sub r6, r6, #0x1
- bpl _0202E90E
- mov r0, #0x0
- mvn r0, r0
- pop {r3-r7, pc}
- nop
-_0202E948: .word 0x021C59E8
-_0202E94C: .word 0x00000C84
-
- thumb_func_start FUN_0202E950
-FUN_0202E950: ; 0x0202E950
- push {r3-r7, lr}
- bl FUN_0202E810
- cmp r0, #0x0
- bne _0202E960
- mov r0, #0x0
- mvn r0, r0
- pop {r3-r7, pc}
-_0202E960:
- mov r5, #0x2d
- ldr r7, _0202E9A4 ; =0x021C59E8
- mov r6, #0xf
- mov r4, #0x1e
- lsl r5, r5, #0x6
-_0202E96A:
- ldr r0, [r7, #0x8]
- ldr r1, _0202E9A8 ; =0x00000C84
- add r2, r0, r4
- ldrh r1, [r2, r1]
- cmp r1, #0x0
- beq _0202E986
- add r0, #0x58
- add r0, r0, r5
- bl FUN_0202EFE4
- cmp r0, #0x0
- beq _0202E986
- add r0, r6, #0x0
- pop {r3-r7, pc}
-_0202E986:
- sub r4, r4, #0x2
- sub r5, #0xc0
- sub r6, r6, #0x1
- bpl _0202E96A
- mov r0, #0x1
- bl FUN_0202E8D0
- mov r1, #0x0
- mvn r1, r1
- cmp r0, r1
- bne _0202E9A2
- mov r0, #0x0
- bl FUN_0202E8D0
-_0202E9A2:
- pop {r3-r7, pc}
- .balign 4
-_0202E9A4: .word 0x021C59E8
-_0202E9A8: .word 0x00000C84
-
- thumb_func_start FUN_0202E9AC
-FUN_0202E9AC: ; 0x0202E9AC
- push {r4-r6, lr}
- add r4, r1, #0x0
- ldr r1, _0202E9E0 ; =0x021C59E8
- mov r5, #0x0
- ldr r6, [r1, #0x8]
- ldr r1, _0202E9E4 ; =0x00000C84
- add r3, r5, #0x0
-_0202E9BA:
- ldrh r2, [r6, r1]
- cmp r2, #0x0
- beq _0202E9D4
- cmp r0, r5
- bne _0202E9D2
- add r0, r3, #0x0
- bl FUN_0202EF84
- add r1, r4, #0x0
- bl FUN_0202393C
- pop {r4-r6, pc}
-_0202E9D2:
- add r5, r5, #0x1
-_0202E9D4:
- add r3, r3, #0x1
- add r6, r6, #0x2
- cmp r3, #0x10
- blt _0202E9BA
- pop {r4-r6, pc}
- nop
-_0202E9E0: .word 0x021C59E8
-_0202E9E4: .word 0x00000C84
-
- thumb_func_start FUN_0202E9E8
-FUN_0202E9E8: ; 0x0202E9E8
- push {r3-r5, lr}
- add r5, r0, #0x0
- bl FUN_0202CBD4
- cmp r0, #0x2
- bne _0202E9FC
- bl FUN_0202C770
- mov r0, #0x0
- pop {r3-r5, pc}
-_0202E9FC:
- bl FUN_0202CBD4
- cmp r0, #0x1
- bne _0202EA48
- bl FUN_02033534
- mov r1, #0xc0
- add r4, r5, #0x0
- mul r4, r1
- ldr r1, _0202EA4C ; =0x021C59E8
- ldr r3, [r1, #0x8]
- add r1, r3, r4
- add r1, #0x8a
- ldrh r2, [r1, #0x0]
- ldr r1, _0202EA50 ; =0x00000DA8
- strb r2, [r3, r1]
- bl FUN_0202D8B0
- cmp r0, #0x0
- beq _0202EA36
- ldr r1, _0202EA4C ; =0x021C59E8
- mov r0, #0x1
- ldr r1, [r1, #0x8]
- mov r2, #0x0
- add r1, #0x58
- add r1, r1, r4
- bl FUN_0202C4D8
- b _0202EA44
-_0202EA36:
- ldr r1, _0202EA4C ; =0x021C59E8
- mov r0, #0x1
- ldr r1, [r1, #0x8]
- add r1, #0x54
- add r1, r1, r4
- bl FUN_0202D034
-_0202EA44:
- mov r0, #0x1
- pop {r3-r5, pc}
-_0202EA48:
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-_0202EA4C: .word 0x021C59E8
-_0202EA50: .word 0x00000DA8
-
- thumb_func_start FUN_0202EA54
-FUN_0202EA54: ; 0x0202EA54
- push {r4-r7}
- mov r4, #0x0
- ldr r1, _0202EA90 ; =0x021C59E8
- ldr r0, _0202EA94 ; =0x00000C84
- add r5, r4, #0x0
- mov r2, #0x1
-_0202EA60:
- ldr r3, [r1, #0x8]
- add r3, r3, r5
- ldrh r6, [r3, r0]
- cmp r6, #0x0
- beq _0202EA84
- beq _0202EA84
- ldr r6, _0202EA94 ; =0x00000C84
- ldrh r6, [r3, r6]
- sub r7, r6, #0x1
- ldr r6, _0202EA94 ; =0x00000C84
- strh r7, [r3, r6]
- ldr r3, [r1, #0x8]
- add r7, r3, r5
- ldrh r6, [r7, r6]
- cmp r6, #0x0
- bne _0202EA84
- ldr r6, _0202EA98 ; =0x00000CB4
- strb r2, [r3, r6]
-_0202EA84:
- add r4, r4, #0x1
- add r5, r5, #0x2
- cmp r4, #0x10
- blt _0202EA60
- pop {r4-r7}
- bx lr
- .balign 4
-_0202EA90: .word 0x021C59E8
-_0202EA94: .word 0x00000C84
-_0202EA98: .word 0x00000CB4
-
- thumb_func_start FUN_0202EA9C
-FUN_0202EA9C: ; 0x0202EA9C
- push {r3-r5, lr}
- bl FUN_02033534
- add r5, r0, #0x0
- bl FUN_0202EF70
- add r4, r0, #0x0
- cmp r5, #0xf
- beq _0202EB24
- ldr r0, _0202EB6C ; =0x021C59E8
- ldr r1, [r0, #0x8]
- ldr r0, _0202EB70 ; =0x00000CC4
- add r5, r1, r0
- bl FUN_02023AC4
- cmp r0, #0x20
- ble _0202EAC2
- bl ErrorHandling
-_0202EAC2:
- bl FUN_02023924
- cmp r0, #0x20
- beq _0202EACE
- bl ErrorHandling
-_0202EACE:
- bl FUN_02023924
- add r1, r5, #0x0
- add r2, r0, #0x0
- add r0, r4, #0x0
- add r1, #0x10
- bl MI_CpuCopy8
- bl FUN_02023AC4
- add r2, r0, #0x0
- ldr r0, _0202EB6C ; =0x021C59E8
- ldr r1, [r0, #0x8]
- ldr r0, _0202EB74 ; =0x00000CBC
- ldr r0, [r1, r0]
- add r1, r5, #0x0
- add r1, #0x30
- bl MI_CpuCopy8
- add r0, r4, #0x0
- bl FUN_020239BC
- str r0, [r5, #0x0]
- bl FUN_02033534
- strb r0, [r5, #0x4]
- bl FUN_0203354C
- strb r0, [r5, #0x5]
- ldr r0, _0202EB6C ; =0x021C59E8
- mov r2, #0x8
- ldr r1, [r0, #0x8]
- ldr r0, _0202EB78 ; =0x00000CA8
- add r0, r1, r0
- add r1, r5, #0x0
- add r1, #0x8
- bl MI_CpuCopy8
- bl FUN_0202D358
- add r5, #0x54
- strb r0, [r5, #0x0]
- b _0202EB4E
-_0202EB24:
- ldr r1, _0202EB6C ; =0x021C59E8
- ldr r4, [r1, #0x8]
- ldr r1, _0202EB70 ; =0x00000CC4
- add r5, r4, r1
- bl FUN_020239BC
- ldr r1, _0202EB70 ; =0x00000CC4
- str r0, [r4, r1]
- bl FUN_02033534
- strb r0, [r5, #0x4]
- bl FUN_0203354C
- strb r0, [r5, #0x5]
- ldr r0, _0202EB6C ; =0x021C59E8
- add r5, #0x8
- ldr r0, [r0, #0x8]
- add r1, r5, #0x0
- mov r2, #0x54
- bl MI_CpuCopy8
-_0202EB4E:
- ldr r0, _0202EB6C ; =0x021C59E8
- ldr r1, [r0, #0x8]
- ldr r0, _0202EB70 ; =0x00000CC4
- add r0, r1, r0
- mov r1, #0x5c
- bl DC_FlushRange
- ldr r0, _0202EB6C ; =0x021C59E8
- ldr r1, [r0, #0x8]
- ldr r0, _0202EB70 ; =0x00000CC4
- add r0, r1, r0
- mov r1, #0x5c
- bl FUN_0202CB7C
- pop {r3-r5, pc}
- .balign 4
-_0202EB6C: .word 0x021C59E8
-_0202EB70: .word 0x00000CC4
-_0202EB74: .word 0x00000CBC
-_0202EB78: .word 0x00000CA8
-
- thumb_func_start FUN_0202EB7C
-FUN_0202EB7C: ; 0x0202EB7C
- push {r4, lr}
- ldr r0, _0202EBC8 ; =0x021C59E8
- ldr r1, [r0, #0x8]
- ldr r0, _0202EBCC ; =0x00000CC4
- add r4, r1, r0
- bl FUN_0202EDB8
- ldrb r1, [r4, #0x6]
- cmp r1, r0
- beq _0202EBC6
- bl FUN_0202EDB8
- strb r0, [r4, #0x6]
- ldr r0, _0202EBC8 ; =0x021C59E8
- ldr r1, [r0, #0x8]
- ldr r0, _0202EBCC ; =0x00000CC4
- add r0, r1, r0
- mov r1, #0x5c
- bl DC_FlushRange
- ldr r0, _0202EBC8 ; =0x021C59E8
- ldr r1, [r0, #0x8]
- ldr r0, _0202EBCC ; =0x00000CC4
- add r0, r1, r0
- mov r1, #0x5c
- bl FUN_0202CB7C
- ldr r3, _0202EBC8 ; =0x021C59E8
- ldr r2, _0202EBCC ; =0x00000CC4
- ldr r4, [r3, #0x8]
- ldrh r3, [r3, #0x0]
- add r0, r4, r2
- sub r2, r2, #0x4
- ldr r2, [r4, r2]
- mov r1, #0x5c
- bl FUN_0202D240
-_0202EBC6:
- pop {r4, pc}
- .balign 4
-_0202EBC8: .word 0x021C59E8
-_0202EBCC: .word 0x00000CC4
-
- thumb_func_start FUN_0202EBD0
-FUN_0202EBD0: ; 0x0202EBD0
- push {r3-r5, lr}
- sub sp, #0x8
- add r4, r0, #0x0
- bl FUN_0202CBD4
- add r5, r0, #0x0
- bl FUN_0202DF54
- bl FUN_0202EB7C
- bl FUN_0202D19C
- cmp r0, #0x0
- bne _0202EC0C
- bl FUN_0202EE24
- cmp r0, #0x0
- bne _0202EC0C
- ldr r0, _0202ED50 ; =0x021C59E8
- ldr r2, [r0, #0x8]
- ldr r0, _0202ED54 ; =0x00000DAD
- ldrb r1, [r2, r0]
- lsl r3, r1, #0x1d
- lsr r3, r3, #0x1f
- beq _0202EC0C
- mov r3, #0x1
- bic r1, r3
- mov r3, #0x1
- orr r1, r3
- strb r1, [r2, r0]
-_0202EC0C:
- ldr r0, _0202ED50 ; =0x021C59E8
- ldr r1, _0202ED58 ; =0x0000FFFF
- ldr r3, [r0, #0x8]
- ldr r0, _0202ED5C ; =0x00000DA6
- ldrh r2, [r3, r0]
- cmp r2, r1
- bne _0202EC1C
- strh r4, [r3, r0]
-_0202EC1C:
- ldr r0, _0202ED50 ; =0x021C59E8
- ldr r2, [r0, #0x8]
- ldr r0, _0202ED54 ; =0x00000DAD
- ldrb r1, [r2, r0]
- lsl r3, r1, #0x1e
- lsr r3, r3, #0x1f
- beq _0202EC3C
- sub r3, r0, #0x7
- ldrh r3, [r2, r3]
- cmp r3, r4
- bls _0202EC3C
- mov r3, #0x1
- bic r1, r3
- mov r3, #0x1
- orr r1, r3
- strb r1, [r2, r0]
-_0202EC3C:
- bl FUN_0202CBE8
- cmp r0, #0x19
- bne _0202EC4A
- mov r0, #0x0
- bl FUN_020335D0
-_0202EC4A:
- cmp r5, #0x9
- bhi _0202ED4C
- add r0, r5, r5
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0202EC5A: ; jump table (using 16-bit offset)
- .short _0202EC6E - _0202EC5A - 2; case 0
- .short _0202EC8E - _0202EC5A - 2; case 1
- .short _0202ED4C - _0202EC5A - 2; case 2
- .short _0202ED4C - _0202EC5A - 2; case 3
- .short _0202ED4C - _0202EC5A - 2; case 4
- .short _0202ED4C - _0202EC5A - 2; case 5
- .short _0202ED4C - _0202EC5A - 2; case 6
- .short _0202ECD2 - _0202EC5A - 2; case 7
- .short _0202ECB8 - _0202EC5A - 2; case 8
- .short _0202ECB8 - _0202EC5A - 2; case 9
-_0202EC6E:
- ldr r0, _0202ED50 ; =0x021C59E8
- ldr r2, [r0, #0x8]
- ldr r0, _0202ED60 ; =0x00000DAA
- ldrb r1, [r2, r0]
- cmp r1, #0x1
- bne _0202EC82
- bl FUN_0202E7D8
- add sp, #0x8
- pop {r3-r5, pc}
-_0202EC82:
- cmp r1, #0x2
- bne _0202ED4C
- mov r1, #0x3
- strb r1, [r2, r0]
- add sp, #0x8
- pop {r3-r5, pc}
-_0202EC8E:
- ldr r0, _0202ED50 ; =0x021C59E8
- ldr r1, [r0, #0x8]
- ldr r0, _0202ED60 ; =0x00000DAA
- ldrb r0, [r1, r0]
- cmp r0, #0x1
- bne _0202ECA2
- bl FUN_0202D178
- cmp r0, #0x0
- bne _0202ED4C
-_0202ECA2:
- ldr r0, _0202ED50 ; =0x021C59E8
- ldr r1, [r0, #0x8]
- ldr r0, _0202ED60 ; =0x00000DAA
- ldrb r0, [r1, r0]
- cmp r0, #0x2
- bne _0202ED4C
- bl FUN_0202D178
- add sp, #0x8
- cmp r0, #0x0
- pop {r3-r5, pc}
-_0202ECB8:
- ldr r0, _0202ED50 ; =0x021C59E8
- ldr r3, [r0, #0x8]
- cmp r3, #0x0
- beq _0202ED4C
- ldr r1, _0202ED54 ; =0x00000DAD
- mov r0, #0x1
- ldrb r2, [r3, r1]
- add sp, #0x8
- bic r2, r0
- mov r0, #0x1
- orr r0, r2
- strb r0, [r3, r1]
- pop {r3-r5, pc}
-_0202ECD2:
- bl FUN_0202CDA4
- ldr r3, _0202ED50 ; =0x021C59E8
- ldr r2, _0202ED64 ; =0x00000DA9
- ldr r4, [r3, #0x8]
- ldrb r1, [r4, r2]
- cmp r1, #0x0
- bne _0202ECEE
- sub r1, r2, #0x5
- strh r0, [r4, r1]
- ldr r0, [r3, #0x8]
- mov r1, #0x5
- strb r1, [r0, r2]
- b _0202ECF2
-_0202ECEE:
- sub r0, r1, #0x1
- strb r0, [r4, r2]
-_0202ECF2:
- ldr r1, _0202ED50 ; =0x021C59E8
- ldr r0, _0202ED68 ; =0x00000DA4
- ldr r2, [r1, #0x8]
- ldrh r5, [r2, r0]
- add r0, #0x9
- ldrb r0, [r2, r0]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1f
- beq _0202ED0A
- ldrh r0, [r1, #0x0]
- add r0, r0, #0x1
- strh r0, [r1, #0x0]
-_0202ED0A:
- bl FUN_0202EA9C
- bl FUN_02033534
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_0202D858
- add r4, r0, #0x0
- bl FUN_02033534
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_0202EEE8
- str r0, [sp, #0x0]
- ldr r1, _0202ED50 ; =0x021C59E8
- ldr r0, _0202ED54 ; =0x00000DAD
- ldr r2, [r1, #0x8]
- add r3, r4, #0x0
- ldrb r0, [r2, r0]
- add r2, r5, #0x0
- lsl r0, r0, #0x1a
- lsr r0, r0, #0x1f
- str r0, [sp, #0x4]
- ldrh r1, [r1, #0x0]
- mov r0, #0x0
- bl FUN_0202CF84
- ldr r0, _0202ED50 ; =0x021C59E8
- ldr r1, [r0, #0x8]
- ldr r0, _0202ED6C ; =0x00000DA8
- strb r5, [r1, r0]
-_0202ED4C:
- add sp, #0x8
- pop {r3-r5, pc}
- .balign 4
-_0202ED50: .word 0x021C59E8
-_0202ED54: .word 0x00000DAD
-_0202ED58: .word 0x0000FFFF
-_0202ED5C: .word 0x00000DA6
-_0202ED60: .word 0x00000DAA
-_0202ED64: .word 0x00000DA9
-_0202ED68: .word 0x00000DA4
-_0202ED6C: .word 0x00000DA8
-
- thumb_func_start FUN_0202ED70
-FUN_0202ED70: ; 0x0202ED70
- push {r3, lr}
- ldr r1, _0202ED80 ; =0x021C59E8
- ldr r1, [r1, #0x8]
- cmp r1, #0x0
- beq _0202ED7E
- bl FUN_0202EBD0
-_0202ED7E:
- pop {r3, pc}
- .balign 4
-_0202ED80: .word 0x021C59E8
-
- thumb_func_start FUN_0202ED84
-FUN_0202ED84: ; 0x0202ED84
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, _0202EDB4 ; =0x021C59E8
- ldr r0, [r0, #0x8]
- cmp r0, #0x0
- bne _0202ED94
- mov r0, #0x0
- pop {r4, pc}
-_0202ED94:
- bl FUN_0202CBD4
- cmp r0, #0x4
- beq _0202EDA0
- mov r0, #0x0
- pop {r4, pc}
-_0202EDA0:
- bl FUN_0202CB8C
- mov r2, #0x1
- add r1, r2, #0x0
- lsl r1, r4
- tst r0, r1
- bne _0202EDB0
- mov r2, #0x0
-_0202EDB0:
- add r0, r2, #0x0
- pop {r4, pc}
- .balign 4
-_0202EDB4: .word 0x021C59E8
-
- thumb_func_start FUN_0202EDB8
-FUN_0202EDB8: ; 0x0202EDB8
- push {r3-r5, lr}
- mov r4, #0x0
- add r5, r4, #0x0
-_0202EDBE:
- lsl r0, r5, #0x10
- lsr r0, r0, #0x10
- bl FUN_0202ED84
- cmp r0, #0x0
- beq _0202EDCC
- add r4, r4, #0x1
-_0202EDCC:
- add r5, r5, #0x1
- cmp r5, #0x8
- blt _0202EDBE
- add r0, r4, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0202EDD8
-FUN_0202EDD8: ; 0x0202EDD8
- ldr r0, _0202EDF0 ; =0x021C59E8
- ldr r1, [r0, #0x8]
- cmp r1, #0x0
- beq _0202EDEC
- ldr r0, _0202EDF4 ; =0x00000DAA
- ldrb r0, [r1, r0]
- cmp r0, #0x3
- bne _0202EDEC
- mov r0, #0x1
- bx lr
-_0202EDEC:
- mov r0, #0x0
- bx lr
- .balign 4
-_0202EDF0: .word 0x021C59E8
-_0202EDF4: .word 0x00000DAA
-
- thumb_func_start FUN_0202EDF8
-FUN_0202EDF8: ; 0x0202EDF8
- ldr r0, _0202EE08 ; =0x021C59E8
- ldr r0, [r0, #0x8]
- cmp r0, #0x0
- beq _0202EE04
- mov r0, #0x1
- bx lr
-_0202EE04:
- mov r0, #0x0
- bx lr
- .balign 4
-_0202EE08: .word 0x021C59E8
-
- thumb_func_start FUN_0202EE0C
-FUN_0202EE0C: ; 0x0202EE0C
- push {r3, lr}
- ldr r0, _0202EE20 ; =0x021C59E8
- ldr r0, [r0, #0x8]
- cmp r0, #0x0
- beq _0202EE1C
- bl FUN_0202D1C8
- pop {r3, pc}
-_0202EE1C:
- mov r0, #0x1
- pop {r3, pc}
- .balign 4
-_0202EE20: .word 0x021C59E8
-
- thumb_func_start FUN_0202EE24
-FUN_0202EE24: ; 0x0202EE24
- push {r3, lr}
- ldr r0, _0202EE3C ; =0x021C59E8
- ldr r0, [r0, #0x8]
- cmp r0, #0x0
- beq _0202EE38
- bl FUN_0202CB8C
- ldr r1, _0202EE40 ; =0x0000FFFE
- and r0, r1
- pop {r3, pc}
-_0202EE38:
- mov r0, #0x0
- pop {r3, pc}
- .balign 4
-_0202EE3C: .word 0x021C59E8
-_0202EE40: .word 0x0000FFFE
-
- thumb_func_start FUN_0202EE44
-FUN_0202EE44: ; 0x0202EE44
- push {r3, lr}
- bl FUN_0202EE60
- cmp r0, #0x0
- beq _0202EE5A
- bl FUN_0202CBE8
- cmp r0, #0x14
- bne _0202EE5A
- mov r0, #0x1
- pop {r3, pc}
-_0202EE5A:
- mov r0, #0x0
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_0202EE60
-FUN_0202EE60: ; 0x0202EE60
- ldr r0, _0202EE7C ; =0x021C59E8
- ldr r1, [r0, #0x8]
- cmp r1, #0x0
- beq _0202EE76
- ldr r0, _0202EE80 ; =0x00000DAD
- ldrb r0, [r1, r0]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- beq _0202EE76
- mov r0, #0x1
- bx lr
-_0202EE76:
- mov r0, #0x0
- bx lr
- nop
-_0202EE7C: .word 0x021C59E8
-_0202EE80: .word 0x00000DAD
-
- thumb_func_start FUN_0202EE84
-FUN_0202EE84: ; 0x0202EE84
- push {r3-r4}
- ldr r1, _0202EEA8 ; =0x021C59E8
- ldr r2, [r1, #0x8]
- cmp r2, #0x0
- beq _0202EEA2
- ldr r4, _0202EEAC ; =0x00000DAD
- lsl r0, r0, #0x18
- ldrb r1, [r2, r4]
- lsr r0, r0, #0x18
- mov r3, #0x4
- lsl r0, r0, #0x1f
- bic r1, r3
- lsr r0, r0, #0x1d
- orr r0, r1
- strb r0, [r2, r4]
-_0202EEA2:
- pop {r3-r4}
- bx lr
- nop
-_0202EEA8: .word 0x021C59E8
-_0202EEAC: .word 0x00000DAD
-
- thumb_func_start FUN_0202EEB0
-FUN_0202EEB0: ; 0x0202EEB0
- push {r4-r5}
- ldr r5, _0202EEDC ; =0x021C59E8
- ldr r2, [r5, #0x8]
- cmp r2, #0x0
- beq _0202EED6
- ldr r4, _0202EEE0 ; =0x00000DAD
- lsl r0, r0, #0x18
- ldrb r1, [r2, r4]
- lsr r0, r0, #0x18
- mov r3, #0x2
- lsl r0, r0, #0x1f
- bic r1, r3
- lsr r0, r0, #0x1e
- orr r0, r1
- strb r0, [r2, r4]
- ldr r2, _0202EEE4 ; =0x0000FFFF
- ldr r1, [r5, #0x8]
- sub r0, r4, #0x7
- strh r2, [r1, r0]
-_0202EED6:
- pop {r4-r5}
- bx lr
- nop
-_0202EEDC: .word 0x021C59E8
-_0202EEE0: .word 0x00000DAD
-_0202EEE4: .word 0x0000FFFF
-
- thumb_func_start FUN_0202EEE8
-FUN_0202EEE8: ; 0x0202EEE8
- push {r3-r5, lr}
- add r5, r0, #0x0
- bl WM_GetDispersionBeaconPeriod
- add r4, r0, #0x0
- cmp r5, #0x1a
- blo _0202EEFA
- bl ErrorHandling
-_0202EEFA:
- cmp r5, #0xa
- bne _0202EF04
- lsl r0, r4, #0xe
- lsr r0, r0, #0x10
- pop {r3-r5, pc}
-_0202EF04:
- cmp r5, #0x9
- beq _0202EF0C
- cmp r5, #0xd
- bne _0202EF12
-_0202EF0C:
- lsl r0, r4, #0xe
- lsr r0, r0, #0x10
- pop {r3-r5, pc}
-_0202EF12:
- add r0, r4, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0202EF18
-FUN_0202EF18: ; 0x0202EF18
- ldr r1, _0202EF3C ; =0x021C59E8
- ldr r3, [r1, #0x8]
- cmp r3, #0x0
- beq _0202EF36
- lsl r1, r0, #0x1
- add r2, r3, r1
- ldr r1, _0202EF40 ; =0x00000C84
- ldrh r1, [r2, r1]
- cmp r1, #0x0
- beq _0202EF36
- mov r1, #0xc0
- add r3, #0x54
- mul r1, r0
- add r0, r3, r1
- bx lr
-_0202EF36:
- mov r0, #0x0
- bx lr
- nop
-_0202EF3C: .word 0x021C59E8
-_0202EF40: .word 0x00000C84
-
- thumb_func_start FUN_0202EF44
-FUN_0202EF44: ; 0x0202EF44
- ldr r1, _0202EF68 ; =0x021C59E8
- ldr r3, [r1, #0x8]
- cmp r3, #0x0
- beq _0202EF62
- lsl r1, r0, #0x1
- add r2, r3, r1
- ldr r1, _0202EF6C ; =0x00000C84
- ldrh r1, [r2, r1]
- cmp r1, #0x0
- beq _0202EF62
- mov r1, #0xc0
- add r3, #0xa4
- mul r1, r0
- add r0, r3, r1
- bx lr
-_0202EF62:
- mov r0, #0x0
- bx lr
- nop
-_0202EF68: .word 0x021C59E8
-_0202EF6C: .word 0x00000C84
-
- thumb_func_start FUN_0202EF70
-FUN_0202EF70: ; 0x0202EF70
- ldr r0, _0202EF7C ; =0x021C59E8
- ldr r1, [r0, #0x8]
- ldr r0, _0202EF80 ; =0x00000CB8
- ldr r0, [r1, r0]
- bx lr
- nop
-_0202EF7C: .word 0x021C59E8
-_0202EF80: .word 0x00000CB8
-
- thumb_func_start FUN_0202EF84
-FUN_0202EF84: ; 0x0202EF84
- ldr r1, _0202EFA4 ; =0x021C59E8
- ldr r3, [r1, #0x8]
- lsl r1, r0, #0x1
- add r2, r3, r1
- ldr r1, _0202EFA8 ; =0x00000C84
- ldrh r1, [r2, r1]
- cmp r1, #0x0
- bne _0202EF98
- mov r0, #0x0
- bx lr
-_0202EF98:
- mov r1, #0xc0
- add r3, #0xa4
- mul r1, r0
- add r0, r3, r1
- add r0, #0x10
- bx lr
- .balign 4
-_0202EFA4: .word 0x021C59E8
-_0202EFA8: .word 0x00000C84
-
- thumb_func_start FUN_0202EFAC
-FUN_0202EFAC: ; 0x0202EFAC
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldr r0, _0202EFDC ; =0x021C59E8
- add r4, r1, #0x0
- ldr r0, [r0, #0x8]
- cmp r0, #0x0
- beq _0202EFD8
- cmp r4, #0x8
- blt _0202EFC2
- bl ErrorHandling
-_0202EFC2:
- ldr r1, _0202EFDC ; =0x021C59E8
- add r0, r5, #0x0
- ldr r2, [r1, #0x8]
- ldr r1, _0202EFE0 ; =0x00000C54
- add r3, r2, r1
- mov r2, #0x6
- add r1, r4, #0x0
- mul r1, r2
- add r1, r3, r1
- bl MI_CpuCopy8
-_0202EFD8:
- pop {r3-r5, pc}
- nop
-_0202EFDC: .word 0x021C59E8
-_0202EFE0: .word 0x00000C54
-
- thumb_func_start FUN_0202EFE4
-FUN_0202EFE4: ; 0x0202EFE4
- push {r4-r5}
- ldr r2, _0202F034 ; =0x021C59E8
- mov r1, #0x0
- ldr r3, [r2, #0x8]
- ldr r2, _0202F038 ; =0x00000C54
- add r2, r3, r2
- ldrb r3, [r0, #0x0]
-_0202EFF2:
- ldrb r4, [r2, #0x0]
- cmp r4, r3
- bne _0202F026
- ldrb r5, [r2, #0x1]
- ldrb r4, [r0, #0x1]
- cmp r5, r4
- bne _0202F026
- ldrb r5, [r2, #0x2]
- ldrb r4, [r0, #0x2]
- cmp r5, r4
- bne _0202F026
- ldrb r5, [r2, #0x3]
- ldrb r4, [r0, #0x3]
- cmp r5, r4
- bne _0202F026
- ldrb r5, [r2, #0x4]
- ldrb r4, [r0, #0x4]
- cmp r5, r4
- bne _0202F026
- ldrb r5, [r2, #0x5]
- ldrb r4, [r0, #0x5]
- cmp r5, r4
- bne _0202F026
- mov r0, #0x1
- pop {r4-r5}
- bx lr
-_0202F026:
- add r1, r1, #0x1
- add r2, r2, #0x6
- cmp r1, #0x8
- blt _0202EFF2
- mov r0, #0x0
- pop {r4-r5}
- bx lr
- .balign 4
-_0202F034: .word 0x021C59E8
-_0202F038: .word 0x00000C54
-
- thumb_func_start FUN_0202F03C
-FUN_0202F03C: ; 0x0202F03C
- ldr r0, _0202F054 ; =0x021C59E8
- ldr r1, [r0, #0x8]
- cmp r1, #0x0
- beq _0202F04E
- ldr r0, _0202F058 ; =0x00000DAD
- ldrb r0, [r1, r0]
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x1f
- bx lr
-_0202F04E:
- mov r0, #0x0
- bx lr
- nop
-_0202F054: .word 0x021C59E8
-_0202F058: .word 0x00000DAD
-
- thumb_func_start FUN_0202F05C
-FUN_0202F05C: ; 0x0202F05C
- ldr r0, _0202F070 ; =0x021C59E8
- ldr r3, [r0, #0x8]
- cmp r3, #0x0
- beq _0202F06E
- ldr r1, _0202F074 ; =0x00000DAD
- mov r0, #0x10
- ldrb r2, [r3, r1]
- orr r0, r2
- strb r0, [r3, r1]
-_0202F06E:
- bx lr
- .balign 4
-_0202F070: .word 0x021C59E8
-_0202F074: .word 0x00000DAD
-
- thumb_func_start FUN_0202F078
-FUN_0202F078: ; 0x0202F078
- ldr r1, _0202F088 ; =0x021C59E8
- ldr r3, _0202F08C ; =MI_CpuCopy8
- ldr r2, [r1, #0x8]
- ldr r1, _0202F090 ; =0x00000CA8
- add r1, r2, r1
- mov r2, #0x8
- bx r3
- nop
-_0202F088: .word 0x021C59E8
-_0202F08C: .word MI_CpuCopy8
-_0202F090: .word 0x00000CA8
-
- thumb_func_start FUN_0202F094
-FUN_0202F094: ; 0x0202F094
- push {r4, lr}
- add r4, r0, #0x0
- bl FUN_02023AC4
- ldr r1, _0202F0B0 ; =0x021C59E8
- add r2, r0, #0x0
- ldr r3, [r1, #0x8]
- ldr r1, _0202F0B4 ; =0x00000CBC
- add r0, r4, #0x0
- ldr r1, [r3, r1]
- bl MI_CpuCopy8
- pop {r4, pc}
- nop
-_0202F0B0: .word 0x021C59E8
-_0202F0B4: .word 0x00000CBC
-
- thumb_func_start FUN_0202F0B8
-FUN_0202F0B8: ; 0x0202F0B8
- push {r4, lr}
- bl FUN_0202EA9C
- ldr r3, _0202F0D4 ; =0x021C59E8
- ldr r2, _0202F0D8 ; =0x00000CC4
- ldr r4, [r3, #0x8]
- ldrh r3, [r3, #0x0]
- add r0, r4, r2
- sub r2, r2, #0x4
- ldr r2, [r4, r2]
- mov r1, #0x5c
- bl FUN_0202D240
- pop {r4, pc}
- .balign 4
-_0202F0D4: .word 0x021C59E8
-_0202F0D8: .word 0x00000CC4
-
- thumb_func_start FUN_0202F0DC
-FUN_0202F0DC: ; 0x0202F0DC
- push {r4-r6, lr}
- mov r5, #0x0
- add r6, r0, #0x0
- add r4, r5, #0x0
-_0202F0E4:
- add r0, r4, #0x0
- bl FUN_0202EF44
- cmp r0, #0x0
- beq _0202F0F8
- ldrb r1, [r0, #0x4]
- cmp r1, r6
- bne _0202F0F8
- ldrb r0, [r0, #0x6]
- add r5, r5, r0
-_0202F0F8:
- add r4, r4, #0x1
- cmp r4, #0x10
- blt _0202F0E4
- add r0, r5, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_0202F104
-FUN_0202F104: ; 0x0202F104
- ldr r3, _0202F108 ; =FUN_0202D2D0
- bx r3
- .balign 4
-_0202F108: .word FUN_0202D2D0
-
- thumb_func_start FUN_0202F10C
-FUN_0202F10C: ; 0x0202F10C
- push {r3, lr}
- ldr r1, _0202F120 ; =0x021C59E8
- mov r2, #0x54
- ldr r1, [r1, #0x8]
- bl MI_CpuCopy8
- bl FUN_0202F0B8
- pop {r3, pc}
- nop
-_0202F120: .word 0x021C59E8
-
- thumb_func_start FUN_0202F124
-FUN_0202F124: ; 0x0202F124
- ldr r1, _0202F148 ; =0x021C59E8
- ldr r3, [r1, #0x8]
- cmp r3, #0x0
- beq _0202F144
- lsl r1, r0, #0x1
- add r2, r3, r1
- ldr r1, _0202F14C ; =0x00000C84
- ldrh r1, [r2, r1]
- cmp r1, #0x0
- beq _0202F144
- mov r1, #0xc0
- add r3, #0xa4
- mul r1, r0
- add r0, r3, r1
- add r0, #0x8
- bx lr
-_0202F144:
- mov r0, #0x0
- bx lr
- .balign 4
-_0202F148: .word 0x021C59E8
-_0202F14C: .word 0x00000C84
-
- thumb_func_start FUN_0202F150
-FUN_0202F150: ; 0x0202F150
- push {r4-r6, lr}
- add r6, r1, #0x0
- mov r4, #0x0
- ldr r1, _0202F2BC ; =0x021C59F4
- cmp r0, #0x0
- strb r4, [r1, #0x0]
- beq _0202F25C
- bl FUN_02033534
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_0202D858
- add r5, r0, #0x1
- ldr r0, _0202F2BC ; =0x021C59F4
- ldr r0, [r0, #0x4]
- cmp r0, #0x0
- beq _0202F178
- mov r0, #0x1
- pop {r4-r6, pc}
-_0202F178:
- mov r0, #0xf
- bl FUN_02031480
- ldr r1, _0202F2C0 ; =0x0000068C
- mov r0, #0xf
- bl FUN_02016998
- ldr r1, _0202F2BC ; =0x021C59F4
- ldr r2, _0202F2C0 ; =0x0000068C
- str r0, [r1, #0x4]
- add r1, r4, #0x0
- bl MI_CpuFill8
- ldr r2, _0202F2BC ; =0x021C59F4
- ldr r1, _0202F2C4 ; =0x00000658
- ldr r0, [r2, #0x4]
- add r6, #0x40
- str r6, [r0, r1]
- add r0, r1, #0x0
- ldr r3, [r2, #0x4]
- add r6, r4, #0x0
- add r0, #0x25
- strb r6, [r3, r0]
- add r0, r1, #0x0
- ldr r3, [r2, #0x4]
- mov r6, #0x1b
- add r0, #0x26
- strb r6, [r3, r0]
- ldr r2, [r2, #0x4]
- mov r0, #0xf
- ldr r1, [r2, r1]
- lsl r1, r1, #0x1
- bl FUN_02016998
- ldr r2, _0202F2BC ; =0x021C59F4
- ldr r1, _0202F2C8 ; =0x0000045C
- ldr r3, [r2, #0x4]
- str r0, [r3, r1]
- ldr r2, [r2, #0x4]
- ldr r1, _0202F2C4 ; =0x00000658
- mov r0, #0xf
- ldr r1, [r2, r1]
- bl FUN_02016998
- ldr r2, _0202F2BC ; =0x021C59F4
- mov r1, #0x46
- ldr r3, [r2, #0x4]
- lsl r1, r1, #0x4
- str r0, [r3, r1]
- ldr r2, [r2, #0x4]
- ldr r1, _0202F2C4 ; =0x00000658
- mov r0, #0xf
- ldr r1, [r2, r1]
- mul r1, r5
- bl FUN_02016998
- ldr r2, _0202F2BC ; =0x021C59F4
- ldr r1, _0202F2CC ; =0x00000458
- ldr r3, [r2, #0x4]
- str r0, [r3, r1]
- ldr r2, [r2, #0x4]
- ldr r1, _0202F2C4 ; =0x00000658
- mov r0, #0xf
- ldr r1, [r2, r1]
- mul r1, r5
- bl FUN_02016998
- ldr r1, _0202F2BC ; =0x021C59F4
- ldr r2, [r1, #0x4]
- ldr r1, _0202F2D0 ; =0x00000454
- str r0, [r2, r1]
- bl FUN_02033534
- cmp r0, #0xa
- ldr r2, _0202F2D4 ; =0x0000054C
- bne _0202F236
- ldr r0, _0202F2BC ; =0x021C59F4
- mov r1, #0x64
- ldr r3, [r0, #0x4]
- add r0, r3, r2
- sub r2, #0xe8
- add r2, r3, r2
- bl FUN_0202D7D8
- ldr r0, _0202F2BC ; =0x021C59F4
- mov r1, #0x32
- ldr r3, [r0, #0x4]
- ldr r2, _0202F2D8 ; =0x0000056C
- lsl r1, r1, #0x4
- add r0, r3, r2
- sub r2, #0x90
- add r2, r3, r2
- bl FUN_0202D7D8
- b _0202F268
-_0202F236:
- ldr r0, _0202F2BC ; =0x021C59F4
- mov r1, #0x14
- ldr r3, [r0, #0x4]
- add r0, r3, r2
- sub r2, #0xe8
- add r2, r3, r2
- bl FUN_0202D7D8
- ldr r0, _0202F2BC ; =0x021C59F4
- add r1, r6, #0x0
- ldr r3, [r0, #0x4]
- ldr r2, _0202F2D8 ; =0x0000056C
- add r1, #0xfd
- add r0, r3, r2
- sub r2, #0x90
- add r2, r3, r2
- bl FUN_0202D7D8
- b _0202F268
-_0202F25C:
- ldr r0, [r1, #0x4]
- mov r4, #0x1
- cmp r0, #0x0
- bne _0202F268
- bl ErrorHandling
-_0202F268:
- ldr r2, _0202F2BC ; =0x021C59F4
- ldr r1, _0202F2DC ; =0x0000065C
- ldr r3, [r2, #0x4]
- mov r0, #0x0
- strh r0, [r3, r1]
- mov r5, #0xff
- add r1, #0x1b
-_0202F276:
- ldr r3, [r2, #0x4]
- add r3, r3, r0
- add r0, r0, #0x1
- strb r5, [r3, r1]
- cmp r0, #0x4
- blt _0202F276
- cmp r4, #0x0
- bne _0202F28A
- bl FUN_0202F2F0
-_0202F28A:
- ldr r0, _0202F2BC ; =0x021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _0202F2E0 ; =0x000005F8
- add r0, r1, r0
- bl FUN_020312BC
- cmp r4, #0x0
- bne _0202F2AC
- mov r1, #0x0
- ldr r0, _0202F2E4 ; =FUN_0202FB20
- add r2, r1, #0x0
- bl FUN_0200CA60
- ldr r1, _0202F2BC ; =0x021C59F4
- ldr r2, [r1, #0x4]
- ldr r1, _0202F2E8 ; =0x00000548
- str r0, [r2, r1]
-_0202F2AC:
- ldr r0, _0202F2BC ; =0x021C59F4
- mov r2, #0x0
- ldr r1, [r0, #0x4]
- ldr r0, _0202F2EC ; =0x00000687
- strb r2, [r1, r0]
- mov r0, #0x1
- pop {r4-r6, pc}
- nop
-_0202F2BC: .word 0x021C59F4
-_0202F2C0: .word 0x0000068C
-_0202F2C4: .word 0x00000658
-_0202F2C8: .word 0x0000045C
-_0202F2CC: .word 0x00000458
-_0202F2D0: .word 0x00000454
-_0202F2D4: .word 0x0000054C
-_0202F2D8: .word 0x0000056C
-_0202F2DC: .word 0x0000065C
-_0202F2E0: .word 0x000005F8
-_0202F2E4: .word FUN_0202FB20
-_0202F2E8: .word 0x00000548
-_0202F2EC: .word 0x00000687
-
- thumb_func_start FUN_0202F2F0
-FUN_0202F2F0: ; 0x0202F2F0
- push {r3-r7, lr}
- ldr r3, _0202F54C ; =0x021C59F4
- ldr r2, _0202F550 ; =0x0000062C
- ldr r1, [r3, #0x4]
- mov r0, #0x0
- strb r0, [r1, r2]
- ldr r4, [r3, #0x4]
- add r1, r2, #0x1
- strb r0, [r4, r1]
- add r1, r2, #0x0
- ldr r4, [r3, #0x4]
- add r1, #0x53
- strb r0, [r4, r1]
- ldr r1, [r3, #0x4]
- add r2, #0x54
- strb r0, [r1, r2]
- bl FUN_02033534
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_0202D858
- add r6, r0, #0x1
- ldr r0, _0202F54C ; =0x021C59F4
- ldr r2, _0202F554 ; =0x00000658
- ldr r3, [r0, #0x4]
- ldr r0, _0202F558 ; =0x00000458
- mov r1, #0x0
- ldr r0, [r3, r0]
- ldr r3, [r3, r2]
- add r2, r3, #0x0
- mul r2, r6
- bl MI_CpuFill8
- mov r4, #0x0
- cmp r6, #0x0
- ble _0202F360
- ldr r7, _0202F54C ; =0x021C59F4
- add r5, r4, #0x0
-_0202F33E:
- ldr r3, [r7, #0x4]
- ldr r0, _0202F554 ; =0x00000658
- ldr r1, _0202F558 ; =0x00000458
- ldr r2, [r3, r0]
- ldr r0, _0202F55C ; =0x000004E8
- add r0, r3, r0
- ldr r3, [r3, r1]
- add r1, r4, #0x0
- mul r1, r2
- add r0, r0, r5
- add r1, r3, r1
- bl FUN_0202D394
- add r4, r4, #0x1
- add r5, #0xc
- cmp r4, r6
- blt _0202F33E
-_0202F360:
- ldr r0, _0202F54C ; =0x021C59F4
- ldr r2, _0202F554 ; =0x00000658
- ldr r3, [r0, #0x4]
- ldr r0, _0202F560 ; =0x00000454
- mov r1, #0x0
- ldr r0, [r3, r0]
- ldr r3, [r3, r2]
- add r2, r3, #0x0
- mul r2, r6
- bl MI_CpuFill8
- mov r5, #0x0
- cmp r6, #0x0
- ble _0202F3A2
- ldr r7, _0202F54C ; =0x021C59F4
- add r4, r5, #0x0
-_0202F380:
- ldr r3, [r7, #0x4]
- ldr r0, _0202F554 ; =0x00000658
- ldr r1, _0202F560 ; =0x00000454
- ldr r2, [r3, r0]
- ldr r0, _0202F564 ; =0x0000047C
- add r0, r3, r0
- ldr r3, [r3, r1]
- add r1, r5, #0x0
- mul r1, r2
- add r0, r0, r4
- add r1, r3, r1
- bl FUN_0202D394
- add r5, r5, #0x1
- add r4, #0xc
- cmp r5, r6
- blt _0202F380
-_0202F3A2:
- ldr r0, _0202F54C ; =0x021C59F4
- mov r2, #0x6
- ldr r1, [r0, #0x4]
- mov r0, #0xb5
- lsl r0, r0, #0x2
- add r0, r1, r0
- mov r1, #0x0
- lsl r2, r2, #0x6
- bl MI_CpuFill8
- ldr r0, _0202F54C ; =0x021C59F4
- mov r1, #0xb5
- ldr r2, [r0, #0x4]
- ldr r0, _0202F568 ; =0x000004DC
- lsl r1, r1, #0x2
- add r0, r2, r0
- add r1, r2, r1
- mov r2, #0x6
- lsl r2, r2, #0x6
- bl FUN_0202D394
- mov r0, #0xee
- add r2, r0, #0x0
- mov r3, #0x85
- ldr r4, _0202F54C ; =0x021C59F4
- mov r1, #0x0
- add r2, #0x66
- lsl r3, r3, #0x2
-_0202F3DA:
- ldr r5, [r4, #0x4]
- add r5, r5, r1
- strb r0, [r5, r2]
- ldr r5, [r4, #0x4]
- add r5, r5, r1
- add r1, r1, #0x1
- strb r0, [r5, r3]
- cmp r1, #0xc0
- blt _0202F3DA
- ldr r0, _0202F54C ; =0x021C59F4
- mov r2, #0x42
- ldr r0, [r0, #0x4]
- mov r1, #0x0
- add r0, #0x4c
- lsl r2, r2, #0x2
- bl MI_CpuFill8
- ldr r0, _0202F54C ; =0x021C59F4
- mov r2, #0x42
- ldr r1, [r0, #0x4]
- ldr r0, _0202F56C ; =0x00000464
- lsl r2, r2, #0x2
- add r0, r1, r0
- add r1, #0x4c
- bl FUN_0202D394
- ldr r1, _0202F54C ; =0x021C59F4
- mov r2, #0xff
- ldr r0, [r1, #0x4]
- mov r3, #0x1
- strb r2, [r0, #0x0]
- ldr r0, [r1, #0x4]
- add r0, #0x26
- strb r2, [r0, #0x0]
- mov r2, #0xee
-_0202F420:
- ldr r0, [r1, #0x4]
- strb r2, [r0, r3]
- ldr r0, [r1, #0x4]
- add r0, r0, r3
- add r0, #0x26
- add r3, r3, #0x1
- strb r2, [r0, #0x0]
- cmp r3, #0x26
- blt _0202F420
- ldr r0, _0202F54C ; =0x021C59F4
- ldr r2, _0202F554 ; =0x00000658
- ldr r3, [r0, #0x4]
- ldr r0, _0202F570 ; =0x0000045C
- ldr r2, [r3, r2]
- ldr r0, [r3, r0]
- mov r1, #0x0
- lsl r2, r2, #0x1
- bl MI_CpuFill8
- ldr r0, _0202F54C ; =0x021C59F4
- mov r1, #0x47
- ldr r3, [r0, #0x4]
- ldr r2, _0202F554 ; =0x00000658
- lsl r1, r1, #0x4
- add r0, r3, r1
- sub r1, #0x14
- ldr r2, [r3, r2]
- ldr r1, [r3, r1]
- lsl r2, r2, #0x1
- bl FUN_0202D394
- mov r2, #0x0
- ldr r0, _0202F54C ; =0x021C59F4
- ldr r1, _0202F574 ; =0x00000684
- ldr r3, [r0, #0x4]
- mov r12, r2
- strb r2, [r3, r1]
- ldr r3, [r0, #0x4]
- add r1, r1, #0x1
- strb r2, [r3, r1]
- add r1, r2, #0x0
- add r7, r2, #0x0
- add r6, r2, #0x0
-_0202F476:
- ldr r3, [r0, #0x4]
- add r4, r3, r2
- ldr r3, _0202F578 ; =0x0000065F
- strb r6, [r4, r3]
- ldr r3, [r0, #0x4]
- ldr r4, _0202F57C ; =0x00000667
- add r5, r3, r2
- mov r3, #0x1
- strb r3, [r5, r4]
- ldr r3, [r0, #0x4]
- add r4, #0x8
- add r5, r3, r2
- mov r3, #0x1
- strb r3, [r5, r4]
- ldr r4, [r0, #0x4]
- mov r3, r12
- add r4, r4, r3
- mov r3, #0x61
- lsl r3, r3, #0x4
- strh r6, [r4, r3]
- ldr r3, [r0, #0x4]
- mov r4, #0xee
- add r5, r3, r1
- ldr r3, _0202F580 ; =0x00000596
- add r2, r2, #0x1
- strb r4, [r5, r3]
- ldr r3, [r0, #0x4]
- ldr r4, _0202F584 ; =0x0000FFFF
- add r5, r3, r1
- ldr r3, _0202F588 ; =0x00000594
- strh r4, [r5, r3]
- ldr r3, [r0, #0x4]
- add r4, r3, r1
- mov r3, #0x59
- lsl r3, r3, #0x4
- str r6, [r4, r3]
- ldr r3, [r0, #0x4]
- add r4, r3, r1
- ldr r3, _0202F58C ; =0x0000058C
- add r1, #0xc
- str r6, [r4, r3]
- ldr r3, [r0, #0x4]
- add r4, r3, r7
- ldr r3, _0202F590 ; =0x00000638
- add r7, r7, #0x4
- str r6, [r4, r3]
- mov r3, r12
- add r3, r3, #0x2
- mov r12, r3
- cmp r2, #0x8
- blt _0202F476
- ldr r1, _0202F54C ; =0x021C59F4
- ldr r0, _0202F594 ; =0x00000634
- ldr r2, [r1, #0x4]
- sub r3, r0, #0x4
- str r6, [r2, r0]
- ldr r4, [r1, #0x4]
- mov r2, #0x1
- str r2, [r4, r3]
- add r3, r0, #0x0
- ldr r4, [r1, #0x4]
- sub r3, #0x3e
- mov r2, #0xee
- strb r2, [r4, r3]
- add r3, r0, #0x0
- ldr r4, [r1, #0x4]
- ldr r2, _0202F584 ; =0x0000FFFF
- sub r3, #0x40
- strh r2, [r4, r3]
- add r2, r0, #0x0
- ldr r3, [r1, #0x4]
- sub r2, #0x44
- str r6, [r3, r2]
- add r2, r0, #0x0
- ldr r3, [r1, #0x4]
- sub r2, #0x48
- str r6, [r3, r2]
- add r3, r0, #0x0
- ldr r4, [r1, #0x4]
- add r3, #0x4e
- mov r2, #0x1
- strb r2, [r4, r3]
- add r3, r0, #0x0
- ldr r4, [r1, #0x4]
- add r3, #0x4f
- strb r2, [r4, r3]
- ldr r2, _0202F598 ; =0x02105D58
- mov r3, #0x4
- strb r3, [r2, #0x1]
- strb r3, [r2, #0x0]
- ldr r1, [r1, #0x4]
- sub r0, #0xe8
- add r0, r1, r0
- bl FUN_0202D804
- ldr r0, _0202F54C ; =0x021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _0202F59C ; =0x0000056C
- add r0, r1, r0
- bl FUN_0202D804
- ldr r0, _0202F54C ; =0x021C59F4
- mov r2, #0x0
- ldr r1, [r0, #0x4]
- ldr r0, _0202F5A0 ; =0x00000688
- strb r2, [r1, r0]
- pop {r3-r7, pc}
- .balign 4
-_0202F54C: .word 0x021C59F4
-_0202F550: .word 0x0000062C
-_0202F554: .word 0x00000658
-_0202F558: .word 0x00000458
-_0202F55C: .word 0x000004E8
-_0202F560: .word 0x00000454
-_0202F564: .word 0x0000047C
-_0202F568: .word 0x000004DC
-_0202F56C: .word 0x00000464
-_0202F570: .word 0x0000045C
-_0202F574: .word 0x00000684
-_0202F578: .word 0x0000065F
-_0202F57C: .word 0x00000667
-_0202F580: .word 0x00000596
-_0202F584: .word 0x0000FFFF
-_0202F588: .word 0x00000594
-_0202F58C: .word 0x0000058C
-_0202F590: .word 0x00000638
-_0202F594: .word 0x00000634
-_0202F598: .word 0x02105D58
-_0202F59C: .word 0x0000056C
-_0202F5A0: .word 0x00000688
-
- thumb_func_start FUN_0202F5A4
-FUN_0202F5A4: ; 0x0202F5A4
- push {r3-r7, lr}
- ldr r1, _0202F7D4 ; =0x021C59F4
- ldr r0, _0202F7D8 ; =0x0000062C
- ldr r2, [r1, #0x4]
- mov r3, #0x0
- strb r3, [r2, r0]
- ldr r1, [r1, #0x4]
- add r0, r0, #0x1
- strb r3, [r1, r0]
- bl FUN_02033534
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_0202D858
- add r6, r0, #0x1
- ldr r0, _0202F7D4 ; =0x021C59F4
- ldr r2, _0202F7DC ; =0x00000658
- ldr r3, [r0, #0x4]
- ldr r0, _0202F7E0 ; =0x00000458
- mov r1, #0x0
- ldr r0, [r3, r0]
- ldr r3, [r3, r2]
- add r2, r3, #0x0
- mul r2, r6
- bl MI_CpuFill8
- mov r4, #0x0
- cmp r6, #0x0
- ble _0202F606
- ldr r7, _0202F7D4 ; =0x021C59F4
- add r5, r4, #0x0
-_0202F5E4:
- ldr r3, [r7, #0x4]
- ldr r0, _0202F7DC ; =0x00000658
- ldr r1, _0202F7E0 ; =0x00000458
- ldr r2, [r3, r0]
- ldr r0, _0202F7E4 ; =0x000004E8
- add r0, r3, r0
- ldr r3, [r3, r1]
- add r1, r4, #0x0
- mul r1, r2
- add r0, r0, r5
- add r1, r3, r1
- bl FUN_0202D394
- add r4, r4, #0x1
- add r5, #0xc
- cmp r4, r6
- blt _0202F5E4
-_0202F606:
- ldr r0, _0202F7D4 ; =0x021C59F4
- ldr r2, _0202F7DC ; =0x00000658
- ldr r3, [r0, #0x4]
- ldr r0, _0202F7E8 ; =0x00000454
- mov r1, #0x0
- ldr r0, [r3, r0]
- ldr r3, [r3, r2]
- add r2, r3, #0x0
- mul r2, r6
- bl MI_CpuFill8
- mov r5, #0x0
- cmp r6, #0x0
- ble _0202F648
- ldr r7, _0202F7D4 ; =0x021C59F4
- add r4, r5, #0x0
-_0202F626:
- ldr r3, [r7, #0x4]
- ldr r0, _0202F7DC ; =0x00000658
- ldr r1, _0202F7E8 ; =0x00000454
- ldr r2, [r3, r0]
- ldr r0, _0202F7EC ; =0x0000047C
- add r0, r3, r0
- ldr r3, [r3, r1]
- add r1, r5, #0x0
- mul r1, r2
- add r0, r0, r4
- add r1, r3, r1
- bl FUN_0202D394
- add r5, r5, #0x1
- add r4, #0xc
- cmp r5, r6
- blt _0202F626
-_0202F648:
- ldr r0, _0202F7D4 ; =0x021C59F4
- mov r2, #0x6
- ldr r1, [r0, #0x4]
- mov r0, #0xb5
- lsl r0, r0, #0x2
- add r0, r1, r0
- mov r1, #0x0
- lsl r2, r2, #0x6
- bl MI_CpuFill8
- ldr r0, _0202F7D4 ; =0x021C59F4
- mov r1, #0xb5
- ldr r2, [r0, #0x4]
- ldr r0, _0202F7F0 ; =0x000004DC
- lsl r1, r1, #0x2
- add r0, r2, r0
- add r1, r2, r1
- mov r2, #0x6
- lsl r2, r2, #0x6
- bl FUN_0202D394
- mov r0, #0xee
- add r2, r0, #0x0
- mov r3, #0x85
- ldr r4, _0202F7D4 ; =0x021C59F4
- mov r1, #0x0
- add r2, #0x66
- lsl r3, r3, #0x2
-_0202F680:
- ldr r5, [r4, #0x4]
- add r5, r5, r1
- strb r0, [r5, r2]
- ldr r5, [r4, #0x4]
- add r5, r5, r1
- add r1, r1, #0x1
- strb r0, [r5, r3]
- cmp r1, #0xc0
- blt _0202F680
- ldr r0, _0202F7D4 ; =0x021C59F4
- mov r2, #0x42
- ldr r0, [r0, #0x4]
- mov r1, #0x0
- add r0, #0x4c
- lsl r2, r2, #0x2
- bl MI_CpuFill8
- ldr r0, _0202F7D4 ; =0x021C59F4
- mov r2, #0x42
- ldr r1, [r0, #0x4]
- ldr r0, _0202F7F4 ; =0x00000464
- lsl r2, r2, #0x2
- add r0, r1, r0
- add r1, #0x4c
- bl FUN_0202D394
- ldr r1, _0202F7D4 ; =0x021C59F4
- mov r2, #0xff
- ldr r0, [r1, #0x4]
- mov r3, #0x1
- strb r2, [r0, #0x0]
- ldr r0, [r1, #0x4]
- add r0, #0x26
- strb r2, [r0, #0x0]
- mov r2, #0xee
-_0202F6C6:
- ldr r0, [r1, #0x4]
- strb r2, [r0, r3]
- ldr r0, [r1, #0x4]
- add r0, r0, r3
- add r0, #0x26
- add r3, r3, #0x1
- strb r2, [r0, #0x0]
- cmp r3, #0x26
- blt _0202F6C6
- ldr r0, _0202F7D4 ; =0x021C59F4
- ldr r2, _0202F7DC ; =0x00000658
- ldr r3, [r0, #0x4]
- ldr r0, _0202F7F8 ; =0x0000045C
- ldr r2, [r3, r2]
- ldr r0, [r3, r0]
- mov r1, #0x0
- lsl r2, r2, #0x1
- bl MI_CpuFill8
- ldr r0, _0202F7D4 ; =0x021C59F4
- mov r1, #0x47
- ldr r3, [r0, #0x4]
- ldr r2, _0202F7DC ; =0x00000658
- lsl r1, r1, #0x4
- add r0, r3, r1
- sub r1, #0x14
- ldr r2, [r3, r2]
- ldr r1, [r3, r1]
- lsl r2, r2, #0x1
- bl FUN_0202D394
- ldr r0, _0202F7D4 ; =0x021C59F4
- mov r3, #0x0
- ldr r2, [r0, #0x4]
- ldr r1, _0202F7FC ; =0x00000684
- add r7, r3, #0x0
- strb r3, [r2, r1]
- ldr r2, [r0, #0x4]
- add r1, r1, #0x1
- strb r3, [r2, r1]
- add r1, r3, #0x0
- add r2, r3, #0x0
-_0202F71A:
- ldr r4, [r0, #0x4]
- add r5, r4, r3
- ldr r4, _0202F800 ; =0x0000065F
- strb r7, [r5, r4]
- ldr r4, [r0, #0x4]
- ldr r5, _0202F804 ; =0x00000667
- add r6, r4, r3
- mov r4, #0x1
- strb r4, [r6, r5]
- ldr r4, [r0, #0x4]
- add r5, #0x8
- add r6, r4, r3
- mov r4, #0x1
- strb r4, [r6, r5]
- ldr r4, [r0, #0x4]
- add r3, r3, #0x1
- add r5, r4, r1
- mov r4, #0x61
- lsl r4, r4, #0x4
- strh r7, [r5, r4]
- ldr r4, [r0, #0x4]
- ldr r5, _0202F808 ; =0x00000596
- add r6, r4, r2
- mov r4, #0xee
- strb r4, [r6, r5]
- ldr r4, [r0, #0x4]
- ldr r5, _0202F80C ; =0x0000FFFF
- add r6, r4, r2
- ldr r4, _0202F810 ; =0x00000594
- add r1, r1, #0x2
- strh r5, [r6, r4]
- ldr r4, [r0, #0x4]
- add r5, r4, r2
- mov r4, #0x59
- lsl r4, r4, #0x4
- str r7, [r5, r4]
- ldr r4, [r0, #0x4]
- add r5, r4, r2
- ldr r4, _0202F814 ; =0x0000058C
- add r2, #0xc
- str r7, [r5, r4]
- cmp r3, #0x8
- blt _0202F71A
- ldr r1, _0202F7D4 ; =0x021C59F4
- add r0, r4, #0x0
- ldr r3, [r1, #0x4]
- add r0, #0xa4
- mov r2, #0x1
- str r2, [r3, r0]
- add r3, r0, #0x0
- ldr r4, [r1, #0x4]
- sub r3, #0x3a
- mov r2, #0xee
- strb r2, [r4, r3]
- add r3, r0, #0x0
- ldr r4, [r1, #0x4]
- ldr r2, _0202F80C ; =0x0000FFFF
- sub r3, #0x3c
- strh r2, [r4, r3]
- add r2, r0, #0x0
- ldr r3, [r1, #0x4]
- sub r2, #0x40
- str r7, [r3, r2]
- add r2, r0, #0x0
- ldr r3, [r1, #0x4]
- sub r2, #0x44
- str r7, [r3, r2]
- add r3, r0, #0x0
- ldr r4, [r1, #0x4]
- add r3, #0x52
- mov r2, #0x1
- strb r2, [r4, r3]
- add r3, r0, #0x0
- ldr r4, [r1, #0x4]
- add r3, #0x53
- strb r2, [r4, r3]
- ldr r1, [r1, #0x4]
- sub r0, #0xe4
- add r0, r1, r0
- bl FUN_0202D804
- ldr r0, _0202F7D4 ; =0x021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _0202F818 ; =0x0000056C
- add r0, r1, r0
- bl FUN_0202D804
- ldr r0, _0202F7D4 ; =0x021C59F4
- mov r2, #0x0
- ldr r1, [r0, #0x4]
- ldr r0, _0202F81C ; =0x00000688
- strb r2, [r1, r0]
- pop {r3-r7, pc}
- .balign 4
-_0202F7D4: .word 0x021C59F4
-_0202F7D8: .word 0x0000062C
-_0202F7DC: .word 0x00000658
-_0202F7E0: .word 0x00000458
-_0202F7E4: .word 0x000004E8
-_0202F7E8: .word 0x00000454
-_0202F7EC: .word 0x0000047C
-_0202F7F0: .word 0x000004DC
-_0202F7F4: .word 0x00000464
-_0202F7F8: .word 0x0000045C
-_0202F7FC: .word 0x00000684
-_0202F800: .word 0x0000065F
-_0202F804: .word 0x00000667
-_0202F808: .word 0x00000596
-_0202F80C: .word 0x0000FFFF
-_0202F810: .word 0x00000594
-_0202F814: .word 0x0000058C
-_0202F818: .word 0x0000056C
-_0202F81C: .word 0x00000688
-
- thumb_func_start FUN_0202F820
-FUN_0202F820: ; 0x0202F820
- push {r4-r6, lr}
- add r5, r0, #0x0
- ldr r0, _0202F8B8 ; =0x021C59F4
- ldr r3, _0202F8BC ; =0x0000065F
- ldr r1, [r0, #0x4]
- mov r2, #0x0
- add r1, r1, r5
- strb r2, [r1, r3]
- ldr r4, [r0, #0x4]
- mov r1, #0x1
- add r6, r4, r5
- add r4, r3, #0x0
- add r4, #0x8
- strb r1, [r6, r4]
- ldr r6, [r0, #0x4]
- lsl r4, r5, #0x2
- add r6, r6, r4
- add r4, r3, #0x0
- sub r4, #0x27
- str r2, [r6, r4]
- ldr r2, [r0, #0x4]
- add r4, r2, r5
- add r2, r3, #0x0
- add r2, #0x10
- strb r1, [r4, r2]
- ldr r1, [r0, #0x4]
- sub r0, r3, #0x7
- ldr r2, [r1, r0]
- ldr r3, _0202F8C0 ; =0x0000047C
- mov r0, #0xc
- add r4, r5, #0x0
- mul r4, r0
- add r0, r1, r3
- sub r3, #0x28
- ldr r3, [r1, r3]
- add r1, r5, #0x0
- mul r1, r2
- add r0, r0, r4
- add r1, r3, r1
- bl FUN_0202D394
- ldr r0, _0202F8B8 ; =0x021C59F4
- ldr r3, _0202F8C4 ; =0x000004E8
- ldr r1, [r0, #0x4]
- ldr r0, _0202F8C8 ; =0x00000658
- ldr r2, [r1, r0]
- add r0, r1, r3
- sub r3, #0x90
- ldr r3, [r1, r3]
- add r1, r5, #0x0
- mul r1, r2
- add r0, r0, r4
- add r1, r3, r1
- bl FUN_0202D394
- ldr r3, _0202F8B8 ; =0x021C59F4
- ldr r2, _0202F8CC ; =0x00000596
- ldr r0, [r3, #0x4]
- mov r1, #0xee
- add r0, r0, r4
- strb r1, [r0, r2]
- ldr r0, [r3, #0x4]
- ldr r5, _0202F8D0 ; =0x0000FFFF
- add r1, r0, r4
- sub r0, r2, #0x2
- strh r5, [r1, r0]
- ldr r1, [r3, #0x4]
- mov r0, #0x0
- add r5, r1, r4
- sub r1, r2, #0x6
- str r0, [r5, r1]
- ldr r1, [r3, #0x4]
- sub r2, #0xa
- add r1, r1, r4
- str r0, [r1, r2]
- pop {r4-r6, pc}
- .balign 4
-_0202F8B8: .word 0x021C59F4
-_0202F8BC: .word 0x0000065F
-_0202F8C0: .word 0x0000047C
-_0202F8C4: .word 0x000004E8
-_0202F8C8: .word 0x00000658
-_0202F8CC: .word 0x00000596
-_0202F8D0: .word 0x0000FFFF
-
- thumb_func_start FUN_0202F8D4
-FUN_0202F8D4: ; 0x0202F8D4
- push {r4-r6, lr}
- ldr r4, _0202F908 ; =0x021C59F4
- ldr r6, _0202F90C ; =0x00000667
- mov r5, #0x1
-_0202F8DC:
- lsl r0, r5, #0x10
- lsr r0, r0, #0x10
- bl FUN_02030E7C
- cmp r0, #0x0
- bne _0202F900
- ldr r0, [r4, #0x4]
- add r0, r0, r5
- ldrb r0, [r0, r6]
- cmp r0, #0x0
- bne _0202F900
- bl FUN_02031280
- cmp r0, #0x0
- bne _0202F900
- add r0, r5, #0x0
- bl FUN_0202F820
-_0202F900:
- add r5, r5, #0x1
- cmp r5, #0x8
- blt _0202F8DC
- pop {r4-r6, pc}
- .balign 4
-_0202F908: .word 0x021C59F4
-_0202F90C: .word 0x00000667
-
- thumb_func_start FUN_0202F910
-FUN_0202F910: ; 0x0202F910
- ldr r3, _0202F914 ; =FUN_0202F820
- bx r3
- .balign 4
-_0202F914: .word FUN_0202F820
-
- thumb_func_start FUN_0202F918
-FUN_0202F918: ; 0x0202F918
- push {r3-r7, lr}
- add r5, r0, #0x0
- add r6, r1, #0x0
- add r7, r2, #0x0
- str r3, [sp, #0x0]
- mov r4, #0x1
- bl FUN_02033534
- cmp r0, #0x13
- bge _0202F93E
- ldr r2, [sp, #0x0]
- add r0, r5, #0x0
- add r1, r6, #0x0
- bl FUN_0202E5F8
- add r4, r0, #0x0
- ldr r0, _0202F94C ; =FUN_0202F910
- bl FUN_0202D330
-_0202F93E:
- add r0, r5, #0x0
- add r1, r7, #0x0
- bl FUN_0202F150
- add r0, r4, #0x0
- pop {r3-r7, pc}
- nop
-_0202F94C: .word FUN_0202F910
-
- thumb_func_start FUN_0202F950
-FUN_0202F950: ; 0x0202F950
- push {r3-r7, lr}
- add r5, r0, #0x0
- add r6, r1, #0x0
- add r7, r2, #0x0
- mov r4, #0x1
- bl FUN_02033534
- cmp r0, #0x13
- bge _0202F96C
- add r0, r5, #0x0
- add r1, r6, #0x0
- bl FUN_0202E66C
- add r4, r0, #0x0
-_0202F96C:
- add r0, r5, #0x0
- add r1, r7, #0x0
- bl FUN_0202F150
- ldr r0, _0202F980 ; =0x02105D58
- mov r1, #0x4
- strb r1, [r0, #0x0]
- add r0, r4, #0x0
- pop {r3-r7, pc}
- nop
-_0202F980: .word 0x02105D58
-
- thumb_func_start FUN_0202F984
-FUN_0202F984: ; 0x0202F984
- push {r4, lr}
- mov r4, #0x0
- bl FUN_02031190
- cmp r0, #0x0
- bne _0202F99A
- ldr r0, _0202F9D4 ; =0x02105D58
- ldrb r0, [r0, #0x1]
- cmp r0, #0x4
- beq _0202F9A2
- pop {r4, pc}
-_0202F99A:
- ldr r0, _0202F9D4 ; =0x02105D58
- ldrb r0, [r0, #0x0]
- cmp r0, #0x4
- bne _0202F9D0
-_0202F9A2:
- ldr r0, _0202F9D8 ; =0x021C59F4
- ldr r2, [r0, #0x4]
- ldr r0, _0202F9DC ; =0x0000067D
- ldrb r1, [r2, r0]
- cmp r1, #0x2
- bne _0202F9B4
- mov r1, #0x0
- strb r1, [r2, r0]
- mov r4, #0x1
-_0202F9B4:
- ldr r0, _0202F9D8 ; =0x021C59F4
- ldr r2, [r0, #0x4]
- ldr r0, _0202F9DC ; =0x0000067D
- ldrb r1, [r2, r0]
- cmp r1, #0x3
- bne _0202F9C4
- mov r4, #0x1
- strb r4, [r2, r0]
-_0202F9C4:
- cmp r4, #0x0
- beq _0202F9CC
- bl FUN_0202F5A4
-_0202F9CC:
- bl FUN_02031088
-_0202F9D0:
- pop {r4, pc}
- nop
-_0202F9D4: .word 0x02105D58
-_0202F9D8: .word 0x021C59F4
-_0202F9DC: .word 0x0000067D
-
- thumb_func_start FUN_0202F9E0
-FUN_0202F9E0: ; 0x0202F9E0
- ldr r1, _0202FA08 ; =0x021C59F4
- ldr r3, [r1, #0x4]
- ldr r1, _0202FA0C ; =0x0000067D
- ldrb r2, [r3, r1]
- cmp r2, #0x0
- bne _0202F9F6
- cmp r0, #0x1
- bne _0202F9F6
- mov r0, #0x3
- strb r0, [r3, r1]
- bx lr
-_0202F9F6:
- cmp r2, #0x1
- bne _0202FA04
- cmp r0, #0x0
- bne _0202FA04
- ldr r0, _0202FA0C ; =0x0000067D
- mov r1, #0x2
- strb r1, [r3, r0]
-_0202FA04:
- bx lr
- nop
-_0202FA08: .word 0x021C59F4
-_0202FA0C: .word 0x0000067D
-
- thumb_func_start FUN_0202FA10
-FUN_0202FA10: ; 0x0202FA10
- ldr r3, _0202FA18 ; =FUN_0202F9E0
- mov r0, #0x1
- bx r3
- nop
-_0202FA18: .word FUN_0202F9E0
-
- thumb_func_start FUN_0202FA1C
-FUN_0202FA1C: ; 0x0202FA1C
- ldr r3, _0202FA24 ; =FUN_0202F9E0
- mov r0, #0x0
- bx r3
- nop
-_0202FA24: .word FUN_0202F9E0
-
- thumb_func_start FUN_0202FA28
-FUN_0202FA28: ; 0x0202FA28
- ldr r0, _0202FA40 ; =0x021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _0202FA44 ; =0x0000067D
- ldrb r0, [r1, r0]
- cmp r0, #0x2
- bne _0202FA38
- mov r0, #0x1
- bx lr
-_0202FA38:
- cmp r0, #0x3
- bne _0202FA3E
- mov r0, #0x0
-_0202FA3E:
- bx lr
- .balign 4
-_0202FA40: .word 0x021C59F4
-_0202FA44: .word 0x0000067D
-
- thumb_func_start FUN_0202FA48
-FUN_0202FA48: ; 0x0202FA48
- push {r3, lr}
- bl FUN_0202FA28
- cmp r0, #0x1
- bne _0202FA56
- mov r0, #0x1
- pop {r3, pc}
-_0202FA56:
- mov r0, #0x0
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_0202FA5C
-FUN_0202FA5C: ; 0x0202FA5C
- push {r4, lr}
- ldr r0, _0202FB00 ; =0x021C59F4
- mov r4, #0x0
- ldr r0, [r0, #0x4]
- cmp r0, #0x0
- beq _0202FA82
- bl FUN_02033534
- cmp r0, #0x13
- blt _0202FA78
- bl MOD04_021D83C0
- mov r4, #0x1
- b _0202FA82
-_0202FA78:
- bl FUN_0202E784
- cmp r0, #0x0
- beq _0202FA82
- mov r4, #0x1
-_0202FA82:
- cmp r4, #0x0
- beq _0202FAFE
- bl FUN_020314D0
- bl FUN_0202DBA4
- ldr r0, _0202FB00 ; =0x021C59F4
- mov r1, #0x0
- strb r1, [r0, #0x0]
- ldr r1, [r0, #0x4]
- ldr r0, _0202FB04 ; =0x00000548
- ldr r0, [r1, r0]
- bl FUN_0200CAB4
- ldr r1, _0202FB00 ; =0x021C59F4
- ldr r0, _0202FB04 ; =0x00000548
- ldr r2, [r1, #0x4]
- mov r3, #0x0
- str r3, [r2, r0]
- ldr r1, [r1, #0x4]
- sub r0, #0xec
- ldr r0, [r1, r0]
- bl FUN_02016A18
- ldr r0, _0202FB00 ; =0x021C59F4
- ldr r1, [r0, #0x4]
- mov r0, #0x46
- lsl r0, r0, #0x4
- ldr r0, [r1, r0]
- bl FUN_02016A18
- ldr r0, _0202FB00 ; =0x021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _0202FB08 ; =0x00000458
- ldr r0, [r1, r0]
- bl FUN_02016A18
- ldr r0, _0202FB00 ; =0x021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _0202FB0C ; =0x00000454
- ldr r0, [r1, r0]
- bl FUN_02016A18
- ldr r0, _0202FB00 ; =0x021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _0202FB10 ; =0x0000056C
- add r0, r1, r0
- bl FUN_0202D824
- ldr r0, _0202FB00 ; =0x021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _0202FB14 ; =0x0000054C
- add r0, r1, r0
- bl FUN_0202D824
- ldr r0, _0202FB00 ; =0x021C59F4
- ldr r0, [r0, #0x4]
- bl FUN_02016A18
- ldr r0, _0202FB00 ; =0x021C59F4
- mov r1, #0x0
- str r1, [r0, #0x4]
-_0202FAFE:
- pop {r4, pc}
- .balign 4
-_0202FB00: .word 0x021C59F4
-_0202FB04: .word 0x00000548
-_0202FB08: .word 0x00000458
-_0202FB0C: .word 0x00000454
-_0202FB10: .word 0x0000056C
-_0202FB14: .word 0x0000054C
-
- thumb_func_start FUN_0202FB18
-FUN_0202FB18: ; 0x0202FB18
- ldr r3, _0202FB1C ; =FUN_0202E9E8
- bx r3
- .balign 4
-_0202FB1C: .word FUN_0202E9E8
-
- thumb_func_start FUN_0202FB20
-FUN_0202FB20: ; 0x0202FB20
- push {r3, lr}
- ldr r0, _0202FB54 ; =0x021C59F4
- ldrb r0, [r0, #0x0]
- cmp r0, #0x0
- beq _0202FB52
- bl FUN_0203050C
- bl FUN_02031190
- cmp r0, #0x0
- bne _0202FB40
- mov r0, #0x0
- bl FUN_02030E7C
- cmp r0, #0x0
- bne _0202FB48
-_0202FB40:
- bl FUN_02031280
- cmp r0, #0x0
- beq _0202FB4C
-_0202FB48:
- bl FUN_0202FEEC
-_0202FB4C:
- ldr r0, _0202FB54 ; =0x021C59F4
- mov r1, #0x0
- strb r1, [r0, #0x0]
-_0202FB52:
- pop {r3, pc}
- .balign 4
-_0202FB54: .word 0x021C59F4
-
- thumb_func_start FUN_0202FB58
-FUN_0202FB58: ; 0x0202FB58
- push {r3, lr}
- bl FUN_0202F03C
- cmp r0, #0x0
- beq _0202FB7C
- bl FUN_02031190
- cmp r0, #0x0
- bne _0202FB78
- bl FUN_0202EE24
- cmp r0, #0x0
- bne _0202FB7C
- bl FUN_0202FA5C
- pop {r3, pc}
-_0202FB78:
- bl FUN_0202FA5C
-_0202FB7C:
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_0202FB80
-FUN_0202FB80: ; 0x0202FB80
- push {r4, lr}
- bl FUN_02031CDC
- ldr r1, _0202FC48 ; =0x021C59F4
- ldr r2, [r1, #0x4]
- cmp r2, #0x0
- beq _0202FC34
- ldr r0, _0202FC4C ; =0x0000068A
- ldrb r0, [r2, r0]
- cmp r0, #0x0
- bne _0202FC16
- mov r0, #0x0
- strb r0, [r1, #0x0]
- bl FUN_0202F984
- ldr r0, _0202FC48 ; =0x021C59F4
- ldr r1, _0202FC50 ; =0x021C48B8
- ldr r0, [r0, #0x4]
- ldr r2, _0202FC54 ; =0x00000628
- ldr r3, [r1, #0x44]
- ldr r1, _0202FC58 ; =0x00007FFF
- ldrh r4, [r0, r2]
- and r1, r3
- orr r1, r4
- strh r1, [r0, r2]
- bl FUN_02030674
- bl FUN_0202FCCC
- ldr r0, _0202FC48 ; =0x021C59F4
- ldr r1, _0202FC54 ; =0x00000628
- ldr r3, [r0, #0x4]
- mov r0, #0x2
- ldrh r2, [r3, r1]
- lsl r0, r0, #0xe
- and r0, r2
- strh r0, [r3, r1]
- bl FUN_0202FA28
- cmp r0, #0x0
- bne _0202FBD6
- bl FUN_02030DA4
-_0202FBD6:
- bl FUN_02031190
- cmp r0, #0x0
- bne _0202FBE8
- mov r0, #0x0
- bl FUN_02030E7C
- cmp r0, #0x0
- bne _0202FBF0
-_0202FBE8:
- bl FUN_02031280
- cmp r0, #0x0
- beq _0202FBF4
-_0202FBF0:
- bl FUN_02030074
-_0202FBF4:
- bl FUN_02031190
- cmp r0, #0x0
- beq _0202FC0C
- bl FUN_0202FA28
- cmp r0, #0x1
- beq _0202FC0C
- bl FUN_02031280
- cmp r0, #0x0
- beq _0202FC10
-_0202FC0C:
- bl FUN_02030DFC
-_0202FC10:
- ldr r0, _0202FC48 ; =0x021C59F4
- mov r1, #0x1
- strb r1, [r0, #0x0]
-_0202FC16:
- ldr r0, _0202FC48 ; =0x021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _0202FC5C ; =0x0000065C
- ldrh r0, [r1, r0]
- bl FUN_0202ED70
- bl FUN_02031190
- cmp r0, #0x0
- bne _0202FC2E
- bl FUN_0202F8D4
-_0202FC2E:
- bl FUN_0202FB58
- b _0202FC3A
-_0202FC34:
- mov r0, #0x0
- bl FUN_0202ED70
-_0202FC3A:
- mov r0, #0x0
- bl FUN_020335F4
- bl FUN_020315A4
- mov r0, #0x1
- pop {r4, pc}
- .balign 4
-_0202FC48: .word 0x021C59F4
-_0202FC4C: .word 0x0000068A
-_0202FC50: .word 0x021C48B8
-_0202FC54: .word 0x00000628
-_0202FC58: .word 0x00007FFF
-_0202FC5C: .word 0x0000065C
-
- thumb_func_start FUN_0202FC60
-FUN_0202FC60: ; 0x0202FC60
- push {r4, lr}
- ldr r0, _0202FC7C ; =0x021C59F4
- mov r1, #0x0
- ldrb r4, [r0, #0x0]
- strb r1, [r0, #0x0]
- ldr r0, [r0, #0x4]
- cmp r0, #0x0
- beq _0202FC74
- bl FUN_0202F2F0
-_0202FC74:
- ldr r0, _0202FC7C ; =0x021C59F4
- strb r4, [r0, #0x0]
- pop {r4, pc}
- nop
-_0202FC7C: .word 0x021C59F4
-
- thumb_func_start FUN_0202FC80
-FUN_0202FC80: ; 0x0202FC80
- push {r4, lr}
- ldr r0, _0202FCA0 ; =0x021C59F4
- mov r1, #0x0
- ldrb r4, [r0, #0x0]
- strb r1, [r0, #0x0]
- ldr r2, [r0, #0x4]
- cmp r2, #0x0
- beq _0202FC9A
- ldr r0, _0202FCA4 ; =0x0000067D
- mov r1, #0x1
- strb r1, [r2, r0]
- bl FUN_0202F2F0
-_0202FC9A:
- ldr r0, _0202FCA0 ; =0x021C59F4
- strb r4, [r0, #0x0]
- pop {r4, pc}
- .balign 4
-_0202FCA0: .word 0x021C59F4
-_0202FCA4: .word 0x0000067D
-
- thumb_func_start FUN_0202FCA8
-FUN_0202FCA8: ; 0x0202FCA8
- push {r4, lr}
- ldr r0, _0202FCC8 ; =0x021C59F4
- mov r1, #0x0
- ldrb r4, [r0, #0x0]
- strb r1, [r0, #0x0]
- ldr r0, [r0, #0x4]
- cmp r0, #0x0
- beq _0202FCC0
- bl FUN_0202F2F0
- bl FUN_0202E538
-_0202FCC0:
- ldr r0, _0202FCC8 ; =0x021C59F4
- strb r4, [r0, #0x0]
- pop {r4, pc}
- nop
-_0202FCC8: .word 0x021C59F4
-
- thumb_func_start FUN_0202FCCC
-FUN_0202FCCC: ; 0x0202FCCC
- push {r3, lr}
- ldr r0, _0202FE14 ; =0x021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _0202FE18 ; =0x00000683
- ldrb r0, [r1, r0]
- cmp r0, #0x0
- beq _0202FD40
- bl FUN_02033534
- cmp r0, #0x13
- blt _0202FD06
- ldr r0, _0202FE14 ; =0x021C59F4
- ldr r1, _0202FE1C ; =0x00000687
- ldr r0, [r0, #0x4]
- ldrb r1, [r0, r1]
- cmp r1, #0x0
- beq _0202FCF8
- mov r1, #0x26
- bl MOD04_021D78FC
- cmp r0, #0x0
- bne _0202FCFA
-_0202FCF8:
- b _0202FE10
-_0202FCFA:
- ldr r0, _0202FE14 ; =0x021C59F4
- mov r2, #0x0
- ldr r1, [r0, #0x4]
- ldr r0, _0202FE18 ; =0x00000683
- strb r2, [r1, r0]
- pop {r3, pc}
-_0202FD06:
- bl FUN_0202CBD4
- cmp r0, #0x4
- bne _0202FD1A
- bl FUN_02031190
- bl FUN_02030E7C
- cmp r0, #0x0
- bne _0202FD22
-_0202FD1A:
- bl FUN_02031280
- cmp r0, #0x0
- beq _0202FE10
-_0202FD22:
- ldr r0, _0202FE20 ; =0x02105D58
- mov r1, #0x0
- strb r1, [r0, #0x0]
- bl FUN_0203050C
- ldr r0, _0202FE20 ; =0x02105D58
- ldrb r0, [r0, #0x0]
- cmp r0, #0x0
- beq _0202FE10
- ldr r0, _0202FE14 ; =0x021C59F4
- mov r2, #0x0
- ldr r1, [r0, #0x4]
- ldr r0, _0202FE18 ; =0x00000683
- strb r2, [r1, r0]
- pop {r3, pc}
-_0202FD40:
- bl FUN_02033534
- cmp r0, #0x13
- blt _0202FDB2
- ldr r0, _0202FE14 ; =0x021C59F4
- ldr r2, _0202FE1C ; =0x00000687
- ldr r0, [r0, #0x4]
- ldrb r1, [r0, r2]
- cmp r1, #0x0
- beq _0202FE10
- add r1, r2, #0x0
- sub r1, #0x57
- ldr r1, [r0, r1]
- cmp r1, #0x0
- beq _0202FD7A
- sub r2, #0x53
- ldr r1, [r0, r2]
- cmp r1, #0x3
- bgt _0202FE10
- ldr r1, _0202FE20 ; =0x02105D58
- ldrb r1, [r1, #0x0]
- cmp r1, #0x4
- bne _0202FD90
- bl FUN_02030930
- ldr r0, _0202FE20 ; =0x02105D58
- mov r1, #0x2
- strb r1, [r0, #0x0]
- b _0202FD90
-_0202FD7A:
- ldr r1, _0202FE20 ; =0x02105D58
- ldrb r1, [r1, #0x0]
- cmp r1, #0x4
- bne _0202FD90
- bl FUN_02030930
- cmp r0, #0x0
- beq _0202FE10
- ldr r0, _0202FE20 ; =0x02105D58
- mov r1, #0x2
- strb r1, [r0, #0x0]
-_0202FD90:
- ldr r0, _0202FE14 ; =0x021C59F4
- mov r1, #0x26
- ldr r0, [r0, #0x4]
- bl MOD04_021D78FC
- cmp r0, #0x0
- beq _0202FE10
- ldr r0, _0202FE20 ; =0x02105D58
- mov r1, #0x4
- strb r1, [r0, #0x0]
- ldr r0, _0202FE14 ; =0x021C59F4
- ldr r2, [r0, #0x4]
- ldr r0, _0202FE24 ; =0x00000634
- ldr r1, [r2, r0]
- add r1, r1, #0x1
- str r1, [r2, r0]
- pop {r3, pc}
-_0202FDB2:
- bl FUN_0202CBD4
- cmp r0, #0x4
- bne _0202FDC6
- bl FUN_02031190
- bl FUN_02030E7C
- cmp r0, #0x0
- bne _0202FDCE
-_0202FDC6:
- bl FUN_02031280
- cmp r0, #0x0
- beq _0202FE10
-_0202FDCE:
- ldr r0, _0202FE20 ; =0x02105D58
- ldrb r0, [r0, #0x0]
- cmp r0, #0x4
- bne _0202FE10
- ldr r0, _0202FE14 ; =0x021C59F4
- ldr r2, [r0, #0x4]
- ldr r0, _0202FE24 ; =0x00000634
- ldr r1, [r2, r0]
- cmp r1, #0x3
- bgt _0202FE10
- add r0, #0x4b
- ldrb r1, [r2, r0]
- mov r0, #0x26
- mul r0, r1
- add r0, r2, r0
- bl FUN_02030930
- ldr r0, _0202FE14 ; =0x021C59F4
- ldr r2, [r0, #0x4]
- ldr r0, _0202FE28 ; =0x0000067F
- ldrb r1, [r2, r0]
- mov r0, #0x1
- sub r1, r0, r1
- mov r0, #0x26
- mul r0, r1
- add r0, r2, r0
- bl FUN_02030930
- ldr r0, _0202FE20 ; =0x02105D58
- mov r1, #0x0
- strb r1, [r0, #0x0]
- bl FUN_0203050C
-_0202FE10:
- pop {r3, pc}
- nop
-_0202FE14: .word 0x021C59F4
-_0202FE18: .word 0x00000683
-_0202FE1C: .word 0x00000687
-_0202FE20: .word 0x02105D58
-_0202FE24: .word 0x00000634
-_0202FE28: .word 0x0000067F
-
- thumb_func_start FUN_0202FE2C
-FUN_0202FE2C: ; 0x0202FE2C
- push {r3-r7, lr}
- sub sp, #0x10
- str r0, [sp, #0x0]
- mov r0, #0x0
- str r0, [sp, #0x4]
- bl FUN_02033534
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_02031228
- str r0, [sp, #0xc]
- bl FUN_02033534
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_0202D858
- add r0, r0, #0x1
- mov r7, #0x0
- str r0, [sp, #0x8]
- cmp r0, #0x0
- ble _0202FED0
- ldr r0, [sp, #0x0]
- mov r1, #0xc0
- add r6, r0, #0x0
- add r4, r7, #0x0
- add r5, r7, #0x0
- mul r6, r1
-_0202FE66:
- ldr r0, _0202FEE4 ; =0x021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _0202FEE8 ; =0x0000047C
- add r0, r1, r0
- add r0, r0, r4
- bl FUN_0202D4BC
- lsl r0, r7, #0x10
- lsr r0, r0, #0x10
- bl FUN_02030E7C
- cmp r0, #0x0
- beq _0202FE90
- ldr r0, _0202FEE4 ; =0x021C59F4
- mov r1, #0xe
- ldr r0, [r0, #0x4]
- add r0, r6, r0
- add r2, r5, r0
- mov r0, #0x55
- lsl r0, r0, #0x2
- strb r1, [r2, r0]
-_0202FE90:
- ldr r0, _0202FEE4 ; =0x021C59F4
- mov r2, #0x55
- ldr r1, [r0, #0x4]
- ldr r0, _0202FEE8 ; =0x0000047C
- lsl r2, r2, #0x2
- add r0, r1, r0
- add r1, r1, r2
- add r1, r1, r6
- ldr r2, [sp, #0xc]
- add r0, r0, r4
- add r1, r1, r5
- bl FUN_0202D400
- ldr r0, _0202FEE4 ; =0x021C59F4
- ldr r0, [r0, #0x4]
- add r0, r6, r0
- add r1, r5, r0
- mov r0, #0x55
- lsl r0, r0, #0x2
- ldrb r0, [r1, r0]
- cmp r0, #0xe
- bne _0202FEC2
- ldr r0, [sp, #0x4]
- add r0, r0, #0x1
- str r0, [sp, #0x4]
-_0202FEC2:
- ldr r0, [sp, #0xc]
- add r7, r7, #0x1
- add r5, r5, r0
- ldr r0, [sp, #0x8]
- add r4, #0xc
- cmp r7, r0
- blt _0202FE66
-_0202FED0:
- ldr r1, [sp, #0x4]
- ldr r0, [sp, #0x8]
- cmp r1, r0
- bne _0202FEDE
- add sp, #0x10
- mov r0, #0x0
- pop {r3-r7, pc}
-_0202FEDE:
- mov r0, #0x1
- add sp, #0x10
- pop {r3-r7, pc}
- .balign 4
-_0202FEE4: .word 0x021C59F4
-_0202FEE8: .word 0x0000047C
-
- thumb_func_start FUN_0202FEEC
-FUN_0202FEEC: ; 0x0202FEEC
- push {r3-r7, lr}
- ldr r0, _02030064 ; =0x021C59F4
- ldr r0, [r0, #0x4]
- cmp r0, #0x0
- beq _0202FEFE
- bl FUN_02033534
- cmp r0, #0x13
- blt _0202FF00
-_0202FEFE:
- b _02030062
-_0202FF00:
- bl FUN_02033534
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_02031228
- str r0, [sp, #0x0]
- bl FUN_02033534
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_0202D858
- add r6, r0, #0x1
- ldr r0, _02030068 ; =0x02105D58
- ldrb r1, [r0, #0x1]
- cmp r1, #0x2
- beq _0202FF2C
- ldrb r0, [r0, #0x1]
- cmp r0, #0x0
- beq _0202FF2C
- b _02030062
-_0202FF2C:
- ldr r0, _02030068 ; =0x02105D58
- ldrb r1, [r0, #0x1]
- add r1, r1, #0x1
- strb r1, [r0, #0x1]
- bl FUN_0202FA28
- cmp r0, #0x1
- bne _0202FF4A
- ldr r0, _02030064 ; =0x021C59F4
- ldr r1, [r0, #0x4]
- mov r0, #0x1a
- lsl r0, r0, #0x6
- ldrb r0, [r1, r0]
- bl FUN_0202FE2C
-_0202FF4A:
- bl FUN_0202CBD4
- cmp r0, #0x4
- bne _0202FF86
- bl FUN_02031280
- cmp r0, #0x0
- bne _0202FF86
- ldr r0, _02030064 ; =0x021C59F4
- ldr r1, [r0, #0x4]
- mov r0, #0x55
- lsl r0, r0, #0x2
- add r3, r1, r0
- mov r0, #0x1a
- lsl r0, r0, #0x6
- ldrb r0, [r1, r0]
- mov r1, #0xc0
- add r2, r0, #0x0
- mul r2, r1
- add r0, r3, r2
- ldr r3, _0203006C ; =FUN_020304F0
- mov r2, #0xe
- bl FUN_0202D0D0
- cmp r0, #0x0
- bne _0202FF86
- ldr r0, _02030068 ; =0x02105D58
- ldrb r1, [r0, #0x1]
- sub r1, r1, #0x1
- strb r1, [r0, #0x1]
-_0202FF86:
- ldr r0, _02030068 ; =0x02105D58
- ldrb r1, [r0, #0x1]
- cmp r1, #0x1
- beq _0202FF94
- ldrb r0, [r0, #0x1]
- cmp r0, #0x3
- bne _0203000A
-_0202FF94:
- mov r4, #0x0
- cmp r6, #0x0
- ble _0202FFDC
- ldr r7, _02030064 ; =0x021C59F4
- add r5, r4, #0x0
-_0202FF9E:
- lsl r0, r4, #0x10
- lsr r0, r0, #0x10
- bl FUN_02030E7C
- cmp r0, #0x0
- beq _0202FFBA
- ldr r0, [r7, #0x4]
- ldr r1, _02030070 ; =0x00000638
- add r0, r0, r5
- ldr r1, [r0, r1]
- add r2, r1, #0x1
- ldr r1, _02030070 ; =0x00000638
- str r2, [r0, r1]
- b _0202FFD4
-_0202FFBA:
- bl FUN_02031280
- cmp r0, #0x0
- beq _0202FFD4
- cmp r4, #0x0
- bne _0202FFD4
- ldr r0, [r7, #0x4]
- ldr r1, _02030070 ; =0x00000638
- add r0, r0, r5
- ldr r1, [r0, r1]
- add r2, r1, #0x1
- ldr r1, _02030070 ; =0x00000638
- str r2, [r0, r1]
-_0202FFD4:
- add r4, r4, #0x1
- add r5, r5, #0x4
- cmp r4, r6
- blt _0202FF9E
-_0202FFDC:
- ldr r0, _02030064 ; =0x021C59F4
- mov r1, #0x55
- ldr r2, [r0, #0x4]
- lsl r1, r1, #0x2
- add r4, r2, r1
- mov r1, #0x1a
- lsl r1, r1, #0x6
- ldrb r1, [r2, r1]
- mov r2, #0xc0
- mov r0, #0x0
- add r3, r1, #0x0
- mul r3, r2
- add r1, r4, r3
- bl FUN_0203026C
- ldr r0, _02030064 ; =0x021C59F4
- mov r1, #0x1a
- ldr r3, [r0, #0x4]
- lsl r1, r1, #0x6
- ldrb r2, [r3, r1]
- mov r0, #0x1
- sub r0, r0, r2
- strb r0, [r3, r1]
-_0203000A:
- mov r5, #0x0
- cmp r6, #0x0
- ble _0203004A
- add r4, r5, #0x0
- mov r7, #0xff
-_02030014:
- lsl r0, r5, #0x10
- lsr r0, r0, #0x10
- bl FUN_02030E7C
- cmp r0, #0x0
- bne _02030040
- bl FUN_0202FA28
- cmp r0, #0x1
- bne _02030040
- ldr r0, _02030064 ; =0x021C59F4
- mov r1, #0x1a
- ldr r0, [r0, #0x4]
- lsl r1, r1, #0x6
- ldrb r2, [r0, r1]
- mov r1, #0xc0
- mul r1, r2
- add r0, r0, r1
- add r1, r4, r0
- mov r0, #0x55
- lsl r0, r0, #0x2
- strb r7, [r1, r0]
-_02030040:
- ldr r0, [sp, #0x0]
- add r5, r5, #0x1
- add r4, r4, r0
- cmp r5, r6
- blt _02030014
-_0203004A:
- bl FUN_0202CBD4
- cmp r0, #0x4
- bne _0203005A
- bl FUN_02031280
- cmp r0, #0x0
- beq _02030062
-_0203005A:
- ldr r0, _02030068 ; =0x02105D58
- ldrb r1, [r0, #0x1]
- add r1, r1, #0x1
- strb r1, [r0, #0x1]
-_02030062:
- pop {r3-r7, pc}
- .balign 4
-_02030064: .word 0x021C59F4
-_02030068: .word 0x02105D58
-_0203006C: .word FUN_020304F0
-_02030070: .word 0x00000638
-
- thumb_func_start FUN_02030074
-FUN_02030074: ; 0x02030074
- push {r3-r7, lr}
- ldr r0, _02030228 ; =0x021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _0203022C ; =0x00000683
- ldrb r0, [r1, r0]
- cmp r0, #0x0
- beq _020300DC
- bl FUN_02033534
- cmp r0, #0x13
- blt _020300B4
- mov r0, #0x0
- bl FUN_02030E7C
- cmp r0, #0x0
- beq _020300DC
- ldr r0, _02030228 ; =0x021C59F4
- ldr r1, [r0, #0x4]
- mov r0, #0x55
- lsl r0, r0, #0x2
- add r0, r1, r0
- mov r1, #0x4c
- bl MOD04_021D79B4
- cmp r0, #0x0
- beq _020300DC
- ldr r0, _02030228 ; =0x021C59F4
- mov r2, #0x0
- ldr r1, [r0, #0x4]
- ldr r0, _0203022C ; =0x00000683
- strb r2, [r1, r0]
- pop {r3-r7, pc}
-_020300B4:
- bl FUN_0202CBD4
- cmp r0, #0x4
- beq _020300C4
- bl FUN_02031280
- cmp r0, #0x0
- beq _020300DC
-_020300C4:
- bl FUN_0202FEEC
- ldr r0, _02030230 ; =0x02105D58
- ldrb r0, [r0, #0x1]
- cmp r0, #0x2
- bne _020300DC
- ldr r0, _02030228 ; =0x021C59F4
- mov r2, #0x0
- ldr r1, [r0, #0x4]
- ldr r0, _0203022C ; =0x00000683
- strb r2, [r1, r0]
- pop {r3-r7, pc}
-_020300DC:
- bl FUN_02033534
- cmp r0, #0x13
- blt _02030184
- mov r0, #0x0
- bl FUN_02030E7C
- cmp r0, #0x0
- bne _020300F0
- b _02030224
-_020300F0:
- ldr r0, _02030228 ; =0x021C59F4
- mov r1, #0x63
- ldr r2, [r0, #0x4]
- lsl r1, r1, #0x4
- ldr r0, [r2, r1]
- cmp r0, #0x0
- beq _02030130
- add r0, r1, #0x0
- add r0, #0xc
- ldr r0, [r2, r0]
- cmp r0, #0x3
- bgt _02030110
- add r1, #0x8
- ldr r0, [r2, r1]
- cmp r0, #0x3
- ble _02030112
-_02030110:
- b _02030224
-_02030112:
- ldr r0, _02030230 ; =0x02105D58
- ldrb r0, [r0, #0x1]
- cmp r0, #0x4
- bne _02030150
- bl FUN_0202FA28
- cmp r0, #0x1
- bne _02030128
- mov r0, #0x0
- bl FUN_0202FE2C
-_02030128:
- ldr r0, _02030230 ; =0x02105D58
- mov r1, #0x2
- strb r1, [r0, #0x1]
- b _02030150
-_02030130:
- ldr r0, _02030230 ; =0x02105D58
- ldrb r0, [r0, #0x1]
- cmp r0, #0x4
- bne _0203014A
- bl FUN_0202FA28
- cmp r0, #0x1
- bne _0203014A
- mov r0, #0x0
- bl FUN_0202FE2C
- cmp r0, #0x0
- beq _02030224
-_0203014A:
- ldr r0, _02030230 ; =0x02105D58
- mov r1, #0x2
- strb r1, [r0, #0x1]
-_02030150:
- ldr r0, _02030228 ; =0x021C59F4
- ldr r1, [r0, #0x4]
- mov r0, #0x55
- lsl r0, r0, #0x2
- add r0, r1, r0
- mov r1, #0x4c
- bl MOD04_021D79B4
- cmp r0, #0x0
- beq _02030224
- ldr r0, _02030230 ; =0x02105D58
- mov r1, #0x4
- strb r1, [r0, #0x1]
- ldr r1, _02030228 ; =0x021C59F4
- ldr r0, _02030234 ; =0x00000638
- ldr r3, [r1, #0x4]
- ldr r2, [r3, r0]
- add r2, r2, #0x1
- str r2, [r3, r0]
- ldr r2, [r1, #0x4]
- add r1, r0, #0x4
- ldr r1, [r2, r1]
- add r0, r0, #0x4
- add r1, r1, #0x1
- str r1, [r2, r0]
- pop {r3-r7, pc}
-_02030184:
- bl FUN_0202CBD4
- cmp r0, #0x4
- beq _02030194
- bl FUN_02031280
- cmp r0, #0x0
- beq _02030224
-_02030194:
- ldr r0, _02030230 ; =0x02105D58
- ldrb r0, [r0, #0x1]
- cmp r0, #0x4
- bne _02030224
- ldr r6, _02030228 ; =0x021C59F4
- ldr r7, _02030234 ; =0x00000638
- mov r4, #0x1
- mov r5, #0x4
-_020301A4:
- lsl r0, r4, #0x10
- lsr r0, r0, #0x10
- bl FUN_02030E7C
- cmp r0, #0x0
- beq _020301BC
- ldr r0, [r6, #0x4]
- add r0, r0, r5
- ldr r0, [r0, r7]
- cmp r0, #0x3
- ble _020301D2
- pop {r3-r7, pc}
-_020301BC:
- cmp r4, #0x0
- bne _020301D2
- bl FUN_02031280
- cmp r0, #0x0
- beq _020301D2
- ldr r1, [r6, #0x4]
- ldr r0, _02030234 ; =0x00000638
- ldr r0, [r1, r0]
- cmp r0, #0x3
- bgt _02030224
-_020301D2:
- add r4, r4, #0x1
- add r5, r5, #0x4
- cmp r4, #0x8
- blt _020301A4
- bl FUN_0202FA28
- cmp r0, #0x0
- bne _0203021A
- ldr r0, _02030228 ; =0x021C59F4
- ldr r1, [r0, #0x4]
- mov r0, #0x55
- lsl r0, r0, #0x2
- add r2, r1, r0
- mov r0, #0x1a
- lsl r0, r0, #0x6
- ldrb r1, [r1, r0]
- mov r0, #0xc0
- mul r0, r1
- add r0, r2, r0
- bl FUN_02030A00
- ldr r0, _02030228 ; =0x021C59F4
- ldr r1, [r0, #0x4]
- mov r0, #0x55
- lsl r0, r0, #0x2
- add r2, r1, r0
- mov r0, #0x1a
- lsl r0, r0, #0x6
- ldrb r1, [r1, r0]
- mov r0, #0x1
- sub r1, r0, r1
- mov r0, #0xc0
- mul r0, r1
- add r0, r2, r0
- bl FUN_02030A00
-_0203021A:
- ldr r0, _02030230 ; =0x02105D58
- mov r1, #0x0
- strb r1, [r0, #0x1]
- bl FUN_0202FEEC
-_02030224:
- pop {r3-r7, pc}
- nop
-_02030228: .word 0x021C59F4
-_0203022C: .word 0x00000683
-_02030230: .word 0x02105D58
-_02030234: .word 0x00000638
-
- thumb_func_start FUN_02030238
-FUN_02030238: ; 0x02030238
- push {r4-r6, lr}
- ldr r4, _02030264 ; =0x021C59F4
- ldr r3, _02030268 ; =0x0000066F
- ldr r5, [r4, #0x4]
- ldrb r6, [r5, r3]
- cmp r6, #0x0
- beq _0203025C
- add r0, r3, #0x0
- sub r0, #0x3b
- ldr r0, [r5, r0]
- sub r1, r0, #0x1
- add r0, r3, #0x0
- sub r0, #0x3b
- str r1, [r5, r0]
- ldr r0, [r4, #0x4]
- mov r1, #0x0
- strb r1, [r0, r3]
- pop {r4-r6, pc}
-_0203025C:
- bl FUN_0203026C
- pop {r4-r6, pc}
- nop
-_02030264: .word 0x021C59F4
-_02030268: .word 0x0000066F
-
- thumb_func_start FUN_0203026C
-FUN_0203026C: ; 0x0203026C
- push {r3-r7, lr}
- sub sp, #0x8
- ldr r0, _020303A0 ; =0x021C59F4
- add r5, r1, #0x0
- ldr r2, [r0, #0x4]
- ldr r0, _020303A4 ; =0x00000634
- ldr r1, [r2, r0]
- sub r1, r1, #0x1
- str r1, [r2, r0]
- cmp r5, #0x0
- beq _02030290
- ldrb r0, [r5, #0x0]
- cmp r0, #0xb
- bne _02030296
- bl FUN_0202FA28
- cmp r0, #0x1
- bne _02030292
-_02030290:
- b _0203039C
-_02030292:
- add r5, r5, #0x1
- b _0203029E
-_02030296:
- bl FUN_0202FA28
- cmp r0, #0x0
- beq _0203039C
-_0203029E:
- ldr r0, _020303A0 ; =0x021C59F4
- ldr r1, _020303A8 ; =0x00000682
- ldr r0, [r0, #0x4]
- ldrb r1, [r0, r1]
- cmp r1, #0x0
- beq _020302B2
- ldrb r2, [r5, #0x0]
- mov r1, #0x1
- tst r1, r2
- bne _0203039C
-_020302B2:
- ldr r1, _020303A8 ; =0x00000682
- mov r2, #0x0
- strb r2, [r0, r1]
- bl FUN_0202FA28
- cmp r0, #0x1
- bne _0203036E
- bl FUN_02033534
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_02031228
- add r6, r0, #0x0
- bl FUN_02033534
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_0202D858
- add r0, r0, #0x1
- mov r4, #0x0
- str r0, [sp, #0x4]
- cmp r0, #0x0
- ble _0203039C
- sub r0, r6, #0x1
- add r7, r4, #0x0
- str r0, [sp, #0x0]
-_020302EA:
- ldrb r0, [r5, #0x0]
- cmp r0, #0xff
- bne _02030302
- ldr r0, _020303A0 ; =0x021C59F4
- mov r2, #0x1
- ldr r1, [r0, #0x4]
- ldr r0, _020303AC ; =0x0000065C
- lsl r2, r4
- ldrh r0, [r1, r0]
- mvn r2, r2
- and r2, r0
- b _02030310
-_02030302:
- ldr r0, _020303A0 ; =0x021C59F4
- mov r2, #0x1
- ldr r1, [r0, #0x4]
- ldr r0, _020303AC ; =0x0000065C
- lsl r2, r4
- ldrh r0, [r1, r0]
- orr r2, r0
-_02030310:
- ldr r0, _020303AC ; =0x0000065C
- strh r2, [r1, r0]
- ldrb r2, [r5, #0x0]
- cmp r2, #0xff
- bne _0203031E
- add r5, r5, r6
- b _02030360
-_0203031E:
- cmp r2, #0xe
- bne _02030326
- add r5, r5, r6
- b _02030360
-_02030326:
- ldr r0, _020303A0 ; =0x021C59F4
- ldr r3, [r0, #0x4]
- ldr r0, _020303B0 ; =0x00000667
- add r1, r3, r4
- ldrb r0, [r1, r0]
- cmp r0, #0x0
- beq _0203033E
- mov r0, #0x1
- tst r0, r2
- beq _0203033E
- add r5, r5, r6
- b _02030360
-_0203033E:
- ldr r0, _020303B4 ; =0x000004E8
- add r5, r5, #0x1
- add r0, r3, r0
- ldr r2, [sp, #0x0]
- ldr r3, _020303B8 ; =0x000005E6
- add r0, r0, r7
- add r1, r5, #0x0
- bl FUN_0202D3A4
- ldr r0, [sp, #0x0]
- mov r1, #0x0
- add r5, r5, r0
- ldr r0, _020303A0 ; =0x021C59F4
- ldr r0, [r0, #0x4]
- add r2, r0, r4
- ldr r0, _020303B0 ; =0x00000667
- strb r1, [r2, r0]
-_02030360:
- ldr r0, [sp, #0x4]
- add r4, r4, #0x1
- add r7, #0xc
- cmp r4, r0
- blt _020302EA
- add sp, #0x8
- pop {r3-r7, pc}
-_0203036E:
- ldr r0, _020303A0 ; =0x021C59F4
- ldrb r2, [r5, #0x1]
- ldr r1, [r0, #0x4]
- ldr r3, _020303AC ; =0x0000065C
- strh r2, [r1, r3]
- ldr r2, [r0, #0x4]
- ldrh r1, [r2, r3]
- lsl r1, r1, #0x8
- strh r1, [r2, r3]
- ldr r4, [r0, #0x4]
- ldrb r1, [r5, #0x2]
- ldrh r2, [r4, r3]
- add r1, r2, r1
- strh r1, [r4, r3]
- ldr r1, [r0, #0x4]
- mov r0, #0x47
- lsl r0, r0, #0x4
- add r0, r1, r0
- ldrb r2, [r5, #0x3]
- add r1, r5, #0x4
- sub r3, #0x5d
- bl FUN_0202D3A4
-_0203039C:
- add sp, #0x8
- pop {r3-r7, pc}
- .balign 4
-_020303A0: .word 0x021C59F4
-_020303A4: .word 0x00000634
-_020303A8: .word 0x00000682
-_020303AC: .word 0x0000065C
-_020303B0: .word 0x00000667
-_020303B4: .word 0x000004E8
-_020303B8: .word 0x000005E6
-
- thumb_func_start FUN_020303BC
-FUN_020303BC: ; 0x020303BC
- push {r4-r6, lr}
- ldr r3, _020303EC ; =0x021C59F4
- ldr r6, _020303F0 ; =0x0000066F
- ldr r5, [r3, #0x4]
- add r4, r5, r0
- ldrb r4, [r4, r6]
- cmp r4, #0x0
- beq _020303E4
- add r1, r6, #0x0
- sub r1, #0x37
- add r4, r5, r1
- lsl r2, r0, #0x2
- ldr r1, [r4, r2]
- sub r1, r1, #0x1
- str r1, [r4, r2]
- ldr r1, [r3, #0x4]
- mov r2, #0x0
- add r0, r1, r0
- strb r2, [r0, r6]
- pop {r4-r6, pc}
-_020303E4:
- bl FUN_020303F4
- pop {r4-r6, pc}
- nop
-_020303EC: .word 0x021C59F4
-_020303F0: .word 0x0000066F
-
- thumb_func_start FUN_020303F4
-FUN_020303F4: ; 0x020303F4
- push {r4-r6, lr}
- ldr r3, _020304B8 ; =0x021C59F4
- add r5, r0, #0x0
- ldr r0, [r3, #0x4]
- ldr r2, _020304BC ; =0x00000638
- add r4, r1, #0x0
- add r1, r0, r2
- lsl r0, r5, #0x2
- ldr r6, [r1, r0]
- sub r6, r6, #0x1
- str r6, [r1, r0]
- cmp r4, #0x0
- beq _020304B4
- ldr r0, [r3, #0x4]
- add r2, #0x2f
- add r0, r0, r2
- ldrb r1, [r0, r5]
- cmp r1, #0x0
- beq _02030422
- ldrb r2, [r4, #0x0]
- mov r1, #0x1
- tst r1, r2
- bne _020304B4
-_02030422:
- mov r1, #0x0
- strb r1, [r0, r5]
- bl FUN_0202FA28
- cmp r0, #0x1
- bne _02030478
- bl FUN_02033534
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_02031228
- add r6, r0, #0x0
- bl FUN_02033534
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_0202D858
- ldrb r1, [r4, #0x0]
- mov r0, #0x2
- tst r0, r1
- bne _02030468
- ldr r0, _020304B8 ; =0x021C59F4
- ldr r3, _020304C0 ; =0x0000065E
- ldr r1, [r0, #0x4]
- ldr r0, _020304C4 ; =0x0000047C
- add r2, r6, #0x0
- add r1, r1, r0
- mov r0, #0xc
- mul r0, r5
- add r0, r1, r0
- add r1, r4, #0x0
- bl FUN_0202D3A4
-_02030468:
- ldr r0, _020304B8 ; =0x021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _020304C8 ; =0x0000065F
- add r1, r1, r0
- ldrb r0, [r1, r5]
- add r0, r0, #0x1
- strb r0, [r1, r5]
- pop {r4-r6, pc}
-_02030478:
- add r0, r4, #0x0
- add r1, r5, #0x0
- bl FUN_020307E4
- ldrb r1, [r4, #0x0]
- mov r0, #0x2
- tst r0, r1
- bne _020304B4
- mov r0, #0xc
- add r6, r5, #0x0
- mul r6, r0
- ldr r0, _020304B8 ; =0x021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _020304CC ; =0x000004E8
- add r0, r1, r0
- add r0, r0, r6
- bl FUN_0202D498
- cmp r0, #0xb
- blt _020304B4
- ldr r0, _020304B8 ; =0x021C59F4
- ldr r3, _020304D0 ; =0x0000066E
- ldr r1, [r0, #0x4]
- ldr r0, _020304CC ; =0x000004E8
- mov r2, #0xb
- add r0, r1, r0
- add r0, r0, r6
- add r1, r4, #0x1
- bl FUN_0202D3A4
-_020304B4:
- pop {r4-r6, pc}
- nop
-_020304B8: .word 0x021C59F4
-_020304BC: .word 0x00000638
-_020304C0: .word 0x0000065E
-_020304C4: .word 0x0000047C
-_020304C8: .word 0x0000065F
-_020304CC: .word 0x000004E8
-_020304D0: .word 0x0000066E
-
- thumb_func_start FUN_020304D4
-FUN_020304D4: ; 0x020304D4
- push {r3, lr}
- cmp r0, #0x0
- beq _020304E4
- ldr r0, _020304EC ; =0x02105D58
- ldrb r1, [r0, #0x0]
- add r1, r1, #0x1
- strb r1, [r0, #0x0]
- pop {r3, pc}
-_020304E4:
- bl ErrorHandling
- pop {r3, pc}
- nop
-_020304EC: .word 0x02105D58
-
- thumb_func_start FUN_020304F0
-FUN_020304F0: ; 0x020304F0
- push {r3, lr}
- cmp r0, #0x0
- beq _02030500
- ldr r0, _02030508 ; =0x02105D58
- ldrb r1, [r0, #0x1]
- add r1, r1, #0x1
- strb r1, [r0, #0x1]
- pop {r3, pc}
-_02030500:
- bl ErrorHandling
- pop {r3, pc}
- nop
-_02030508: .word 0x02105D58
-
- thumb_func_start FUN_0203050C
-FUN_0203050C: ; 0x0203050C
- push {r4, lr}
- ldr r0, _02030660 ; =0x021C59F4
- ldr r0, [r0, #0x4]
- cmp r0, #0x0
- beq _0203051E
- bl FUN_02033534
- cmp r0, #0x13
- blt _02030520
-_0203051E:
- b _0203065E
-_02030520:
- bl FUN_02033534
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_02031228
- add r4, r0, #0x0
- bl FUN_02033534
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_0202D858
- bl FUN_02031280
- cmp r0, #0x0
- beq _02030594
- ldr r0, _02030664 ; =0x02105D58
- ldrb r1, [r0, #0x0]
- cmp r1, #0x2
- beq _02030550
- ldrb r0, [r0, #0x0]
- cmp r0, #0x0
- bne _02030594
-_02030550:
- ldr r0, _02030664 ; =0x02105D58
- ldrb r1, [r0, #0x0]
- add r1, r1, #0x1
- strb r1, [r0, #0x0]
- mov r0, #0x1
- bl FUN_020304D4
- ldr r0, _02030660 ; =0x021C59F4
- ldr r1, _02030668 ; =0x0000067F
- ldr r3, [r0, #0x4]
- mov r0, #0x0
- ldrb r2, [r3, r1]
- mov r1, #0x26
- mul r1, r2
- lsl r2, r4, #0x10
- add r1, r3, r1
- lsr r2, r2, #0x10
- bl FUN_020303F4
- ldr r2, _02030660 ; =0x021C59F4
- ldr r1, _02030668 ; =0x0000067F
- ldr r4, [r2, #0x4]
- mov r0, #0x1
- ldrb r3, [r4, r1]
- sub r0, r0, r3
- strb r0, [r4, r1]
- add r0, r1, #0x0
- ldr r2, [r2, #0x4]
- sub r0, #0x4b
- ldr r0, [r2, r0]
- sub r1, #0x4b
- add r0, r0, #0x1
- str r0, [r2, r1]
- pop {r4, pc}
-_02030594:
- bl FUN_0202CBD4
- cmp r0, #0x4
- bne _0203065E
- bl FUN_02031190
- bl FUN_02030E7C
- cmp r0, #0x0
- bne _020305AE
- bl FUN_02031190
- pop {r4, pc}
-_020305AE:
- ldr r0, _02030664 ; =0x02105D58
- ldrb r1, [r0, #0x0]
- cmp r1, #0x2
- beq _020305BC
- ldrb r0, [r0, #0x0]
- cmp r0, #0x0
- bne _0203065E
-_020305BC:
- bl FUN_02031190
- cmp r0, #0x0
- beq _02030612
- ldr r0, _02030664 ; =0x02105D58
- ldr r3, _0203066C ; =FUN_020304D4
- ldrb r1, [r0, #0x0]
- add r1, r1, #0x1
- strb r1, [r0, #0x0]
- ldr r0, _02030660 ; =0x021C59F4
- ldr r2, [r0, #0x4]
- ldr r0, _02030668 ; =0x0000067F
- ldrb r1, [r2, r0]
- mov r0, #0x26
- mul r0, r1
- lsl r1, r4, #0x10
- add r0, r2, r0
- lsr r1, r1, #0x10
- mov r2, #0xe
- bl FUN_0202D0D0
- cmp r0, #0x0
- bne _020305F4
- ldr r0, _02030664 ; =0x02105D58
- ldrb r1, [r0, #0x0]
- sub r1, r1, #0x1
- strb r1, [r0, #0x0]
- pop {r4, pc}
-_020305F4:
- ldr r2, _02030660 ; =0x021C59F4
- ldr r1, _02030668 ; =0x0000067F
- ldr r4, [r2, #0x4]
- mov r0, #0x1
- ldrb r3, [r4, r1]
- sub r0, r0, r3
- strb r0, [r4, r1]
- add r0, r1, #0x0
- ldr r2, [r2, #0x4]
- sub r0, #0x4b
- ldr r0, [r2, r0]
- sub r1, #0x4b
- add r0, r0, #0x1
- str r0, [r2, r1]
- pop {r4, pc}
-_02030612:
- bl FUN_0202CB8C
- ldr r1, _02030670 ; =0x0000FFFE
- tst r0, r1
- beq _0203065E
- ldr r0, _02030664 ; =0x02105D58
- ldrb r1, [r0, #0x0]
- add r1, r1, #0x1
- strb r1, [r0, #0x0]
- mov r0, #0x1
- bl FUN_020304D4
- ldr r0, _02030660 ; =0x021C59F4
- ldr r1, _02030668 ; =0x0000067F
- ldr r3, [r0, #0x4]
- mov r0, #0x0
- ldrb r2, [r3, r1]
- mov r1, #0x26
- mul r1, r2
- lsl r2, r4, #0x10
- add r1, r3, r1
- lsr r2, r2, #0x10
- bl FUN_020303F4
- ldr r2, _02030660 ; =0x021C59F4
- ldr r1, _02030668 ; =0x0000067F
- ldr r4, [r2, #0x4]
- mov r0, #0x1
- ldrb r3, [r4, r1]
- sub r0, r0, r3
- strb r0, [r4, r1]
- add r0, r1, #0x0
- ldr r2, [r2, #0x4]
- sub r0, #0x4b
- ldr r0, [r2, r0]
- sub r1, #0x4b
- add r0, r0, #0x1
- str r0, [r2, r1]
-_0203065E:
- pop {r4, pc}
- .balign 4
-_02030660: .word 0x021C59F4
-_02030664: .word 0x02105D58
-_02030668: .word 0x0000067F
-_0203066C: .word FUN_020304D4
-_02030670: .word 0x0000FFFE
-
- thumb_func_start FUN_02030674
-FUN_02030674: ; 0x02030674
- push {r3-r7, lr}
- ldr r7, _02030798 ; =0x021C59F4
- mov r6, #0x0
- ldr r5, [r7, #0x4]
- ldr r2, _0203079C ; =0x0000062C
- add r4, r6, #0x0
- ldrb r0, [r5, r2]
- cmp r0, #0x0
- beq _02030690
- sub r1, r2, #0x4
- ldrh r1, [r5, r1]
- mov r3, #0xf0
- tst r3, r1
- bne _02030692
-_02030690:
- b _02030794
-_02030692:
- cmp r0, #0x2
- bne _020306D0
- mov r0, #0x20
- tst r0, r1
- beq _020306A4
- mov r0, #0x10
- orr r0, r6
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_020306A4:
- mov r0, #0x10
- tst r0, r1
- beq _020306B2
- mov r0, #0x20
- orr r0, r4
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_020306B2:
- mov r0, #0x40
- tst r0, r1
- beq _020306C0
- mov r0, #0x80
- orr r0, r4
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_020306C0:
- mov r0, #0x80
- tst r0, r1
- beq _0203077E
- mov r0, #0x40
- orr r0, r4
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
- b _0203077E
-_020306D0:
- add r0, r2, #0x2
- ldrh r0, [r5, r0]
- cmp r0, #0x0
- beq _020306F2
- add r4, r0, #0x0
- add r0, r2, #0x1
- ldrsb r0, [r5, r0]
- sub r1, r0, #0x1
- add r0, r2, #0x1
- strb r1, [r5, r0]
- ldr r1, [r7, #0x4]
- ldrsb r0, [r1, r0]
- cmp r0, #0x0
- bge _0203077E
- add r0, r2, #0x2
- strh r6, [r1, r0]
- b _0203077E
-_020306F2:
- add r0, r2, #0x0
- sub r0, #0x34
- add r6, r5, r0
- sub r2, #0x34
- ldr r0, [r6, #0x8]
- ldr r1, [r6, #0xc]
- ldr r2, [r5, r2]
- ldr r3, [r6, #0x4]
- bl _ll_mul
- add r3, r0, #0x0
- add r2, r1, #0x0
- ldr r0, [r6, #0x10]
- ldr r1, [r6, #0x14]
- add r0, r0, r3
- adc r1, r2
- ldr r2, _020307A0 ; =0x000005F8
- str r0, [r5, r2]
- mov r2, #0x0
- str r1, [r6, #0x4]
- lsr r0, r1, #0x1e
- lsl r1, r2, #0x2
- orr r1, r0
- cmp r1, #0x3
- bhi _02030746
- add r0, r1, r1
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02030730: ; jump table (using 16-bit offset)
- .short _02030738 - _02030730 - 2; case 0
- .short _0203073C - _02030730 - 2; case 1
- .short _02030740 - _02030730 - 2; case 2
- .short _02030744 - _02030730 - 2; case 3
-_02030738:
- mov r4, #0x20
- b _02030746
-_0203073C:
- mov r4, #0x10
- b _02030746
-_02030740:
- mov r4, #0x40
- b _02030746
-_02030744:
- mov r4, #0x80
-_02030746:
- ldr r0, _02030798 ; =0x021C59F4
- ldr r5, [r0, #0x4]
- ldr r0, _020307A0 ; =0x000005F8
- add r6, r5, r0
- ldr r0, [r6, #0x8]
- ldr r1, [r6, #0xc]
- ldr r2, [r6, #0x0]
- ldr r3, [r6, #0x4]
- bl _ll_mul
- ldr r3, [r6, #0x10]
- ldr r2, [r6, #0x14]
- add r0, r3, r0
- adc r2, r1
- ldr r1, _020307A0 ; =0x000005F8
- mov r3, #0x0
- str r0, [r5, r1]
- str r2, [r6, #0x4]
- lsr r0, r2, #0x1c
- lsl r2, r3, #0x4
- orr r2, r0
- add r0, r1, #0x0
- add r0, #0x35
- strb r2, [r5, r0]
- ldr r0, _02030798 ; =0x021C59F4
- add r1, #0x36
- ldr r0, [r0, #0x4]
- strh r4, [r0, r1]
-_0203077E:
- ldr r2, _02030798 ; =0x021C59F4
- ldr r1, _020307A4 ; =0x00000628
- ldr r5, [r2, #0x4]
- mov r0, #0xf0
- ldrh r3, [r5, r1]
- bic r3, r0
- strh r3, [r5, r1]
- ldr r2, [r2, #0x4]
- ldrh r0, [r2, r1]
- add r0, r0, r4
- strh r0, [r2, r1]
-_02030794:
- pop {r3-r7, pc}
- nop
-_02030798: .word 0x021C59F4
-_0203079C: .word 0x0000062C
-_020307A0: .word 0x000005F8
-_020307A4: .word 0x00000628
-
- thumb_func_start FUN_020307A8
-FUN_020307A8: ; 0x020307A8
- ldr r0, _020307B4 ; =0x021C59F4
- mov r2, #0x1
- ldr r1, [r0, #0x4]
- ldr r0, _020307B8 ; =0x0000062C
- strb r2, [r1, r0]
- bx lr
- .balign 4
-_020307B4: .word 0x021C59F4
-_020307B8: .word 0x0000062C
-
- thumb_func_start FUN_020307BC
-FUN_020307BC: ; 0x020307BC
- ldr r0, _020307C8 ; =0x021C59F4
- mov r2, #0x2
- ldr r1, [r0, #0x4]
- ldr r0, _020307CC ; =0x0000062C
- strb r2, [r1, r0]
- bx lr
- .balign 4
-_020307C8: .word 0x021C59F4
-_020307CC: .word 0x0000062C
-
- thumb_func_start FUN_020307D0
-FUN_020307D0: ; 0x020307D0
- ldr r0, _020307DC ; =0x021C59F4
- mov r2, #0x0
- ldr r1, [r0, #0x4]
- ldr r0, _020307E0 ; =0x0000062C
- strb r2, [r1, r0]
- bx lr
- .balign 4
-_020307DC: .word 0x021C59F4
-_020307E0: .word 0x0000062C
-
- thumb_func_start FUN_020307E4
-FUN_020307E4: ; 0x020307E4
- push {r4-r7}
- ldr r4, _02030868 ; =0x021C59F4
- lsl r6, r1, #0x1
- ldr r2, [r4, #0x4]
- mov r5, #0x0
- add r3, r2, r6
- mov r2, #0x61
- lsl r2, r2, #0x4
- strh r5, [r3, r2]
- ldrb r5, [r0, #0x0]
- mov r3, #0x10
- add r7, r5, #0x0
- and r7, r3
- cmp r7, #0x10
- bne _02030860
- mov r7, #0xc
- and r5, r7
- lsl r5, r5, #0x18
- lsr r5, r5, #0x18
- bne _0203081A
- ldr r3, [r4, #0x4]
- add r4, r3, r2
- ldrh r3, [r4, r6]
- mov r2, #0x40
- orr r2, r3
- strh r2, [r4, r6]
- b _0203084C
-_0203081A:
- cmp r5, #0x4
- bne _0203082C
- ldr r3, [r4, #0x4]
- add r4, r3, r2
- ldrh r3, [r4, r6]
- mov r2, #0x80
- orr r2, r3
- strh r2, [r4, r6]
- b _0203084C
-_0203082C:
- cmp r5, #0x8
- bne _0203083E
- ldr r3, [r4, #0x4]
- add r4, r3, r2
- ldrh r3, [r4, r6]
- mov r2, #0x20
- orr r2, r3
- strh r2, [r4, r6]
- b _0203084C
-_0203083E:
- cmp r5, #0xc
- bne _0203084C
- ldr r4, [r4, #0x4]
- add r4, r4, r2
- ldrh r2, [r4, r6]
- orr r2, r3
- strh r2, [r4, r6]
-_0203084C:
- ldrb r0, [r0, #0x0]
- asr r2, r0, #0x5
- mov r0, #0x7
- and r2, r0
- ldr r0, _02030868 ; =0x021C59F4
- ldr r0, [r0, #0x4]
- add r1, r0, r1
- mov r0, #0x62
- lsl r0, r0, #0x4
- strb r2, [r1, r0]
-_02030860:
- mov r0, #0x1
- pop {r4-r7}
- bx lr
- nop
-_02030868: .word 0x021C59F4
-
- thumb_func_start FUN_0203086C
-FUN_0203086C: ; 0x0203086C
- bx lr
- .balign 4
-
- thumb_func_start FUN_02030870
-FUN_02030870: ; 0x02030870
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, _0203091C ; =0x021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _02030920 ; =0x0000062A
- ldrb r0, [r1, r0]
- cmp r0, #0x0
- beq _02030884
- mov r0, #0x0
- pop {r4, pc}
-_02030884:
- bl FUN_02030FE0
- cmp r0, #0x0
- bne _02030890
- mov r0, #0x0
- pop {r4, pc}
-_02030890:
- ldr r0, _0203091C ; =0x021C59F4
- ldr r2, [r0, #0x4]
- ldr r0, _02030924 ; =0x00000681
- ldrb r1, [r2, r0]
- cmp r1, #0x0
- beq _020308A0
- sub r1, r1, #0x1
- strb r1, [r2, r0]
-_020308A0:
- ldr r1, _0203091C ; =0x021C59F4
- ldr r0, _02030928 ; =0x00000628
- ldr r2, [r1, #0x4]
- mov r3, #0x40
- ldrh r2, [r2, r0]
- tst r3, r2
- beq _020308C0
- ldrb r3, [r4, #0x0]
- mov r2, #0x10
- add r0, #0x59
- orr r2, r3
- strb r2, [r4, #0x0]
- ldr r1, [r1, #0x4]
- mov r2, #0x8
- strb r2, [r1, r0]
- b _02030906
-_020308C0:
- mov r3, #0x80
- tst r3, r2
- beq _020308D8
- ldrb r3, [r4, #0x0]
- mov r2, #0x14
- add r0, #0x59
- orr r2, r3
- strb r2, [r4, #0x0]
- ldr r1, [r1, #0x4]
- mov r2, #0x8
- strb r2, [r1, r0]
- b _02030906
-_020308D8:
- mov r3, #0x20
- tst r3, r2
- beq _020308F0
- ldrb r3, [r4, #0x0]
- mov r2, #0x18
- add r0, #0x59
- orr r2, r3
- strb r2, [r4, #0x0]
- ldr r1, [r1, #0x4]
- mov r2, #0x8
- strb r2, [r1, r0]
- b _02030906
-_020308F0:
- mov r3, #0x10
- tst r2, r3
- beq _02030906
- ldrb r3, [r4, #0x0]
- mov r2, #0x1c
- add r0, #0x59
- orr r2, r3
- strb r2, [r4, #0x0]
- ldr r1, [r1, #0x4]
- mov r2, #0x8
- strb r2, [r1, r0]
-_02030906:
- ldr r0, _0203091C ; =0x021C59F4
- ldrb r2, [r4, #0x0]
- ldr r1, [r0, #0x4]
- ldr r0, _0203092C ; =0x0000062B
- ldrb r0, [r1, r0]
- lsl r0, r0, #0x5
- orr r0, r2
- strb r0, [r4, #0x0]
- mov r0, #0x0
- pop {r4, pc}
- nop
-_0203091C: .word 0x021C59F4
-_02030920: .word 0x0000062A
-_02030924: .word 0x00000681
-_02030928: .word 0x00000628
-_0203092C: .word 0x0000062B
-
- thumb_func_start FUN_02030930
-FUN_02030930: ; 0x02030930
- push {r3-r5, lr}
- sub sp, #0x8
- add r4, r0, #0x0
- bl FUN_02033534
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_02031228
- add r5, r0, #0x0
- bl FUN_02033534
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_0202D858
- ldr r0, _020309F0 ; =0x021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _020309F4 ; =0x00000684
- ldrb r0, [r1, r0]
- cmp r0, #0x0
- bne _02030960
- mov r0, #0x0
- b _02030962
-_02030960:
- mov r0, #0x1
-_02030962:
- strb r0, [r4, #0x0]
- bl FUN_0202FA28
- cmp r0, #0x0
- bne _02030972
- add r0, r4, #0x0
- bl FUN_02030870
-_02030972:
- ldr r1, _020309F0 ; =0x021C59F4
- ldr r0, _020309F4 ; =0x00000684
- ldr r2, [r1, #0x4]
- mov r3, #0x0
- strb r3, [r2, r0]
- ldr r1, [r1, #0x4]
- ldr r0, _020309F8 ; =0x0000054C
- add r0, r1, r0
- bl FUN_0202D4E4
- cmp r0, #0x0
- beq _0203099E
- ldrb r1, [r4, #0x0]
- mov r0, #0x2
- orr r0, r1
- strb r0, [r4, #0x0]
- ldrb r0, [r4, #0x0]
- cmp r0, #0x2
- bne _020309E8
- add sp, #0x8
- mov r0, #0x0
- pop {r3-r5, pc}
-_0203099E:
- sub r0, r5, #0x1
- str r0, [sp, #0x4]
- add r0, r4, #0x1
- str r0, [sp, #0x0]
- ldr r0, _020309F0 ; =0x021C59F4
- mov r2, #0x1
- ldr r1, [r0, #0x4]
- ldr r0, _020309F8 ; =0x0000054C
- add r0, r1, r0
- add r1, sp, #0x0
- bl FUN_0202D760
- cmp r0, #0x0
- bne _020309C4
- ldr r0, _020309F0 ; =0x021C59F4
- mov r2, #0x1
- ldr r1, [r0, #0x4]
- ldr r0, _020309F4 ; =0x00000684
- strb r2, [r1, r0]
-_020309C4:
- bl FUN_0202FA28
- cmp r0, #0x1
- bne _020309E8
- ldr r2, _020309F0 ; =0x021C59F4
- ldr r1, _020309FC ; =0x0000065E
- ldr r3, [r2, #0x4]
- ldrb r0, [r3, r1]
- add r0, r0, #0x1
- strb r0, [r3, r1]
- ldr r2, [r2, #0x4]
- ldrb r0, [r4, #0x0]
- ldrb r1, [r2, r1]
- lsl r2, r1, #0x4
- mov r1, #0xf0
- and r1, r2
- orr r0, r1
- strb r0, [r4, #0x0]
-_020309E8:
- mov r0, #0x1
- add sp, #0x8
- pop {r3-r5, pc}
- nop
-_020309F0: .word 0x021C59F4
-_020309F4: .word 0x00000684
-_020309F8: .word 0x0000054C
-_020309FC: .word 0x0000065E
-
- thumb_func_start FUN_02030A00
-FUN_02030A00: ; 0x02030A00
- push {r4, lr}
- sub sp, #0x8
- add r4, r0, #0x0
- mov r0, #0xb
- strb r0, [r4, #0x0]
- ldr r0, _02030A6C ; =0x021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _02030A70 ; =0x00000685
- ldrb r0, [r1, r0]
- cmp r0, #0x0
- bne _02030A1A
- mov r0, #0x0
- b _02030A1C
-_02030A1A:
- mov r0, #0x1
-_02030A1C:
- strb r0, [r4, #0x1]
- bl FUN_0202CB8C
- asr r1, r0, #0x8
- strb r1, [r4, #0x2]
- strb r0, [r4, #0x3]
- mov r0, #0xbb
- str r0, [sp, #0x4]
- add r0, r4, #0x5
- str r0, [sp, #0x0]
- ldr r0, _02030A6C ; =0x021C59F4
- mov r2, #0x0
- ldr r1, [r0, #0x4]
- ldr r0, _02030A74 ; =0x0000056C
- add r0, r1, r0
- add r1, sp, #0x0
- bl FUN_0202D760
- cmp r0, #0x0
- beq _02030A5A
- ldr r0, _02030A6C ; =0x021C59F4
- mov r2, #0x0
- ldr r1, [r0, #0x4]
- ldr r0, _02030A70 ; =0x00000685
- strb r2, [r1, r0]
- ldr r1, [sp, #0x4]
- mov r0, #0xbb
- sub r0, r0, r1
- add sp, #0x8
- strb r0, [r4, #0x4]
- pop {r4, pc}
-_02030A5A:
- ldr r0, _02030A6C ; =0x021C59F4
- mov r2, #0x1
- ldr r1, [r0, #0x4]
- ldr r0, _02030A70 ; =0x00000685
- strb r2, [r1, r0]
- mov r0, #0xbb
- strb r0, [r4, #0x4]
- add sp, #0x8
- pop {r4, pc}
- .balign 4
-_02030A6C: .word 0x021C59F4
-_02030A70: .word 0x00000685
-_02030A74: .word 0x0000056C
-
- thumb_func_start FUN_02030A78
-FUN_02030A78: ; 0x02030A78
- push {r4-r6, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- add r4, r1, #0x0
- add r6, r2, #0x0
- bl FUN_02031190
- bl FUN_02030E7C
- cmp r0, #0x0
- bne _02030A9C
- bl FUN_02031280
- cmp r0, #0x0
- bne _02030A9C
- add sp, #0x8
- mov r0, #0x0
- pop {r4-r6, pc}
-_02030A9C:
- mov r0, #0x1
- str r0, [sp, #0x0]
- mov r0, #0x0
- str r0, [sp, #0x4]
- ldr r0, _02030AD4 ; =0x021C59F4
- add r2, r4, #0x0
- ldr r1, [r0, #0x4]
- ldr r0, _02030AD8 ; =0x0000054C
- add r3, r6, #0x0
- add r0, r1, r0
- add r1, r5, #0x0
- bl FUN_0202D684
- cmp r0, #0x0
- beq _02030AC0
- add sp, #0x8
- mov r0, #0x1
- pop {r4-r6, pc}
-_02030AC0:
- bl FUN_02033534
- cmp r0, #0xa
- bne _02030ACC
- bl FUN_02031454
-_02030ACC:
- mov r0, #0x0
- add sp, #0x8
- pop {r4-r6, pc}
- nop
-_02030AD4: .word 0x021C59F4
-_02030AD8: .word 0x0000054C
-
- thumb_func_start FUN_02030ADC
-FUN_02030ADC: ; 0x02030ADC
- push {r4-r6, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- add r4, r1, #0x0
- add r6, r2, #0x0
- bl FUN_02031190
- bl FUN_02030E7C
- cmp r0, #0x0
- bne _02030B00
- bl FUN_02031280
- cmp r0, #0x0
- bne _02030B00
- add sp, #0x8
- mov r0, #0x0
- pop {r4-r6, pc}
-_02030B00:
- mov r0, #0x1
- str r0, [sp, #0x0]
- str r0, [sp, #0x4]
- ldr r0, _02030B34 ; =0x021C59F4
- add r2, r4, #0x0
- ldr r1, [r0, #0x4]
- ldr r0, _02030B38 ; =0x0000054C
- add r3, r6, #0x0
- add r0, r1, r0
- add r1, r5, #0x0
- bl FUN_0202D684
- cmp r0, #0x0
- beq _02030B22
- add sp, #0x8
- mov r0, #0x1
- pop {r4-r6, pc}
-_02030B22:
- bl FUN_02033534
- cmp r0, #0xa
- bne _02030B2E
- bl FUN_02031454
-_02030B2E:
- mov r0, #0x0
- add sp, #0x8
- pop {r4-r6, pc}
- .balign 4
-_02030B34: .word 0x021C59F4
-_02030B38: .word 0x0000054C
-
- thumb_func_start FUN_02030B3C
-FUN_02030B3C: ; 0x02030B3C
- push {r4-r6, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- add r4, r1, #0x0
- add r6, r2, #0x0
- bl FUN_02031190
- cmp r0, #0x0
- beq _02030B58
- bl ErrorHandling
- add sp, #0x8
- mov r0, #0x0
- pop {r4-r6, pc}
-_02030B58:
- mov r0, #0x0
- bl FUN_02030E7C
- cmp r0, #0x0
- bne _02030B70
- bl FUN_02031280
- cmp r0, #0x0
- bne _02030B70
- add sp, #0x8
- mov r0, #0x0
- pop {r4-r6, pc}
-_02030B70:
- bl FUN_0202FA28
- cmp r0, #0x1
- bne _02030B86
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r2, r6, #0x0
- bl FUN_02030A78
- add sp, #0x8
- pop {r4-r6, pc}
-_02030B86:
- mov r0, #0x1
- str r0, [sp, #0x0]
- mov r0, #0x0
- str r0, [sp, #0x4]
- ldr r0, _02030BBC ; =0x021C59F4
- add r2, r4, #0x0
- ldr r1, [r0, #0x4]
- ldr r0, _02030BC0 ; =0x0000056C
- add r3, r6, #0x0
- add r0, r1, r0
- add r1, r5, #0x0
- bl FUN_0202D684
- cmp r0, #0x0
- beq _02030BAA
- add sp, #0x8
- mov r0, #0x1
- pop {r4-r6, pc}
-_02030BAA:
- bl FUN_02033534
- cmp r0, #0xa
- bne _02030BB6
- bl FUN_02031454
-_02030BB6:
- mov r0, #0x0
- add sp, #0x8
- pop {r4-r6, pc}
- .balign 4
-_02030BBC: .word 0x021C59F4
-_02030BC0: .word 0x0000056C
-
- thumb_func_start FUN_02030BC4
-FUN_02030BC4: ; 0x02030BC4
- push {r4-r6, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- add r4, r1, #0x0
- add r6, r2, #0x0
- bl FUN_02031190
- cmp r0, #0x0
- beq _02030BE0
- bl FUN_02031454
- add sp, #0x8
- mov r0, #0x0
- pop {r4-r6, pc}
-_02030BE0:
- mov r0, #0x0
- bl FUN_02030E7C
- cmp r0, #0x0
- bne _02030BF8
- bl FUN_02031280
- cmp r0, #0x0
- bne _02030BF8
- add sp, #0x8
- mov r0, #0x0
- pop {r4-r6, pc}
-_02030BF8:
- bl FUN_0202FA28
- cmp r0, #0x1
- bne _02030C0E
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r2, r6, #0x0
- bl FUN_02030ADC
- add sp, #0x8
- pop {r4-r6, pc}
-_02030C0E:
- mov r0, #0x1
- str r0, [sp, #0x0]
- str r0, [sp, #0x4]
- ldr r0, _02030C44 ; =0x021C59F4
- add r2, r4, #0x0
- ldr r1, [r0, #0x4]
- ldr r0, _02030C48 ; =0x0000056C
- add r3, r6, #0x0
- add r0, r1, r0
- add r1, r5, #0x0
- bl FUN_0202D684
- cmp r0, #0x0
- beq _02030C30
- add sp, #0x8
- mov r0, #0x1
- pop {r4-r6, pc}
-_02030C30:
- bl FUN_02033534
- cmp r0, #0xa
- bne _02030C3C
- bl FUN_02031454
-_02030C3C:
- mov r0, #0x0
- add sp, #0x8
- pop {r4-r6, pc}
- nop
-_02030C44: .word 0x021C59F4
-_02030C48: .word 0x0000056C
-
- thumb_func_start FUN_02030C4C
-FUN_02030C4C: ; 0x02030C4C
- ldr r3, _02030C54 ; =FUN_02030BC4
- mov r2, #0x0
- bx r3
- nop
-_02030C54: .word FUN_02030BC4
-
- thumb_func_start FUN_02030C58
-FUN_02030C58: ; 0x02030C58
- ldr r0, _02030C64 ; =0x021C59F4
- ldr r3, _02030C68 ; =FUN_0202D498
- ldr r1, [r0, #0x4]
- ldr r0, _02030C6C ; =0x00000464
- add r0, r1, r0
- bx r3
- .balign 4
-_02030C64: .word 0x021C59F4
-_02030C68: .word FUN_0202D498
-_02030C6C: .word 0x00000464
-
- thumb_func_start FUN_02030C70
-FUN_02030C70: ; 0x02030C70
- push {r4, lr}
- ldr r4, [sp, #0x8]
- bl FUN_0202D934
- mov r0, #0xee
- strb r0, [r4, #0xa]
- ldr r0, _02030C88 ; =0x0000FFFF
- strh r0, [r4, #0x8]
- mov r0, #0x0
- str r0, [r4, #0x4]
- str r0, [r4, #0x0]
- pop {r4, pc}
- .balign 4
-_02030C88: .word 0x0000FFFF
-
- thumb_func_start FUN_02030C8C
-FUN_02030C8C: ; 0x02030C8C
- push {r4-r7, lr}
- sub sp, #0x14
- add r6, r0, #0x0
- str r1, [sp, #0x4]
- str r2, [sp, #0x8]
- ldr r5, [sp, #0x28]
- bl FUN_0202D478
- cmp r0, #0x0
- beq _02030D94
-_02030CA0:
- ldrb r7, [r5, #0xa]
- cmp r7, #0xee
- bne _02030CB2
- add r0, r6, #0x0
- bl FUN_0202D41C
- add r7, r0, #0x0
- cmp r7, #0xee
- beq _02030D8A
-_02030CB2:
- mov r0, #0x4
- ldrsh r0, [r6, r0]
- strb r7, [r5, #0xa]
- ldrh r4, [r5, #0x8]
- str r0, [sp, #0x10]
- ldr r0, _02030D98 ; =0x0000FFFF
- cmp r4, r0
- bne _02030D06
- add r0, r7, #0x0
- bl FUN_0202D9A0
- add r4, r0, #0x0
- ldr r0, _02030D9C ; =0x021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _02030DA0 ; =0x00000689
- ldrb r0, [r1, r0]
- cmp r0, #0x0
- bne _02030D94
- ldr r0, _02030D98 ; =0x0000FFFF
- cmp r4, r0
- bne _02030D04
- add r0, r6, #0x0
- bl FUN_0202D478
- cmp r0, #0x1
- bge _02030CEE
- ldr r0, [sp, #0x10]
- add sp, #0x14
- strh r0, [r6, #0x4]
- pop {r4-r7, pc}
-_02030CEE:
- add r0, r6, #0x0
- bl FUN_0202D41C
- lsl r4, r0, #0x8
- add r0, r6, #0x0
- bl FUN_0202D41C
- add r4, r4, r0
- mov r0, #0x4
- ldrsh r0, [r6, r0]
- str r0, [sp, #0x10]
-_02030D04:
- strh r4, [r5, #0x8]
-_02030D06:
- add r0, r7, #0x0
- bl FUN_0202DA04
- cmp r0, #0x0
- beq _02030D5E
- ldr r0, [r5, #0x4]
- cmp r0, #0x0
- bne _02030D22
- ldrh r2, [r5, #0x8]
- ldr r1, [sp, #0x4]
- add r0, r7, #0x0
- bl FUN_0202DA40
- str r0, [r5, #0x4]
-_02030D22:
- ldr r2, [r5, #0x0]
- ldr r1, [sp, #0x8]
- add r0, r6, #0x0
- sub r2, r4, r2
- bl FUN_0202D400
- ldr r2, [r5, #0x4]
- str r0, [sp, #0xc]
- cmp r2, #0x0
- beq _02030D42
- ldr r1, [r5, #0x0]
- ldr r0, [sp, #0x8]
- add r1, r2, r1
- ldr r2, [sp, #0xc]
- bl MI_CpuCopy8
-_02030D42:
- ldr r1, [r5, #0x0]
- ldr r0, [sp, #0xc]
- add r0, r1, r0
- str r0, [r5, #0x0]
- cmp r0, r4
- blt _02030D8A
- str r5, [sp, #0x0]
- ldr r0, [sp, #0x4]
- ldr r3, [r5, #0x4]
- add r1, r7, #0x0
- add r2, r4, #0x0
- bl FUN_02030C70
- b _02030D8A
-_02030D5E:
- add r0, r6, #0x0
- bl FUN_0202D478
- cmp r0, r4
- blt _02030D82
- ldr r1, [sp, #0x8]
- add r0, r6, #0x0
- add r2, r4, #0x0
- bl FUN_0202D400
- ldr r0, [sp, #0x4]
- ldr r3, [sp, #0x8]
- add r1, r7, #0x0
- add r2, r4, #0x0
- str r5, [sp, #0x0]
- bl FUN_02030C70
- b _02030D8A
-_02030D82:
- ldr r0, [sp, #0x10]
- add sp, #0x14
- strh r0, [r6, #0x4]
- pop {r4-r7, pc}
-_02030D8A:
- add r0, r6, #0x0
- bl FUN_0202D478
- cmp r0, #0x0
- bne _02030CA0
-_02030D94:
- add sp, #0x14
- pop {r4-r7, pc}
- .balign 4
-_02030D98: .word 0x0000FFFF
-_02030D9C: .word 0x021C59F4
-_02030DA0: .word 0x00000689
-
- thumb_func_start FUN_02030DA4
-FUN_02030DA4: ; 0x02030DA4
- push {r3, lr}
- ldr r0, _02030DF0 ; =0x021C59F4
- ldr r1, [r0, #0x4]
- cmp r1, #0x0
- beq _02030DEE
- ldr r0, _02030DF4 ; =0x0000068B
- ldrb r0, [r1, r0]
- cmp r0, #0x0
- bne _02030DEE
- mov r0, #0x47
- lsl r0, r0, #0x4
- add r0, r1, r0
- bl FUN_0202D4BC
- ldr r0, _02030DF0 ; =0x021C59F4
- ldr r1, [r0, #0x4]
- mov r0, #0x47
- lsl r0, r0, #0x4
- add r0, r1, r0
- bl FUN_0202D478
- cmp r0, #0x0
- ble _02030DEE
- ldr r0, _02030DF0 ; =0x021C59F4
- mov r2, #0x47
- ldr r3, [r0, #0x4]
- ldr r0, _02030DF8 ; =0x000005EC
- lsl r2, r2, #0x4
- add r0, r3, r0
- str r0, [sp, #0x0]
- add r0, r3, r2
- sub r2, #0x10
- ldr r2, [r3, r2]
- mov r1, #0x0
- mov r3, #0x1
- bl FUN_02030C8C
-_02030DEE:
- pop {r3, pc}
- .balign 4
-_02030DF0: .word 0x021C59F4
-_02030DF4: .word 0x0000068B
-_02030DF8: .word 0x000005EC
-
- thumb_func_start FUN_02030DFC
-FUN_02030DFC: ; 0x02030DFC
- push {r3-r7, lr}
- ldr r0, _02030E6C ; =0x021C59F4
- ldr r1, [r0, #0x4]
- cmp r1, #0x0
- beq _02030E68
- ldr r0, _02030E70 ; =0x0000068B
- ldrb r0, [r1, r0]
- cmp r0, #0x0
- bne _02030E68
- bl FUN_02033534
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_0202D858
- add r7, r0, #0x1
- mov r4, #0x0
- cmp r7, #0x0
- ble _02030E68
- ldr r6, _02030E6C ; =0x021C59F4
- add r5, r4, #0x0
-_02030E26:
- ldr r1, [r6, #0x4]
- ldr r0, _02030E74 ; =0x000004E8
- add r0, r1, r0
- add r0, r0, r5
- bl FUN_0202D4BC
- ldr r1, [r6, #0x4]
- ldr r0, _02030E74 ; =0x000004E8
- add r0, r1, r0
- add r0, r0, r5
- bl FUN_0202D478
- cmp r0, #0x0
- ble _02030E60
- ldr r3, [r6, #0x4]
- ldr r0, _02030E78 ; =0x0000058C
- mov r2, #0x46
- add r0, r3, r0
- add r0, r0, r5
- str r0, [sp, #0x0]
- ldr r0, _02030E74 ; =0x000004E8
- lsl r2, r2, #0x4
- add r0, r3, r0
- ldr r2, [r3, r2]
- add r0, r0, r5
- add r1, r4, #0x0
- mov r3, #0x0
- bl FUN_02030C8C
-_02030E60:
- add r4, r4, #0x1
- add r5, #0xc
- cmp r4, r7
- blt _02030E26
-_02030E68:
- pop {r3-r7, pc}
- nop
-_02030E6C: .word 0x021C59F4
-_02030E70: .word 0x0000068B
-_02030E74: .word 0x000004E8
-_02030E78: .word 0x0000058C
-
- thumb_func_start FUN_02030E7C
-FUN_02030E7C: ; 0x02030E7C
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, _02030F14 ; =0x021C59F4
- ldr r0, [r0, #0x4]
- cmp r0, #0x0
- bne _02030E8C
- mov r0, #0x0
- pop {r4, pc}
-_02030E8C:
- bl FUN_02033534
- cmp r0, #0x13
- blt _02030EC0
- ldr r0, _02030F14 ; =0x021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _02030F18 ; =0x00000687
- ldrb r0, [r1, r0]
- cmp r0, #0x0
- beq _02030EBC
- bl MOD04_021D8018
- mov r1, #0x0
- mvn r1, r1
- cmp r0, r1
- beq _02030EBC
- cmp r4, #0x0
- bne _02030EB4
- mov r0, #0x1
- pop {r4, pc}
-_02030EB4:
- cmp r4, #0x1
- bne _02030EBC
- mov r0, #0x1
- pop {r4, pc}
-_02030EBC:
- mov r0, #0x0
- pop {r4, pc}
-_02030EC0:
- bl FUN_02030F40
- cmp r0, #0x0
- bne _02030ECC
- mov r0, #0x0
- pop {r4, pc}
-_02030ECC:
- bl FUN_0202CBD4
- cmp r0, #0x4
- beq _02030ED8
- mov r0, #0x0
- pop {r4, pc}
-_02030ED8:
- bl FUN_02031190
- cmp r4, r0
- bne _02030EE4
- mov r0, #0x1
- pop {r4, pc}
-_02030EE4:
- bl FUN_02031190
- cmp r0, #0x0
- bne _02030EFE
- bl FUN_0202CB8C
- mov r1, #0x1
- add r2, r1, #0x0
- lsl r2, r4
- tst r0, r2
- beq _02030F10
- add r0, r1, #0x0
- pop {r4, pc}
-_02030EFE:
- ldr r0, _02030F14 ; =0x021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _02030F1C ; =0x0000065C
- ldrh r2, [r1, r0]
- mov r0, #0x1
- add r1, r0, #0x0
- lsl r1, r4
- tst r1, r2
- bne _02030F12
-_02030F10:
- mov r0, #0x0
-_02030F12:
- pop {r4, pc}
- .balign 4
-_02030F14: .word 0x021C59F4
-_02030F18: .word 0x00000687
-_02030F1C: .word 0x0000065C
-
- thumb_func_start FUN_02030F20
-FUN_02030F20: ; 0x02030F20
- push {r3-r5, lr}
- mov r4, #0x0
- add r5, r4, #0x0
-_02030F26:
- lsl r0, r5, #0x10
- lsr r0, r0, #0x10
- bl FUN_02030E7C
- cmp r0, #0x0
- beq _02030F34
- add r4, r4, #0x1
-_02030F34:
- add r5, r5, #0x1
- cmp r5, #0x8
- blt _02030F26
- add r0, r4, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02030F40
-FUN_02030F40: ; 0x02030F40
- push {r3, lr}
- ldr r0, _02030F5C ; =0x021C59F4
- ldr r0, [r0, #0x4]
- cmp r0, #0x0
- beq _02030F56
- bl FUN_02033534
- cmp r0, #0x13
- blt _02030F56
- mov r0, #0x1
- pop {r3, pc}
-_02030F56:
- bl FUN_0202EDF8
- pop {r3, pc}
- .balign 4
-_02030F5C: .word 0x021C59F4
-
- thumb_func_start FUN_02030F60
-FUN_02030F60: ; 0x02030F60
- ldr r1, _02030F6C ; =0x021C59F4
- ldr r2, [r1, #0x4]
- ldr r1, _02030F70 ; =0x0000062B
- strb r0, [r2, r1]
- bx lr
- nop
-_02030F6C: .word 0x021C59F4
-_02030F70: .word 0x0000062B
-
- thumb_func_start FUN_02030F74
-FUN_02030F74: ; 0x02030F74
- ldr r1, _02030F84 ; =0x021C59F4
- ldr r1, [r1, #0x4]
- add r1, r1, r0
- mov r0, #0x62
- lsl r0, r0, #0x4
- ldrb r0, [r1, r0]
- bx lr
- nop
-_02030F84: .word 0x021C59F4
-
- thumb_func_start FUN_02030F88
-FUN_02030F88: ; 0x02030F88
- ldr r1, _02030FA4 ; =0x021C59F4
- ldr r2, [r1, #0x4]
- cmp r2, #0x0
- bne _02030F94
- mov r0, #0x0
- bx lr
-_02030F94:
- mov r1, #0x61
- lsl r1, r1, #0x4
- add r3, r2, r1
- lsl r2, r0, #0x1
- ldrh r0, [r3, r2]
- mov r1, #0x0
- strh r1, [r3, r2]
- bx lr
- .balign 4
-_02030FA4: .word 0x021C59F4
-
- thumb_func_start FUN_02030FA8
-FUN_02030FA8: ; 0x02030FA8
- ldr r0, _02030FC0 ; =0x021C59F4
- ldr r3, [r0, #0x4]
- cmp r3, #0x0
- beq _02030FBC
- ldr r1, _02030FC4 ; =0x00000628
- mov r0, #0x2
- ldrh r2, [r3, r1]
- lsl r0, r0, #0xe
- orr r0, r2
- strh r0, [r3, r1]
-_02030FBC:
- bx lr
- nop
-_02030FC0: .word 0x021C59F4
-_02030FC4: .word 0x00000628
-
- thumb_func_start FUN_02030FC8
-FUN_02030FC8: ; 0x02030FC8
- ldr r0, _02030FD8 ; =0x021C59F4
- ldr r2, [r0, #0x4]
- cmp r2, #0x0
- beq _02030FD6
- ldr r0, _02030FDC ; =0x00000628
- mov r1, #0x0
- strh r1, [r2, r0]
-_02030FD6:
- bx lr
- .balign 4
-_02030FD8: .word 0x021C59F4
-_02030FDC: .word 0x00000628
-
- thumb_func_start FUN_02030FE0
-FUN_02030FE0: ; 0x02030FE0
- ldr r0, _02030FF8 ; =0x021C59F4
- ldr r1, [r0, #0x4]
- cmp r1, #0x0
- beq _02030FF4
- ldr r0, _02030FFC ; =0x00000628
- ldrh r1, [r1, r0]
- mov r0, #0x2
- lsl r0, r0, #0xe
- and r0, r1
- bx lr
-_02030FF4:
- mov r0, #0x1
- bx lr
- .balign 4
-_02030FF8: .word 0x021C59F4
-_02030FFC: .word 0x00000628
-
- thumb_func_start FUN_02031000
-FUN_02031000: ; 0x02031000
- push {r4-r6, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- add r4, r1, #0x0
- add r6, r2, #0x0
- bl FUN_0202FA28
- cmp r0, #0x1
- bne _02031030
- mov r0, #0x1
- str r0, [sp, #0x0]
- mov r0, #0x0
- str r0, [sp, #0x4]
- ldr r0, _02031050 ; =0x021C59F4
- add r2, r4, #0x0
- ldr r1, [r0, #0x4]
- ldr r0, _02031054 ; =0x0000054C
- add r3, r6, #0x0
- add r0, r1, r0
- add r1, r5, #0x0
- bl FUN_0202D684
- add sp, #0x8
- pop {r4-r6, pc}
-_02031030:
- mov r0, #0x1
- str r0, [sp, #0x0]
- mov r0, #0x0
- str r0, [sp, #0x4]
- ldr r0, _02031050 ; =0x021C59F4
- add r2, r4, #0x0
- ldr r1, [r0, #0x4]
- ldr r0, _02031058 ; =0x0000056C
- add r3, r6, #0x0
- add r0, r1, r0
- add r1, r5, #0x0
- bl FUN_0202D684
- add sp, #0x8
- pop {r4-r6, pc}
- nop
-_02031050: .word 0x021C59F4
-_02031054: .word 0x0000054C
-_02031058: .word 0x0000056C
-
- thumb_func_start FUN_0203105C
-FUN_0203105C: ; 0x0203105C
- push {r3-r5, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- mov r0, #0x0
- str r0, [sp, #0x0]
- str r0, [sp, #0x4]
- ldr r0, _02031080 ; =0x021C59F4
- add r4, r1, #0x0
- ldr r1, [r0, #0x4]
- ldr r0, _02031084 ; =0x0000054C
- add r3, r2, #0x0
- add r0, r1, r0
- add r1, r5, #0x0
- add r2, r4, #0x0
- bl FUN_0202D684
- add sp, #0x8
- pop {r3-r5, pc}
- .balign 4
-_02031080: .word 0x021C59F4
-_02031084: .word 0x0000054C
-
- thumb_func_start FUN_02031088
-FUN_02031088: ; 0x02031088
- push {r3, lr}
- ldr r0, _02031100 ; =0x021C59F4
- ldr r2, [r0, #0x4]
- cmp r2, #0x0
- beq _020310FC
- ldr r1, _02031104 ; =0x0000067B
- ldrb r0, [r2, r1]
- cmp r0, #0x1
- beq _020310A0
- cmp r0, #0x3
- beq _020310D8
- pop {r3, pc}
-_020310A0:
- bl FUN_0202FA28
- cmp r0, #0x1
- bne _020310B8
- ldr r1, _02031100 ; =0x021C59F4
- mov r0, #0xb
- ldr r2, [r1, #0x4]
- ldr r1, _02031108 ; =0x0000067C
- add r1, r2, r1
- bl FUN_020311D0
- b _020310C8
-_020310B8:
- ldr r1, _02031100 ; =0x021C59F4
- mov r0, #0xb
- ldr r2, [r1, #0x4]
- ldr r1, _02031108 ; =0x0000067C
- add r1, r2, r1
- mov r2, #0x1
- bl FUN_02030BC4
-_020310C8:
- cmp r0, #0x0
- beq _020310FC
- ldr r0, _02031100 ; =0x021C59F4
- mov r2, #0x2
- ldr r1, [r0, #0x4]
- ldr r0, _02031104 ; =0x0000067B
- strb r2, [r1, r0]
- pop {r3, pc}
-_020310D8:
- add r1, r1, #0x1
- mov r0, #0xc
- add r1, r2, r1
- bl FUN_020311D0
- cmp r0, #0x0
- beq _020310FC
- ldr r0, _02031100 ; =0x021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _02031108 ; =0x0000067C
- ldrb r0, [r1, r0]
- bl FUN_0202F9E0
- ldr r0, _02031100 ; =0x021C59F4
- mov r2, #0x0
- ldr r1, [r0, #0x4]
- ldr r0, _02031104 ; =0x0000067B
- strb r2, [r1, r0]
-_020310FC:
- pop {r3, pc}
- nop
-_02031100: .word 0x021C59F4
-_02031104: .word 0x0000067B
-_02031108: .word 0x0000067C
-
- thumb_func_start FUN_0203110C
-FUN_0203110C: ; 0x0203110C
- push {r4, lr}
- add r4, r2, #0x0
- bl FUN_02031190
- cmp r0, #0x0
- bne _0203112A
- ldr r1, _0203112C ; =0x021C59F4
- ldr r0, _02031130 ; =0x0000067B
- ldr r2, [r1, #0x4]
- mov r3, #0x1
- strb r3, [r2, r0]
- ldrb r2, [r4, #0x0]
- ldr r1, [r1, #0x4]
- add r0, r0, #0x1
- strb r2, [r1, r0]
-_0203112A:
- pop {r4, pc}
- .balign 4
-_0203112C: .word 0x021C59F4
-_02031130: .word 0x0000067B
-
- thumb_func_start FUN_02031134
-FUN_02031134: ; 0x02031134
- push {r4, lr}
- add r4, r2, #0x0
- bl FUN_02031190
- cmp r0, #0x0
- beq _02031152
- ldr r1, _02031154 ; =0x021C59F4
- ldrb r3, [r4, #0x0]
- ldr r2, [r1, #0x4]
- ldr r0, _02031158 ; =0x0000067C
- strb r3, [r2, r0]
- ldr r1, [r1, #0x4]
- mov r2, #0x3
- sub r0, r0, #0x1
- strb r2, [r1, r0]
-_02031152:
- pop {r4, pc}
- .balign 4
-_02031154: .word 0x021C59F4
-_02031158: .word 0x0000067C
-
- thumb_func_start FUN_0203115C
-FUN_0203115C: ; 0x0203115C
- push {r4, lr}
- add r4, r2, #0x0
- bl FUN_02031190
- cmp r0, #0x0
- bne _02031184
- ldr r0, _02031188 ; =0x021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _0203118C ; =0x0000067B
- ldrb r0, [r1, r0]
- cmp r0, #0x2
- bne _02031184
- ldrb r0, [r4, #0x0]
- bl FUN_0202F9E0
- ldr r0, _02031188 ; =0x021C59F4
- mov r2, #0x0
- ldr r1, [r0, #0x4]
- ldr r0, _0203118C ; =0x0000067B
- strb r2, [r1, r0]
-_02031184:
- pop {r4, pc}
- nop
-_02031188: .word 0x021C59F4
-_0203118C: .word 0x0000067B
-
- thumb_func_start FUN_02031190
-FUN_02031190: ; 0x02031190
- push {r3, lr}
- ldr r0, _020311CC ; =0x021C59F4
- ldr r0, [r0, #0x4]
- cmp r0, #0x0
- beq _020311C6
- bl FUN_02033534
- cmp r0, #0x13
- blt _020311B4
- bl MOD04_021D8018
- mov r1, #0x0
- mvn r1, r1
- cmp r0, r1
- beq _020311C6
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- pop {r3, pc}
-_020311B4:
- bl FUN_02031280
- cmp r0, #0x0
- beq _020311C0
- mov r0, #0x0
- pop {r3, pc}
-_020311C0:
- bl FUN_0202D19C
- pop {r3, pc}
-_020311C6:
- mov r0, #0x0
- pop {r3, pc}
- nop
-_020311CC: .word 0x021C59F4
-
- thumb_func_start FUN_020311D0
-FUN_020311D0: ; 0x020311D0
- ldr r3, _020311D8 ; =FUN_02030ADC
- mov r2, #0x0
- bx r3
- nop
-_020311D8: .word FUN_02030ADC
-
- thumb_func_start FUN_020311DC
-FUN_020311DC: ; 0x020311DC
- ldr r3, _020311E4 ; =FUN_02030ADC
- mov r1, #0x0
- add r2, r1, #0x0
- bx r3
- .balign 4
-_020311E4: .word FUN_02030ADC
-
- thumb_func_start FUN_020311E8
-FUN_020311E8: ; 0x020311E8
- ldr r3, _020311EC ; =FUN_0202EE24
- bx r3
- .balign 4
-_020311EC: .word FUN_0202EE24
-
- thumb_func_start FUN_020311F0
-FUN_020311F0: ; 0x020311F0
- push {r3, lr}
- bl FUN_02031280
- cmp r0, #0x0
- beq _020311FE
- mov r0, #0x0
- pop {r3, pc}
-_020311FE:
- ldr r0, _02031220 ; =0x021C59F4
- ldr r1, [r0, #0x4]
- cmp r1, #0x0
- beq _0203121A
- ldr r0, _02031224 ; =0x00000689
- ldrb r0, [r1, r0]
- cmp r0, #0x0
- beq _0203121A
- mov r0, #0x1
- add r1, r0, #0x0
- bl FUN_020334E8
- mov r0, #0x1
- pop {r3, pc}
-_0203121A:
- bl FUN_0202EE60
- pop {r3, pc}
- .balign 4
-_02031220: .word 0x021C59F4
-_02031224: .word 0x00000689
-
- thumb_func_start FUN_02031228
-FUN_02031228: ; 0x02031228
- push {r3, lr}
- bl FUN_0202D858
- cmp r0, #0x5
- blo _02031236
- mov r0, #0xc
- pop {r3, pc}
-_02031236:
- bl FUN_0202FA28
- cmp r0, #0x0
- bne _02031242
- mov r0, #0xc
- pop {r3, pc}
-_02031242:
- mov r0, #0x26
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02031248
-FUN_02031248: ; 0x02031248
- push {r3, lr}
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_0202D858
- add r0, r0, #0x1
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02031258
-FUN_02031258: ; 0x02031258
- push {r3, lr}
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_0202D884
- add r0, r0, #0x1
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02031268
-FUN_02031268: ; 0x02031268
- ldr r1, _02031278 ; =0x021C59F4
- ldr r2, [r1, #0x4]
- cmp r2, #0x0
- beq _02031274
- ldr r1, _0203127C ; =0x00000686
- strb r0, [r2, r1]
-_02031274:
- bx lr
- nop
-_02031278: .word 0x021C59F4
-_0203127C: .word 0x00000686
-
- thumb_func_start FUN_02031280
-FUN_02031280: ; 0x02031280
- ldr r0, _02031294 ; =0x021C59F4
- ldr r1, [r0, #0x4]
- cmp r1, #0x0
- beq _0203128E
- ldr r0, _02031298 ; =0x00000686
- ldrb r0, [r1, r0]
- bx lr
-_0203128E:
- mov r0, #0x0
- bx lr
- nop
-_02031294: .word 0x021C59F4
-_02031298: .word 0x00000686
-
- thumb_func_start FUN_0203129C
-FUN_0203129C: ; 0x0203129C
- push {r3, lr}
- bl FUN_0202F03C
- cmp r0, #0x0
- bne _020312B6
- bl FUN_02031190
- cmp r0, #0x0
- bne _020312B6
- mov r0, #0x2
- add r1, sp, #0x0
- bl FUN_02030C4C
-_020312B6:
- bl FUN_0202F05C
- pop {r3, pc}
-
- thumb_func_start FUN_020312BC
-FUN_020312BC: ; 0x020312BC
- push {r3-r7, lr}
- sub sp, #0x20
- add r4, r0, #0x0
- add r0, sp, #0x10
- add r1, sp, #0x4
- bl FUN_0201265C
- ldr r0, _02031340 ; =0x021C48B8
- ldr r6, [sp, #0x10]
- mov r5, #0x0
- lsr r7, r6, #0x1c
- lsl r5, r5, #0x4
- ldr r1, [sp, #0xc]
- ldr r0, [r0, #0x2c]
- lsl r6, r6, #0x4
- add r3, r1, r0
- ldr r0, [sp, #0x18]
- orr r5, r7
- str r0, [sp, #0x0]
- ldr r0, [sp, #0x14]
- ldr r1, [sp, #0x4]
- add r6, r0, r6
- ldr r0, _02031344 ; =0x00000000
- ldr r2, [sp, #0x8]
- adc r0, r5
- lsr r5, r6, #0x1b
- lsl r0, r0, #0x5
- orr r0, r5
- ldr r5, [sp, #0x0]
- lsl r6, r6, #0x5
- add r6, r5, r6
- ldr r5, _02031344 ; =0x00000000
- adc r5, r0
- lsr r0, r6, #0x1b
- lsl r5, r5, #0x5
- orr r5, r0
- lsl r0, r6, #0x5
- add r6, r1, r0
- ldr r1, _02031344 ; =0x00000000
- adc r1, r5
- lsr r0, r6, #0x1a
- lsl r1, r1, #0x6
- orr r1, r0
- lsl r0, r6, #0x6
- add r5, r2, r0
- ldr r2, _02031344 ; =0x00000000
- adc r2, r1
- lsr r0, r5, #0x1a
- lsl r1, r2, #0x6
- orr r1, r0
- lsl r0, r5, #0x6
- add r2, r3, r0
- ldr r0, _02031344 ; =0x00000000
- str r2, [r4, #0x0]
- adc r0, r1
- str r0, [r4, #0x4]
- ldr r1, _02031348 ; =0x6C078965
- ldr r0, _0203134C ; =0x5D588B65
- str r1, [r4, #0x8]
- str r0, [r4, #0xc]
- ldr r0, _02031350 ; =0x00269EC3
- str r0, [r4, #0x10]
- mov r0, #0x0
- str r0, [r4, #0x14]
- add sp, #0x20
- pop {r3-r7, pc}
- .balign 4
-_02031340: .word 0x021C48B8
-_02031344: .word 0x00000000
-_02031348: .word 0x6C078965
-_0203134C: .word 0x5D588B65
-_02031350: .word 0x00269EC3
-
- thumb_func_start FUN_02031354
-FUN_02031354: ; 0x02031354
- add r1, r0, #0x0
- ldr r0, _02031364 ; =0x021C59F4
- ldr r3, _02031368 ; =FUN_0202D830
- ldr r2, [r0, #0x4]
- ldr r0, _0203136C ; =0x0000056C
- add r0, r2, r0
- bx r3
- nop
-_02031364: .word 0x021C59F4
-_02031368: .word FUN_0202D830
-_0203136C: .word 0x0000056C
-
- thumb_func_start FUN_02031370
-FUN_02031370: ; 0x02031370
- ldr r0, _0203137C ; =0x021C59F4
- ldr r3, _02031380 ; =FUN_0202D4E4
- ldr r1, [r0, #0x4]
- ldr r0, _02031384 ; =0x0000056C
- add r0, r1, r0
- bx r3
- .balign 4
-_0203137C: .word 0x021C59F4
-_02031380: .word FUN_0202D4E4
-_02031384: .word 0x0000056C
-
- thumb_func_start FUN_02031388
-FUN_02031388: ; 0x02031388
- ldr r0, _02031394 ; =0x021C59F4
- ldr r3, _02031398 ; =FUN_0202D4E4
- ldr r1, [r0, #0x4]
- ldr r0, _0203139C ; =0x0000054C
- add r0, r1, r0
- bx r3
- .balign 4
-_02031394: .word 0x021C59F4
-_02031398: .word FUN_0202D4E4
-_0203139C: .word 0x0000054C
-
- thumb_func_start FUN_020313A0
-FUN_020313A0: ; 0x020313A0
- ldr r1, _020313AC ; =0x021C59F4
- ldr r2, [r1, #0x4]
- ldr r1, _020313B0 ; =0x00000687
- strb r0, [r2, r1]
- bx lr
- nop
-_020313AC: .word 0x021C59F4
-_020313B0: .word 0x00000687
-
- thumb_func_start FUN_020313B4
-FUN_020313B4: ; 0x020313B4
- ldr r2, _020313C4 ; =0x021C59F4
- ldr r2, [r2, #0x4]
- cmp r2, #0x0
- beq _020313C2
- add r2, r2, r1
- ldr r1, _020313C8 ; =0x00000677
- strb r0, [r2, r1]
-_020313C2:
- bx lr
- .balign 4
-_020313C4: .word 0x021C59F4
-_020313C8: .word 0x00000677
-
- thumb_func_start FUN_020313CC
-FUN_020313CC: ; 0x020313CC
- ldr r1, _020313E4 ; =0x021C59F4
- ldr r1, [r1, #0x4]
- cmp r1, #0x0
- beq _020313E0
- add r2, r1, r0
- ldr r1, _020313E8 ; =0x00000677
- ldrb r1, [r2, r1]
- cmp r1, #0xff
- beq _020313E0
- add r0, r1, #0x0
-_020313E0:
- bx lr
- nop
-_020313E4: .word 0x021C59F4
-_020313E8: .word 0x00000677
-
- thumb_func_start FUN_020313EC
-FUN_020313EC: ; 0x020313EC
- push {r3, lr}
- bl FUN_02033534
- cmp r0, #0x13
- bge _020313FA
- mov r0, #0x0
- pop {r3, pc}
-_020313FA:
- bl MOD04_021D8624
- pop {r3, pc}
-
- thumb_func_start FUN_02031400
-FUN_02031400: ; 0x02031400
- push {r4, lr}
- add r4, r0, #0x0
- bl FUN_02033534
- cmp r0, #0x13
- blt _02031430
- ldr r2, _02031434 ; =0x021C59F4
- mov r1, #0x63
- ldr r0, [r2, #0x4]
- lsl r1, r1, #0x4
- str r4, [r0, r1]
- cmp r4, #0x0
- beq _02031430
- ldr r3, [r2, #0x4]
- mov r4, #0x0
- add r0, r1, #0x4
- str r4, [r3, r0]
- add r0, r1, #0x0
- ldr r3, [r2, #0x4]
- add r0, #0x8
- str r4, [r3, r0]
- ldr r0, [r2, #0x4]
- add r1, #0xc
- str r4, [r0, r1]
-_02031430:
- pop {r4, pc}
- nop
-_02031434: .word 0x021C59F4
-
- thumb_func_start FUN_02031438
-FUN_02031438: ; 0x02031438
- ldr r0, _0203144C ; =0x021C59F4
- ldr r1, [r0, #0x4]
- ldr r0, _02031450 ; =0x00000681
- ldrb r0, [r1, r0]
- cmp r0, #0x0
- beq _02031448
- mov r0, #0x1
- bx lr
-_02031448:
- mov r0, #0x0
- bx lr
- .balign 4
-_0203144C: .word 0x021C59F4
-_02031450: .word 0x00000681
-
- thumb_func_start FUN_02031454
-FUN_02031454: ; 0x02031454
- ldr r0, _02031460 ; =0x021C59F4
- mov r2, #0x1
- ldr r1, [r0, #0x4]
- ldr r0, _02031464 ; =0x00000689
- strb r2, [r1, r0]
- bx lr
- .balign 4
-_02031460: .word 0x021C59F4
-_02031464: .word 0x00000689
-
- thumb_func_start FUN_02031468
-FUN_02031468: ; 0x02031468
- ldr r0, _02031478 ; =0x021C59F4
- ldr r2, [r0, #0x4]
- cmp r2, #0x0
- beq _02031476
- ldr r0, _0203147C ; =0x0000068A
- mov r1, #0x1
- strb r1, [r2, r0]
-_02031476:
- bx lr
- .balign 4
-_02031478: .word 0x021C59F4
-_0203147C: .word 0x0000068A
-
- thumb_func_start FUN_02031480
-FUN_02031480: ; 0x02031480
- push {r4, lr}
- ldr r1, _020314C8 ; =0x021C59FC
- ldr r1, [r1, #0x0]
- cmp r1, #0x0
- bne _0203149C
- ldr r1, _020314CC ; =0x00000253
- bl FUN_02016998
- ldr r1, _020314C8 ; =0x021C59FC
- ldr r2, _020314CC ; =0x00000253
- str r0, [r1, #0x0]
- mov r1, #0x0
- bl MI_CpuFill8
-_0203149C:
- ldr r1, _020314C8 ; =0x021C59FC
- mov r3, #0x0
- mov r0, #0xff
-_020314A2:
- ldr r2, [r1, #0x0]
- add r2, r2, r3
- add r3, r3, #0x1
- strb r0, [r2, #0x10]
- cmp r3, #0x8
- blt _020314A2
- ldr r3, _020314C8 ; =0x021C59FC
- mov r1, #0x25
- ldr r2, [r3, #0x0]
- lsl r1, r1, #0x4
- strb r0, [r2, r1]
- ldr r4, [r3, #0x0]
- add r2, r1, #0x1
- strb r0, [r4, r2]
- ldr r2, [r3, #0x0]
- mov r4, #0x0
- add r0, r1, #0x2
- strb r4, [r2, r0]
- pop {r4, pc}
- .balign 4
-_020314C8: .word 0x021C59FC
-_020314CC: .word 0x00000253
-
- thumb_func_start FUN_020314D0
-FUN_020314D0: ; 0x020314D0
- push {r3, lr}
- ldr r0, _020314E4 ; =0x021C59FC
- ldr r0, [r0, #0x0]
- bl FUN_02016A18
- ldr r0, _020314E4 ; =0x021C59FC
- mov r1, #0x0
- str r1, [r0, #0x0]
- pop {r3, pc}
- nop
-_020314E4: .word 0x021C59FC
-
- thumb_func_start FUN_020314E8
-FUN_020314E8: ; 0x020314E8
- ldr r0, _020314F8 ; =0x021C59FC
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _020314F4
- mov r0, #0x1
- bx lr
-_020314F4:
- mov r0, #0x0
- bx lr
- .balign 4
-_020314F8: .word 0x021C59FC
-
- thumb_func_start FUN_020314FC
-FUN_020314FC: ; 0x020314FC
- push {r3-r6, lr}
- sub sp, #0x4
- ldrb r1, [r2, #0x0]
- add r5, r0, #0x0
- add r0, sp, #0x0
- strb r1, [r0, #0x0]
- bl FUN_02031190
- cmp r0, #0x0
- bne _02031556
- add r0, sp, #0x0
- strb r5, [r0, #0x1]
- ldrb r1, [r0, #0x0]
- strb r1, [r0, #0x2]
- add r1, sp, #0x0
- mov r0, #0x12
- add r1, #0x1
- bl FUN_02030C4C
- ldr r6, _0203155C ; =0x021C59FC
- add r4, sp, #0x0
- ldr r0, [r6, #0x0]
- ldrb r1, [r4, #0x0]
- add r0, r0, r5
- mov r5, #0x0
- strb r1, [r0, #0x10]
-_02031530:
- lsl r0, r5, #0x10
- lsr r0, r0, #0x10
- bl FUN_02030E7C
- cmp r0, #0x0
- beq _02031548
- ldr r0, [r6, #0x0]
- ldrb r1, [r4, #0x0]
- add r0, r0, r5
- ldrb r0, [r0, #0x10]
- cmp r1, r0
- bne _02031556
-_02031548:
- add r5, r5, #0x1
- cmp r5, #0x8
- blt _02031530
- mov r0, #0x11
- add r1, sp, #0x0
- bl FUN_02030C4C
-_02031556:
- add sp, #0x4
- pop {r3-r6, pc}
- nop
-_0203155C: .word 0x021C59FC
-
- thumb_func_start FUN_02031560
-FUN_02031560: ; 0x02031560
- ldr r0, _02031570 ; =0x021C59FC
- ldrb r3, [r2, #0x1]
- ldr r1, [r0, #0x0]
- ldrb r0, [r2, #0x0]
- add r0, r1, r0
- strb r3, [r0, #0x10]
- bx lr
- nop
-_02031570: .word 0x021C59FC
-
- thumb_func_start FUN_02031574
-FUN_02031574: ; 0x02031574
- ldr r0, _02031584 ; =0x021C59FC
- ldrb r2, [r2, #0x0]
- ldr r1, [r0, #0x0]
- mov r0, #0x25
- lsl r0, r0, #0x4
- strb r2, [r1, r0]
- bx lr
- nop
-_02031584: .word 0x021C59FC
-
- thumb_func_start FUN_02031588
-FUN_02031588: ; 0x02031588
- ldr r2, _0203159C ; =0x021C59FC
- ldr r1, _020315A0 ; =0x00000251
- ldr r3, [r2, #0x0]
- strb r0, [r3, r1]
- ldr r2, [r2, #0x0]
- mov r3, #0x1
- add r0, r1, #0x1
- strb r3, [r2, r0]
- bx lr
- nop
-_0203159C: .word 0x021C59FC
-_020315A0: .word 0x00000251
-
- thumb_func_start FUN_020315A4
-FUN_020315A4: ; 0x020315A4
- push {r3, lr}
- ldr r0, _020315D0 ; =0x021C59FC
- ldr r2, [r0, #0x0]
- cmp r2, #0x0
- beq _020315CE
- ldr r1, _020315D4 ; =0x00000252
- ldrb r0, [r2, r1]
- cmp r0, #0x0
- beq _020315CE
- sub r1, r1, #0x1
- mov r0, #0x10
- add r1, r2, r1
- bl FUN_020311D0
- cmp r0, #0x0
- beq _020315CE
- ldr r0, _020315D0 ; =0x021C59FC
- mov r2, #0x0
- ldr r1, [r0, #0x0]
- ldr r0, _020315D4 ; =0x00000252
- strb r2, [r1, r0]
-_020315CE:
- pop {r3, pc}
- .balign 4
-_020315D0: .word 0x021C59FC
-_020315D4: .word 0x00000252
-
- thumb_func_start FUN_020315D8
-FUN_020315D8: ; 0x020315D8
- ldr r1, _020315F8 ; =0x021C59FC
- ldr r2, [r1, #0x0]
- cmp r2, #0x0
- bne _020315E4
- mov r0, #0x1
- bx lr
-_020315E4:
- mov r1, #0x25
- lsl r1, r1, #0x4
- ldrb r1, [r2, r1]
- cmp r1, r0
- bne _020315F2
- mov r0, #0x1
- bx lr
-_020315F2:
- mov r0, #0x0
- bx lr
- nop
-_020315F8: .word 0x021C59FC
-
- thumb_func_start FUN_020315FC
-FUN_020315FC: ; 0x020315FC
- ldr r1, _02031608 ; =0x021C59FC
- ldr r1, [r1, #0x0]
- add r0, r1, r0
- ldrb r0, [r0, #0x10]
- bx lr
- nop
-_02031608: .word 0x021C59FC
-
- thumb_func_start FUN_0203160C
-FUN_0203160C: ; 0x0203160C
- push {r3-r4}
- lsl r4, r0, #0x1
- ldr r0, _02031624 ; =0x021C59FC
- ldrb r3, [r2, #0x0]
- ldr r1, [r0, #0x0]
- strb r3, [r1, r4]
- ldr r0, [r0, #0x0]
- ldrb r1, [r2, #0x1]
- add r0, r0, r4
- strb r1, [r0, #0x1]
- pop {r3-r4}
- bx lr
- .balign 4
-_02031624: .word 0x021C59FC
-
- thumb_func_start FUN_02031628
-FUN_02031628: ; 0x02031628
- mov r0, #0x2
- bx lr
-
- thumb_func_start FUN_0203162C
-FUN_0203162C: ; 0x0203162C
- push {r3, lr}
- add r2, sp, #0x0
- strb r0, [r2, #0x0]
- strb r1, [r2, #0x1]
- mov r0, #0x13
- add r1, sp, #0x0
- bl FUN_020311D0
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02031640
-FUN_02031640: ; 0x02031640
- ldr r2, _02031664 ; =0x021C59FC
- ldr r3, [r2, #0x0]
- cmp r3, #0x0
- bne _0203164E
- mov r0, #0x0
- mvn r0, r0
- bx lr
-_0203164E:
- lsl r2, r0, #0x1
- ldrb r0, [r3, r2]
- cmp r1, r0
- bne _0203165C
- add r0, r3, r2
- ldrb r0, [r0, #0x1]
- bx lr
-_0203165C:
- mov r0, #0x0
- mvn r0, r0
- bx lr
- nop
-_02031664: .word 0x021C59FC
-
- thumb_func_start FUN_02031668
-FUN_02031668: ; 0x02031668
- push {r3-r7, lr}
- mov r4, #0x0
- ldr r6, _02031688 ; =0x021C59FC
- add r5, r4, #0x0
- add r7, r4, #0x0
-_02031672:
- ldr r0, [r6, #0x0]
- add r1, r7, #0x0
- add r0, r0, r5
- mov r2, #0x2
- bl MI_CpuFill8
- add r4, r4, #0x1
- add r5, r5, #0x2
- cmp r4, #0x8
- blt _02031672
- pop {r3-r7, pc}
- .balign 4
-_02031688: .word 0x021C59FC
-
- thumb_func_start FUN_0203168C
-FUN_0203168C: ; 0x0203168C
- push {r3-r4}
- mov r4, #0x0
- mov r0, #0x92
- ldr r1, _020316A8 ; =0x021C59FC
- add r3, r4, #0x0
- lsl r0, r0, #0x2
-_02031698:
- ldr r2, [r1, #0x0]
- add r2, r2, r4
- add r4, r4, #0x1
- strb r3, [r2, r0]
- cmp r4, #0x8
- blt _02031698
- pop {r3-r4}
- bx lr
- .balign 4
-_020316A8: .word 0x021C59FC
-
- thumb_func_start FUN_020316AC
-FUN_020316AC: ; 0x020316AC
- push {r4, lr}
- ldr r2, _020316DC ; =0x021C59FC
- ldr r3, [r2, #0x0]
- cmp r3, #0x0
- beq _020316D8
- add r4, r0, #0x0
- mov r2, #0x46
- mul r4, r2
- add r3, #0x18
- add r0, r1, #0x0
- add r1, r3, r4
- bl MI_CpuCopy8
- ldr r1, _020316DC ; =0x021C59FC
- mov r0, #0x14
- ldr r1, [r1, #0x0]
- add r1, #0x18
- add r1, r1, r4
- bl FUN_020311D0
- mov r0, #0x1
- pop {r4, pc}
-_020316D8:
- mov r0, #0x0
- pop {r4, pc}
- .balign 4
-_020316DC: .word 0x021C59FC
-
- thumb_func_start FUN_020316E0
-FUN_020316E0: ; 0x020316E0
- ldr r1, _02031700 ; =0x021C59FC
- ldr r3, [r1, #0x0]
- mov r1, #0x92
- add r2, r3, r0
- lsl r1, r1, #0x2
- ldrb r1, [r2, r1]
- cmp r1, #0x0
- beq _020316FA
- mov r1, #0x46
- add r3, #0x18
- mul r1, r0
- add r0, r3, r1
- bx lr
-_020316FA:
- mov r0, #0x0
- bx lr
- nop
-_02031700: .word 0x021C59FC
-
- thumb_func_start FUN_02031704
-FUN_02031704: ; 0x02031704
- push {r3-r5, lr}
- ldr r3, _0203172C ; =0x021C59FC
- add r1, r0, #0x0
- ldr r0, [r3, #0x0]
- mov r5, #0x1
- add r4, r0, r1
- mov r0, #0x92
- lsl r0, r0, #0x2
- strb r5, [r4, r0]
- ldr r4, [r3, #0x0]
- add r0, r2, #0x0
- mov r2, #0x46
- add r3, r1, #0x0
- add r4, #0x18
- mul r3, r2
- add r1, r4, r3
- bl MI_CpuCopy8
- pop {r3-r5, pc}
- nop
-_0203172C: .word 0x021C59FC
-
- thumb_func_start FUN_02031730
-FUN_02031730: ; 0x02031730
- mov r0, #0x46
- bx lr
-
- thumb_func_start FUN_02031734
-FUN_02031734: ; 0x02031734
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldr r0, _020317BC ; =0x021C5A00
- add r4, r1, #0x0
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- bne _020317B8
- bl FUN_0202E49C
- mov r0, #0xf
- mov r1, #0x50
- bl FUN_02016998
- ldr r1, _020317BC ; =0x021C5A00
- mov r2, #0x50
- str r0, [r1, #0x0]
- mov r1, #0x0
- bl MI_CpuFill8
- ldr r0, _020317BC ; =0x021C5A00
- mov r2, #0x32
- ldr r1, [r0, #0x0]
- strh r2, [r1, #0x3a]
- ldr r1, [r0, #0x0]
- mov r2, #0x1
- add r1, #0x43
- strb r2, [r1, #0x0]
- ldr r0, [r0, #0x0]
- str r5, [r0, #0x28]
- add r0, r5, #0x0
- bl FUN_020238F4
- ldr r1, _020317BC ; =0x021C5A00
- ldr r2, [r1, #0x0]
- str r0, [r2, #0x2c]
- ldr r0, [r1, #0x0]
- mov r2, #0x2
- add r0, #0x3c
- strb r2, [r0, #0x0]
- ldr r0, [r1, #0x0]
- mov r2, #0x0
- add r0, #0x3d
- strb r2, [r0, #0x0]
- ldr r0, [r1, #0x0]
- add r0, #0x48
- strb r2, [r0, #0x0]
- ldr r0, [r1, #0x0]
- add r0, #0x3f
- strb r4, [r0, #0x0]
- ldr r0, [r1, #0x0]
- add r0, #0xc
- bl FUN_020312BC
- mov r0, #0x0
- add r1, r0, #0x0
- add r2, r0, #0x0
- bl FUN_0202D8D0
- cmp r4, #0x9
- beq _020317B8
- cmp r4, #0x11
- beq _020317B8
- cmp r4, #0xf
- beq _020317B8
- bl FUN_02033E74
-_020317B8:
- pop {r3-r5, pc}
- nop
-_020317BC: .word 0x021C5A00
-
- thumb_func_start FUN_020317C0
-FUN_020317C0: ; 0x020317C0
- push {r3, lr}
- ldr r0, _0203180C ; =0x021C5A00
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _0203180A
- bl FUN_0202D918
- ldr r0, _0203180C ; =0x021C5A00
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _020317DC
- bl FUN_02016A18
-_020317DC:
- ldr r0, _0203180C ; =0x021C5A00
- ldr r0, [r0, #0x0]
- add r0, #0x3f
- ldrb r0, [r0, #0x0]
- cmp r0, #0x13
- blo _020317EE
- mov r0, #0x31
- bl FUN_020168D0
-_020317EE:
- bl FUN_02033ED0
- bl FUN_0202E4F0
- ldr r0, _0203180C ; =0x021C5A00
- ldr r0, [r0, #0x0]
- bl FUN_02016A18
- mov r0, #0xf
- bl FUN_020168D0
- ldr r0, _0203180C ; =0x021C5A00
- mov r1, #0x0
- str r1, [r0, #0x0]
-_0203180A:
- pop {r3, pc}
- .balign 4
-_0203180C: .word 0x021C5A00
-
- thumb_func_start FUN_02031810
-FUN_02031810: ; 0x02031810
- ldr r0, _02031820 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _0203181C
- mov r0, #0x1
- bx lr
-_0203181C:
- mov r0, #0x0
- bx lr
- .balign 4
-_02031820: .word 0x021C5A00
-
- thumb_func_start FUN_02031824
-FUN_02031824: ; 0x02031824
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, _02031858 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- bne _02031856
- mov r2, #0xe
- mov r0, #0x3
- mov r1, #0xf
- lsl r2, r2, #0xc
- bl FUN_02016828
- add r0, r4, #0x0
- mov r1, #0xa
- bl FUN_02031734
- ldr r0, _02031858 ; =0x021C5A00
- mov r1, #0x0
- ldr r0, [r0, #0x0]
- add r0, #0x40
- strb r1, [r0, #0x0]
- ldr r0, _0203185C ; =FUN_02031D30
- mov r1, #0x32
- bl FUN_02031D20
-_02031856:
- pop {r4, pc}
- .balign 4
-_02031858: .word 0x021C5A00
-_0203185C: .word FUN_02031D30
-
- thumb_func_start FUN_02031860
-FUN_02031860: ; 0x02031860
- push {r3, lr}
- ldr r0, _02031878 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _02031876
- bl FUN_02031468
- ldr r0, _0203187C ; =FUN_020323CC
- mov r1, #0x0
- bl FUN_02031D20
-_02031876:
- pop {r3, pc}
- .balign 4
-_02031878: .word 0x021C5A00
-_0203187C: .word FUN_020323CC
-
- thumb_func_start FUN_02031880
-FUN_02031880: ; 0x02031880
- push {r3, lr}
- bl FUN_0202FC60
- bl FUN_02031190
- ldr r1, _0203189C ; =0x021C5A00
- ldr r1, [r1, #0x0]
- strh r0, [r1, #0x38]
- ldr r0, _020318A0 ; =FUN_020321B8
- mov r1, #0x0
- bl FUN_02031D20
- pop {r3, pc}
- nop
-_0203189C: .word 0x021C5A00
-_020318A0: .word FUN_020321B8
-
- thumb_func_start FUN_020318A4
-FUN_020318A4: ; 0x020318A4
- ldr r1, _020318B0 ; =0x021C5A00
- ldr r1, [r1, #0x0]
- add r1, #0x4f
- strb r0, [r1, #0x0]
- bx lr
- nop
-_020318B0: .word 0x021C5A00
-
- thumb_func_start FUN_020318B4
-FUN_020318B4: ; 0x020318B4
- ldr r3, _020318BC ; =FUN_02031D20
- ldr r0, _020318C0 ; =FUN_02032028
- mov r1, #0x0
- bx r3
- .balign 4
-_020318BC: .word FUN_02031D20
-_020318C0: .word FUN_02032028
-
- thumb_func_start FUN_020318C4
-FUN_020318C4: ; 0x020318C4
- push {r4}
- sub sp, #0xc
- ldr r4, _0203190C ; =0x020EEC50
- add r3, sp, #0x0
- ldmia r4!, {r0-r1}
- add r2, r3, #0x0
- stmia r3!, {r0-r1}
- ldr r0, [r4, #0x0]
- str r0, [r3, #0x0]
- ldr r0, _02031910 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- ldr r1, [r0, #0x24]
- cmp r0, #0x0
- bne _020318E8
- add sp, #0xc
- mov r0, #0x0
- pop {r4}
- bx lr
-_020318E8:
- ldr r0, [sp, #0x0]
- cmp r0, #0x0
- beq _02031904
-_020318EE:
- ldr r0, [r2, #0x0]
- cmp r1, r0
- bne _020318FC
- add sp, #0xc
- mov r0, #0x1
- pop {r4}
- bx lr
-_020318FC:
- add r2, r2, #0x4
- ldr r0, [r2, #0x0]
- cmp r0, #0x0
- bne _020318EE
-_02031904:
- mov r0, #0x0
- add sp, #0xc
- pop {r4}
- bx lr
- .balign 4
-_0203190C: .word 0x020EEC50
-_02031910: .word 0x021C5A00
-
- thumb_func_start FUN_02031914
-FUN_02031914: ; 0x02031914
- ldr r3, _0203191C ; =FUN_02031D20
- ldr r0, _02031920 ; =FUN_02032178
- mov r1, #0x0
- bx r3
- .balign 4
-_0203191C: .word FUN_02031D20
-_02031920: .word FUN_02032178
-
- thumb_func_start FUN_02031924
-FUN_02031924: ; 0x02031924
- ldr r0, _02031930 ; =0x021C5A00
- mov r1, #0x1
- ldr r0, [r0, #0x0]
- add r0, #0x4c
- strb r1, [r0, #0x0]
- bx lr
- .balign 4
-_02031930: .word 0x021C5A00
-
- thumb_func_start FUN_02031934
-FUN_02031934: ; 0x02031934
- push {r3, lr}
- bl FUN_0202E49C
- ldr r0, _02031944 ; =FUN_02032194
- mov r1, #0x0
- bl FUN_02031D20
- pop {r3, pc}
- .balign 4
-_02031944: .word FUN_02032194
-
- thumb_func_start FUN_02031948
-FUN_02031948: ; 0x02031948
- push {r3-r7, lr}
- add r6, r0, #0x0
- add r7, r1, #0x0
- add r5, r2, #0x0
- add r4, r3, #0x0
- bl FUN_02030F40
- cmp r0, #0x0
- bne _02031980
- ldr r2, _02031984 ; =0x00007080
- mov r0, #0x3
- mov r1, #0xf
- bl FUN_02016828
- add r0, r6, #0x0
- add r1, r7, #0x0
- bl FUN_02031734
- ldr r0, _02031988 ; =0x021C5A00
- ldr r1, [r0, #0x0]
- add r1, #0x40
- strb r5, [r1, #0x0]
- ldr r0, [r0, #0x0]
- mov r1, #0x0
- str r4, [r0, #0x30]
- ldr r0, _0203198C ; =FUN_020321D0
- bl FUN_02031D20
-_02031980:
- pop {r3-r7, pc}
- nop
-_02031984: .word 0x00007080
-_02031988: .word 0x021C5A00
-_0203198C: .word FUN_020321D0
-
- thumb_func_start FUN_02031990
-FUN_02031990: ; 0x02031990
- push {r3-r7, lr}
- add r6, r0, #0x0
- add r7, r1, #0x0
- add r5, r2, #0x0
- add r4, r3, #0x0
- bl FUN_02030F40
- cmp r0, #0x0
- bne _020319C8
- ldr r2, _020319CC ; =0x00007080
- mov r0, #0x3
- mov r1, #0xf
- bl FUN_02016828
- add r0, r6, #0x0
- add r1, r7, #0x0
- bl FUN_02031734
- ldr r0, _020319D0 ; =0x021C5A00
- ldr r1, [r0, #0x0]
- add r1, #0x40
- strb r5, [r1, #0x0]
- ldr r0, [r0, #0x0]
- mov r1, #0x0
- str r4, [r0, #0x30]
- ldr r0, _020319D4 ; =FUN_0203224C
- bl FUN_02031D20
-_020319C8:
- pop {r3-r7, pc}
- nop
-_020319CC: .word 0x00007080
-_020319D0: .word 0x021C5A00
-_020319D4: .word FUN_0203224C
-
- thumb_func_start FUN_020319D8
-FUN_020319D8: ; 0x020319D8
- ldr r1, _020319E8 ; =0x021C5A00
- ldr r3, _020319EC ; =FUN_02031D20
- ldr r1, [r1, #0x0]
- add r1, #0x3e
- strb r0, [r1, #0x0]
- ldr r0, _020319F0 ; =FUN_02032298
- mov r1, #0x0
- bx r3
- .balign 4
-_020319E8: .word 0x021C5A00
-_020319EC: .word FUN_02031D20
-_020319F0: .word FUN_02032298
-
- thumb_func_start FUN_020319F4
-FUN_020319F4: ; 0x020319F4
- push {r3, lr}
- bl FUN_0202FCA8
- ldr r0, _02031A04 ; =FUN_02032364
- mov r1, #0x0
- bl FUN_02031D20
- pop {r3, pc}
- .balign 4
-_02031A04: .word FUN_02032364
-
- thumb_func_start FUN_02031A08
-FUN_02031A08: ; 0x02031A08
- push {r3, lr}
- ldr r0, _02031A1C ; =0x021C5A00
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _02031A1A
- ldr r0, _02031A20 ; =FUN_02032440
- mov r1, #0x5
- bl FUN_02031D20
-_02031A1A:
- pop {r3, pc}
- .balign 4
-_02031A1C: .word 0x021C5A00
-_02031A20: .word FUN_02032440
-
- thumb_func_start FUN_02031A24
-FUN_02031A24: ; 0x02031A24
- ldr r3, _02031A28 ; =FUN_0202D298
- bx r3
- .balign 4
-_02031A28: .word FUN_0202D298
-
- thumb_func_start FUN_02031A2C
-FUN_02031A2C: ; 0x02031A2C
- push {r4}
- sub sp, #0xc
- ldr r4, _02031A74 ; =0x020EEC5C
- add r3, sp, #0x0
- ldmia r4!, {r0-r1}
- add r2, r3, #0x0
- stmia r3!, {r0-r1}
- ldr r0, [r4, #0x0]
- str r0, [r3, #0x0]
- ldr r0, _02031A78 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- ldr r1, [r0, #0x24]
- cmp r0, #0x0
- bne _02031A50
- add sp, #0xc
- mov r0, #0x0
- pop {r4}
- bx lr
-_02031A50:
- ldr r0, [sp, #0x0]
- cmp r0, #0x0
- beq _02031A6C
-_02031A56:
- ldr r0, [r2, #0x0]
- cmp r1, r0
- bne _02031A64
- add sp, #0xc
- mov r0, #0x1
- pop {r4}
- bx lr
-_02031A64:
- add r2, r2, #0x4
- ldr r0, [r2, #0x0]
- cmp r0, #0x0
- bne _02031A56
-_02031A6C:
- mov r0, #0x0
- add sp, #0xc
- pop {r4}
- bx lr
- .balign 4
-_02031A74: .word 0x020EEC5C
-_02031A78: .word 0x021C5A00
-
- thumb_func_start FUN_02031A7C
-FUN_02031A7C: ; 0x02031A7C
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, _02031ABC ; =0x021C5A00
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- bne _02031ABA
- ldr r2, _02031AC0 ; =0x00007080
- mov r0, #0x3
- mov r1, #0xf
- bl FUN_02016828
- cmp r0, #0x0
- bne _02031A9A
- bl FUN_020335E0
-_02031A9A:
- add r0, r4, #0x0
- mov r1, #0x9
- bl FUN_02031734
- ldr r0, _02031ABC ; =0x021C5A00
- mov r2, #0x9
- ldr r1, [r0, #0x0]
- add r1, #0x3f
- strb r2, [r1, #0x0]
- ldr r0, [r0, #0x0]
- mov r1, #0x0
- add r0, #0x40
- strb r1, [r0, #0x0]
- ldr r0, _02031AC4 ; =FUN_02032478
- bl FUN_02031D20
-_02031ABA:
- pop {r4, pc}
- .balign 4
-_02031ABC: .word 0x021C5A00
-_02031AC0: .word 0x00007080
-_02031AC4: .word FUN_02032478
-
- thumb_func_start FUN_02031AC8
-FUN_02031AC8: ; 0x02031AC8
- push {r3, lr}
- ldr r1, _02031AEC ; =0x021C5A00
- ldr r2, [r1, #0x0]
- add r2, #0x3e
- strb r0, [r2, #0x0]
- ldr r0, [r1, #0x0]
- mov r2, #0x3
- strh r2, [r0, #0x38]
- mov r0, #0x1
- bl FUN_0202D344
- bl FUN_02033E74
- ldr r0, _02031AF0 ; =FUN_02032628
- mov r1, #0x0
- bl FUN_02031D20
- pop {r3, pc}
- .balign 4
-_02031AEC: .word 0x021C5A00
-_02031AF0: .word FUN_02032628
-
- thumb_func_start FUN_02031AF4
-FUN_02031AF4: ; 0x02031AF4
- ldr r0, _02031B20 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- bne _02031B02
- mov r0, #0x0
- mvn r0, r0
- bx lr
-_02031B02:
- ldr r1, [r0, #0x24]
- ldr r0, _02031B24 ; =FUN_0203279C
- cmp r1, r0
- bne _02031B0E
- mov r0, #0x1
- bx lr
-_02031B0E:
- ldr r0, _02031B28 ; =FUN_020327B4
- cmp r1, r0
- bne _02031B18
- mov r0, #0x1
- b _02031B1A
-_02031B18:
- mov r0, #0x0
-_02031B1A:
- neg r0, r0
- bx lr
- nop
-_02031B20: .word 0x021C5A00
-_02031B24: .word FUN_0203279C
-_02031B28: .word FUN_020327B4
-
- thumb_func_start FUN_02031B2C
-FUN_02031B2C: ; 0x02031B2C
- ldr r0, _02031B48 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- bne _02031B38
- mov r0, #0x0
- bx lr
-_02031B38:
- ldr r1, [r0, #0x24]
- ldr r0, _02031B4C ; =FUN_020327FC
- cmp r1, r0
- bne _02031B44
- mov r0, #0x1
- bx lr
-_02031B44:
- mov r0, #0x0
- bx lr
- .balign 4
-_02031B48: .word 0x021C5A00
-_02031B4C: .word FUN_020327FC
-
- thumb_func_start FUN_02031B50
-FUN_02031B50: ; 0x02031B50
- push {r3, lr}
- mov r0, #0x0
- bl FUN_0202D344
- ldr r0, _02031BC4 ; =0x021C5A00
- ldr r1, [r0, #0x0]
- add r0, r1, #0x0
- add r0, #0x44
- ldrb r0, [r0, #0x0]
- cmp r0, #0x1
- bne _02031B78
- add r0, r1, #0x0
- add r0, #0x45
- ldrb r0, [r0, #0x0]
- cmp r0, #0x1
- bne _02031B78
- add r1, #0x3f
- ldrb r0, [r1, #0x0]
- cmp r0, #0x9
- bne _02031B80
-_02031B78:
- mov r0, #0x0
- add r1, r0, #0x0
- bl FUN_020334E8
-_02031B80:
- bl FUN_02033ED0
- ldr r0, _02031BC4 ; =0x021C5A00
- mov r2, #0x9
- ldr r1, [r0, #0x0]
- add r1, #0x3f
- strb r2, [r1, #0x0]
- ldr r1, [r0, #0x0]
- mov r2, #0x0
- add r1, #0x48
- strb r2, [r1, #0x0]
- ldr r0, [r0, #0x0]
- add r0, #0x3c
- ldrb r0, [r0, #0x0]
- bl FUN_0202D1B0
- bl FUN_02031190
- cmp r0, #0x0
- bne _02031BB8
- mov r0, #0x1
- bl FUN_0202D36C
- ldr r0, _02031BC8 ; =FUN_020323DC
- mov r1, #0xf
- bl FUN_02031D20
- pop {r3, pc}
-_02031BB8:
- ldr r0, _02031BCC ; =FUN_02032424
- mov r1, #0x5
- bl FUN_02031D20
- pop {r3, pc}
- nop
-_02031BC4: .word 0x021C5A00
-_02031BC8: .word FUN_020323DC
-_02031BCC: .word FUN_02032424
-
- thumb_func_start FUN_02031BD0
-FUN_02031BD0: ; 0x02031BD0
- ldr r0, _02031BEC ; =0x021C5A00
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- bne _02031BDC
- mov r0, #0x1
- bx lr
-_02031BDC:
- ldr r1, [r0, #0x24]
- ldr r0, _02031BF0 ; =FUN_020324F8
- cmp r1, r0
- beq _02031BE8
- mov r0, #0x1
- bx lr
-_02031BE8:
- mov r0, #0x0
- bx lr
- .balign 4
-_02031BEC: .word 0x021C5A00
-_02031BF0: .word FUN_020324F8
-
- thumb_func_start FUN_02031BF4
-FUN_02031BF4: ; 0x02031BF4
- push {r3, lr}
- ldr r0, _02031C08 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _02031C06
- ldr r0, _02031C0C ; =FUN_02032440
- mov r1, #0x5
- bl FUN_02031D20
-_02031C06:
- pop {r3, pc}
- .balign 4
-_02031C08: .word 0x021C5A00
-_02031C0C: .word FUN_02032440
-
- thumb_func_start FUN_02031C10
-FUN_02031C10: ; 0x02031C10
- push {r3, lr}
- ldr r0, _02031C28 ; =0x021C5A00
- ldr r1, [r0, #0x0]
- cmp r1, #0x0
- beq _02031C24
- mov r0, #0x1
- add r1, #0x48
- strb r0, [r1, #0x0]
- bl FUN_0202D344
-_02031C24:
- pop {r3, pc}
- nop
-_02031C28: .word 0x021C5A00
-
- thumb_func_start FUN_02031C2C
-FUN_02031C2C: ; 0x02031C2C
- push {r3, lr}
- ldr r0, _02031C4C ; =0x021C5A00
- ldr r1, [r0, #0x0]
- cmp r1, #0x0
- beq _02031C48
- mov r0, #0x1
- add r1, #0x48
- strb r0, [r1, #0x0]
- bl FUN_0202D344
- ldr r0, _02031C50 ; =FUN_02032850
- mov r1, #0x0
- bl FUN_02031D20
-_02031C48:
- pop {r3, pc}
- nop
-_02031C4C: .word 0x021C5A00
-_02031C50: .word FUN_02032850
-
- thumb_func_start FUN_02031C54
-FUN_02031C54: ; 0x02031C54
- ldr r0, _02031C60 ; =0x021C5A00
- mov r1, #0x12
- ldr r0, [r0, #0x0]
- add r0, #0x3f
- strb r1, [r0, #0x0]
- bx lr
- .balign 4
-_02031C60: .word 0x021C5A00
-
- thumb_func_start FUN_02031C64
-FUN_02031C64: ; 0x02031C64
- ldr r0, _02031C70 ; =0x021C5A00
- mov r1, #0x9
- ldr r0, [r0, #0x0]
- add r0, #0x3f
- strb r1, [r0, #0x0]
- bx lr
- .balign 4
-_02031C70: .word 0x021C5A00
-
- thumb_func_start FUN_02031C74
-FUN_02031C74: ; 0x02031C74
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- bl FUN_02030F40
- cmp r0, #0x0
- bne _02031C9C
- ldr r2, _02031CA0 ; =0x00007080
- mov r0, #0x3
- mov r1, #0xf
- bl FUN_02016828
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02031734
- ldr r0, _02031CA4 ; =FUN_02032E00
- mov r1, #0x0
- bl FUN_02031D20
-_02031C9C:
- pop {r3-r5, pc}
- nop
-_02031CA0: .word 0x00007080
-_02031CA4: .word FUN_02032E00
-
- thumb_func_start FUN_02031CA8
-FUN_02031CA8: ; 0x02031CA8
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- bl FUN_02030F40
- cmp r0, #0x0
- bne _02031CD0
- ldr r2, _02031CD4 ; =0x00007080
- mov r0, #0x3
- mov r1, #0xf
- bl FUN_02016828
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02031734
- ldr r0, _02031CD8 ; =FUN_02032E48
- mov r1, #0x0
- bl FUN_02031D20
-_02031CD0:
- pop {r3-r5, pc}
- nop
-_02031CD4: .word 0x00007080
-_02031CD8: .word FUN_02032E48
-
- thumb_func_start FUN_02031CDC
-FUN_02031CDC: ; 0x02031CDC
- push {r3, lr}
- ldr r0, _02031D1C ; =0x021C5A00
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _02031CEE
- ldr r0, [r0, #0x24]
- cmp r0, #0x0
- beq _02031CEE
- blx r0
-_02031CEE:
- bl FUN_02033590
- cmp r0, #0x0
- beq _02031D04
- bl MOD04_021DDB08
- mov r1, #0x3
- sub r0, r1, r0
- bl FUN_02033EEC
- pop {r3, pc}
-_02031D04:
- bl FUN_0202EDF8
- cmp r0, #0x0
- beq _02031D18
- bl WM_GetLinkLevel
- mov r1, #0x3
- sub r0, r1, r0
- bl FUN_02033EEC
-_02031D18:
- pop {r3, pc}
- nop
-_02031D1C: .word 0x021C5A00
-
- thumb_func_start FUN_02031D20
-FUN_02031D20: ; 0x02031D20
- ldr r2, _02031D2C ; =0x021C5A00
- ldr r3, [r2, #0x0]
- str r0, [r3, #0x24]
- ldr r0, [r2, #0x0]
- strh r1, [r0, #0x3a]
- bx lr
- .balign 4
-_02031D2C: .word 0x021C5A00
-
- thumb_func_start FUN_02031D30
-FUN_02031D30: ; 0x02031D30
- push {r3-r5, lr}
- ldr r0, _02031DF8 ; =0x021C5A00
- ldr r1, [r0, #0x0]
- ldrh r0, [r1, #0x3a]
- cmp r0, #0x0
- beq _02031D42
- sub r0, r0, #0x1
- strh r0, [r1, #0x3a]
- pop {r3-r5, pc}
-_02031D42:
- bl FUN_0202E4C8
- cmp r0, #0x0
- beq _02031DF6
- ldr r0, _02031DF8 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x2c]
- bl FUN_0202E29C
- ldr r0, _02031DF8 ; =0x021C5A00
- mov r1, #0x0
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x28]
- bl FUN_0202DB14
- mov r0, #0x1
- bl FUN_02031268
- bl FUN_02030FA8
- ldr r0, _02031DF8 ; =0x021C5A00
- ldr r1, [r0, #0x0]
- add r0, r1, #0x0
- add r0, #0x4a
- ldrb r0, [r0, #0x0]
- cmp r0, #0x0
- beq _02031DC8
- add r1, #0x43
- ldrb r1, [r1, #0x0]
- mov r0, #0x1
- mov r2, #0x7d
- lsl r2, r2, #0x2
- add r3, r0, #0x0
- bl FUN_0202F918
- cmp r0, #0x0
- beq _02031DF6
- ldr r0, _02031DF8 ; =0x021C5A00
- ldr r5, [r0, #0x0]
- add r4, r5, #0x0
- add r4, #0xc
- ldr r0, [r4, #0x8]
- ldr r1, [r4, #0xc]
- ldr r2, [r5, #0xc]
- ldr r3, [r4, #0x4]
- bl _ll_mul
- ldr r2, [r4, #0x10]
- ldr r3, [r4, #0x14]
- add r0, r2, r0
- adc r3, r1
- str r0, [r5, #0xc]
- str r3, [r4, #0x4]
- add r0, r3, #0x0
- mov r1, #0x0
- mov r2, #0x14
- mov r3, #0x0
- bl _ll_mul
- mov r0, #0x0
- add r5, #0x43
- strb r0, [r5, #0x0]
- ldr r0, _02031DFC ; =FUN_020320C4
- add r1, #0x14
- bl FUN_02031D20
- pop {r3-r5, pc}
-_02031DC8:
- mov r0, #0x1
- mov r2, #0x7d
- add r1, r0, #0x0
- lsl r2, r2, #0x2
- bl FUN_0202F950
- cmp r0, #0x0
- beq _02031DF6
- ldr r0, _02031DF8 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- add r0, #0x4c
- ldrb r0, [r0, #0x0]
- cmp r0, #0x0
- beq _02031DEE
- ldr r0, _02031E00 ; =FUN_020323B8
- mov r1, #0x0
- bl FUN_02031D20
- pop {r3-r5, pc}
-_02031DEE:
- ldr r0, _02031E04 ; =FUN_02031EE0
- mov r1, #0x40
- bl FUN_02031D20
-_02031DF6:
- pop {r3-r5, pc}
- .balign 4
-_02031DF8: .word 0x021C5A00
-_02031DFC: .word FUN_020320C4
-_02031E00: .word FUN_020323B8
-_02031E04: .word FUN_02031EE0
-
- thumb_func_start FUN_02031E08
-FUN_02031E08: ; 0x02031E08
- push {r3-r5, lr}
- bl FUN_0202EE0C
- cmp r0, #0x0
- beq _02031E7C
- mov r0, #0x1
- bl FUN_02031268
- bl FUN_02030FA8
- ldr r0, _02031E80 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- add r0, #0x4a
- ldrb r0, [r0, #0x0]
- cmp r0, #0x0
- beq _02031E32
- ldr r0, _02031E84 ; =FUN_02032058
- mov r1, #0x0
- bl FUN_02031D20
- pop {r3-r5, pc}
-_02031E32:
- mov r2, #0x7d
- mov r0, #0x0
- mov r1, #0x1
- lsl r2, r2, #0x2
- bl FUN_0202F950
- cmp r0, #0x0
- beq _02031E7C
- ldr r0, _02031E80 ; =0x021C5A00
- ldr r5, [r0, #0x0]
- add r4, r5, #0x0
- add r4, #0xc
- ldr r0, [r4, #0x8]
- ldr r1, [r4, #0xc]
- ldr r2, [r5, #0xc]
- ldr r3, [r4, #0x4]
- bl _ll_mul
- ldr r2, [r4, #0x10]
- ldr r3, [r4, #0x14]
- add r0, r2, r0
- adc r3, r1
- str r0, [r5, #0xc]
- mov r1, #0x0
- str r3, [r4, #0x4]
- lsr r0, r3, #0x1a
- lsl r1, r1, #0x6
- orr r1, r0
- ldrh r0, [r5, #0x38]
- cmp r0, #0x0
- beq _02031E76
- lsl r1, r0, #0x6
- mov r0, #0x0
- strh r0, [r5, #0x38]
-_02031E76:
- ldr r0, _02031E88 ; =FUN_02031EE0
- bl FUN_02031D20
-_02031E7C:
- pop {r3-r5, pc}
- nop
-_02031E80: .word 0x021C5A00
-_02031E84: .word FUN_02032058
-_02031E88: .word FUN_02031EE0
-
- thumb_func_start FUN_02031E8C
-FUN_02031E8C: ; 0x02031E8C
- push {r3-r5, lr}
- bl FUN_0202EE0C
- cmp r0, #0x0
- beq _02031ED6
- mov r0, #0x0
- mov r2, #0x7d
- add r1, r0, #0x0
- lsl r2, r2, #0x2
- bl FUN_0202F950
- cmp r0, #0x0
- beq _02031ED6
- ldr r0, _02031ED8 ; =0x021C5A00
- ldr r4, [r0, #0x0]
- add r5, r4, #0x0
- add r5, #0xc
- ldr r0, [r5, #0x8]
- ldr r1, [r5, #0xc]
- ldr r2, [r4, #0xc]
- ldr r3, [r5, #0x4]
- bl _ll_mul
- ldr r2, [r5, #0x10]
- ldr r3, [r5, #0x14]
- add r0, r2, r0
- adc r3, r1
- str r0, [r4, #0xc]
- mov r1, #0x0
- lsr r2, r3, #0x1b
- lsl r1, r1, #0x5
- orr r1, r2
- ldr r0, _02031EDC ; =FUN_02031EE0
- add r1, #0x10
- str r3, [r5, #0x4]
- bl FUN_02031D20
-_02031ED6:
- pop {r3-r5, pc}
- .balign 4
-_02031ED8: .word 0x021C5A00
-_02031EDC: .word FUN_02031EE0
-
- thumb_func_start FUN_02031EE0
-FUN_02031EE0: ; 0x02031EE0
- push {r3, lr}
- bl FUN_0202EA54
- ldr r0, _02031F54 ; =0x021C5A00
- ldr r1, [r0, #0x0]
- add r0, r1, #0x0
- add r0, #0x4f
- ldrb r0, [r0, #0x0]
- cmp r0, #0x0
- bne _02031F50
- add r1, #0x4b
- ldrb r0, [r1, #0x0]
- cmp r0, #0x0
- bne _02031F50
- bl FUN_0202E8F4
- mov r1, #0x0
- mvn r1, r1
- cmp r0, r1
- beq _02031F1A
- ldr r1, _02031F54 ; =0x021C5A00
- ldr r1, [r1, #0x0]
- add r1, #0x3e
- strb r0, [r1, #0x0]
- ldr r0, _02031F58 ; =FUN_02031F60
- mov r1, #0x20
- bl FUN_02031D20
- pop {r3, pc}
-_02031F1A:
- ldr r0, _02031F54 ; =0x021C5A00
- ldr r1, [r0, #0x0]
- ldrh r0, [r1, #0x3a]
- cmp r0, #0x0
- beq _02031F2A
- sub r0, r0, #0x1
- strh r0, [r1, #0x3a]
- pop {r3, pc}
-_02031F2A:
- bl FUN_0202E950
- mov r1, #0x0
- mvn r1, r1
- cmp r0, r1
- beq _02031F48
- ldr r1, _02031F54 ; =0x021C5A00
- ldr r1, [r1, #0x0]
- add r1, #0x3e
- strb r0, [r1, #0x0]
- ldr r0, _02031F58 ; =FUN_02031F60
- mov r1, #0x20
- bl FUN_02031D20
- pop {r3, pc}
-_02031F48:
- ldr r0, _02031F5C ; =FUN_02032028
- mov r1, #0x0
- bl FUN_02031D20
-_02031F50:
- pop {r3, pc}
- nop
-_02031F54: .word 0x021C5A00
-_02031F58: .word FUN_02031F60
-_02031F5C: .word FUN_02032028
-
- thumb_func_start FUN_02031F60
-FUN_02031F60: ; 0x02031F60
- push {r3, lr}
- bl FUN_0202EA54
- ldr r0, _02031FBC ; =0x021C5A00
- ldr r0, [r0, #0x0]
- add r0, #0x3e
- ldrb r0, [r0, #0x0]
- bl FUN_0202E8A0
- cmp r0, #0x0
- beq _02031F90
- ldr r0, _02031FBC ; =0x021C5A00
- ldr r0, [r0, #0x0]
- add r0, #0x3e
- ldrb r0, [r0, #0x0]
- bl FUN_0202FB18
- cmp r0, #0x0
- beq _02031F90
- ldr r0, _02031FC0 ; =FUN_02031FC8
- mov r1, #0x64
- bl FUN_02031D20
- pop {r3, pc}
-_02031F90:
- bl FUN_020311F0
- cmp r0, #0x0
- beq _02031FA2
- ldr r0, _02031FC4 ; =FUN_02032028
- mov r1, #0x0
- bl FUN_02031D20
- pop {r3, pc}
-_02031FA2:
- ldr r0, _02031FBC ; =0x021C5A00
- ldr r1, [r0, #0x0]
- ldrh r0, [r1, #0x3a]
- cmp r0, #0x0
- beq _02031FB2
- sub r0, r0, #0x1
- strh r0, [r1, #0x3a]
- pop {r3, pc}
-_02031FB2:
- ldr r0, _02031FC4 ; =FUN_02032028
- mov r1, #0x0
- bl FUN_02031D20
- pop {r3, pc}
- .balign 4
-_02031FBC: .word 0x021C5A00
-_02031FC0: .word FUN_02031FC8
-_02031FC4: .word FUN_02032028
-
- thumb_func_start FUN_02031FC8
-FUN_02031FC8: ; 0x02031FC8
- push {r3, lr}
- bl FUN_02031190
- bl FUN_02030E7C
- cmp r0, #0x0
- beq _02031FEE
- bl FUN_0202FC60
- mov r0, #0x0
- bl FUN_02031268
- bl FUN_02030FA8
- ldr r0, _0203201C ; =FUN_0203213C
- mov r1, #0x0
- bl FUN_02031D20
- pop {r3, pc}
-_02031FEE:
- bl FUN_020311F0
- cmp r0, #0x0
- beq _02032000
- ldr r0, _02032020 ; =FUN_02032028
- mov r1, #0x0
- bl FUN_02031D20
- pop {r3, pc}
-_02032000:
- ldr r0, _02032024 ; =0x021C5A00
- ldr r1, [r0, #0x0]
- ldrh r0, [r1, #0x3a]
- cmp r0, #0x0
- beq _02032010
- sub r0, r0, #0x1
- strh r0, [r1, #0x3a]
- pop {r3, pc}
-_02032010:
- ldr r0, _02032020 ; =FUN_02032028
- mov r1, #0x0
- bl FUN_02031D20
- pop {r3, pc}
- nop
-_0203201C: .word FUN_0203213C
-_02032020: .word FUN_02032028
-_02032024: .word 0x021C5A00
-
- thumb_func_start FUN_02032028
-FUN_02032028: ; 0x02032028
- push {r3, lr}
- bl FUN_0202E6F0
- cmp r0, #0x0
- beq _0203203A
- ldr r0, _0203203C ; =FUN_02032058
- mov r1, #0x0
- bl FUN_02031D20
-_0203203A:
- pop {r3, pc}
- .balign 4
-_0203203C: .word FUN_02032058
-
- thumb_func_start FUN_02032040
-FUN_02032040: ; 0x02032040
- push {r3, lr}
- bl FUN_0202E6F0
- cmp r0, #0x0
- beq _02032052
- ldr r0, _02032054 ; =FUN_02031E8C
- mov r1, #0x0
- bl FUN_02031D20
-_02032052:
- pop {r3, pc}
- .balign 4
-_02032054: .word FUN_02031E8C
-
- thumb_func_start FUN_02032058
-FUN_02032058: ; 0x02032058
- push {r3-r5, lr}
- bl FUN_0202EE0C
- cmp r0, #0x0
- beq _020320BA
- mov r0, #0x1
- bl FUN_02031268
- ldr r1, _020320BC ; =0x021C5A00
- mov r2, #0x7d
- ldr r1, [r1, #0x0]
- mov r0, #0x0
- add r1, #0x43
- ldrb r1, [r1, #0x0]
- lsl r2, r2, #0x2
- mov r3, #0x1
- bl FUN_0202F918
- cmp r0, #0x0
- beq _020320BA
- ldr r0, _020320BC ; =0x021C5A00
- ldr r5, [r0, #0x0]
- add r4, r5, #0x0
- add r4, #0xc
- ldr r0, [r4, #0x8]
- ldr r1, [r4, #0xc]
- ldr r2, [r5, #0xc]
- ldr r3, [r4, #0x4]
- bl _ll_mul
- ldr r2, [r4, #0x10]
- ldr r3, [r4, #0x14]
- add r0, r2, r0
- adc r3, r1
- str r0, [r5, #0xc]
- str r3, [r4, #0x4]
- add r0, r3, #0x0
- mov r1, #0x0
- mov r2, #0x14
- mov r3, #0x0
- bl _ll_mul
- mov r0, #0x0
- add r5, #0x43
- strb r0, [r5, #0x0]
- ldr r0, _020320C0 ; =FUN_020320C4
- add r1, #0x14
- bl FUN_02031D20
-_020320BA:
- pop {r3-r5, pc}
- .balign 4
-_020320BC: .word 0x021C5A00
-_020320C0: .word FUN_020320C4
-
- thumb_func_start FUN_020320C4
-FUN_020320C4: ; 0x020320C4
- push {r3, lr}
- bl FUN_020311E8
- cmp r0, #0x0
- beq _020320E2
- ldr r0, _0203210C ; =0x021C5A00
- mov r1, #0x1
- ldr r0, [r0, #0x0]
- add r0, #0x43
- strb r1, [r0, #0x0]
- ldr r0, _02032110 ; =FUN_02032118
- mov r1, #0x0
- bl FUN_02031D20
- pop {r3, pc}
-_020320E2:
- ldr r0, _0203210C ; =0x021C5A00
- ldr r1, [r0, #0x0]
- ldrh r0, [r1, #0x3a]
- cmp r0, #0x0
- beq _020320F2
- sub r0, r0, #0x1
- strh r0, [r1, #0x3a]
- pop {r3, pc}
-_020320F2:
- add r1, #0x4a
- ldrb r0, [r1, #0x0]
- cmp r0, #0x0
- bne _0203210A
- bl FUN_0202E6F0
- cmp r0, #0x0
- beq _0203210A
- ldr r0, _02032114 ; =FUN_02032040
- mov r1, #0x2
- bl FUN_02031D20
-_0203210A:
- pop {r3, pc}
- .balign 4
-_0203210C: .word 0x021C5A00
-_02032110: .word FUN_02032118
-_02032114: .word FUN_02032040
-
- thumb_func_start FUN_02032118
-FUN_02032118: ; 0x02032118
- push {r3, lr}
- mov r0, #0x0
- bl FUN_02031268
- mov r0, #0x1
- bl FUN_0202EE84
- bl FUN_02030FA8
- ldr r0, _02032134 ; =FUN_02032138
- mov r1, #0x0
- bl FUN_02031D20
- pop {r3, pc}
- .balign 4
-_02032134: .word FUN_02032138
-
- thumb_func_start FUN_02032138
-FUN_02032138: ; 0x02032138
- bx lr
- .balign 4
-
- thumb_func_start FUN_0203213C
-FUN_0203213C: ; 0x0203213C
- bx lr
- .balign 4
-
- thumb_func_start FUN_02032140
-FUN_02032140: ; 0x02032140
- push {r3, lr}
- ldr r0, _02032170 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- add r0, #0x3f
- ldrb r0, [r0, #0x0]
- cmp r0, #0x13
- bhs _02032166
- bl FUN_0202EE0C
- cmp r0, #0x0
- beq _0203216E
- mov r0, #0x1
- bl FUN_02031268
- bl FUN_02030FA8
- mov r0, #0x1
- bl FUN_0202E7B0
-_02032166:
- ldr r0, _02032174 ; =FUN_020323B8
- mov r1, #0x0
- bl FUN_02031D20
-_0203216E:
- pop {r3, pc}
- .balign 4
-_02032170: .word 0x021C5A00
-_02032174: .word FUN_020323B8
-
- thumb_func_start FUN_02032178
-FUN_02032178: ; 0x02032178
- push {r3, lr}
- bl FUN_0202E6F0
- cmp r0, #0x0
- beq _0203218E
- bl FUN_0202FC60
- ldr r0, _02032190 ; =FUN_02032140
- mov r1, #0x0
- bl FUN_02031D20
-_0203218E:
- pop {r3, pc}
- .balign 4
-_02032190: .word FUN_02032140
-
- thumb_func_start FUN_02032194
-FUN_02032194: ; 0x02032194
- push {r3, lr}
- bl FUN_0202E4C8
- cmp r0, #0x0
- beq _020321B0
- mov r0, #0x0
- bl FUN_0202E7B0
- bl FUN_0202FC60
- ldr r0, _020321B4 ; =FUN_02031E08
- mov r1, #0x0
- bl FUN_02031D20
-_020321B0:
- pop {r3, pc}
- nop
-_020321B4: .word FUN_02031E08
-
- thumb_func_start FUN_020321B8
-FUN_020321B8: ; 0x020321B8
- push {r3, lr}
- bl FUN_0202E6F0
- cmp r0, #0x0
- beq _020321CA
- ldr r0, _020321CC ; =FUN_02031E08
- mov r1, #0x0
- bl FUN_02031D20
-_020321CA:
- pop {r3, pc}
- .balign 4
-_020321CC: .word FUN_02031E08
-
- thumb_func_start FUN_020321D0
-FUN_020321D0: ; 0x020321D0
- push {r3, lr}
- bl FUN_0202E4C8
- cmp r0, #0x0
- beq _0203220C
- ldr r0, _02032210 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x2c]
- bl FUN_0202E29C
- ldr r0, _02032210 ; =0x021C5A00
- ldr r1, [r0, #0x0]
- ldr r0, [r1, #0x28]
- ldr r1, [r1, #0x30]
- bl FUN_0202DB14
- mov r0, #0x1
- add r1, r0, #0x0
- lsl r2, r0, #0x9
- add r3, r0, #0x0
- bl FUN_0202F918
- cmp r0, #0x0
- beq _0203220C
- bl FUN_0202FA10
- ldr r0, _02032214 ; =FUN_02032218
- mov r1, #0x0
- bl FUN_02031D20
-_0203220C:
- pop {r3, pc}
- nop
-_02032210: .word 0x021C5A00
-_02032214: .word FUN_02032218
-
- thumb_func_start FUN_02032218
-FUN_02032218: ; 0x02032218
- push {r3, lr}
- bl FUN_02031190
- bl FUN_02030E7C
- cmp r0, #0x0
- beq _0203222E
- ldr r0, _02032230 ; =FUN_02032234
- mov r1, #0x0
- bl FUN_02031D20
-_0203222E:
- pop {r3, pc}
- .balign 4
-_02032230: .word FUN_02032234
-
- thumb_func_start FUN_02032234
-FUN_02032234: ; 0x02032234
- push {r3, lr}
- bl FUN_02030F40
- cmp r0, #0x0
- bne _02032246
- ldr r0, _02032248 ; =FUN_020323BC
- mov r1, #0x0
- bl FUN_02031D20
-_02032246:
- pop {r3, pc}
- .balign 4
-_02032248: .word FUN_020323BC
-
- thumb_func_start FUN_0203224C
-FUN_0203224C: ; 0x0203224C
- push {r3, lr}
- bl FUN_0202E4C8
- cmp r0, #0x0
- beq _02032286
- ldr r0, _02032288 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x2c]
- bl FUN_0202E29C
- ldr r0, _02032288 ; =0x021C5A00
- ldr r1, [r0, #0x0]
- ldr r0, [r1, #0x28]
- ldr r1, [r1, #0x30]
- bl FUN_0202DB14
- mov r0, #0x1
- add r1, r0, #0x0
- lsl r2, r0, #0x9
- bl FUN_0202F950
- cmp r0, #0x0
- beq _02032286
- bl FUN_0202FA10
- ldr r0, _0203228C ; =FUN_02032290
- mov r1, #0x0
- bl FUN_02031D20
-_02032286:
- pop {r3, pc}
- .balign 4
-_02032288: .word 0x021C5A00
-_0203228C: .word FUN_02032290
-
- thumb_func_start FUN_02032290
-FUN_02032290: ; 0x02032290
- ldr r3, _02032294 ; =FUN_0202EA54
- bx r3
- .balign 4
-_02032294: .word FUN_0202EA54
-
- thumb_func_start FUN_02032298
-FUN_02032298: ; 0x02032298
- push {r3, lr}
- bl FUN_0202EA54
- ldr r0, _020322B8 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- add r0, #0x3e
- ldrb r0, [r0, #0x0]
- bl FUN_0202FB18
- cmp r0, #0x0
- beq _020322B6
- ldr r0, _020322BC ; =FUN_020322C0
- mov r1, #0xa
- bl FUN_02031D20
-_020322B6:
- pop {r3, pc}
- .balign 4
-_020322B8: .word 0x021C5A00
-_020322BC: .word FUN_020322C0
-
- thumb_func_start FUN_020322C0
-FUN_020322C0: ; 0x020322C0
- push {r3, lr}
- bl FUN_020311F0
- cmp r0, #0x0
- beq _020322D2
- ldr r0, _020322F0 ; =FUN_020322F8
- mov r1, #0x0
- bl FUN_02031D20
-_020322D2:
- bl FUN_02031190
- bl FUN_02030E7C
- cmp r0, #0x0
- beq _020322EE
- bl FUN_02031190
- cmp r0, #0x0
- beq _020322EE
- ldr r0, _020322F4 ; =FUN_0203234C
- mov r1, #0x0
- bl FUN_02031D20
-_020322EE:
- pop {r3, pc}
- .balign 4
-_020322F0: .word FUN_020322F8
-_020322F4: .word FUN_0203234C
-
- thumb_func_start FUN_020322F8
-FUN_020322F8: ; 0x020322F8
- push {r3, lr}
- bl FUN_0202E6F0
- ldr r0, _02032308 ; =FUN_0203230C
- mov r1, #0x2
- bl FUN_02031D20
- pop {r3, pc}
- .balign 4
-_02032308: .word FUN_0203230C
-
- thumb_func_start FUN_0203230C
-FUN_0203230C: ; 0x0203230C
- push {r3, lr}
- ldr r0, _02032344 ; =0x021C5A00
- ldr r1, [r0, #0x0]
- ldrh r0, [r1, #0x3a]
- cmp r0, #0x0
- beq _0203231E
- sub r0, r0, #0x1
- strh r0, [r1, #0x3a]
- pop {r3, pc}
-_0203231E:
- bl FUN_0202EE0C
- cmp r0, #0x0
- beq _02032340
- mov r1, #0x1
- mov r0, #0x0
- lsl r2, r1, #0x9
- bl FUN_0202F950
- cmp r0, #0x0
- beq _02032340
- bl FUN_0202FA10
- ldr r0, _02032348 ; =FUN_02032298
- mov r1, #0xa
- bl FUN_02031D20
-_02032340:
- pop {r3, pc}
- nop
-_02032344: .word 0x021C5A00
-_02032348: .word FUN_02032298
-
- thumb_func_start FUN_0203234C
-FUN_0203234C: ; 0x0203234C
- push {r3, lr}
- bl FUN_02030F40
- cmp r0, #0x0
- bne _0203235E
- ldr r0, _02032360 ; =FUN_020323BC
- mov r1, #0x0
- bl FUN_02031D20
-_0203235E:
- pop {r3, pc}
- .balign 4
-_02032360: .word FUN_020323BC
-
- thumb_func_start FUN_02032364
-FUN_02032364: ; 0x02032364
- push {r3, lr}
- bl FUN_0202E6F0
- ldr r0, _02032374 ; =FUN_02032378
- mov r1, #0x2
- bl FUN_02031D20
- pop {r3, pc}
- .balign 4
-_02032374: .word FUN_02032378
-
- thumb_func_start FUN_02032378
-FUN_02032378: ; 0x02032378
- push {r3, lr}
- ldr r0, _020323B0 ; =0x021C5A00
- ldr r1, [r0, #0x0]
- ldrh r0, [r1, #0x3a]
- cmp r0, #0x0
- beq _0203238A
- sub r0, r0, #0x1
- strh r0, [r1, #0x3a]
- pop {r3, pc}
-_0203238A:
- bl FUN_0202EE0C
- cmp r0, #0x0
- beq _020323AC
- mov r1, #0x1
- mov r0, #0x0
- lsl r2, r1, #0x9
- bl FUN_0202F950
- cmp r0, #0x0
- beq _020323AC
- bl FUN_0202FA10
- ldr r0, _020323B4 ; =FUN_02032290
- mov r1, #0xa
- bl FUN_02031D20
-_020323AC:
- pop {r3, pc}
- nop
-_020323B0: .word 0x021C5A00
-_020323B4: .word FUN_02032290
-
- thumb_func_start FUN_020323B8
-FUN_020323B8: ; 0x020323B8
- bx lr
- .balign 4
-
- thumb_func_start FUN_020323BC
-FUN_020323BC: ; 0x020323BC
- push {r3, lr}
- bl FUN_02030F40
- cmp r0, #0x0
- bne _020323CA
- bl FUN_020317C0
-_020323CA:
- pop {r3, pc}
-
- thumb_func_start FUN_020323CC
-FUN_020323CC: ; 0x020323CC
- ldr r3, _020323D4 ; =FUN_02031D20
- ldr r0, _020323D8 ; =FUN_02032440
- mov r1, #0x5
- bx r3
- .balign 4
-_020323D4: .word FUN_02031D20
-_020323D8: .word FUN_02032440
-
- thumb_func_start FUN_020323DC
-FUN_020323DC: ; 0x020323DC
- push {r3, lr}
- bl FUN_02030F20
- cmp r0, #0x1
- bgt _020323F8
- mov r0, #0x0
- bl FUN_0202D36C
- bl FUN_0202FC80
- ldr r0, _0203241C ; =FUN_020324F8
- mov r1, #0x0
- bl FUN_02031D20
-_020323F8:
- ldr r0, _02032420 ; =0x021C5A00
- ldr r1, [r0, #0x0]
- ldrh r0, [r1, #0x3a]
- cmp r0, #0x0
- beq _02032408
- sub r0, r0, #0x1
- strh r0, [r1, #0x3a]
- pop {r3, pc}
-_02032408:
- mov r0, #0x0
- bl FUN_0202D36C
- bl FUN_0202FC80
- ldr r0, _0203241C ; =FUN_020324F8
- mov r1, #0x0
- bl FUN_02031D20
- pop {r3, pc}
- .balign 4
-_0203241C: .word FUN_020324F8
-_02032420: .word 0x021C5A00
-
- thumb_func_start FUN_02032424
-FUN_02032424: ; 0x02032424
- push {r3, lr}
- bl FUN_0202E6F0
- cmp r0, #0x0
- beq _0203243A
- bl FUN_0202FC60
- ldr r0, _0203243C ; =FUN_020324F8
- mov r1, #0x0
- bl FUN_02031D20
-_0203243A:
- pop {r3, pc}
- .balign 4
-_0203243C: .word FUN_020324F8
-
- thumb_func_start FUN_02032440
-FUN_02032440: ; 0x02032440
- push {r3, lr}
- ldr r0, _02032470 ; =0x021C5A00
- ldr r1, [r0, #0x0]
- ldrh r0, [r1, #0x3a]
- cmp r0, #0x0
- beq _02032450
- sub r0, r0, #0x1
- strh r0, [r1, #0x3a]
-_02032450:
- bl FUN_0202E6F0
- cmp r0, #0x0
- beq _0203246E
- ldr r0, _02032470 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- ldrh r0, [r0, #0x3a]
- cmp r0, #0x0
- bne _0203246E
- bl FUN_0202FA5C
- ldr r0, _02032474 ; =FUN_020323BC
- mov r1, #0x0
- bl FUN_02031D20
-_0203246E:
- pop {r3, pc}
- .balign 4
-_02032470: .word 0x021C5A00
-_02032474: .word FUN_020323BC
-
- thumb_func_start FUN_02032478
-FUN_02032478: ; 0x02032478
- push {r3, lr}
- bl FUN_0202E4C8
- cmp r0, #0x0
- beq _020324BE
- ldr r0, _020324C0 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x2c]
- bl FUN_0202E29C
- ldr r0, _020324C0 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- add r0, #0x3c
- ldrb r0, [r0, #0x0]
- bl FUN_0202D1B0
- ldr r0, _020324C0 ; =0x021C5A00
- mov r1, #0x0
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x28]
- bl FUN_0202DB14
- mov r0, #0x1
- add r1, r0, #0x0
- lsl r2, r0, #0x9
- bl FUN_0202F950
- cmp r0, #0x0
- beq _020324BE
- bl FUN_0202FA10
- ldr r0, _020324C4 ; =FUN_020324C8
- mov r1, #0x40
- bl FUN_02031D20
-_020324BE:
- pop {r3, pc}
- .balign 4
-_020324C0: .word 0x021C5A00
-_020324C4: .word FUN_020324C8
-
- thumb_func_start FUN_020324C8
-FUN_020324C8: ; 0x020324C8
- push {r3, lr}
- bl FUN_0202EA54
- ldr r0, _020324F0 ; =0x021C5A00
- ldr r1, [r0, #0x0]
- ldrh r0, [r1, #0x3a]
- cmp r0, #0x0
- beq _020324DE
- sub r0, r0, #0x1
- strh r0, [r1, #0x3a]
- pop {r3, pc}
-_020324DE:
- bl FUN_0202E6F0
- cmp r0, #0x0
- beq _020324EE
- ldr r0, _020324F4 ; =FUN_02032510
- mov r1, #0x0
- bl FUN_02031D20
-_020324EE:
- pop {r3, pc}
- .balign 4
-_020324F0: .word 0x021C5A00
-_020324F4: .word FUN_02032510
-
- thumb_func_start FUN_020324F8
-FUN_020324F8: ; 0x020324F8
- push {r3, lr}
- bl FUN_0202E6F0
- cmp r0, #0x0
- beq _0203250A
- ldr r0, _0203250C ; =FUN_02032510
- mov r1, #0x0
- bl FUN_02031D20
-_0203250A:
- pop {r3, pc}
- .balign 4
-_0203250C: .word FUN_02032510
-
- thumb_func_start FUN_02032510
-FUN_02032510: ; 0x02032510
- push {r3-r5, lr}
- bl FUN_0202EE0C
- cmp r0, #0x0
- beq _02032568
- ldr r1, _0203256C ; =0x021C5A00
- mov r2, #0x2
- ldr r1, [r1, #0x0]
- mov r0, #0x0
- add r1, #0x43
- ldrb r1, [r1, #0x0]
- lsl r2, r2, #0x8
- mov r3, #0x1
- bl FUN_0202F918
- cmp r0, #0x0
- beq _02032568
- ldr r0, _0203256C ; =0x021C5A00
- ldr r4, [r0, #0x0]
- add r5, r4, #0x0
- add r5, #0xc
- ldr r0, [r5, #0x8]
- ldr r1, [r5, #0xc]
- ldr r2, [r4, #0xc]
- ldr r3, [r5, #0x4]
- bl _ll_mul
- ldr r2, [r5, #0x10]
- ldr r3, [r5, #0x14]
- add r0, r2, r0
- adc r3, r1
- str r0, [r4, #0xc]
- str r3, [r5, #0x4]
- bl FUN_0202FA10
- ldr r0, _0203256C ; =0x021C5A00
- mov r1, #0x0
- ldr r0, [r0, #0x0]
- add r0, #0x43
- strb r1, [r0, #0x0]
- ldr r0, _02032570 ; =FUN_02032578
- ldr r1, _02032574 ; =0x00002710
- bl FUN_02031D20
-_02032568:
- pop {r3-r5, pc}
- nop
-_0203256C: .word 0x021C5A00
-_02032570: .word FUN_02032578
-_02032574: .word 0x00002710
-
- thumb_func_start FUN_02032578
-FUN_02032578: ; 0x02032578
- push {r3, lr}
- bl FUN_0202F104
- cmp r0, #0x0
- bne _020325B2
- bl FUN_020311E8
- cmp r0, #0x0
- beq _020325A2
- ldr r0, _020325C4 ; =0x021C5A00
- mov r1, #0x1
- ldr r0, [r0, #0x0]
- add r0, #0x43
- strb r1, [r0, #0x0]
- bl FUN_02033E74
- ldr r0, _020325C8 ; =FUN_020327FC
- mov r1, #0x0
- bl FUN_02031D20
- pop {r3, pc}
-_020325A2:
- ldr r0, _020325C4 ; =0x021C5A00
- ldr r1, [r0, #0x0]
- ldrh r0, [r1, #0x3a]
- cmp r0, #0x0
- beq _020325B2
- sub r0, r0, #0x1
- strh r0, [r1, #0x3a]
- pop {r3, pc}
-_020325B2:
- bl FUN_0202E6F0
- cmp r0, #0x0
- beq _020325C2
- ldr r0, _020325CC ; =FUN_020325D0
- mov r1, #0x0
- bl FUN_02031D20
-_020325C2:
- pop {r3, pc}
- .balign 4
-_020325C4: .word 0x021C5A00
-_020325C8: .word FUN_020327FC
-_020325CC: .word FUN_020325D0
-
- thumb_func_start FUN_020325D0
-FUN_020325D0: ; 0x020325D0
- push {r3-r5, lr}
- bl FUN_0202EE0C
- cmp r0, #0x0
- beq _0203261C
- mov r0, #0x0
- mov r2, #0x2
- add r1, r0, #0x0
- lsl r2, r2, #0x8
- bl FUN_0202F950
- cmp r0, #0x0
- beq _0203261C
- bl FUN_0202FA10
- ldr r0, _02032620 ; =0x021C5A00
- ldr r4, [r0, #0x0]
- add r5, r4, #0x0
- add r5, #0xc
- ldr r0, [r5, #0x8]
- ldr r1, [r5, #0xc]
- ldr r2, [r4, #0xc]
- ldr r3, [r5, #0x4]
- bl _ll_mul
- ldr r2, [r5, #0x10]
- ldr r3, [r5, #0x14]
- add r0, r2, r0
- adc r3, r1
- str r0, [r4, #0xc]
- mov r1, #0x0
- ldr r0, _02032624 ; =FUN_020324C8
- lsr r2, r3, #0x1b
- lsl r1, r1, #0x5
- orr r1, r2
- str r3, [r5, #0x4]
- bl FUN_02031D20
-_0203261C:
- pop {r3-r5, pc}
- nop
-_02032620: .word 0x021C5A00
-_02032624: .word FUN_020324C8
-
- thumb_func_start FUN_02032628
-FUN_02032628: ; 0x02032628
- push {r3, lr}
- bl FUN_0202E6F0
- cmp r0, #0x0
- beq _0203263A
- ldr r0, _0203263C ; =FUN_02032640
- mov r1, #0x0
- bl FUN_02031D20
-_0203263A:
- pop {r3, pc}
- .balign 4
-_0203263C: .word FUN_02032640
-
- thumb_func_start FUN_02032640
-FUN_02032640: ; 0x02032640
- push {r3, lr}
- bl FUN_0202EE0C
- cmp r0, #0x0
- beq _02032666
- mov r0, #0x0
- mov r2, #0x2
- add r1, r0, #0x0
- lsl r2, r2, #0x8
- bl FUN_0202F950
- cmp r0, #0x0
- beq _02032666
- bl FUN_0202FA10
- ldr r0, _02032668 ; =FUN_0203266C
- mov r1, #0x64
- bl FUN_02031D20
-_02032666:
- pop {r3, pc}
- .balign 4
-_02032668: .word FUN_0203266C
-
- thumb_func_start FUN_0203266C
-FUN_0203266C: ; 0x0203266C
- push {r3, lr}
- ldr r0, _020326C4 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- add r0, #0x3e
- ldrb r0, [r0, #0x0]
- bl FUN_0202E8A0
- cmp r0, #0x0
- beq _02032698
- ldr r0, _020326C4 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- add r0, #0x3e
- ldrb r0, [r0, #0x0]
- bl FUN_0202FB18
- cmp r0, #0x0
- beq _02032698
- ldr r0, _020326C8 ; =FUN_020326D0
- mov r1, #0x64
- bl FUN_02031D20
- pop {r3, pc}
-_02032698:
- bl FUN_020311F0
- cmp r0, #0x0
- beq _020326AA
- ldr r0, _020326CC ; =FUN_020327B8
- mov r1, #0x0
- bl FUN_02031D20
- pop {r3, pc}
-_020326AA:
- ldr r0, _020326C4 ; =0x021C5A00
- ldr r1, [r0, #0x0]
- ldrh r0, [r1, #0x3a]
- cmp r0, #0x0
- beq _020326BA
- sub r0, r0, #0x1
- strh r0, [r1, #0x3a]
- pop {r3, pc}
-_020326BA:
- ldr r0, _020326CC ; =FUN_020327B8
- mov r1, #0x0
- bl FUN_02031D20
- pop {r3, pc}
- .balign 4
-_020326C4: .word 0x021C5A00
-_020326C8: .word FUN_020326D0
-_020326CC: .word FUN_020327B8
-
- thumb_func_start FUN_020326D0
-FUN_020326D0: ; 0x020326D0
- push {r3, lr}
- bl FUN_020311F0
- cmp r0, #0x0
- beq _020326E4
- ldr r0, _02032728 ; =FUN_020327B8
- mov r1, #0x0
- bl FUN_02031D20
- pop {r3, pc}
-_020326E4:
- bl FUN_02031190
- bl FUN_02030E7C
- cmp r0, #0x0
- beq _0203270C
- ldr r0, _0203272C ; =0x021C5A00
- mov r1, #0x0
- ldr r0, [r0, #0x0]
- add r0, #0x3d
- strb r1, [r0, #0x0]
- ldr r1, _02032730 ; =0x02105D5C
- mov r0, #0x6
- bl FUN_020311D0
- ldr r0, _02032734 ; =FUN_02032738
- mov r1, #0x78
- bl FUN_02031D20
- pop {r3, pc}
-_0203270C:
- ldr r0, _0203272C ; =0x021C5A00
- ldr r1, [r0, #0x0]
- ldrh r0, [r1, #0x3a]
- cmp r0, #0x0
- beq _0203271C
- sub r0, r0, #0x1
- strh r0, [r1, #0x3a]
- pop {r3, pc}
-_0203271C:
- ldr r0, _02032728 ; =FUN_020327B8
- mov r1, #0x0
- bl FUN_02031D20
- pop {r3, pc}
- nop
-_02032728: .word FUN_020327B8
-_0203272C: .word 0x021C5A00
-_02032730: .word 0x02105D5C
-_02032734: .word FUN_02032738
-
- thumb_func_start FUN_02032738
-FUN_02032738: ; 0x02032738
- push {r3, lr}
- bl FUN_020311F0
- cmp r0, #0x0
- beq _0203274C
- ldr r0, _0203278C ; =FUN_020327B8
- mov r1, #0x0
- bl FUN_02031D20
- pop {r3, pc}
-_0203274C:
- ldr r0, _02032790 ; =0x021C5A00
- ldr r1, [r0, #0x0]
- add r0, r1, #0x0
- add r0, #0x3d
- ldrb r0, [r0, #0x0]
- cmp r0, #0x2
- bne _02032764
- ldr r0, _02032794 ; =FUN_020327B4
- mov r1, #0x0
- bl FUN_02031D20
- pop {r3, pc}
-_02032764:
- cmp r0, #0x1
- bne _02032776
- bl FUN_0202DBE0
- ldr r0, _02032798 ; =FUN_0203279C
- mov r1, #0x0
- bl FUN_02031D20
- pop {r3, pc}
-_02032776:
- ldrh r0, [r1, #0x3a]
- cmp r0, #0x0
- beq _02032782
- sub r0, r0, #0x1
- strh r0, [r1, #0x3a]
- pop {r3, pc}
-_02032782:
- ldr r0, _0203278C ; =FUN_020327B8
- mov r1, #0x0
- bl FUN_02031D20
- pop {r3, pc}
- .balign 4
-_0203278C: .word FUN_020327B8
-_02032790: .word 0x021C5A00
-_02032794: .word FUN_020327B4
-_02032798: .word FUN_0203279C
-
- thumb_func_start FUN_0203279C
-FUN_0203279C: ; 0x0203279C
- push {r3, lr}
- bl FUN_020311F0
- cmp r0, #0x0
- beq _020327AE
- ldr r0, _020327B0 ; =FUN_020327B8
- mov r1, #0x0
- bl FUN_02031D20
-_020327AE:
- pop {r3, pc}
- .balign 4
-_020327B0: .word FUN_020327B8
-
- thumb_func_start FUN_020327B4
-FUN_020327B4: ; 0x020327B4
- bx lr
- .balign 4
-
- thumb_func_start FUN_020327B8
-FUN_020327B8: ; 0x020327B8
- push {r3, lr}
- ldr r0, _020327F0 ; =0x021C5A00
- mov r1, #0x0
- ldr r0, [r0, #0x0]
- add r0, #0x3d
- strb r1, [r0, #0x0]
- bl FUN_0202E6F0
- cmp r0, #0x0
- beq _020327EC
- ldr r0, _020327F0 ; =0x021C5A00
- ldr r1, [r0, #0x0]
- ldrh r0, [r1, #0x38]
- cmp r0, #0x0
- beq _020327E4
- sub r0, r0, #0x1
- strh r0, [r1, #0x38]
- ldr r0, _020327F4 ; =FUN_02032640
- mov r1, #0x0
- bl FUN_02031D20
- pop {r3, pc}
-_020327E4:
- ldr r0, _020327F8 ; =FUN_020327B4
- mov r1, #0x0
- bl FUN_02031D20
-_020327EC:
- pop {r3, pc}
- nop
-_020327F0: .word 0x021C5A00
-_020327F4: .word FUN_02032640
-_020327F8: .word FUN_020327B4
-
- thumb_func_start FUN_020327FC
-FUN_020327FC: ; 0x020327FC
- push {r3, lr}
- bl FUN_020311E8
- cmp r0, #0x0
- bne _02032820
- bl FUN_02033510
- cmp r0, #0x0
- bne _0203282C
- bl FUN_0202E6F0
- cmp r0, #0x0
- beq _0203282C
- ldr r0, _02032848 ; =FUN_020325D0
- mov r1, #0x0
- bl FUN_02031D20
- b _0203282C
-_02032820:
- bl FUN_02031190
- cmp r0, #0x0
- bne _0203282C
- bl FUN_0202DDE8
-_0203282C:
- bl FUN_020311F0
- cmp r0, #0x0
- beq _02032844
- bl FUN_02033510
- cmp r0, #0x0
- bne _02032844
- ldr r0, _0203284C ; =FUN_020327B8
- mov r1, #0x0
- bl FUN_02031D20
-_02032844:
- pop {r3, pc}
- nop
-_02032848: .word FUN_020325D0
-_0203284C: .word FUN_020327B8
-
- thumb_func_start FUN_02032850
-FUN_02032850: ; 0x02032850
- push {r3, lr}
- bl FUN_0202EE0C
- cmp r0, #0x0
- beq _0203287E
- ldr r1, _02032880 ; =0x021C5A00
- mov r0, #0x0
- ldr r1, [r1, #0x0]
- mov r2, #0x2
- add r1, #0x43
- ldrb r1, [r1, #0x0]
- lsl r2, r2, #0x8
- add r3, r0, #0x0
- bl FUN_0202F918
- cmp r0, #0x0
- beq _0203287E
- bl FUN_0202FA10
- ldr r0, _02032884 ; =FUN_020323B8
- mov r1, #0x0
- bl FUN_02031D20
-_0203287E:
- pop {r3, pc}
- .balign 4
-_02032880: .word 0x021C5A00
-_02032884: .word FUN_020323B8
-
- thumb_func_start FUN_02032888
-FUN_02032888: ; 0x02032888
- push {r3, lr}
- ldr r0, _020328BC ; =0x021C5A00
- mov r1, #0xd
- ldr r0, [r0, #0x0]
- add r0, #0x3f
- strb r1, [r0, #0x0]
- bl FUN_02031190
- cmp r0, #0x0
- add r0, sp, #0x0
- bne _020328AE
- mov r1, #0x0
- strb r1, [r0, #0x1]
- add r1, sp, #0x0
- mov r0, #0xa
- add r1, #0x1
- bl FUN_020311D0
- pop {r3, pc}
-_020328AE:
- mov r1, #0x0
- strb r1, [r0, #0x0]
- mov r0, #0xa
- add r1, sp, #0x0
- bl FUN_020311D0
- pop {r3, pc}
- .balign 4
-_020328BC: .word 0x021C5A00
-
- thumb_func_start FUN_020328C0
-FUN_020328C0: ; 0x020328C0
- ldr r1, _020328D8 ; =0x021C5A00
- ldr r3, _020328DC ; =FUN_02031D20
- ldr r2, [r1, #0x0]
- add r2, #0x3e
- strb r0, [r2, #0x0]
- ldr r0, [r1, #0x0]
- mov r2, #0x3
- strh r2, [r0, #0x38]
- ldr r0, _020328E0 ; =FUN_02032924
- mov r1, #0x0
- bx r3
- nop
-_020328D8: .word 0x021C5A00
-_020328DC: .word FUN_02031D20
-_020328E0: .word FUN_02032924
-
- thumb_func_start FUN_020328E4
-FUN_020328E4: ; 0x020328E4
- ldr r0, _020328F0 ; =0x021C5A00
- mov r1, #0x7
- ldr r0, [r0, #0x0]
- add r0, #0x3f
- strb r1, [r0, #0x0]
- bx lr
- .balign 4
-_020328F0: .word 0x021C5A00
-
- thumb_func_start FUN_020328F4
-FUN_020328F4: ; 0x020328F4
- push {r3, lr}
- ldr r1, _0203291C ; =0x021C5A00
- ldr r2, [r1, #0x0]
- add r2, #0x3e
- strb r0, [r2, #0x0]
- ldr r0, [r1, #0x0]
- mov r2, #0x7
- add r0, #0x3f
- strb r2, [r0, #0x0]
- ldr r0, [r1, #0x0]
- mov r2, #0x3
- strh r2, [r0, #0x38]
- bl FUN_02033E74
- ldr r0, _02032920 ; =FUN_02032628
- mov r1, #0x0
- bl FUN_02031D20
- pop {r3, pc}
- nop
-_0203291C: .word 0x021C5A00
-_02032920: .word FUN_02032628
-
- thumb_func_start FUN_02032924
-FUN_02032924: ; 0x02032924
- push {r3, lr}
- bl FUN_0202E6F0
- cmp r0, #0x0
- beq _02032936
- ldr r0, _02032938 ; =FUN_0203293C
- mov r1, #0x0
- bl FUN_02031D20
-_02032936:
- pop {r3, pc}
- .balign 4
-_02032938: .word FUN_0203293C
-
- thumb_func_start FUN_0203293C
-FUN_0203293C: ; 0x0203293C
- push {r3, lr}
- bl FUN_0202EE0C
- cmp r0, #0x0
- beq _0203296C
- ldr r0, _02032970 ; =0x021C5A00
- mov r2, #0x2
- ldr r0, [r0, #0x0]
- mov r1, #0xd
- add r0, #0x3f
- strb r1, [r0, #0x0]
- mov r0, #0x0
- add r1, r0, #0x0
- lsl r2, r2, #0x8
- bl FUN_0202F950
- cmp r0, #0x0
- beq _0203296C
- bl FUN_0202FA1C
- ldr r0, _02032974 ; =FUN_02032978
- mov r1, #0x64
- bl FUN_02031D20
-_0203296C:
- pop {r3, pc}
- nop
-_02032970: .word 0x021C5A00
-_02032974: .word FUN_02032978
-
- thumb_func_start FUN_02032978
-FUN_02032978: ; 0x02032978
- push {r3, lr}
- ldr r0, _020329E4 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- add r0, #0x3e
- ldrb r0, [r0, #0x0]
- bl FUN_0202E8A0
- cmp r0, #0x0
- beq _020329A4
- ldr r0, _020329E4 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- add r0, #0x3e
- ldrb r0, [r0, #0x0]
- bl FUN_0202FB18
- cmp r0, #0x0
- beq _020329A4
- ldr r0, _020329E8 ; =FUN_020329F4
- mov r1, #0x64
- bl FUN_02031D20
- pop {r3, pc}
-_020329A4:
- bl FUN_020311F0
- cmp r0, #0x0
- bne _020329B6
- ldr r0, _020329E4 ; =0x021C5A00
- ldr r1, [r0, #0x0]
- ldrh r0, [r1, #0x3a]
- cmp r0, #0x0
- bne _020329DC
-_020329B6:
- ldr r0, _020329E4 ; =0x021C5A00
- ldr r2, [r0, #0x0]
- ldrh r1, [r2, #0x38]
- sub r1, r1, #0x1
- strh r1, [r2, #0x38]
- ldr r0, [r0, #0x0]
- ldrh r0, [r0, #0x38]
- cmp r0, #0x0
- bne _020329D2
- ldr r0, _020329EC ; =FUN_020327B4
- mov r1, #0x0
- bl FUN_02031D20
- pop {r3, pc}
-_020329D2:
- ldr r0, _020329F0 ; =FUN_02032924
- mov r1, #0x0
- bl FUN_02031D20
- pop {r3, pc}
-_020329DC:
- beq _020329E2
- sub r0, r0, #0x1
- strh r0, [r1, #0x3a]
-_020329E2:
- pop {r3, pc}
- .balign 4
-_020329E4: .word 0x021C5A00
-_020329E8: .word FUN_020329F4
-_020329EC: .word FUN_020327B4
-_020329F0: .word FUN_02032924
-
- thumb_func_start FUN_020329F4
-FUN_020329F4: ; 0x020329F4
- push {r3, lr}
- ldr r0, _02032A7C ; =0x021C5A00
- ldr r1, [r0, #0x0]
- ldrh r0, [r1, #0x3a]
- cmp r0, #0x5a
- bls _02032A06
- sub r0, r0, #0x1
- strh r0, [r1, #0x3a]
- pop {r3, pc}
-_02032A06:
- bl FUN_020311F0
- cmp r0, #0x0
- beq _02032A34
- ldr r0, _02032A7C ; =0x021C5A00
- ldr r2, [r0, #0x0]
- ldrh r1, [r2, #0x38]
- sub r1, r1, #0x1
- strh r1, [r2, #0x38]
- ldr r0, [r0, #0x0]
- ldrh r0, [r0, #0x38]
- cmp r0, #0x0
- bne _02032A2A
- ldr r0, _02032A80 ; =FUN_020327B4
- mov r1, #0x0
- bl FUN_02031D20
- pop {r3, pc}
-_02032A2A:
- ldr r0, _02032A84 ; =FUN_02032924
- mov r1, #0x0
- bl FUN_02031D20
- pop {r3, pc}
-_02032A34:
- bl FUN_02031190
- bl FUN_02030E7C
- cmp r0, #0x0
- beq _02032A4A
- ldr r0, _02032A88 ; =FUN_0203279C
- mov r1, #0x0
- bl FUN_02031D20
- pop {r3, pc}
-_02032A4A:
- ldr r0, _02032A7C ; =0x021C5A00
- ldr r2, [r0, #0x0]
- ldrh r1, [r2, #0x3a]
- cmp r1, #0x0
- beq _02032A5A
- sub r0, r1, #0x1
- strh r0, [r2, #0x3a]
- pop {r3, pc}
-_02032A5A:
- ldrh r1, [r2, #0x38]
- sub r1, r1, #0x1
- strh r1, [r2, #0x38]
- ldr r0, [r0, #0x0]
- ldrh r0, [r0, #0x38]
- cmp r0, #0x0
- bne _02032A72
- ldr r0, _02032A80 ; =FUN_020327B4
- mov r1, #0x0
- bl FUN_02031D20
- pop {r3, pc}
-_02032A72:
- ldr r0, _02032A84 ; =FUN_02032924
- mov r1, #0x0
- bl FUN_02031D20
- pop {r3, pc}
- .balign 4
-_02032A7C: .word 0x021C5A00
-_02032A80: .word FUN_020327B4
-_02032A84: .word FUN_02032924
-_02032A88: .word FUN_0203279C
-
- thumb_func_start FUN_02032A8C
-FUN_02032A8C: ; 0x02032A8C
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r4, r2, #0x0
- bl FUN_02031190
- cmp r0, #0x0
- bne _02032ADA
- ldr r6, _02032ADC ; =0x02105D5C
- mov r3, #0x1
- mov r2, #0x0
-_02032AA0:
- ldrb r1, [r6, #0x0]
- ldrb r0, [r4, r2]
- cmp r1, r0
- beq _02032AAC
- mov r3, #0x0
- b _02032AB4
-_02032AAC:
- add r2, r2, #0x1
- add r6, r6, #0x1
- cmp r2, #0x6
- blo _02032AA0
-_02032AB4:
- cmp r3, #0x0
- beq _02032AD0
- ldr r0, _02032AE0 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- add r0, #0x48
- ldrb r0, [r0, #0x0]
- cmp r0, #0x0
- bne _02032AD0
- ldr r1, _02032AE4 ; =0x02105D6C
- mov r0, #0x7
- strb r5, [r1, #0x0]
- bl FUN_02030C4C
- pop {r4-r6, pc}
-_02032AD0:
- ldr r1, _02032AE8 ; =0x02105D64
- mov r0, #0x7
- strb r5, [r1, #0x0]
- bl FUN_02030C4C
-_02032ADA:
- pop {r4-r6, pc}
- .balign 4
-_02032ADC: .word 0x02105D5C
-_02032AE0: .word 0x021C5A00
-_02032AE4: .word 0x02105D6C
-_02032AE8: .word 0x02105D64
-
- thumb_func_start FUN_02032AEC
-FUN_02032AEC: ; 0x02032AEC
- push {r3-r5, lr}
- mov r4, #0x1
- ldr r5, _02032B5C ; =0x02105D6D
- add r3, r4, #0x0
-_02032AF4:
- ldrb r1, [r5, #0x0]
- ldrb r0, [r2, r3]
- cmp r1, r0
- beq _02032B00
- mov r4, #0x0
- b _02032B08
-_02032B00:
- add r3, r3, #0x1
- add r5, r5, #0x1
- cmp r3, #0x6
- blo _02032AF4
-_02032B08:
- cmp r4, #0x0
- beq _02032B22
- ldrb r4, [r2, #0x0]
- bl FUN_02031190
- cmp r4, r0
- bne _02032B58
- ldr r0, _02032B60 ; =0x021C5A00
- mov r1, #0x1
- ldr r0, [r0, #0x0]
- add r0, #0x3d
- strb r1, [r0, #0x0]
- pop {r3-r5, pc}
-_02032B22:
- mov r4, #0x1
- ldr r3, _02032B64 ; =0x02105D65
- add r5, r4, #0x0
-_02032B28:
- ldrb r1, [r3, #0x0]
- ldrb r0, [r2, r5]
- cmp r1, r0
- beq _02032B34
- mov r4, #0x0
- b _02032B3C
-_02032B34:
- add r5, r5, #0x1
- add r3, r3, #0x1
- cmp r5, #0x6
- blo _02032B28
-_02032B3C:
- cmp r4, #0x0
- beq _02032B58
- ldrb r4, [r2, #0x0]
- bl FUN_02031190
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- cmp r4, r0
- bne _02032B58
- ldr r0, _02032B60 ; =0x021C5A00
- mov r1, #0x2
- ldr r0, [r0, #0x0]
- add r0, #0x3d
- strb r1, [r0, #0x0]
-_02032B58:
- pop {r3-r5, pc}
- nop
-_02032B5C: .word 0x02105D6D
-_02032B60: .word 0x021C5A00
-_02032B64: .word 0x02105D65
-
- thumb_func_start FUN_02032B68
-FUN_02032B68: ; 0x02032B68
- mov r0, #0x6
- bx lr
-
- thumb_func_start FUN_02032B6C
-FUN_02032B6C: ; 0x02032B6C
- push {r3, lr}
- ldr r1, _02032B80 ; =0x021C5A00
- ldr r1, [r1, #0x0]
- cmp r1, #0x0
- beq _02032B7E
- add r1, #0x3c
- strb r0, [r1, #0x0]
- bl FUN_0202D1B0
-_02032B7E:
- pop {r3, pc}
- .balign 4
-_02032B80: .word 0x021C5A00
-
- thumb_func_start FUN_02032B84
-FUN_02032B84: ; 0x02032B84
- ldr r3, _02032B88 ; =FUN_0202EA54
- bx r3
- .balign 4
-_02032B88: .word FUN_0202EA54
-
- thumb_func_start FUN_02032B8C
-FUN_02032B8C: ; 0x02032B8C
- push {r3, lr}
- bl FUN_0202E4C8
- cmp r0, #0x0
- beq _02032BC6
- ldr r0, _02032BC8 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x2c]
- bl FUN_0202E29C
- ldr r0, _02032BC8 ; =0x021C5A00
- mov r1, #0x0
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x28]
- bl FUN_0202DB14
- mov r0, #0x1
- add r1, r0, #0x0
- mov r2, #0x20
- bl FUN_0202F950
- cmp r0, #0x0
- beq _02032BC6
- bl FUN_0202FA10
- ldr r0, _02032BCC ; =FUN_02032B84
- mov r1, #0x0
- bl FUN_02031D20
-_02032BC6:
- pop {r3, pc}
- .balign 4
-_02032BC8: .word 0x021C5A00
-_02032BCC: .word FUN_02032B84
-
- thumb_func_start FUN_02032BD0
-FUN_02032BD0: ; 0x02032BD0
- push {r4, lr}
- add r4, r0, #0x0
- bl FUN_02030F40
- cmp r0, #0x0
- bne _02032C00
- mov r2, #0x7
- mov r0, #0x3
- mov r1, #0xf
- lsl r2, r2, #0xc
- bl FUN_02016828
- add r0, r4, #0x0
- mov r1, #0xe
- bl FUN_02031734
- ldr r0, _02032C04 ; =0x021C5A00
- mov r1, #0x0
- ldr r0, [r0, #0x0]
- add r0, #0x40
- strb r1, [r0, #0x0]
- ldr r0, _02032C08 ; =FUN_02032B8C
- bl FUN_02031D20
-_02032C00:
- pop {r4, pc}
- nop
-_02032C04: .word 0x021C5A00
-_02032C08: .word FUN_02032B8C
-
- thumb_func_start FUN_02032C0C
-FUN_02032C0C: ; 0x02032C0C
- push {r3, lr}
- ldr r0, _02032C20 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _02032C1E
- ldr r0, _02032C24 ; =FUN_02032440
- mov r1, #0x5
- bl FUN_02031D20
-_02032C1E:
- pop {r3, pc}
- .balign 4
-_02032C20: .word 0x021C5A00
-_02032C24: .word FUN_02032440
-
- thumb_func_start FUN_02032C28
-FUN_02032C28: ; 0x02032C28
- sub sp, #0x8
- ldr r1, _02032C64 ; =0x020EEC48
- add r0, sp, #0x0
- ldr r2, [r1, #0x0]
- ldr r1, [r1, #0x4]
- str r2, [sp, #0x0]
- str r1, [sp, #0x4]
- ldr r1, _02032C68 ; =0x021C5A00
- ldr r1, [r1, #0x0]
- ldr r3, [r1, #0x24]
- cmp r1, #0x0
- bne _02032C46
- mov r0, #0x0
- add sp, #0x8
- bx lr
-_02032C46:
- cmp r2, #0x0
- beq _02032C5E
-_02032C4A:
- ldr r1, [r0, #0x0]
- cmp r3, r1
- bne _02032C56
- mov r0, #0x1
- add sp, #0x8
- bx lr
-_02032C56:
- add r0, r0, #0x4
- ldr r1, [r0, #0x0]
- cmp r1, #0x0
- bne _02032C4A
-_02032C5E:
- mov r0, #0x0
- add sp, #0x8
- bx lr
- .balign 4
-_02032C64: .word 0x020EEC48
-_02032C68: .word 0x021C5A00
-
- thumb_func_start FUN_02032C6C
-FUN_02032C6C: ; 0x02032C6C
- ldr r2, _02032CE4 ; =0x00400131
- cmp r0, r2
- bhi _02032C7C
- bhs _02032CBA
- ldr r2, _02032CE8 ; =0x00000333
- cmp r0, r2
- beq _02032C8E
- bx lr
-_02032C7C:
- ldr r1, _02032CEC ; =0x00400286
- cmp r0, r1
- bhi _02032C86
- beq _02032CCE
- bx lr
-_02032C86:
- add r1, #0x92
- cmp r0, r1
- beq _02032CA6
- bx lr
-_02032C8E:
- cmp r1, #0xf
- bne _02032CE0
- ldr r0, _02032CF0 ; =0x021C5A00
- ldr r2, [r0, #0x0]
- add r0, r2, #0x0
- add r0, #0x49
- ldrb r1, [r0, #0x0]
- mov r0, #0x1
- add r2, #0x49
- orr r0, r1
- strb r0, [r2, #0x0]
- bx lr
-_02032CA6:
- ldr r0, _02032CF0 ; =0x021C5A00
- ldr r2, [r0, #0x0]
- add r0, r2, #0x0
- add r0, #0x49
- ldrb r1, [r0, #0x0]
- mov r0, #0x1
- add r2, #0x49
- orr r0, r1
- strb r0, [r2, #0x0]
- bx lr
-_02032CBA:
- ldr r0, _02032CF0 ; =0x021C5A00
- ldr r2, [r0, #0x0]
- add r0, r2, #0x0
- add r0, #0x49
- ldrb r1, [r0, #0x0]
- mov r0, #0x2
- add r2, #0x49
- orr r0, r1
- strb r0, [r2, #0x0]
- bx lr
-_02032CCE:
- ldr r0, _02032CF0 ; =0x021C5A00
- ldr r2, [r0, #0x0]
- add r0, r2, #0x0
- add r0, #0x49
- ldrb r1, [r0, #0x0]
- mov r0, #0x4
- add r2, #0x49
- orr r0, r1
- strb r0, [r2, #0x0]
-_02032CE0:
- bx lr
- nop
-_02032CE4: .word 0x00400131
-_02032CE8: .word 0x00000333
-_02032CEC: .word 0x00400286
-_02032CF0: .word 0x021C5A00
-
- thumb_func_start FUN_02032CF4
-FUN_02032CF4: ; 0x02032CF4
- push {r3, lr}
- bl FUN_0202E4C8
- cmp r0, #0x0
- beq _02032D34
- ldr r0, _02032D38 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x2c]
- bl FUN_0202E29C
- ldr r0, _02032D38 ; =0x021C5A00
- mov r1, #0x0
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x28]
- bl FUN_0202DB14
- ldr r0, _02032D3C ; =FUN_02032C6C
- bl FUN_0202D308
- mov r0, #0x1
- add r1, r0, #0x0
- mov r2, #0x20
- bl FUN_0202F950
- cmp r0, #0x0
- beq _02032D34
- bl FUN_0202FA10
- ldr r0, _02032D40 ; =FUN_02032B84
- mov r1, #0x0
- bl FUN_02031D20
-_02032D34:
- pop {r3, pc}
- nop
-_02032D38: .word 0x021C5A00
-_02032D3C: .word FUN_02032C6C
-_02032D40: .word FUN_02032B84
-
- thumb_func_start FUN_02032D44
-FUN_02032D44: ; 0x02032D44
- push {r4, lr}
- add r4, r0, #0x0
- bl FUN_02030F40
- cmp r0, #0x0
- bne _02032D74
- mov r2, #0x7
- mov r0, #0x3
- mov r1, #0xf
- lsl r2, r2, #0xc
- bl FUN_02016828
- add r0, r4, #0x0
- mov r1, #0x11
- bl FUN_02031734
- ldr r0, _02032D78 ; =0x021C5A00
- mov r1, #0x0
- ldr r0, [r0, #0x0]
- add r0, #0x40
- strb r1, [r0, #0x0]
- ldr r0, _02032D7C ; =FUN_02032CF4
- bl FUN_02031D20
-_02032D74:
- pop {r4, pc}
- nop
-_02032D78: .word 0x021C5A00
-_02032D7C: .word FUN_02032CF4
-
- thumb_func_start FUN_02032D80
-FUN_02032D80: ; 0x02032D80
- push {r3, lr}
- ldr r0, _02032D94 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _02032D92
- ldr r0, _02032D98 ; =FUN_02032440
- mov r1, #0x5
- bl FUN_02031D20
-_02032D92:
- pop {r3, pc}
- .balign 4
-_02032D94: .word 0x021C5A00
-_02032D98: .word FUN_02032440
-
- thumb_func_start FUN_02032D9C
-FUN_02032D9C: ; 0x02032D9C
- ldr r0, _02032DA8 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- add r0, #0x49
- ldrb r0, [r0, #0x0]
- bx lr
- nop
-_02032DA8: .word 0x021C5A00
-
- thumb_func_start FUN_02032DAC
-FUN_02032DAC: ; 0x02032DAC
- push {r3, lr}
- bl FUN_02031468
- ldr r0, _02032DF4 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- bne _02032DBE
- mov r0, #0x1
- pop {r3, pc}
-_02032DBE:
- add r0, #0x3f
- ldrb r0, [r0, #0x0]
- add r0, #0xe8
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- cmp r0, #0x1
- bhi _02032DD4
- bl MOD04_021D83C0
- mov r0, #0x1
- pop {r3, pc}
-_02032DD4:
- bl FUN_02033590
- cmp r0, #0x0
- beq _02032DE6
- ldr r0, _02032DF8 ; =FUN_0203318C
- mov r1, #0x0
- bl FUN_02031D20
- b _02032DEE
-_02032DE6:
- ldr r0, _02032DFC ; =FUN_02032178
- mov r1, #0x0
- bl FUN_02031D20
-_02032DEE:
- mov r0, #0x0
- pop {r3, pc}
- nop
-_02032DF4: .word 0x021C5A00
-_02032DF8: .word FUN_0203318C
-_02032DFC: .word FUN_02032178
-
- thumb_func_start FUN_02032E00
-FUN_02032E00: ; 0x02032E00
- push {r3, lr}
- bl FUN_0202E4C8
- cmp r0, #0x0
- beq _02032E3C
- ldr r0, _02032E40 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x2c]
- bl FUN_0202E29C
- ldr r0, _02032E40 ; =0x021C5A00
- mov r1, #0x0
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x28]
- bl FUN_0202DB14
- mov r0, #0x1
- add r1, r0, #0x0
- lsl r2, r0, #0x9
- add r3, r0, #0x0
- bl FUN_0202F918
- cmp r0, #0x0
- beq _02032E3C
- bl FUN_0202FA10
- ldr r0, _02032E44 ; =FUN_02032218
- mov r1, #0x0
- bl FUN_02031D20
-_02032E3C:
- pop {r3, pc}
- nop
-_02032E40: .word 0x021C5A00
-_02032E44: .word FUN_02032218
-
- thumb_func_start FUN_02032E48
-FUN_02032E48: ; 0x02032E48
- push {r3, lr}
- bl FUN_0202E4C8
- cmp r0, #0x0
- beq _02032E82
- ldr r0, _02032E84 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x2c]
- bl FUN_0202E29C
- ldr r0, _02032E84 ; =0x021C5A00
- mov r1, #0x0
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x28]
- bl FUN_0202DB14
- mov r0, #0x1
- add r1, r0, #0x0
- lsl r2, r0, #0x9
- bl FUN_0202F950
- cmp r0, #0x0
- beq _02032E82
- bl FUN_0202FA10
- ldr r0, _02032E88 ; =FUN_02032290
- mov r1, #0x0
- bl FUN_02031D20
-_02032E82:
- pop {r3, pc}
- .balign 4
-_02032E84: .word 0x021C5A00
-_02032E88: .word FUN_02032290
-
- thumb_func_start FUN_02032E8C
-FUN_02032E8C: ; 0x02032E8C
- bx lr
- .balign 4
-
- thumb_func_start FUN_02032E90
-FUN_02032E90: ; 0x02032E90
- push {r3, lr}
- bl MOD04_021D7F8C
- cmp r0, #0x0
- bge _02032EA2
- ldr r0, _02032EA4 ; =FUN_02032E8C
- mov r1, #0x0
- bl FUN_02031D20
-_02032EA2:
- pop {r3, pc}
- .balign 4
-_02032EA4: .word FUN_02032E8C
-
- thumb_func_start FUN_02032EA8
-FUN_02032EA8: ; 0x02032EA8
- bx lr
- .balign 4
-
- thumb_func_start FUN_02032EAC
-FUN_02032EAC: ; 0x02032EAC
- bx lr
- .balign 4
-
- thumb_func_start FUN_02032EB0
-FUN_02032EB0: ; 0x02032EB0
- push {r3, lr}
- mov r0, #0x1
- bl FUN_020313A0
- bl MOD04_021D7F8C
- cmp r0, #0xa
- blt _02032ECA
- ldr r0, _02032F0C ; =FUN_02032EAC
- mov r1, #0x0
- bl FUN_02031D20
- pop {r3, pc}
-_02032ECA:
- cmp r0, #0x0
- bge _02032ED8
- ldr r0, _02032F10 ; =FUN_02032E8C
- mov r1, #0x0
- bl FUN_02031D20
- pop {r3, pc}
-_02032ED8:
- cmp r0, #0x1
- bne _02032EE6
- ldr r0, _02032F14 ; =FUN_02032E90
- mov r1, #0x0
- bl FUN_02031D20
- pop {r3, pc}
-_02032EE6:
- cmp r0, #0x2
- bne _02032F08
- ldr r0, _02032F18 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- add r0, #0x44
- ldrb r0, [r0, #0x0]
- cmp r0, #0x0
- beq _02032F00
- ldr r0, _02032F10 ; =FUN_02032E8C
- mov r1, #0x0
- bl FUN_02031D20
- pop {r3, pc}
-_02032F00:
- ldr r0, _02032F1C ; =FUN_02032EA8
- mov r1, #0x0
- bl FUN_02031D20
-_02032F08:
- pop {r3, pc}
- nop
-_02032F0C: .word FUN_02032EAC
-_02032F10: .word FUN_02032E8C
-_02032F14: .word FUN_02032E90
-_02032F18: .word 0x021C5A00
-_02032F1C: .word FUN_02032EA8
-
- thumb_func_start FUN_02032F20
-FUN_02032F20: ; 0x02032F20
- add r1, r0, #0x2
- cmp r1, #0x1
- bls _02032F28
- neg r0, r0
-_02032F28:
- ldr r1, _02032F30 ; =0x021C5A00
- ldr r1, [r1, #0x0]
- str r0, [r1, #0x34]
- bx lr
- .balign 4
-_02032F30: .word 0x021C5A00
-
- thumb_func_start FUN_02032F34
-FUN_02032F34: ; 0x02032F34
- push {r3, lr}
- mov r0, #0x0
- bl MOD04_021D7800
- cmp r0, #0xa
- blt _02032F4A
- ldr r0, _02032F88 ; =FUN_02032EAC
- mov r1, #0x0
- bl FUN_02031D20
- pop {r3, pc}
-_02032F4A:
- cmp r0, #0x0
- bge _02032F5C
- bl FUN_02032F20
- ldr r0, _02032F8C ; =FUN_02032E8C
- mov r1, #0x0
- bl FUN_02031D20
- pop {r3, pc}
-_02032F5C:
- cmp r0, #0x1
- bne _02032F6A
- ldr r0, _02032F90 ; =FUN_02032EB0
- mov r1, #0x0
- bl FUN_02031D20
- pop {r3, pc}
-_02032F6A:
- cmp r0, #0x2
- bne _02032F78
- ldr r0, _02032F94 ; =FUN_02032EA8
- mov r1, #0x0
- bl FUN_02031D20
- pop {r3, pc}
-_02032F78:
- cmp r0, #0x3
- bne _02032F84
- ldr r0, _02032F88 ; =FUN_02032EAC
- mov r1, #0x0
- bl FUN_02031D20
-_02032F84:
- pop {r3, pc}
- nop
-_02032F88: .word FUN_02032EAC
-_02032F8C: .word FUN_02032E8C
-_02032F90: .word FUN_02032EB0
-_02032F94: .word FUN_02032EA8
-
- thumb_func_start FUN_02032F98
-FUN_02032F98: ; 0x02032F98
- push {r3, lr}
- mov r0, #0x1
- bl MOD04_021D7800
- cmp r0, #0x0
- bge _02032FB2
- bl FUN_02032F20
- ldr r0, _02032FD0 ; =FUN_02032E8C
- mov r1, #0x0
- bl FUN_02031D20
- pop {r3, pc}
-_02032FB2:
- ldr r0, _02032FD4 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- add r0, #0x42
- ldrb r0, [r0, #0x0]
- bl MOD04_021D8494
- cmp r0, #0x0
- beq _02032FCE
- bl FUN_0202FC60
- ldr r0, _02032FD8 ; =FUN_02032F34
- mov r1, #0x0
- bl FUN_02031D20
-_02032FCE:
- pop {r3, pc}
- .balign 4
-_02032FD0: .word FUN_02032E8C
-_02032FD4: .word 0x021C5A00
-_02032FD8: .word FUN_02032F34
-
- thumb_func_start FUN_02032FDC
-FUN_02032FDC: ; 0x02032FDC
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, _02032FFC ; =FUN_020303BC
- ldr r1, _02033000 ; =FUN_02030238
- bl MOD04_021D77C4
- ldr r0, _02033004 ; =0x021C5A00
- mov r1, #0x0
- ldr r0, [r0, #0x0]
- add r0, #0x42
- strb r4, [r0, #0x0]
- ldr r0, _02033008 ; =FUN_02032F98
- bl FUN_02031D20
- mov r0, #0x1
- pop {r4, pc}
- .balign 4
-_02032FFC: .word FUN_020303BC
-_02033000: .word FUN_02030238
-_02033004: .word 0x021C5A00
-_02033008: .word FUN_02032F98
-
- thumb_func_start FUN_0203300C
-FUN_0203300C: ; 0x0203300C
- ldr r0, _02033048 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- ldr r1, [r0, #0x24]
- ldr r0, _0203304C ; =FUN_02032F34
- cmp r1, r0
- bne _0203301C
- mov r0, #0x0
- bx lr
-_0203301C:
- ldr r0, _02033050 ; =FUN_02032EB0
- cmp r1, r0
- bne _02033026
- mov r0, #0x1
- bx lr
-_02033026:
- ldr r0, _02033054 ; =FUN_02032E90
- cmp r1, r0
- bne _02033030
- mov r0, #0x3
- bx lr
-_02033030:
- ldr r0, _02033058 ; =FUN_02032EA8
- cmp r1, r0
- bne _0203303A
- mov r0, #0x4
- bx lr
-_0203303A:
- ldr r0, _0203305C ; =FUN_02032EAC
- cmp r1, r0
- bne _02033044
- mov r0, #0x5
- bx lr
-_02033044:
- mov r0, #0x2
- bx lr
- .balign 4
-_02033048: .word 0x021C5A00
-_0203304C: .word FUN_02032F34
-_02033050: .word FUN_02032EB0
-_02033054: .word FUN_02032E90
-_02033058: .word FUN_02032EA8
-_0203305C: .word FUN_02032EAC
-
- thumb_func_start FUN_02033060
-FUN_02033060: ; 0x02033060
- push {r3, lr}
- ldr r0, _02033090 ; =FUN_020303BC
- ldr r1, _02033094 ; =FUN_02030238
- bl MOD04_021D77C4
- mov r0, #0x0
- mvn r0, r0
- bl MOD04_021D8494
- cmp r0, #0x0
- beq _0203308C
- ldr r0, _02033098 ; =0x021C5A00
- mov r1, #0x0
- ldr r0, [r0, #0x0]
- add r0, #0x4d
- strb r1, [r0, #0x0]
- bl FUN_0202FC60
- ldr r0, _0203309C ; =FUN_02032F34
- mov r1, #0x0
- bl FUN_02031D20
-_0203308C:
- pop {r3, pc}
- nop
-_02033090: .word FUN_020303BC
-_02033094: .word FUN_02030238
-_02033098: .word 0x021C5A00
-_0203309C: .word FUN_02032F34
-
- thumb_func_start FUN_020330A0
-FUN_020330A0: ; 0x020330A0
- push {r3, lr}
- mov r0, #0x0
- bl FUN_020313A0
- ldr r0, _020330D8 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- add r0, #0x41
- ldrb r0, [r0, #0x0]
- bl MOD04_021D82BC
- cmp r0, #0x0
- beq _020330C6
- bl MOD04_021D836C
- ldr r0, _020330DC ; =FUN_02033060
- mov r1, #0x0
- bl FUN_02031D20
- pop {r3, pc}
-_020330C6:
- bl MOD04_021D7F8C
- cmp r0, #0x0
- bge _020330D6
- ldr r0, _020330E0 ; =FUN_02032E8C
- mov r1, #0x0
- bl FUN_02031D20
-_020330D6:
- pop {r3, pc}
- .balign 4
-_020330D8: .word 0x021C5A00
-_020330DC: .word FUN_02033060
-_020330E0: .word FUN_02032E8C
-
- thumb_func_start FUN_020330E4
-FUN_020330E4: ; 0x020330E4
- push {r3, lr}
- bl FUN_02031190
- cmp r0, #0x0
- bne _02033100
- ldr r0, _02033120 ; =0x021C5A00
- mov r1, #0x0
- ldr r0, [r0, #0x0]
- add r0, #0x41
- strb r1, [r0, #0x0]
- ldr r0, _02033124 ; =FUN_020330A0
- bl FUN_02031D20
- b _02033112
-_02033100:
- ldr r0, _02033120 ; =0x021C5A00
- mov r1, #0x1
- ldr r0, [r0, #0x0]
- add r0, #0x41
- strb r1, [r0, #0x0]
- ldr r0, _02033124 ; =FUN_020330A0
- mov r1, #0x0
- bl FUN_02031D20
-_02033112:
- ldr r0, _02033120 ; =0x021C5A00
- mov r1, #0x1
- ldr r0, [r0, #0x0]
- add r0, #0x4d
- strb r1, [r0, #0x0]
- pop {r3, pc}
- nop
-_02033120: .word 0x021C5A00
-_02033124: .word FUN_020330A0
-
- thumb_func_start FUN_02033128
-FUN_02033128: ; 0x02033128
- ldr r0, _02033134 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- add r0, #0x4d
- ldrb r0, [r0, #0x0]
- bx lr
- nop
-_02033134: .word 0x021C5A00
-
- thumb_func_start FUN_02033138
-FUN_02033138: ; 0x02033138
- ldr r0, _0203314C ; =0x021C5A00
- ldr r0, [r0, #0x0]
- ldr r1, [r0, #0x24]
- ldr r0, _02033150 ; =FUN_02033060
- cmp r1, r0
- bne _02033148
- mov r0, #0x1
- bx lr
-_02033148:
- mov r0, #0x0
- bx lr
- .balign 4
-_0203314C: .word 0x021C5A00
-_02033150: .word FUN_02033060
-
- thumb_func_start FUN_02033154
-FUN_02033154: ; 0x02033154
- ldr r0, _02033174 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- ldr r1, [r0, #0x24]
- ldr r0, _02033178 ; =FUN_02032F34
- cmp r1, r0
- bne _02033164
- mov r0, #0x1
- bx lr
-_02033164:
- ldr r0, _0203317C ; =FUN_02033060
- cmp r1, r0
- bne _0203316E
- mov r0, #0x1
- bx lr
-_0203316E:
- mov r0, #0x0
- bx lr
- nop
-_02033174: .word 0x021C5A00
-_02033178: .word FUN_02032F34
-_0203317C: .word FUN_02033060
-
- thumb_func_start FUN_02033180
-FUN_02033180: ; 0x02033180
- ldr r0, _02033188 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x34]
- bx lr
- .balign 4
-_02033188: .word 0x021C5A00
-
- thumb_func_start FUN_0203318C
-FUN_0203318C: ; 0x0203318C
- push {r3, lr}
- mov r0, #0x0
- bl FUN_020313A0
- mov r0, #0x0
- bl MOD04_021D82BC
- cmp r0, #0x0
- beq _020331AA
- bl MOD04_021D836C
- ldr r0, _020331BC ; =FUN_02032440
- mov r1, #0x0
- bl FUN_02031D20
-_020331AA:
- bl MOD04_021D7F8C
- cmp r0, #0x0
- bge _020331BA
- ldr r0, _020331C0 ; =FUN_02032E8C
- mov r1, #0x0
- bl FUN_02031D20
-_020331BA:
- pop {r3, pc}
- .balign 4
-_020331BC: .word FUN_02032440
-_020331C0: .word FUN_02032E8C
-
- thumb_func_start FUN_020331C4
-FUN_020331C4: ; 0x020331C4
- push {r3, lr}
- ldr r0, _020331E0 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _020331DC
- mov r0, #0x1
- bl FUN_020166B8
- ldr r0, _020331E4 ; =FUN_02032440
- mov r1, #0x5
- bl FUN_02031D20
-_020331DC:
- pop {r3, pc}
- nop
-_020331E0: .word 0x021C5A00
-_020331E4: .word FUN_02032440
-
- thumb_func_start FUN_020331E8
-FUN_020331E8: ; 0x020331E8
- push {r3, lr}
- ldr r0, _02033200 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _020331FE
- mov r1, #0x0
- add r0, #0x41
- strb r1, [r0, #0x0]
- ldr r0, _02033204 ; =FUN_020330A0
- bl FUN_02031D20
-_020331FE:
- pop {r3, pc}
- .balign 4
-_02033200: .word 0x021C5A00
-_02033204: .word FUN_020330A0
-
- thumb_func_start FUN_02033208
-FUN_02033208: ; 0x02033208
- push {r3, lr}
- ldr r0, _02033234 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _02033232
- bl FUN_02031190
- cmp r0, #0x0
- bne _02033220
- mov r1, #0x0
- ldr r0, _02033234 ; =0x021C5A00
- b _02033224
-_02033220:
- ldr r0, _02033234 ; =0x021C5A00
- mov r1, #0x1
-_02033224:
- ldr r0, [r0, #0x0]
- add r0, #0x41
- strb r1, [r0, #0x0]
- ldr r0, _02033238 ; =FUN_020330A0
- mov r1, #0x0
- bl FUN_02031D20
-_02033232:
- pop {r3, pc}
- .balign 4
-_02033234: .word 0x021C5A00
-_02033238: .word FUN_020330A0
-
- thumb_func_start FUN_0203323C
-FUN_0203323C: ; 0x0203323C
- push {r3, lr}
- bl FUN_02031190
- add r1, sp, #0x0
- strb r0, [r1, #0x0]
- mov r0, #0x15
- add r1, sp, #0x0
- bl FUN_020311D0
- pop {r3, pc}
-
- thumb_func_start FUN_02033250
-FUN_02033250: ; 0x02033250
- ldr r0, _0203327C ; =0x021C5A00
- ldr r2, [r0, #0x0]
- cmp r2, #0x0
- beq _02033276
- ldr r1, [r2, #0x24]
- ldr r0, _02033280 ; =FUN_02032E8C
- cmp r1, r0
- bne _02033264
- mov r0, #0x1
- bx lr
-_02033264:
- ldr r0, _02033284 ; =FUN_02032E90
- cmp r1, r0
- bne _02033276
- add r2, #0x44
- ldrb r0, [r2, #0x0]
- cmp r0, #0x0
- beq _02033276
- mov r0, #0x1
- bx lr
-_02033276:
- mov r0, #0x0
- bx lr
- nop
-_0203327C: .word 0x021C5A00
-_02033280: .word FUN_02032E8C
-_02033284: .word FUN_02032E90
-
- thumb_func_start FUN_02033288
-FUN_02033288: ; 0x02033288
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, _020332D8 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- bne _020332D6
- mov r1, #0xf
- add r2, r1, #0x0
- mov r0, #0x3
- add r2, #0xf1
- bl FUN_02016828
- mov r0, #0xf
- mov r1, #0x50
- bl FUN_02016998
- ldr r1, _020332D8 ; =0x021C5A00
- mov r2, #0x50
- str r0, [r1, #0x0]
- mov r1, #0x0
- bl MI_CpuFill8
- ldr r0, _020332D8 ; =0x021C5A00
- mov r2, #0x18
- ldr r1, [r0, #0x0]
- add r1, #0x3f
- strb r2, [r1, #0x0]
- ldr r2, [r0, #0x0]
- mov r1, #0x1
- add r2, #0x46
- strb r1, [r2, #0x0]
- ldr r0, [r0, #0x0]
- str r4, [r0, #0x28]
- mov r0, #0x0
- bl FUN_020334E8
- mov r0, #0x1
- bl FUN_020166A8
-_020332D6:
- pop {r4, pc}
- .balign 4
-_020332D8: .word 0x021C5A00
-
- thumb_func_start FUN_020332DC
-FUN_020332DC: ; 0x020332DC
- push {r3, lr}
- ldr r0, _0203330C ; =0x021C5A00
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _02033308
- mov r0, #0x1
- bl FUN_020166B8
- mov r0, #0x0
- add r1, r0, #0x0
- bl FUN_020334E8
- ldr r0, _0203330C ; =0x021C5A00
- ldr r0, [r0, #0x0]
- bl FUN_02016A18
- ldr r0, _0203330C ; =0x021C5A00
- mov r1, #0x0
- str r1, [r0, #0x0]
- mov r0, #0xf
- bl FUN_020168D0
-_02033308:
- pop {r3, pc}
- nop
-_0203330C: .word 0x021C5A00
-
- thumb_func_start FUN_02033310
-FUN_02033310: ; 0x02033310
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, _02033360 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- bne _0203335E
- mov r1, #0xf
- add r2, r1, #0x0
- mov r0, #0x3
- add r2, #0xf1
- bl FUN_02016828
- mov r0, #0xf
- mov r1, #0x50
- bl FUN_02016998
- ldr r1, _02033360 ; =0x021C5A00
- mov r2, #0x50
- str r0, [r1, #0x0]
- mov r1, #0x0
- bl MI_CpuFill8
- ldr r0, _02033360 ; =0x021C5A00
- mov r2, #0x19
- ldr r1, [r0, #0x0]
- add r1, #0x3f
- strb r2, [r1, #0x0]
- ldr r2, [r0, #0x0]
- mov r1, #0x1
- add r2, #0x46
- strb r1, [r2, #0x0]
- ldr r0, [r0, #0x0]
- str r4, [r0, #0x28]
- mov r0, #0x0
- bl FUN_020334E8
- mov r0, #0x1
- bl FUN_020166A8
-_0203335E:
- pop {r4, pc}
- .balign 4
-_02033360: .word 0x021C5A00
-
- thumb_func_start FUN_02033364
-FUN_02033364: ; 0x02033364
- push {r3, lr}
- ldr r0, _02033394 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _02033390
- mov r0, #0x1
- bl FUN_020166B8
- mov r0, #0x0
- add r1, r0, #0x0
- bl FUN_020334E8
- ldr r0, _02033394 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- bl FUN_02016A18
- ldr r0, _02033394 ; =0x021C5A00
- mov r1, #0x0
- str r1, [r0, #0x0]
- mov r0, #0xf
- bl FUN_020168D0
-_02033390:
- pop {r3, pc}
- nop
-_02033394: .word 0x021C5A00
-
- thumb_func_start FUN_02033398
-FUN_02033398: ; 0x02033398
- push {r3, lr}
- sub sp, #0x8
- ldr r0, _020333EC ; =0x021C5A00
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- bne _020333AA
- add sp, #0x8
- mov r0, #0x0
- pop {r3, pc}
-_020333AA:
- add r0, #0x3f
- ldrb r0, [r0, #0x0]
- cmp r0, #0x18
- bne _020333C8
- add r0, sp, #0x4
- add r1, sp, #0x0
- bl MOD04_021DD718
- cmp r0, #0x0
- beq _020333E4
- bl MOD04_021DD6F0
- add sp, #0x8
- mov r0, #0x1
- pop {r3, pc}
-_020333C8:
- cmp r0, #0x19
- bne _020333E4
- add r0, sp, #0x4
- add r1, sp, #0x0
- bl MOD04_021DD718
- cmp r0, #0x0
- beq _020333E4
- ldr r0, [sp, #0x0]
- cmp r0, #0x7
- bne _020333E4
- add sp, #0x8
- mov r0, #0x1
- pop {r3, pc}
-_020333E4:
- mov r0, #0x0
- add sp, #0x8
- pop {r3, pc}
- nop
-_020333EC: .word 0x021C5A00
-
- thumb_func_start FUN_020333F0
-FUN_020333F0: ; 0x020333F0
- push {r3, lr}
- bl MOD04_021D76AC
- cmp r0, #0x0
- bge _02033408
- bl FUN_02032F20
- ldr r0, _02033414 ; =FUN_02032E8C
- mov r1, #0x0
- bl FUN_02031D20
- pop {r3, pc}
-_02033408:
- ble _02033412
- ldr r0, _02033418 ; =FUN_02033060
- mov r1, #0x0
- bl FUN_02031D20
-_02033412:
- pop {r3, pc}
- .balign 4
-_02033414: .word FUN_02032E8C
-_02033418: .word FUN_02033060
-
- thumb_func_start FUN_0203341C
-FUN_0203341C: ; 0x0203341C
- push {r3, lr}
- bl FUN_0202E4C8
- cmp r0, #0x0
- beq _0203345E
- mov r1, #0x31
- mov r0, #0x3
- lsl r2, r1, #0xc
- bl FUN_02016828
- mov r0, #0x1
- add r1, r0, #0x0
- lsl r2, r0, #0x9
- add r3, r0, #0x0
- bl FUN_0202F918
- cmp r0, #0x0
- beq _0203345E
- ldr r0, _02033460 ; =0x021C5A00
- mov r1, #0x31
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x28]
- bl MOD05_021D74E0
- ldr r0, _02033464 ; =FUN_020335D0
- bl MOD04_021D83A8
- bl FUN_0202FA10
- ldr r0, _02033468 ; =FUN_020333F0
- mov r1, #0x0
- bl FUN_02031D20
-_0203345E:
- pop {r3, pc}
- .balign 4
-_02033460: .word 0x021C5A00
-_02033464: .word FUN_020335D0
-_02033468: .word FUN_020333F0
-
- thumb_func_start FUN_0203346C
-FUN_0203346C: ; 0x0203346C
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- bl FUN_020238F4
- bl FUN_02030F40
- cmp r0, #0x0
- beq _02033482
- mov r0, #0x0
- pop {r3-r5, pc}
-_02033482:
- mov r0, #0x1
- bl FUN_020166A8
- ldr r2, _020334D0 ; =0x00007080
- mov r0, #0x3
- mov r1, #0xf
- bl FUN_02016828
- add r0, r5, #0x0
- mov r1, #0x17
- bl FUN_02031734
- mov r0, #0xf
- add r1, r4, #0x0
- bl FUN_02016998
- ldr r1, _020334D4 ; =0x021C5A00
- ldr r2, [r1, #0x0]
- str r0, [r2, #0x0]
- ldr r0, [r1, #0x0]
- mov r1, #0x0
- ldr r0, [r0, #0x0]
- add r2, r4, #0x0
- bl MI_CpuFill8
- ldr r0, _020334D4 ; =0x021C5A00
- mov r1, #0x0
- ldr r2, [r0, #0x0]
- add r2, #0x40
- strb r1, [r2, #0x0]
- ldr r0, [r0, #0x0]
- str r5, [r0, #0x28]
- ldr r0, _020334D8 ; =FUN_0203341C
- bl FUN_02031D20
- ldr r0, _020334D4 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x0]
- pop {r3-r5, pc}
- .balign 4
-_020334D0: .word 0x00007080
-_020334D4: .word 0x021C5A00
-_020334D8: .word FUN_0203341C
-
- thumb_func_start FUN_020334DC
-FUN_020334DC: ; 0x020334DC
- ldr r0, _020334E4 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x0]
- bx lr
- .balign 4
-_020334E4: .word 0x021C5A00
-
- thumb_func_start FUN_020334E8
-FUN_020334E8: ; 0x020334E8
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, _0203350C ; =0x021C5A00
- ldr r2, [r0, #0x0]
- cmp r2, #0x0
- beq _020334FE
- add r2, #0x44
- strb r4, [r2, #0x0]
- ldr r0, [r0, #0x0]
- add r0, #0x45
- strb r1, [r0, #0x0]
-_020334FE:
- add r0, r4, #0x0
- bl FUN_0202EE84
- add r0, r4, #0x0
- bl FUN_0202EEB0
- pop {r4, pc}
- .balign 4
-_0203350C: .word 0x021C5A00
-
- thumb_func_start FUN_02033510
-FUN_02033510: ; 0x02033510
- ldr r0, _02033530 ; =0x021C5A00
- ldr r1, [r0, #0x0]
- cmp r1, #0x0
- beq _0203352C
- add r0, r1, #0x0
- add r0, #0x4e
- ldrb r0, [r0, #0x0]
- cmp r0, #0x0
- beq _02033526
- mov r0, #0x1
- bx lr
-_02033526:
- add r1, #0x45
- ldrb r0, [r1, #0x0]
- bx lr
-_0203352C:
- mov r0, #0x0
- bx lr
- .balign 4
-_02033530: .word 0x021C5A00
-
- thumb_func_start FUN_02033534
-FUN_02033534: ; 0x02033534
- ldr r0, _02033548 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _02033542
- add r0, #0x3f
- ldrb r0, [r0, #0x0]
- bx lr
-_02033542:
- mov r0, #0x1
- bx lr
- nop
-_02033548: .word 0x021C5A00
-
- thumb_func_start FUN_0203354C
-FUN_0203354C: ; 0x0203354C
- ldr r0, _02033560 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _0203355A
- add r0, #0x40
- ldrb r0, [r0, #0x0]
- bx lr
-_0203355A:
- mov r0, #0x0
- bx lr
- nop
-_02033560: .word 0x021C5A00
-
- thumb_func_start FUN_02033564
-FUN_02033564: ; 0x02033564
- ldr r1, _02033570 ; =0x021C5A00
- ldr r3, _02033574 ; =MI_CpuCopy8
- ldr r1, [r1, #0x0]
- mov r2, #0x6
- add r1, r1, #0x4
- bx r3
- .balign 4
-_02033570: .word 0x021C5A00
-_02033574: .word MI_CpuCopy8
-
- thumb_func_start FUN_02033578
-FUN_02033578: ; 0x02033578
- add r1, r0, #0x0
- ldr r0, _02033588 ; =0x021C5A00
- ldr r3, _0203358C ; =MI_CpuCopy8
- ldr r0, [r0, #0x0]
- mov r2, #0x6
- add r0, r0, #0x4
- bx r3
- nop
-_02033588: .word 0x021C5A00
-_0203358C: .word MI_CpuCopy8
-
- thumb_func_start FUN_02033590
-FUN_02033590: ; 0x02033590
- push {r3, lr}
- bl FUN_02033534
- cmp r0, #0x13
- blt _0203359E
- mov r0, #0x1
- pop {r3, pc}
-_0203359E:
- mov r0, #0x0
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_020335A4
-FUN_020335A4: ; 0x020335A4
- ldr r1, _020335B4 ; =0x021C5A00
- ldr r1, [r1, #0x0]
- cmp r1, #0x0
- beq _020335B0
- add r1, #0x47
- strb r0, [r1, #0x0]
-_020335B0:
- bx lr
- nop
-_020335B4: .word 0x021C5A00
-
- thumb_func_start FUN_020335B8
-FUN_020335B8: ; 0x020335B8
- ldr r0, _020335CC ; =0x021C5A00
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _020335C6
- add r0, #0x47
- ldrb r0, [r0, #0x0]
- bx lr
-_020335C6:
- mov r0, #0x0
- bx lr
- nop
-_020335CC: .word 0x021C5A00
-
- thumb_func_start FUN_020335D0
-FUN_020335D0: ; 0x020335D0
- push {r3, lr}
- add r2, r0, #0x0
- mov r0, #0x0
- mov r1, #0x1
- bl FUN_02033F70
-_020335DC:
- b _020335DC
- .balign 4
-
- thumb_func_start FUN_020335E0
-FUN_020335E0: ; 0x020335E0
- push {r3, lr}
- mov r0, #0x0
- mov r1, #0x4
- add r2, r0, #0x0
- bl FUN_02033F70
-_020335EC:
- b _020335EC
- .balign 4
-
- thumb_func_start FUN_020335F0
-FUN_020335F0: ; 0x020335F0
- bx lr
- .balign 4
-
- thumb_func_start FUN_020335F4
-FUN_020335F4: ; 0x020335F4
- push {r3, lr}
- bl FUN_02033510
- cmp r0, #0x0
- beq _0203366C
- bl FUN_020311F0
- cmp r0, #0x0
- bne _02033622
- bl FUN_02033250
- cmp r0, #0x0
- bne _02033622
- bl FUN_02033398
- cmp r0, #0x0
- bne _02033622
- ldr r0, _02033670 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- add r0, #0x4e
- ldrb r0, [r0, #0x0]
- cmp r0, #0x0
- beq _0203366C
-_02033622:
- bl FUN_020335B8
- cmp r0, #0x0
- bne _0203366C
- bl FUN_0200541C
- ldr r0, _02033670 ; =0x021C5A00
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x28]
- bl FUN_0202287C
- ldr r1, _02033674 ; =0x021C4918
- mov r0, #0x1
- strb r0, [r1, #0x4]
- ldr r1, _02033670 ; =0x021C5A00
- ldr r2, [r1, #0x0]
- add r1, r2, #0x0
- add r1, #0x4e
- ldrb r1, [r1, #0x0]
- cmp r1, #0x3
- bne _02033654
- mov r0, #0x3
- bl FUN_020335A4
- pop {r3, pc}
-_02033654:
- add r2, #0x3f
- ldrb r1, [r2, #0x0]
- cmp r1, #0x19
- beq _02033660
- cmp r1, #0xf
- bne _02033668
-_02033660:
- mov r0, #0x2
- bl FUN_020335A4
- pop {r3, pc}
-_02033668:
- bl FUN_020335A4
-_0203366C:
- pop {r3, pc}
- nop
-_02033670: .word 0x021C5A00
-_02033674: .word 0x021C4918
-
- thumb_func_start FUN_02033678
-FUN_02033678: ; 0x02033678
- push {r3, lr}
- bl FUN_0202EDD8
- cmp r0, #0x0
- bne _0203368A
- bl FUN_02031810
- cmp r0, #0x0
- bne _0203368E
-_0203368A:
- mov r0, #0x1
- pop {r3, pc}
-_0203368E:
- bl FUN_0202E344
- cmp r0, #0x0
- bne _0203369A
- mov r0, #0x1
- pop {r3, pc}
-_0203369A:
- mov r0, #0x0
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_020336A0
-FUN_020336A0: ; 0x020336A0
- push {r3, lr}
- ldr r1, _020336BC ; =0x021C5A00
- ldr r1, [r1, #0x0]
- cmp r1, #0x0
- beq _020336B6
- add r1, #0x4e
- strb r0, [r1, #0x0]
- bl FUN_02031468
- mov r0, #0x1
- pop {r3, pc}
-_020336B6:
- mov r0, #0x0
- pop {r3, pc}
- nop
-_020336BC: .word 0x021C5A00
-
- thumb_func_start FUN_020336C0
-FUN_020336C0: ; 0x020336C0
- mov r1, #0x0
- str r1, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_020336C8
-FUN_020336C8: ; 0x020336C8
- push {r4-r6, lr}
- add r4, r2, #0x0
- add r6, r1, #0x0
- ldr r1, [r4, #0x0]
- add r5, r0, #0x0
- cmp r1, #0x6
- bhi _02033774
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #0x6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_020336E2: ; jump table (using 16-bit offset)
- .short _020336F0 - _020336E2 - 2; case 0
- .short _020336FC - _020336E2 - 2; case 1
- .short _02033714 - _020336E2 - 2; case 2
- .short _0203373A - _020336E2 - 2; case 3
- .short _0203374A - _020336E2 - 2; case 4
- .short _0203376A - _020336E2 - 2; case 5
- .short _02033770 - _020336E2 - 2; case 6
-_020336F0:
- mov r0, #0x6f
- bl FUN_02031588
- mov r0, #0x1
- str r0, [r4, #0x0]
- b _02033774
-_020336FC:
- mov r0, #0x6f
- bl FUN_020315D8
- cmp r0, #0x0
- beq _02033774
- add r0, r5, #0x0
- add r1, r6, #0x0
- bl FUN_02022840
- mov r0, #0x2
- str r0, [r4, #0x0]
- b _02033774
-_02033714:
- bl FUN_02022854
- add r5, r0, #0x0
- cmp r5, #0x2
- bne _02033722
- bl ErrorHandling
-_02033722:
- cmp r5, #0x3
- bne _0203372A
- bl ErrorHandling
-_0203372A:
- cmp r5, #0x1
- bne _02033774
- mov r0, #0x3
- str r0, [r4, #0x0]
- mov r0, #0x70
- bl FUN_02031588
- b _02033774
-_0203373A:
- mov r0, #0x70
- bl FUN_020315D8
- cmp r0, #0x0
- beq _02033774
- mov r0, #0x4
- str r0, [r4, #0x0]
- b _02033774
-_0203374A:
- bl FUN_02022854
- add r5, r0, #0x0
- cmp r5, #0x3
- bne _02033758
- bl ErrorHandling
-_02033758:
- cmp r5, #0x1
- bne _02033760
- bl ErrorHandling
-_02033760:
- cmp r5, #0x2
- bne _02033774
- mov r0, #0x5
- str r0, [r4, #0x0]
- b _02033774
-_0203376A:
- mov r0, #0x6
- str r0, [r4, #0x0]
- b _02033774
-_02033770:
- mov r0, #0x1
- pop {r4-r6, pc}
-_02033774:
- mov r0, #0x0
- pop {r4-r6, pc}
-
- thumb_func_start FUN_02033778
-FUN_02033778: ; 0x02033778
- push {r3-r7, lr}
- str r0, [sp, #0x0]
- bl FUN_02030F20
- add r7, r0, #0x0
- mov r0, #0x0
- bl FUN_0202DFA4
- cmp r0, #0x0
- beq _020337C6
- mov r5, #0x0
- cmp r7, #0x0
- ble _020337C6
-_02033792:
- bl FUN_02031190
- cmp r5, r0
- beq _020337C0
- add r0, r5, #0x0
- bl FUN_0202E020
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl FUN_0202E044
- add r6, r0, #0x0
- add r0, r5, #0x0
- bl FUN_0202DFA4
- bl FUN_02023A70
- add r3, r0, #0x0
- ldr r0, [sp, #0x0]
- add r1, r4, #0x0
- add r2, r6, #0x0
- bl FUN_020337C8
-_020337C0:
- add r5, r5, #0x1
- cmp r5, r7
- blt _02033792
-_020337C6:
- pop {r3-r7, pc}
-
- thumb_func_start FUN_020337C8
-FUN_020337C8: ; 0x020337C8
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- add r6, r2, #0x0
- bl FUN_02029B40
- cmp r0, #0x0
- bne _020337E4
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r2, r6, #0x0
- mov r3, #0x1
- bl FUN_02029B90
-_020337E4:
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_020337E8
-FUN_020337E8: ; 0x020337E8
- push {r3-r5, lr}
- mov r1, #0x72
- lsl r1, r1, #0x4
- bl FUN_02016998
- add r4, r0, #0x0
- add r0, #0x1f
- mov r1, #0x1f
- bic r0, r1
- bl FUN_02096B14
- add r5, r0, #0x0
- add r0, r4, #0x0
- bl FUN_02016A18
- add r0, r5, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0203380C
-FUN_0203380C: ; 0x0203380C
- push {r4, lr}
- bl FUN_02028228
- add r4, r0, #0x0
- bl FUN_02096FB0
- cmp r0, #0x0
- bne _0203382A
- ldr r1, _0203382C ; =0x4144414A
- add r0, r4, #0x0
- bl thunk_FUN_02097190
- add r0, r4, #0x0
- bl thunk_FUN_02096e4c
-_0203382A:
- pop {r4, pc}
- .balign 4
-_0203382C: .word 0x4144414A
-
- thumb_func_start FUN_02033830
-FUN_02033830: ; 0x02033830
- push {r3-r4, lr}
- sub sp, #0xc
- bl FUN_02028228
- add r4, r0, #0x0
- add r1, sp, #0x0
- bl FUN_02096CCC
- add r0, r4, #0x0
- add r1, sp, #0x0
- bl FUN_02096DA0
- add sp, #0xc
- pop {r3-r4, pc}
-
- thumb_func_start FUN_0203384C
-FUN_0203384C: ; 0x0203384C
- push {r4, lr}
- bl FUN_020286EC
- bl FUN_02028228
- add r4, r0, #0x0
- bl FUN_02096F80
- cmp r0, #0x0
- beq _0203386E
- add r0, r4, #0x0
- bl FUN_02096F18
- cmp r0, #0x0
- beq _0203386E
- mov r0, #0x1
- pop {r4, pc}
-_0203386E:
- mov r0, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02033874
-FUN_02033874: ; 0x02033874
- push {r3-r7, lr}
- sub sp, #0x8
- add r4, r0, #0x0
- add r5, r1, #0x0
- str r2, [sp, #0x0]
- bl FUN_020286EC
- bl FUN_02028228
- add r6, r0, #0x0
- add r0, r4, #0x0
- bl FUN_020286EC
- mov r1, #0x0
- bl FUN_0202838C
- add r4, r0, #0x0
- mov r1, #0x0
- ldr r0, [sp, #0x0]
- mvn r1, r1
- str r1, [r0, #0x0]
- add r0, r5, #0x0
- bl FUN_0209700C
- cmp r0, #0x0
- bne _020338AE
- add sp, #0x8
- mov r0, #0x3
- pop {r3-r7, pc}
-_020338AE:
- mov r7, #0x0
-_020338B0:
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02096B78
- cmp r0, #0x0
- beq _020338C6
- ldr r0, [sp, #0x0]
- add sp, #0x8
- str r7, [r0, #0x0]
- mov r0, #0x0
- pop {r3-r7, pc}
-_020338C6:
- add r0, r6, #0x0
- add r1, r5, #0x0
- bl FUN_02096DA0
- cmp r0, #0x0
- ble _020338F4
- add r0, r6, #0x0
- add r1, r5, #0x0
- bl FUN_02096DA0
- str r0, [sp, #0x4]
- add r0, r6, #0x0
- add r1, r4, #0x0
- bl FUN_02096DA0
- ldr r1, [sp, #0x4]
- cmp r1, r0
- bne _020338F4
- ldr r0, [sp, #0x0]
- add sp, #0x8
- str r7, [r0, #0x0]
- mov r0, #0x1
- pop {r3-r7, pc}
-_020338F4:
- ldr r0, [sp, #0x0]
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- bge _0203390A
- add r0, r4, #0x0
- bl FUN_0209700C
- cmp r0, #0x0
- bne _0203390A
- ldr r0, [sp, #0x0]
- str r7, [r0, #0x0]
-_0203390A:
- add r7, r7, #0x1
- add r4, #0xc
- cmp r7, #0x20
- blt _020338B0
- mov r0, #0x2
- add sp, #0x8
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02033918
-FUN_02033918: ; 0x02033918
- push {r3-r7, lr}
- sub sp, #0x18
- add r4, r0, #0x0
- str r1, [sp, #0x0]
- str r2, [sp, #0x4]
- add r6, r3, #0x0
- bl FUN_020286EC
- bl FUN_02028228
- add r7, r0, #0x0
- add r0, r4, #0x0
- bl FUN_020286EC
- mov r1, #0x0
- bl FUN_0202838C
- add r5, r0, #0x0
- ldr r1, [sp, #0x0]
- ldr r2, [sp, #0x4]
- add r0, r7, #0x0
- bl FUN_020973B4
- cmp r0, #0x0
- bne _02033950
- add sp, #0x18
- mov r0, #0x3
- pop {r3-r7, pc}
-_02033950:
- ldr r1, [sp, #0x0]
- ldr r2, [sp, #0x4]
- add r0, sp, #0xc
- bl FUN_02096D2C
- add r0, r7, #0x0
- add r1, sp, #0xc
- bl FUN_02096DA0
- cmp r0, #0x0
- bgt _0203396C
- add sp, #0x18
- mov r0, #0x3
- pop {r3-r7, pc}
-_0203396C:
- mov r0, #0x0
- mvn r0, r0
- str r0, [r6, #0x0]
- mov r4, #0x0
-_02033974:
- add r0, r7, #0x0
- add r1, sp, #0xc
- bl FUN_02096DA0
- str r0, [sp, #0x8]
- add r0, r7, #0x0
- add r1, r5, #0x0
- bl FUN_02096DA0
- ldr r1, [sp, #0x8]
- cmp r1, r0
- bne _02033994
- add sp, #0x18
- str r4, [r6, #0x0]
- mov r0, #0x0
- pop {r3-r7, pc}
-_02033994:
- ldr r0, [r6, #0x0]
- cmp r0, #0x0
- bge _020339A6
- add r0, r5, #0x0
- bl FUN_0209700C
- cmp r0, #0x0
- bne _020339A6
- str r4, [r6, #0x0]
-_020339A6:
- add r4, r4, #0x1
- add r5, #0xc
- cmp r4, #0x20
- blt _02033974
- mov r0, #0x2
- add sp, #0x18
- pop {r3-r7, pc}
-
- thumb_func_start FUN_020339B4
-FUN_020339B4: ; 0x020339B4
- push {r4-r7, lr}
- sub sp, #0x14
- add r6, r1, #0x0
- mov r1, #0x0
- add r5, r0, #0x0
- str r2, [sp, #0x4]
- str r1, [sp, #0xc]
- bl FUN_020286EC
- mov r1, #0x0
- bl FUN_0202838C
- str r0, [sp, #0x8]
- mov r4, #0x0
- bl FUN_02030F20
- cmp r0, #0x0
- ble _02033A68
-_020339D8:
- bl FUN_02031190
- cmp r4, r0
- beq _02033A5C
- add r0, r4, #0x0
- bl FUN_0202DFD8
- add r7, r0, #0x0
- beq _02033A5C
- add r0, r5, #0x0
- add r1, r7, #0x0
- add r2, sp, #0x10
- bl FUN_02033874
- str r0, [r6, #0x0]
- cmp r0, #0x3
- bne _020339FE
- bl ErrorHandling
-_020339FE:
- ldr r0, [r6, #0x0]
- cmp r0, #0x0
- bne _02033A1C
- mov r0, #0x2
- str r0, [sp, #0x0]
- ldr r2, [sp, #0x10]
- ldr r3, [sp, #0x4]
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02033A70
- add r0, r5, #0x0
- bl FUN_0202E1BC
- b _02033A5C
-_02033A1C:
- cmp r0, #0x1
- bne _02033A54
- bl FUN_02033590
- cmp r0, #0x0
- bne _02033A5C
- mov r0, #0x1
- str r0, [sp, #0x0]
- ldr r2, [sp, #0x10]
- ldr r3, [sp, #0x4]
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02033A70
- ldr r2, [sp, #0x10]
- mov r1, #0xc
- add r3, r2, #0x0
- mul r3, r1
- ldr r1, [sp, #0x8]
- add r0, r7, #0x0
- add r1, r1, r3
- mov r2, #0xc
- bl MI_CpuCopy8
- add r0, r5, #0x0
- bl FUN_0202E1BC
- b _02033A5C
-_02033A54:
- cmp r0, #0x2
- bne _02033A5C
- mov r0, #0x1
- str r0, [sp, #0xc]
-_02033A5C:
- add r6, r6, #0x4
- add r4, r4, #0x1
- bl FUN_02030F20
- cmp r4, r0
- blt _020339D8
-_02033A68:
- ldr r0, [sp, #0xc]
- add sp, #0x14
- pop {r4-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02033A70
-FUN_02033A70: ; 0x02033A70
- push {r4-r7, lr}
- sub sp, #0x14
- add r5, r2, #0x0
- str r0, [sp, #0x0]
- add r7, r1, #0x0
- str r3, [sp, #0x4]
- bl FUN_020286EC
- add r1, r5, #0x0
- add r4, r0, #0x0
- bl FUN_0202838C
- str r0, [sp, #0x8]
- add r0, r7, #0x0
- bl FUN_0202DFA4
- add r6, r0, #0x0
- ldr r0, [sp, #0x28]
- cmp r0, #0x2
- beq _02033AA6
- add r0, r7, #0x0
- bl FUN_0202DFD8
- ldr r1, [sp, #0x8]
- mov r2, #0xc
- bl MI_CpuCopy8
-_02033AA6:
- ldr r0, [sp, #0x28]
- cmp r0, #0x0
- bne _02033AEC
- ldr r1, [sp, #0x4]
- add r0, r6, #0x0
- bl FUN_020239A0
- str r0, [sp, #0xc]
- ldr r2, [sp, #0xc]
- add r0, r4, #0x0
- add r1, r5, #0x0
- bl FUN_020283C0
- ldr r0, [sp, #0xc]
- bl FUN_02021A20
- add r0, r6, #0x0
- bl FUN_020239CC
- add r3, r0, #0x0
- add r0, r4, #0x0
- add r1, r5, #0x0
- mov r2, #0x8
- bl FUN_020282E8
- add r0, r6, #0x0
- bl FUN_020239BC
- add r3, r0, #0x0
- add r0, r4, #0x0
- add r1, r5, #0x0
- mov r2, #0x0
- bl FUN_020282E8
- b _02033B22
-_02033AEC:
- cmp r0, #0x1
- bne _02033B22
- add r0, r4, #0x0
- add r1, r5, #0x0
- mov r2, #0x8
- bl FUN_0202822C
- cmp r0, #0x2
- bne _02033B22
- add r0, r6, #0x0
- bl FUN_020239CC
- add r3, r0, #0x0
- add r0, r4, #0x0
- add r1, r5, #0x0
- mov r2, #0x8
- bl FUN_020282E8
- add r0, r6, #0x0
- bl FUN_020239BC
- add r3, r0, #0x0
- add r0, r4, #0x0
- add r1, r5, #0x0
- mov r2, #0x0
- bl FUN_020282E8
-_02033B22:
- ldr r1, [sp, #0x4]
- mov r0, #0x78
- bl FUN_020219F4
- str r0, [sp, #0x10]
- add r0, r7, #0x0
- bl FUN_0202DFFC
- add r1, r0, #0x0
- ldr r0, [sp, #0x10]
- bl FUN_02021E28
- ldr r2, [sp, #0x10]
- add r0, r4, #0x0
- add r1, r5, #0x0
- bl FUN_02028404
- ldr r0, [sp, #0x10]
- bl FUN_02021A20
- add r0, r6, #0x0
- bl FUN_02023A28
- add r3, r0, #0x0
- add r0, r4, #0x0
- add r1, r5, #0x0
- mov r2, #0x7
- bl FUN_020282E8
- ldr r0, [sp, #0x0]
- bl FUN_0202E1BC
- add sp, #0x14
- pop {r4-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02033B68
-FUN_02033B68: ; 0x02033B68
- push {r4-r6, lr}
- add r4, r1, #0x0
- add r5, r2, #0x0
- mov r2, #0x7
- add r6, r3, #0x0
- ldr r1, [sp, #0x10]
- mov r0, #0x1
- lsl r2, r2, #0x6
- add r3, r4, #0x0
- bl FUN_02033D3C
- ldr r1, [sp, #0x10]
- mov r0, #0x1
- add r2, r4, #0x0
- bl FUN_02033D9C
- add r0, r4, #0x0
- mov r1, #0x20
- bl FUN_020169D8
- add r4, r0, #0x0
- ldr r0, _02033BC4 ; =FUN_02033BC8
- add r1, r4, #0x0
- mov r2, #0x5
- bl FUN_0200CA98
- str r0, [r4, #0x18]
- strh r5, [r4, #0xc]
- strh r6, [r4, #0xe]
- mov r1, #0x0
- str r1, [r4, #0x0]
- mov r0, #0x3
- str r0, [r4, #0x4]
- ldr r0, [sp, #0x14]
- str r0, [r4, #0x14]
- ldr r0, [sp, #0x10]
- str r1, [r4, #0x8]
- strb r0, [r4, #0x10]
- strb r1, [r4, #0x12]
- mov r0, #0x7
- strb r1, [r4, #0x11]
- lsl r0, r0, #0x18
- str r0, [r4, #0x1c]
- add r0, r4, #0x0
- pop {r4-r6, pc}
- nop
-_02033BC4: .word FUN_02033BC8
-
- thumb_func_start FUN_02033BC8
-FUN_02033BC8: ; 0x02033BC8
- push {r3-r7, lr}
- add r5, r1, #0x0
- ldrb r0, [r5, #0x11]
- cmp r0, #0x1
- beq _02033BD8
- cmp r0, #0x2
- beq _02033BEE
- b _02033C04
-_02033BD8:
- ldr r0, _02033CB0 ; =0x04000304
- ldrh r1, [r0, #0x0]
- lsr r0, r0, #0xb
- and r0, r1
- asr r0, r0, #0xf
- cmp r0, #0x1
- bne _02033BEA
- mov r6, #0x1
- b _02033C06
-_02033BEA:
- mov r6, #0x2
- b _02033C06
-_02033BEE:
- ldr r0, _02033CB0 ; =0x04000304
- ldrh r1, [r0, #0x0]
- lsr r0, r0, #0xb
- and r0, r1
- asr r0, r0, #0xf
- cmp r0, #0x1
- bne _02033C00
- mov r6, #0x2
- b _02033C06
-_02033C00:
- mov r6, #0x1
- b _02033C06
-_02033C04:
- mov r6, #0x1
-_02033C06:
- ldr r4, [r5, #0x4]
- cmp r6, #0x1
- bne _02033C1E
- mov r0, #0x1
- lsl r0, r0, #0x1a
- ldr r1, [r0, #0x0]
- ldr r0, _02033CB4 ; =0x00300010
- add r7, r1, #0x0
- and r7, r0
- bl GX_GetBankForOBJ
- b _02033C2C
-_02033C1E:
- ldr r0, _02033CB8 ; =0x04001000
- ldr r1, [r0, #0x0]
- ldr r0, _02033CB4 ; =0x00300010
- add r7, r1, #0x0
- and r7, r0
- bl GX_GetBankForSubOBJ
-_02033C2C:
- cmp r7, #0x10
- beq _02033C38
- ldr r1, _02033CBC ; =0x00200010
- cmp r7, r1
- beq _02033C54
- b _02033C6C
-_02033C38:
- cmp r0, #0x40
- beq _02033C40
- cmp r0, #0x20
- bne _02033C4A
-_02033C40:
- mov r0, #0x1f
- lsl r1, r4, #0x2
- lsl r0, r0, #0x4
- add r1, r1, r0
- b _02033C74
-_02033C4A:
- mov r0, #0x3f
- lsl r1, r4, #0x2
- lsl r0, r0, #0x4
- add r1, r1, r0
- b _02033C74
-_02033C54:
- cmp r0, #0x30
- beq _02033C5C
- cmp r0, #0x50
- bne _02033C64
-_02033C5C:
- mov r0, #0x9f
- lsl r0, r0, #0x2
- add r1, r4, r0
- b _02033C74
-_02033C64:
- mov r0, #0xff
- lsl r0, r0, #0x2
- add r1, r4, r0
- b _02033C74
-_02033C6C:
- mov r0, #0xfe
- lsl r1, r4, #0x1
- lsl r0, r0, #0x2
- add r1, r1, r0
-_02033C74:
- cmp r6, #0x1
- bne _02033C7E
- mov r2, #0x7
- lsl r2, r2, #0x18
- b _02033C80
-_02033C7E:
- ldr r2, _02033CC0 ; =0x07000400
-_02033C80:
- ldrh r3, [r5, #0xe]
- ldrh r0, [r5, #0xc]
- lsl r3, r3, #0x18
- lsr r4, r3, #0x18
- mov r3, #0x1
- lsl r0, r0, #0x17
- lsl r3, r3, #0x1e
- lsr r0, r0, #0x7
- orr r3, r4
- orr r0, r3
- str r0, [r2, #0x0]
- mov r0, #0xe
- lsl r0, r0, #0xc
- orr r0, r1
- strh r0, [r2, #0x4]
- ldr r1, [r5, #0x1c]
- cmp r2, r1
- beq _02033CAE
- ldr r0, _02033CC4 ; =0x40000200
- str r0, [r1, #0x0]
- mov r0, #0x0
- strh r0, [r1, #0x4]
- str r2, [r5, #0x1c]
-_02033CAE:
- pop {r3-r7, pc}
- .balign 4
-_02033CB0: .word 0x04000304
-_02033CB4: .word 0x00300010
-_02033CB8: .word 0x04001000
-_02033CBC: .word 0x00200010
-_02033CC0: .word 0x07000400
-_02033CC4: .word 0x40000200
-
- thumb_func_start FUN_02033CC8
-FUN_02033CC8: ; 0x02033CC8
- cmp r1, #0x4
- bge _02033CD2
- str r1, [r0, #0x4]
- mov r1, #0x0
- str r1, [r0, #0x8]
-_02033CD2:
- bx lr
-
- thumb_func_start FUN_02033CD4
-FUN_02033CD4: ; 0x02033CD4
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, [r4, #0x18]
- bl FUN_0200CAB4
- mov r0, #0x7
- ldr r2, _02033D00 ; =0x40000200
- lsl r0, r0, #0x18
- str r2, [r0, #0x0]
- mov r1, #0x0
- strh r1, [r0, #0x4]
- ldrb r0, [r4, #0x12]
- cmp r0, #0x0
- beq _02033CF6
- ldr r0, _02033D04 ; =0x07000400
- str r2, [r0, #0x0]
- strh r1, [r0, #0x4]
-_02033CF6:
- add r0, r4, #0x0
- bl FUN_02016A18
- pop {r4, pc}
- nop
-_02033D00: .word 0x40000200
-_02033D04: .word 0x07000400
-
- thumb_func_start FUN_02033D08
-FUN_02033D08: ; 0x02033D08
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- add r6, r2, #0x0
- mov r2, #0x7
- ldrb r1, [r5, #0x10]
- mov r0, #0x2
- lsl r2, r2, #0x6
- add r3, r6, #0x0
- bl FUN_02033D3C
- ldrb r1, [r5, #0x10]
- mov r0, #0x2
- add r2, r6, #0x0
- bl FUN_02033D9C
- cmp r4, #0x0
- beq _02033D30
- mov r0, #0x1
- b _02033D32
-_02033D30:
- mov r0, #0x2
-_02033D32:
- strb r0, [r5, #0x11]
- mov r0, #0x1
- strb r0, [r5, #0x12]
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02033D3C
-FUN_02033D3C: ; 0x02033D3C
- push {r3-r5, lr}
- sub sp, #0x8
- mov r1, #0x96
- add r5, r0, #0x0
- add r0, r3, #0x0
- lsl r1, r1, #0x2
- add r4, r2, #0x0
- bl FUN_020169D8
- str r0, [sp, #0x4]
- cmp r0, #0x0
- beq _02033D92
- ldr r0, _02033D98 ; =0x02105D88
- add r1, sp, #0x4
- bl FUN_020161F8
- mov r1, #0x96
- ldr r0, [sp, #0x4]
- lsl r1, r1, #0x2
- bl DC_FlushRange
- ldr r0, [sp, #0x4]
- add r1, sp, #0x0
- bl FUN_020B0138
- cmp r5, #0x1
- bne _02033D80
- ldr r0, [sp, #0x0]
- add r1, r4, #0x0
- ldr r0, [r0, #0xc]
- mov r2, #0x20
- bl GX_LoadOBJPltt
- b _02033D8C
-_02033D80:
- ldr r0, [sp, #0x0]
- add r1, r4, #0x0
- ldr r0, [r0, #0xc]
- mov r2, #0x20
- bl GXS_LoadOBJPltt
-_02033D8C:
- ldr r0, [sp, #0x4]
- bl FUN_02016A18
-_02033D92:
- add sp, #0x8
- pop {r3-r5, pc}
- nop
-_02033D98: .word 0x02105D88
-
- thumb_func_start FUN_02033D9C
-FUN_02033D9C: ; 0x02033D9C
- push {r3-r5, lr}
- sub sp, #0x8
- add r4, r1, #0x0
- mov r1, #0x96
- add r5, r0, #0x0
- add r0, r2, #0x0
- lsl r1, r1, #0x2
- bl FUN_020169D8
- str r0, [sp, #0x4]
- cmp r0, #0x0
- beq _02033E58
- cmp r4, #0x0
- add r1, sp, #0x4
- beq _02033DC2
- ldr r0, _02033E5C ; =0x02105D98
- bl FUN_020161F8
- b _02033DC8
-_02033DC2:
- ldr r0, _02033E60 ; =0x02105DA8
- bl FUN_020161F8
-_02033DC8:
- mov r1, #0x96
- ldr r0, [sp, #0x4]
- lsl r1, r1, #0x2
- bl DC_FlushRange
- ldr r0, [sp, #0x4]
- add r1, sp, #0x0
- bl FUN_020B0088
- cmp r5, #0x1
- bne _02033DF0
- mov r0, #0x1
- lsl r0, r0, #0x1a
- ldr r1, [r0, #0x0]
- ldr r0, _02033E64 ; =0x00300010
- add r4, r1, #0x0
- and r4, r0
- bl GX_GetBankForOBJ
- b _02033E00
-_02033DF0:
- mov r0, #0x1
- lsl r0, r0, #0x1a
- ldr r1, [r0, #0x0]
- ldr r0, _02033E64 ; =0x00300010
- add r4, r1, #0x0
- and r4, r0
- bl GX_GetBankForOBJ
-_02033E00:
- cmp r4, #0x10
- beq _02033E0C
- ldr r1, _02033E68 ; =0x00200010
- cmp r4, r1
- beq _02033E20
- b _02033E30
-_02033E0C:
- cmp r0, #0x40
- beq _02033E14
- cmp r0, #0x20
- bne _02033E1A
-_02033E14:
- mov r1, #0x3e
- lsl r1, r1, #0x8
- b _02033E34
-_02033E1A:
- mov r1, #0x7e
- lsl r1, r1, #0x8
- b _02033E34
-_02033E20:
- cmp r0, #0x30
- beq _02033E28
- cmp r0, #0x50
- bne _02033E2C
-_02033E28:
- ldr r1, _02033E6C ; =0x00013E00
- b _02033E34
-_02033E2C:
- ldr r1, _02033E70 ; =0x0001FE00
- b _02033E34
-_02033E30:
- mov r1, #0xfe
- lsl r1, r1, #0x8
-_02033E34:
- cmp r5, #0x1
- bne _02033E46
- ldr r0, [sp, #0x0]
- mov r2, #0x2
- ldr r0, [r0, #0x14]
- lsl r2, r2, #0x8
- bl GX_LoadOBJ
- b _02033E52
-_02033E46:
- ldr r0, [sp, #0x0]
- mov r2, #0x2
- ldr r0, [r0, #0x14]
- lsl r2, r2, #0x8
- bl GXS_LoadOBJ
-_02033E52:
- ldr r0, [sp, #0x4]
- bl FUN_02016A18
-_02033E58:
- add sp, #0x8
- pop {r3-r5, pc}
- .balign 4
-_02033E5C: .word 0x02105D98
-_02033E60: .word 0x02105DA8
-_02033E64: .word 0x00300010
-_02033E68: .word 0x00200010
-_02033E6C: .word 0x00013E00
-_02033E70: .word 0x0001FE00
-
- thumb_func_start FUN_02033E74
-FUN_02033E74: ; 0x02033E74
- push {r4, lr}
- mov r4, #0x0
- bl FUN_02033590
- cmp r0, #0x0
- beq _02033E82
- mov r4, #0x1
-_02033E82:
- mov r0, #0xf0
- mov r1, #0x0
- add r2, r4, #0x0
- bl FUN_02033E90
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02033E90
-FUN_02033E90: ; 0x02033E90
- push {r4-r6, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- add r6, r1, #0x0
- add r4, r2, #0x0
- bl FUN_0202E4DC
- cmp r0, #0x0
- beq _02033EC4
- ldr r0, _02033EC8 ; =0x021C5A04
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _02033EAE
- bl FUN_02033ED0
-_02033EAE:
- ldr r0, _02033ECC ; =0x02105D74
- str r4, [sp, #0x0]
- str r0, [sp, #0x4]
- mov r0, #0x0
- mov r1, #0x5b
- add r2, r5, #0x0
- add r3, r6, #0x0
- bl FUN_02033B68
- ldr r1, _02033EC8 ; =0x021C5A04
- str r0, [r1, #0x0]
-_02033EC4:
- add sp, #0x8
- pop {r4-r6, pc}
- .balign 4
-_02033EC8: .word 0x021C5A04
-_02033ECC: .word 0x02105D74
-
- thumb_func_start FUN_02033ED0
-FUN_02033ED0: ; 0x02033ED0
- push {r3, lr}
- ldr r0, _02033EE8 ; =0x021C5A04
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _02033EE4
- bl FUN_02033CD4
- ldr r0, _02033EE8 ; =0x021C5A04
- mov r1, #0x0
- str r1, [r0, #0x0]
-_02033EE4:
- pop {r3, pc}
- nop
-_02033EE8: .word 0x021C5A04
-
- thumb_func_start FUN_02033EEC
-FUN_02033EEC: ; 0x02033EEC
- push {r3, lr}
- add r1, r0, #0x0
- ldr r0, _02033F00 ; =0x021C5A04
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _02033EFC
- bl FUN_02033CC8
-_02033EFC:
- pop {r3, pc}
- nop
-_02033F00: .word 0x021C5A04
-
- thumb_func_start FUN_02033F04
-FUN_02033F04: ; 0x02033F04
- push {r3, lr}
- add r3, r0, #0x0
- ldr r0, _02033F1C ; =0x021C5A04
- add r2, r1, #0x0
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _02033F18
- add r1, r3, #0x0
- bl FUN_02033D08
-_02033F18:
- pop {r3, pc}
- nop
-_02033F1C: .word 0x021C5A04
-
- thumb_func_start FUN_02033F20
-FUN_02033F20: ; 0x02033F20
- push {r3, lr}
- bl FUN_02030F40
- cmp r0, #0x0
- beq _02033F40
- bl FUN_02030F20
- cmp r0, #0x1
- bgt _02033F3A
- bl FUN_02033590
- cmp r0, #0x0
- beq _02033F4C
-_02033F3A:
- bl FUN_02033E74
- pop {r3, pc}
-_02033F40:
- bl FUN_02033590
- cmp r0, #0x0
- beq _02033F4C
- bl FUN_02033E74
-_02033F4C:
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02033F50
-FUN_02033F50: ; 0x02033F50
- ldr r3, _02033F64 ; =0x027E0000
- ldr r1, _02033F68 ; =0x00003FF8
- mov r0, #0x1
- ldr r2, [r3, r1]
- orr r0, r2
- str r0, [r3, r1]
- ldr r3, _02033F6C ; =MI_WaitDma
- mov r0, #0x3
- bx r3
- nop
-_02033F64: .word 0x027E0000
-_02033F68: .word 0x00003FF8
-_02033F6C: .word MI_WaitDma
-
- thumb_func_start FUN_02033F70
-FUN_02033F70: ; 0x02033F70
- push {r3-r7, lr}
- sub sp, #0x28
- add r4, r0, #0x0
- str r2, [sp, #0xc]
- cmp r1, #0x4
- bhi _02033F92
- add r0, r1, r1
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02033F88: ; jump table (using 16-bit offset)
- .short _02033F92 - _02033F88 - 2; case 0
- .short _02033F96 - _02033F88 - 2; case 1
- .short _02033F9A - _02033F88 - 2; case 2
- .short _02033F9E - _02033F88 - 2; case 3
- .short _02033FA2 - _02033F88 - 2; case 4
-_02033F92:
- mov r5, #0x1
- b _02033FA4
-_02033F96:
- mov r5, #0x2
- b _02033FA4
-_02033F9A:
- mov r5, #0x3
- b _02033FA4
-_02033F9E:
- mov r5, #0x4
- b _02033FA4
-_02033FA2:
- mov r5, #0x5
-_02033FA4:
- mov r0, #0x0
- add r1, r0, #0x0
- bl FUN_0200E3A0
- mov r0, #0x1
- mov r1, #0x0
- bl FUN_0200E3A0
- mov r0, #0x1
- bl OS_DisableIrqMask
- ldr r1, _02034154 ; =FUN_02033F50
- mov r0, #0x1
- bl OS_SetIrqFunction
- mov r0, #0x1
- bl OS_EnableIrqMask
- mov r0, #0x0
- add r1, r0, #0x0
- bl FUN_02015F10
- mov r0, #0x0
- add r1, r0, #0x0
- bl FUN_02015F34
- bl FUN_0201E6D8
- bl FUN_0201E740
- mov r2, #0x1
- lsl r2, r2, #0x1a
- ldr r1, [r2, #0x0]
- ldr r0, _02034158 ; =0xFFFFE0FF
- and r1, r0
- str r1, [r2, #0x0]
- ldr r2, _0203415C ; =0x04001000
- ldr r1, [r2, #0x0]
- and r0, r1
- str r0, [r2, #0x0]
- mov r0, #0x4
- mov r1, #0x8
- bl FUN_0201669C
- ldr r0, _02034160 ; =0x021C4918
- mov r1, #0x0
- strb r1, [r0, #0x5]
- bl FUN_0201E7A0
- ldr r3, _02034164 ; =0x04000050
- mov r1, #0x0
- strh r1, [r3, #0x0]
- ldr r0, _02034168 ; =0x04001050
- sub r3, #0x50
- strh r1, [r0, #0x0]
- ldr r2, [r3, #0x0]
- ldr r1, _0203416C ; =0xFFFF1FFF
- sub r0, #0x50
- and r2, r1
- str r2, [r3, #0x0]
- ldr r2, [r0, #0x0]
- and r1, r2
- str r1, [r0, #0x0]
- ldr r0, _02034170 ; =0x020EECD0
- bl FUN_0201E66C
- add r0, r4, #0x0
- bl FUN_02016B94
- add r6, r0, #0x0
- ldr r0, _02034174 ; =0x020EECA4
- bl FUN_02016BBC
- mov r1, #0x0
- ldr r2, _02034178 ; =0x020EECB4
- add r0, r6, #0x0
- add r3, r1, #0x0
- bl FUN_02016C18
- add r0, r6, #0x0
- mov r1, #0x0
- bl FUN_02018744
- mov r1, #0x0
- str r1, [sp, #0x0]
- ldr r2, _0203417C ; =0x000001F7
- add r0, r6, #0x0
- mov r3, #0x2
- str r4, [sp, #0x4]
- bl FUN_0200CB00
- mov r0, #0x0
- mov r1, #0x20
- add r2, r4, #0x0
- bl FUN_02002ED0
- mov r0, #0x0
- mov r1, #0x20
- add r2, r0, #0x0
- add r3, r4, #0x0
- bl FUN_02017F18
- ldr r1, _02034180 ; =0x00006C21
- mov r0, #0x0
- bl FUN_02017FE4
- ldr r1, _02034180 ; =0x00006C21
- mov r0, #0x4
- bl FUN_02017FE4
- mov r0, #0x1
- mov r1, #0x1a
- mov r2, #0xc8
- add r3, r4, #0x0
- bl FUN_0200A86C
- str r0, [sp, #0x10]
- mov r0, #0x6
- lsl r0, r0, #0x6
- add r1, r4, #0x0
- bl FUN_020219F4
- add r7, r0, #0x0
- mov r0, #0x6
- lsl r0, r0, #0x6
- add r1, r4, #0x0
- bl FUN_020219F4
- str r0, [sp, #0x14]
- bl FUN_0201BD5C
- add r0, r4, #0x0
- bl FUN_0200AA80
- add r4, r0, #0x0
- ldr r2, _02034184 ; =0x020EEC9C
- add r0, r6, #0x0
- add r1, sp, #0x18
- bl FUN_02019150
- mov r0, #0xd0
- str r0, [sp, #0x0]
- mov r0, #0x90
- mov r2, #0x0
- str r0, [sp, #0x4]
- add r0, sp, #0x18
- mov r1, #0xf
- add r3, r2, #0x0
- bl FUN_020196F4
- ldr r2, _0203417C ; =0x000001F7
- add r0, sp, #0x18
- mov r1, #0x0
- mov r3, #0x2
- bl FUN_0200CCA4
- mov r0, #0x2
- str r0, [sp, #0x0]
- mov r0, #0x1
- str r0, [sp, #0x4]
- ldr r2, [sp, #0xc]
- add r0, r4, #0x0
- mov r1, #0x0
- mov r3, #0x5
- bl FUN_0200AD38
- ldr r0, [sp, #0x10]
- ldr r2, [sp, #0x14]
- add r1, r5, #0x0
- bl FUN_0200A8E0
- ldr r2, [sp, #0x14]
- add r0, r4, #0x0
- add r1, r7, #0x0
- bl FUN_0200B7B8
- mov r1, #0x0
- str r1, [sp, #0x0]
- str r1, [sp, #0x4]
- add r0, sp, #0x18
- add r2, r7, #0x0
- add r3, r1, #0x0
- str r1, [sp, #0x8]
- bl FUN_0201BD84
- add r0, r7, #0x0
- bl FUN_02021A20
- bl FUN_0201E788
- mov r0, #0x0
- bl FUN_0200E394
- mov r0, #0x1
- bl FUN_0200E394
- mov r0, #0x0
- mov r1, #0x3f
- mov r2, #0x3
- bl FUN_0200A274
- add r0, sp, #0x18
- bl FUN_02019178
- ldr r0, [sp, #0x10]
- bl FUN_0200A8B8
- add r0, r4, #0x0
- bl FUN_0200AB18
- add r0, r6, #0x0
- bl FUN_02016A18
- add sp, #0x28
- pop {r3-r7, pc}
- nop
-_02034154: .word FUN_02033F50
-_02034158: .word 0xFFFFE0FF
-_0203415C: .word 0x04001000
-_02034160: .word 0x021C4918
-_02034164: .word 0x04000050
-_02034168: .word 0x04001050
-_0203416C: .word 0xFFFF1FFF
-_02034170: .word 0x020EECD0
-_02034174: .word 0x020EECA4
-_02034178: .word 0x020EECB4
-_0203417C: .word 0x000001F7
-_02034180: .word 0x00006C21
-_02034184: .word 0x020EEC9C
-
- thumb_func_start FUN_02034188
-FUN_02034188: ; 0x02034188
- push {r4-r7, lr}
- sub sp, #0x24
- add r4, r0, #0x0
- mov r0, #0x0
- add r1, r0, #0x0
- bl FUN_0200E3A0
- mov r0, #0x1
- mov r1, #0x0
- bl FUN_0200E3A0
- bl FUN_02015EF4
- mov r0, #0x0
- add r1, r0, #0x0
- bl FUN_02015F10
- mov r0, #0x0
- add r1, r0, #0x0
- bl FUN_02015F34
- bl FUN_0201E6D8
- bl FUN_0201E740
- mov r2, #0x1
- lsl r2, r2, #0x1a
- ldr r1, [r2, #0x0]
- ldr r0, _02034368 ; =0xFFFFE0FF
- and r1, r0
- str r1, [r2, #0x0]
- ldr r2, _0203436C ; =0x04001000
- ldr r1, [r2, #0x0]
- and r0, r1
- str r0, [r2, #0x0]
- mov r0, #0x4
- mov r1, #0x8
- bl FUN_0201669C
- ldr r0, _02034370 ; =0x021C4918
- mov r1, #0x0
- strb r1, [r0, #0x5]
- bl FUN_0201E7A0
- ldr r3, _02034374 ; =0x04000050
- mov r0, #0x0
- strh r0, [r3, #0x0]
- ldr r2, _02034378 ; =0x04001050
- sub r3, #0x50
- strh r0, [r2, #0x0]
- ldr r1, [r3, #0x0]
- ldr r0, _0203437C ; =0xFFFF1FFF
- sub r2, #0x50
- and r1, r0
- str r1, [r3, #0x0]
- ldr r1, [r2, #0x0]
- and r0, r1
- str r0, [r2, #0x0]
- ldr r0, _02034380 ; =0x020EED2C
- bl FUN_0201E66C
- add r0, r4, #0x0
- bl FUN_02016B94
- str r0, [sp, #0x10]
- ldr r0, _02034384 ; =0x020EED00
- bl FUN_02016BBC
- mov r1, #0x0
- ldr r0, [sp, #0x10]
- ldr r2, _02034388 ; =0x020EED10
- add r3, r1, #0x0
- bl FUN_02016C18
- ldr r0, [sp, #0x10]
- mov r1, #0x0
- bl FUN_02018744
- mov r1, #0x0
- str r1, [sp, #0x0]
- ldr r0, [sp, #0x10]
- ldr r2, _0203438C ; =0x000001F7
- mov r3, #0x2
- str r4, [sp, #0x4]
- bl FUN_0200CB00
- mov r0, #0x0
- mov r1, #0x20
- add r2, r4, #0x0
- bl FUN_02002ED0
- mov r0, #0x0
- mov r1, #0x20
- add r2, r0, #0x0
- add r3, r4, #0x0
- bl FUN_02017F18
- ldr r1, _02034390 ; =0x00006C21
- mov r0, #0x0
- bl FUN_02017FE4
- ldr r1, _02034390 ; =0x00006C21
- mov r0, #0x4
- bl FUN_02017FE4
- ldr r2, _02034394 ; =0x00000265
- mov r0, #0x1
- mov r1, #0x1a
- add r3, r4, #0x0
- bl FUN_0200A86C
- str r0, [sp, #0xc]
- mov r0, #0x6
- lsl r0, r0, #0x6
- add r1, r4, #0x0
- bl FUN_020219F4
- add r4, r0, #0x0
- bl FUN_0201BD5C
- ldr r0, [sp, #0x10]
- ldr r2, _02034398 ; =0x020EECF8
- add r1, sp, #0x14
- bl FUN_02019150
- mov r0, #0xd0
- str r0, [sp, #0x0]
- mov r0, #0x90
- mov r2, #0x0
- str r0, [sp, #0x4]
- add r0, sp, #0x14
- mov r1, #0xf
- add r3, r2, #0x0
- bl FUN_020196F4
- ldr r2, _0203438C ; =0x000001F7
- add r0, sp, #0x14
- mov r1, #0x0
- mov r3, #0x2
- bl FUN_0200CCA4
- ldr r0, [sp, #0xc]
- mov r1, #0xf
- add r2, r4, #0x0
- bl FUN_0200A8E0
- mov r1, #0x0
- str r1, [sp, #0x0]
- str r1, [sp, #0x4]
- add r0, sp, #0x14
- add r2, r4, #0x0
- add r3, r1, #0x0
- str r1, [sp, #0x8]
- bl FUN_0201BD84
- add r0, r4, #0x0
- bl FUN_02021A20
- bl FUN_0201E788
- mov r0, #0x0
- bl FUN_0200E394
- mov r0, #0x1
- bl FUN_0200E394
- mov r0, #0x0
- mov r1, #0x3f
- mov r2, #0x3
- bl FUN_0200A274
- ldr r4, _0203439C ; =0x04000130
- ldr r6, _020343A0 ; =0x027FFFA8
- mov r7, #0x1
-_020342E4:
- ldrh r1, [r4, #0x0]
- ldrh r0, [r6, #0x0]
- orr r1, r0
- ldr r0, _020343A4 ; =0x00002FFF
- eor r1, r0
- and r0, r1
- lsl r0, r0, #0x10
- lsr r5, r0, #0x10
- bl FUN_02000FE8
- add r0, r5, #0x0
- tst r0, r7
- bne _02034308
- mov r0, #0x1
- add r1, r0, #0x0
- bl OS_WaitIrq
- b _020342E4
-_02034308:
- add r0, sp, #0x14
- bl FUN_02019178
- ldr r0, [sp, #0xc]
- bl FUN_0200A8B8
- mov r0, #0x0
- add r1, r0, #0x0
- bl FUN_0201797C
- mov r0, #0x1
- mov r1, #0x0
- bl FUN_0201797C
- mov r0, #0x2
- mov r1, #0x0
- bl FUN_0201797C
- mov r0, #0x3
- mov r1, #0x0
- bl FUN_0201797C
- mov r0, #0x4
- mov r1, #0x0
- bl FUN_0201797C
- mov r0, #0x5
- mov r1, #0x0
- bl FUN_0201797C
- mov r0, #0x6
- mov r1, #0x0
- bl FUN_0201797C
- mov r0, #0x7
- mov r1, #0x0
- bl FUN_0201797C
- ldr r0, [sp, #0x10]
- mov r1, #0x0
- bl FUN_020178A0
- ldr r0, [sp, #0x10]
- bl FUN_02016A18
- add sp, #0x24
- pop {r4-r7, pc}
- nop
-_02034368: .word 0xFFFFE0FF
-_0203436C: .word 0x04001000
-_02034370: .word 0x021C4918
-_02034374: .word 0x04000050
-_02034378: .word 0x04001050
-_0203437C: .word 0xFFFF1FFF
-_02034380: .word 0x020EED2C
-_02034384: .word 0x020EED00
-_02034388: .word 0x020EED10
-_0203438C: .word 0x000001F7
-_02034390: .word 0x00006C21
-_02034394: .word 0x00000265
-_02034398: .word 0x020EECF8
-_0203439C: .word 0x04000130
-_020343A0: .word 0x027FFFA8
-_020343A4: .word 0x00002FFF
-
- thumb_func_start FUN_020343A8
-FUN_020343A8: ; 0x020343A8
- push {r4-r7, lr}
- sub sp, #0xc
- add r4, r0, #0x0
- str r2, [sp, #0x0]
- mov r2, #0x0
- strb r2, [r4, #0x1]
- mov r0, #0xe1
- ldr r7, _02034488 ; =0x0000070A
- ldr r6, _0203448C ; =0x00000A8E
- mov r12, r1
- strb r2, [r4, #0x0]
- add r3, r4, #0x0
- add r5, r2, #0x0
- lsl r0, r0, #0x2
-_020343C4:
- add r1, r4, r2
- strh r5, [r3, #0x2]
- strb r5, [r1, r7]
- strh r5, [r3, r6]
- add r2, r2, #0x1
- add r3, r3, #0x2
- cmp r2, r0
- blt _020343C4
- ldr r0, _02034490 ; =0x00001196
- mov r2, #0x0
-_020343D8:
- add r1, r4, r5
- add r5, r5, #0x1
- strb r2, [r1, r0]
- cmp r5, #0x10
- blt _020343D8
- mov r0, #0x29
- mov r1, r12
- mov r2, #0xb
- bl FUN_02006528
- add r6, r0, #0x0
- ldrb r0, [r6, #0x0]
- add r5, r6, #0x5
- strb r0, [r4, #0x1]
- ldrb r0, [r6, #0x1]
- strb r0, [r4, #0x0]
- ldrb r0, [r6, #0x2]
- str r0, [sp, #0x8]
- ldrb r0, [r6, #0x3]
- str r0, [sp, #0x4]
- ldrb r7, [r6, #0x4]
- cmp r7, #0x10
- bls _0203440A
- bl ErrorHandling
-_0203440A:
- ldr r1, _02034490 ; =0x00001196
- add r0, r5, #0x0
- add r1, r4, r1
- add r2, r7, #0x0
- bl MI_CpuCopy8
- ldr r0, [sp, #0x8]
- add r5, r5, r7
- cmp r0, #0x0
- beq _0203443A
- ldrb r3, [r4, #0x1]
- ldrb r2, [r4, #0x0]
- add r0, r5, #0x0
- add r1, r4, #0x2
- mul r2, r3
- lsl r2, r2, #0x1
- bl MI_CpuCopy8
- ldrb r1, [r4, #0x1]
- ldrb r0, [r4, #0x0]
- mul r0, r1
- lsl r0, r0, #0x1
- add r5, r5, r0
- b _0203444E
-_0203443A:
- ldrb r3, [r4, #0x1]
- ldrb r2, [r4, #0x0]
- ldr r0, [sp, #0x0]
- add r1, r4, #0x2
- lsl r0, r0, #0x10
- mul r2, r3
- lsr r0, r0, #0x10
- lsl r2, r2, #0x1
- bl MIi_CpuClear16
-_0203444E:
- ldr r0, [sp, #0x4]
- cmp r0, #0x0
- beq _0203446C
- ldrb r3, [r4, #0x1]
- ldrb r2, [r4, #0x0]
- ldr r1, _02034488 ; =0x0000070A
- add r0, r5, #0x0
- add r1, r4, r1
- mul r2, r3
- bl MI_CpuCopy8
- ldrb r1, [r4, #0x1]
- ldrb r0, [r4, #0x0]
- mul r0, r1
- add r5, r5, r0
-_0203446C:
- ldrb r3, [r4, #0x1]
- ldrb r2, [r4, #0x0]
- ldr r1, _0203448C ; =0x00000A8E
- add r0, r5, #0x0
- mul r2, r3
- add r1, r4, r1
- lsl r2, r2, #0x1
- bl MI_CpuCopy8
- add r0, r6, #0x0
- bl FUN_02016A18
- add sp, #0xc
- pop {r4-r7, pc}
- .balign 4
-_02034488: .word 0x0000070A
-_0203448C: .word 0x00000A8E
-_02034490: .word 0x00001196
-
- thumb_func_start FUN_02034494
-FUN_02034494: ; 0x02034494
- push {r3, lr}
- ldr r1, _020344A8 ; =0x000011AA
- mov r0, #0xb
- bl FUN_02016998
- mov r1, #0x0
- strb r1, [r0, #0x0]
- strb r1, [r0, #0x1]
- strb r1, [r0, #0x2]
- pop {r3, pc}
- .balign 4
-_020344A8: .word 0x000011AA
-
- thumb_func_start FUN_020344AC
-FUN_020344AC: ; 0x020344AC
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- bl FUN_0203474C
- add r6, r0, #0x0
- add r0, r4, #0x4
- add r1, r6, #0x0
- add r2, r5, #0x0
- bl FUN_020343A8
- strb r6, [r4, #0x2]
- ldrb r0, [r4, #0x4]
- strb r0, [r4, #0x1]
- ldrb r0, [r4, #0x5]
- strb r0, [r4, #0x0]
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_020344D0
-FUN_020344D0: ; 0x020344D0
- ldr r3, _020344D4 ; =FUN_02016A18
- bx r3
- .balign 4
-_020344D4: .word FUN_02016A18
-
- thumb_func_start FUN_020344D8
-FUN_020344D8: ; 0x020344D8
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- ldrb r1, [r4, #0x0]
- ldrb r0, [r4, #0x1]
- mul r0, r1
- cmp r5, r0
- blt _020344EC
- bl ErrorHandling
-_020344EC:
- lsl r0, r5, #0x1
- add r1, r4, r0
- ldr r0, _020344F8 ; =0x00000A92
- ldrh r0, [r1, r0]
- pop {r3-r5, pc}
- nop
-_020344F8: .word 0x00000A92
-
- thumb_func_start FUN_020344FC
-FUN_020344FC: ; 0x020344FC
- push {r4, lr}
- add r4, r0, #0x0
- bne _02034506
- bl ErrorHandling
-_02034506:
- ldrb r0, [r4, #0x0]
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0203450C
-FUN_0203450C: ; 0x0203450C
- push {r4, lr}
- add r4, r0, #0x0
- bne _02034516
- bl ErrorHandling
-_02034516:
- ldrb r0, [r4, #0x1]
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_0203451C
-FUN_0203451C: ; 0x0203451C
- push {r3-r7, lr}
- add r7, r0, #0x0
- ldrb r0, [r7, #0x1]
- add r5, r1, #0x0
- add r4, r2, #0x0
- ldrb r6, [r7, #0x0]
- str r0, [sp, #0x0]
- cmp r5, #0x0
- blt _02034532
- cmp r5, r6
- blt _02034536
-_02034532:
- bl ErrorHandling
-_02034536:
- cmp r4, #0x0
- blt _02034540
- ldr r0, [sp, #0x0]
- cmp r4, r0
- blt _02034544
-_02034540:
- bl ErrorHandling
-_02034544:
- add r0, r4, #0x0
- mul r0, r6
- add r0, r5, r0
- lsl r0, r0, #0x1
- add r0, r7, r0
- ldrh r0, [r0, #0x6]
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02034554
-FUN_02034554: ; 0x02034554
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- ldrb r1, [r5, #0x0]
- ldrb r0, [r5, #0x1]
- mul r0, r1
- cmp r4, #0x0
- blt _02034568
- cmp r4, r0
- blt _0203456C
-_02034568:
- bl ErrorHandling
-_0203456C:
- lsl r0, r4, #0x1
- add r0, r5, r0
- ldrh r0, [r0, #0x6]
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02034574
-FUN_02034574: ; 0x02034574
- ldrb r0, [r0, #0x2]
- bx lr
-
- thumb_func_start FUN_02034578
-FUN_02034578: ; 0x02034578
- push {r4-r6, lr}
- add r5, r0, #0x0
- ldr r0, [sp, #0x10]
- add r4, r2, #0x0
- add r6, r3, #0x0
- cmp r4, r0
- blt _0203458A
- bl ErrorHandling
-_0203458A:
- ldr r0, [sp, #0x10]
- mul r0, r6
- add r4, r4, r0
- mov r0, #0xe1
- lsl r0, r0, #0x2
- cmp r4, r0
- blt _0203459C
- bl ErrorHandling
-_0203459C:
- ldr r0, _020345A4 ; =0x0000070E
- add r1, r5, r4
- ldrb r0, [r1, r0]
- pop {r4-r6, pc}
- .balign 4
-_020345A4: .word 0x0000070E
-
- thumb_func_start FUN_020345A8
-FUN_020345A8: ; 0x020345A8
- push {r3-r5, lr}
- ldr r1, _020345D8 ; =0x00000708
- add r4, r0, #0x0
- bl FUN_02016998
- add r5, r0, #0x0
- mov r0, #0x29
- mov r1, #0x0
- add r2, r4, #0x0
- bl FUN_02006528
- add r4, r0, #0x0
- ldrb r1, [r4, #0x4]
- add r0, r4, #0x5
- ldr r2, _020345D8 ; =0x00000708
- add r0, r0, r1
- add r1, r5, #0x0
- bl MI_CpuCopy8
- add r0, r4, #0x0
- bl FUN_02016A18
- add r0, r5, #0x0
- pop {r3-r5, pc}
- .balign 4
-_020345D8: .word 0x00000708
-
- thumb_func_start FUN_020345DC
-FUN_020345DC: ; 0x020345DC
- push {r4, lr}
- add r4, r0, #0x0
- bne _020345E6
- bl ErrorHandling
-_020345E6:
- add r0, r4, #0x0
- bl FUN_02016A18
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_020345F0
-FUN_020345F0: ; 0x020345F0
- mov r3, #0x1e
- mul r3, r2
- add r1, r1, r3
- lsl r1, r1, #0x1
- ldrh r0, [r0, r1]
- bx lr
-
- thumb_func_start FUN_020345FC
-FUN_020345FC: ; 0x020345FC
- push {r3-r5, lr}
- sub sp, #0x1fc
- sub sp, #0x1fc
- sub sp, #0x1fc
- sub sp, #0x1fc
- sub sp, #0x1fc
- sub sp, #0x1fc
- sub sp, #0x1fc
- sub sp, #0x1fc
- sub sp, #0x1c8
- add r3, r0, #0x0
- add r5, r1, #0x0
- lsl r1, r3, #0x10
- add r4, r2, #0x0
- add r0, sp, #0x0
- lsr r1, r1, #0x10
- mov r2, #0x0
- bl FUN_020343A8
- add r0, sp, #0x0
- ldrb r0, [r0, #0x1]
- cmp r5, r0
- blt _0203462E
- bl ErrorHandling
-_0203462E:
- add r0, sp, #0x0
- ldrb r0, [r0, #0x0]
- cmp r4, r0
- blt _0203463A
- bl ErrorHandling
-_0203463A:
- add r0, sp, #0x0
- ldrb r0, [r0, #0x1]
- mul r0, r4
- add r0, r5, r0
- lsl r1, r0, #0x1
- add r0, sp, #0x0
- add r0, #0x2
- ldrh r0, [r0, r1]
- add sp, #0x1fc
- add sp, #0x1fc
- add sp, #0x1fc
- add sp, #0x1fc
- add sp, #0x1fc
- add sp, #0x1fc
- add sp, #0x1fc
- add sp, #0x1fc
- add sp, #0x1c8
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02034660
-FUN_02034660: ; 0x02034660
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- bne _0203466C
- bl ErrorHandling
-_0203466C:
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_020344D8
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02034678
-FUN_02034678: ; 0x02034678
- push {r4-r7}
- ldr r1, _020346C4 ; =0x00000A92
- ldrb r7, [r0, #0x0]
- add r2, r0, r1
- ldr r1, _020346C8 ; =0x0000070E
- add r1, r0, r1
- ldrb r0, [r0, #0x2]
- cmp r0, #0x0
- bne _020346BE
- mov r0, #0x15
- add r6, r7, #0x0
- mul r6, r0
- add r5, r6, #0x0
- add r5, #0x17
- mov r4, #0xb0
- lsl r0, r5, #0x1
- add r6, #0x18
- strh r4, [r2, r0]
- lsl r0, r6, #0x1
- strh r4, [r2, r0]
- mov r0, #0x16
- add r3, r7, #0x0
- mul r3, r0
- add r0, r3, #0x0
- add r0, #0x17
- lsl r7, r0, #0x1
- add r3, #0x18
- strh r4, [r2, r7]
- lsl r7, r3, #0x1
- strh r4, [r2, r7]
- mov r2, #0x2
- strb r2, [r1, r5]
- strb r2, [r1, r6]
- strb r2, [r1, r0]
- strb r2, [r1, r3]
-_020346BE:
- pop {r4-r7}
- bx lr
- nop
-_020346C4: .word 0x00000A92
-_020346C8: .word 0x0000070E
-
- thumb_func_start FUN_020346CC
-FUN_020346CC: ; 0x020346CC
- push {r3-r4}
- ldr r1, _0203470C ; =0x00000A92
- add r2, r0, r1
- ldrb r1, [r0, #0x0]
- ldrb r0, [r0, #0x2]
- cmp r0, #0x0
- bne _02034706
- mov r0, #0xf
- mul r0, r1
- add r0, #0x1c
- mov r3, #0x77
- lsl r0, r0, #0x1
- strh r3, [r2, r0]
- lsl r0, r1, #0x4
- add r3, r0, #0x0
- add r3, #0x1b
- mov r4, #0x78
- lsl r3, r3, #0x1
- strh r4, [r2, r3]
- add r3, r0, #0x0
- add r3, #0x1c
- add r0, r1, r0
- add r0, #0x1b
- mov r4, #0x79
- lsl r3, r3, #0x1
- strh r4, [r2, r3]
- mov r3, #0x7a
- lsl r0, r0, #0x1
- strh r3, [r2, r0]
-_02034706:
- pop {r3-r4}
- bx lr
- nop
-_0203470C: .word 0x00000A92
-
- thumb_func_start FUN_02034710
-FUN_02034710: ; 0x02034710
- push {r3, lr}
- ldr r1, _02034720 ; =0x0000022F
- cmp r0, r1
- blo _0203471E
- bl ErrorHandling
- mov r0, #0x3
-_0203471E:
- pop {r3, pc}
- .balign 4
-_02034720: .word 0x0000022F
-
- thumb_func_start FUN_02034724
-FUN_02034724: ; 0x02034724
- push {r3, lr}
- bl FUN_02034710
- mov r1, #0x18
- mul r1, r0
- ldr r0, _02034734 ; =0x020EEDBC
- ldrb r0, [r0, r1]
- pop {r3, pc}
- .balign 4
-_02034734: .word 0x020EEDBC
-
- thumb_func_start FUN_02034738
-FUN_02034738: ; 0x02034738
- push {r3, lr}
- bl FUN_02034710
- mov r1, #0x18
- mul r1, r0
- ldr r0, _02034748 ; =0x020EEDBD
- ldrb r0, [r0, r1]
- pop {r3, pc}
- .balign 4
-_02034748: .word 0x020EEDBD
-
- thumb_func_start FUN_0203474C
-FUN_0203474C: ; 0x0203474C
- push {r3, lr}
- bl FUN_02034710
- mov r1, #0x18
- mul r1, r0
- ldr r0, _0203476C ; =0x020EEDBE
- ldrh r0, [r0, r1]
- cmp r0, #0x16
- bne _02034768
- ldr r1, _02034770 ; =0x020ECAC0
- ldrb r1, [r1, #0x0]
- cmp r1, #0xb
- bne _02034768
- mov r0, #0x17
-_02034768:
- pop {r3, pc}
- nop
-_0203476C: .word 0x020EEDBE
-_02034770: .word 0x020ECAC0
-
- thumb_func_start FUN_02034774
-FUN_02034774: ; 0x02034774
- push {r3, lr}
- bl FUN_02034710
- mov r1, #0x18
- mul r1, r0
- ldr r0, _02034784 ; =0x020EEDC4
- ldrh r0, [r0, r1]
- pop {r3, pc}
- .balign 4
-_02034784: .word 0x020EEDC4
-
- thumb_func_start FUN_02034788
-FUN_02034788: ; 0x02034788
- push {r3, lr}
- bl FUN_02034710
- mov r1, #0x18
- mul r1, r0
- ldr r0, _02034798 ; =0x020EEDC0
- ldrh r0, [r0, r1]
- pop {r3, pc}
- .balign 4
-_02034798: .word 0x020EEDC0
-
- thumb_func_start FUN_0203479C
-FUN_0203479C: ; 0x0203479C
- push {r3, lr}
- bl FUN_02034710
- mov r1, #0x18
- mul r1, r0
- ldr r0, _020347AC ; =0x020EEDC2
- ldrh r0, [r0, r1]
- pop {r3, pc}
- .balign 4
-_020347AC: .word 0x020EEDC2
-
- thumb_func_start FUN_020347B0
-FUN_020347B0: ; 0x020347B0
- push {r3, lr}
- bl FUN_02034710
- mov r1, #0x18
- mul r1, r0
- ldr r0, _020347C0 ; =0x020EEDC6
- ldrh r0, [r0, r1]
- pop {r3, pc}
- .balign 4
-_020347C0: .word 0x020EEDC6
-
- thumb_func_start FUN_020347C4
-FUN_020347C4: ; 0x020347C4
- push {r3, lr}
- bl FUN_02034710
- mov r1, #0x18
- mul r1, r0
- ldr r0, _020347D4 ; =0x020EEDC8
- ldrh r0, [r0, r1]
- pop {r3, pc}
- .balign 4
-_020347D4: .word 0x020EEDC8
-
- thumb_func_start FUN_020347D8
-FUN_020347D8: ; 0x020347D8
- push {r3, lr}
- bl FUN_02034710
- mov r1, #0x18
- mul r1, r0
- ldr r0, _020347F4 ; =0x020EEDCA
- ldrh r1, [r0, r1]
- ldr r0, _020347F8 ; =0x0000FFFF
- cmp r1, r0
- beq _020347F0
- mov r0, #0x1
- pop {r3, pc}
-_020347F0:
- mov r0, #0x0
- pop {r3, pc}
- .balign 4
-_020347F4: .word 0x020EEDCA
-_020347F8: .word 0x0000FFFF
-
- thumb_func_start FUN_020347FC
-FUN_020347FC: ; 0x020347FC
- push {r3, lr}
- bl FUN_02034710
- mov r1, #0x18
- mul r1, r0
- ldr r0, _0203480C ; =0x020EEDCA
- ldrh r0, [r0, r1]
- pop {r3, pc}
- .balign 4
-_0203480C: .word 0x020EEDCA
-
- thumb_func_start FUN_02034810
-FUN_02034810: ; 0x02034810
- push {r3, lr}
- bl FUN_02034710
- mov r1, #0x18
- mul r1, r0
- ldr r0, _02034820 ; =0x020EEDCC
- ldrh r0, [r0, r1]
- pop {r3, pc}
- .balign 4
-_02034820: .word 0x020EEDCC
-
- thumb_func_start FUN_02034824
-FUN_02034824: ; 0x02034824
- push {r3, lr}
- bl FUN_02034710
- mov r1, #0x18
- mul r1, r0
- ldr r0, _02034834 ; =0x020EEDCE
- ldrh r0, [r0, r1]
- pop {r3, pc}
- .balign 4
-_02034834: .word 0x020EEDCE
-
- thumb_func_start FUN_02034838
-FUN_02034838: ; 0x02034838
- push {r3, lr}
- bl FUN_02034710
- mov r1, #0x18
- mul r1, r0
- ldr r0, _02034848 ; =0x020EEDD0
- ldrb r0, [r0, r1]
- pop {r3, pc}
- .balign 4
-_02034848: .word 0x020EEDD0
-
- thumb_func_start FUN_0203484C
-FUN_0203484C: ; 0x0203484C
- push {r3, lr}
- bl FUN_02034710
- mov r1, #0x18
- mul r1, r0
- ldr r0, _0203485C ; =0x020EEDD1
- ldrb r0, [r0, r1]
- pop {r3, pc}
- .balign 4
-_0203485C: .word 0x020EEDD1
-
- thumb_func_start FUN_02034860
-FUN_02034860: ; 0x02034860
- push {r3, lr}
- bl FUN_02034710
- mov r1, #0x18
- mul r1, r0
- ldr r0, _02034878 ; =0x020EEDBC
- add r0, r0, r1
- ldrb r0, [r0, #0x17]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1c
- pop {r3, pc}
- nop
-_02034878: .word 0x020EEDBC
-
- thumb_func_start FUN_0203487C
-FUN_0203487C: ; 0x0203487C
- push {r3, lr}
- bl FUN_02034710
- mov r1, #0x18
- mul r1, r0
- ldr r0, _02034894 ; =0x020EEDBC
- add r0, r0, r1
- ldrb r0, [r0, #0x17]
- lsl r0, r0, #0x19
- lsr r0, r0, #0x1f
- pop {r3, pc}
- nop
-_02034894: .word 0x020EEDBC
-
- thumb_func_start FUN_02034898
-FUN_02034898: ; 0x02034898
- push {r3, lr}
- bl FUN_02034710
- mov r1, #0x18
- mul r1, r0
- ldr r0, _020348B0 ; =0x020EEDBC
- add r0, r0, r1
- ldrb r0, [r0, #0x17]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x1f
- pop {r3, pc}
- nop
-_020348B0: .word 0x020EEDBC
-
- thumb_func_start FUN_020348B4
-FUN_020348B4: ; 0x020348B4
- push {r3, lr}
- bl FUN_02034710
- mov r1, #0x18
- mul r1, r0
- ldr r0, _020348CC ; =0x020EEDBC
- add r0, r0, r1
- ldrb r0, [r0, #0x17]
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x1f
- pop {r3, pc}
- nop
-_020348CC: .word 0x020EEDBC
-
- thumb_func_start FUN_020348D0
-FUN_020348D0: ; 0x020348D0
- push {r3, lr}
- bl FUN_02034710
- mov r1, #0x18
- mul r1, r0
- ldr r0, _020348E0 ; =0x020EEDD2
- ldrb r0, [r0, r1]
- pop {r3, pc}
- .balign 4
-_020348E0: .word 0x020EEDD2
-
- thumb_func_start FUN_020348E4
-FUN_020348E4: ; 0x020348E4
- push {r4, lr}
- add r4, r0, #0x0
- bl FUN_02034898
- cmp r0, #0x0
- bne _020348F4
- mov r0, #0x0
- pop {r4, pc}
-_020348F4:
- add r0, r4, #0x0
- bl FUN_020348D0
- cmp r0, #0x1
- beq _02034902
- mov r0, #0x1
- pop {r4, pc}
-_02034902:
- mov r0, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02034908
-FUN_02034908: ; 0x02034908
- push {r3, lr}
- bl FUN_0203474C
- cmp r0, #0x0
- bne _02034916
- mov r0, #0x1
- pop {r3, pc}
-_02034916:
- mov r0, #0x0
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_0203491C
-FUN_0203491C: ; 0x0203491C
- push {r3, lr}
- bl FUN_020348D0
- cmp r0, #0x5
- bne _0203492A
- mov r0, #0x1
- pop {r3, pc}
-_0203492A:
- mov r0, #0x0
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02034930
-FUN_02034930: ; 0x02034930
- push {r3, lr}
- bl FUN_020348D0
- cmp r0, #0x3
- bne _0203493E
- mov r0, #0x1
- pop {r3, pc}
-_0203493E:
- mov r0, #0x0
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02034944
-FUN_02034944: ; 0x02034944
- push {r4, lr}
- add r4, r0, #0x0
- bl FUN_020348D0
- cmp r0, #0x4
- beq _0203495A
- add r0, r4, #0x0
- bl FUN_020348D0
- cmp r0, #0x5
- bne _0203495E
-_0203495A:
- mov r0, #0x1
- pop {r4, pc}
-_0203495E:
- mov r0, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02034964
-FUN_02034964: ; 0x02034964
- push {r4, lr}
- add r4, r0, #0x0
- bl FUN_020348D0
- cmp r0, #0x1
- beq _0203497A
- add r0, r4, #0x0
- bl FUN_020348D0
- cmp r0, #0x2
- bne _0203497E
-_0203497A:
- mov r0, #0x1
- pop {r4, pc}
-_0203497E:
- mov r0, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02034984
-FUN_02034984: ; 0x02034984
- push {r3, lr}
- bl FUN_0203491C
- cmp r0, #0x0
- beq _02034992
- mov r0, #0x1
- pop {r3, pc}
-_02034992:
- mov r0, #0x0
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02034998
-FUN_02034998: ; 0x02034998
- ldr r1, _020349A8 ; =0x000001D2
- cmp r0, r1
- bne _020349A2
- mov r0, #0x1
- bx lr
-_020349A2:
- mov r0, #0x0
- bx lr
- nop
-_020349A8: .word 0x000001D2
-
- thumb_func_start FUN_020349AC
-FUN_020349AC: ; 0x020349AC
- cmp r0, #0xdb
- bne _020349B4
- mov r0, #0x1
- bx lr
-_020349B4:
- mov r0, #0x0
- bx lr
-
- thumb_func_start FUN_020349B8
-FUN_020349B8: ; 0x020349B8
- ldr r1, _020349C8 ; =0x0000011F
- cmp r0, r1
- bne _020349C2
- mov r0, #0x1
- bx lr
-_020349C2:
- mov r0, #0x0
- bx lr
- nop
-_020349C8: .word 0x0000011F
-
- thumb_func_start FUN_020349CC
-FUN_020349CC: ; 0x020349CC
- cmp r0, #0xfd
- bne _020349D4
- mov r0, #0x1
- bx lr
-_020349D4:
- mov r0, #0x0
- bx lr
-
- thumb_func_start FUN_020349D8
-FUN_020349D8: ; 0x020349D8
- cmp r0, #0xdc
- bne _020349E0
- mov r0, #0x1
- bx lr
-_020349E0:
- mov r0, #0x0
- bx lr
-
- thumb_func_start FUN_020349E4
-FUN_020349E4: ; 0x020349E4
- ldr r3, _02034A00 ; =0x020EED54
- mov r2, #0x0
-_020349E8:
- ldrh r1, [r3, #0x0]
- cmp r0, r1
- bne _020349F2
- mov r0, #0x1
- bx lr
-_020349F2:
- add r2, r2, #0x1
- add r3, r3, #0x2
- cmp r2, #0x12
- blo _020349E8
- mov r0, #0x0
- bx lr
- nop
-_02034A00: .word 0x020EED54
-
- thumb_func_start FUN_02034A04
-FUN_02034A04: ; 0x02034A04
- ldr r3, _02034A24 ; =0x020EED78
- mov r2, #0x0
-_02034A08:
- ldrh r1, [r3, #0x0]
- cmp r0, r1
- bne _02034A18
- add r0, r2, #0x1
- lsl r1, r0, #0x1
- ldr r0, _02034A24 ; =0x020EED78
- ldrh r0, [r0, r1]
- bx lr
-_02034A18:
- add r2, r2, #0x2
- add r3, r3, #0x4
- cmp r2, #0x22
- blo _02034A08
- mov r0, #0x0
- bx lr
- .balign 4
-_02034A24: .word 0x020EED78
-
- thumb_func_start FUN_02034A28
-FUN_02034A28: ; 0x02034A28
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldr r0, [r5, #0x14]
- add r4, r1, #0x0
- cmp r0, #0x0
- beq _02034A38
- bl ErrorHandling
-_02034A38:
- ldr r1, _02034A44 ; =0x00000AC8
- add r0, r4, #0x0
- bl FUN_02016998
- str r0, [r5, #0x14]
- pop {r3-r5, pc}
- .balign 4
-_02034A44: .word 0x00000AC8
-
- thumb_func_start FUN_02034A48
-FUN_02034A48: ; 0x02034A48
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, [r4, #0x14]
- cmp r0, #0x0
- bne _02034A56
- bl ErrorHandling
-_02034A56:
- ldr r0, [r4, #0x14]
- bl FUN_02016A18
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02034A60
-FUN_02034A60: ; 0x02034A60
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldr r0, [r5, #0x14]
- add r4, r1, #0x0
- cmp r0, #0x0
- bne _02034A70
- bl ErrorHandling
-_02034A70:
- ldr r0, [r5, #0x14]
- add r1, r4, #0x0
- bl FUN_02034A98
- ldr r0, [r5, #0x14]
- bl FUN_02034C50
- mov r0, #0x92
- ldr r1, [r5, #0x14]
- lsl r0, r0, #0x4
- add r0, r1, r0
- add r1, r4, #0x0
- bl FUN_02034CB4
- ldr r0, [r5, #0x14]
- add r1, r4, #0x0
- bl FUN_02034CEC
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02034A98
-FUN_02034A98: ; 0x02034A98
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r0, r1, #0x0
- bl FUN_02034810
- add r4, r0, #0x0
- mov r0, #0x20
- add r1, r4, #0x0
- bl LoadFromNARC_7
- mov r1, #0x2
- lsl r1, r1, #0xa
- cmp r0, r1
- blo _02034AB8
- bl ErrorHandling
-_02034AB8:
- add r5, #0x20
- add r0, r5, #0x0
- mov r1, #0x20
- add r2, r4, #0x0
- bl LoadFromNARC
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02034AC8
-FUN_02034AC8: ; 0x02034AC8
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldr r0, [r5, #0x14]
- ldr r4, [r0, #0x4]
- cmp r0, #0x0
- bne _02034AD8
- bl ErrorHandling
-_02034AD8:
- cmp r4, #0x0
- beq _02034AEC
- ldr r1, [r5, #0x1c]
- ldr r3, [r5, #0x14]
- ldr r0, [r5, #0x34]
- ldr r1, [r1, #0x0]
- ldr r3, [r3, #0x14]
- add r2, r4, #0x0
- bl FUN_02057BAC
-_02034AEC:
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02034AF0
-FUN_02034AF0: ; 0x02034AF0
- ldr r0, [r0, #0x14]
- ldr r0, [r0, #0x10]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02034AF8
-FUN_02034AF8: ; 0x02034AF8
- ldr r0, [r0, #0x14]
- ldr r0, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02034B00
-FUN_02034B00: ; 0x02034B00
- ldr r2, [r0, #0x14]
- ldr r0, [r2, #0x8]
- cmp r1, r0
- blo _02034B0C
- mov r0, #0x0
- bx lr
-_02034B0C:
- mov r0, #0xc
- ldr r2, [r2, #0x18]
- mul r0, r1
- add r0, r2, r0
- bx lr
- .balign 4
-
- thumb_func_start FUN_02034B18
-FUN_02034B18: ; 0x02034B18
- push {r4-r7}
- ldr r5, [r0, #0x14]
- mov r3, #0x0
- ldr r0, [r5, #0x8]
- cmp r0, #0x0
- bls _02034B4A
- ldr r6, [r5, #0x18]
- add r4, r3, #0x0
- add r0, r6, #0x0
-_02034B2A:
- ldrh r7, [r0, #0x0]
- cmp r1, r7
- bne _02034B3E
- add r7, r6, r4
- ldrh r7, [r7, #0x2]
- cmp r2, r7
- bne _02034B3E
- add r0, r3, #0x0
- pop {r4-r7}
- bx lr
-_02034B3E:
- ldr r7, [r5, #0x8]
- add r3, r3, #0x1
- add r0, #0xc
- add r4, #0xc
- cmp r3, r7
- blo _02034B2A
-_02034B4A:
- mov r0, #0x0
- mvn r0, r0
- pop {r4-r7}
- bx lr
- .balign 4
-
- thumb_func_start FUN_02034B54
-FUN_02034B54: ; 0x02034B54
- ldr r0, [r0, #0x14]
- ldr r0, [r0, #0xc]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02034B5C
-FUN_02034B5C: ; 0x02034B5C
- ldr r0, [r0, #0x14]
- ldr r0, [r0, #0x1c]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02034B64
-FUN_02034B64: ; 0x02034B64
- ldr r0, [r0, #0x14]
- ldr r0, [r0, #0x4]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02034B6C
-FUN_02034B6C: ; 0x02034B6C
- ldr r0, [r0, #0x14]
- ldr r0, [r0, #0x14]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02034B74
-FUN_02034B74: ; 0x02034B74
- push {r3-r7, lr}
- ldr r0, [r0, #0x14]
- add r4, r1, #0x0
- ldr r5, [r0, #0x4]
- add r7, r2, #0x0
- add r1, r3, #0x0
- mov r2, #0x0
- ldr r3, [r0, #0x14]
- cmp r5, #0x0
- bls _02034BA4
- add r6, r3, #0x0
-_02034B8A:
- ldrh r0, [r6, #0x0]
- cmp r4, r0
- bne _02034B9C
- lsl r0, r2, #0x5
- add r0, r3, r0
- strh r7, [r0, #0x18]
- strh r1, [r0, #0x1a]
- mov r0, #0x1
- pop {r3-r7, pc}
-_02034B9C:
- add r2, r2, #0x1
- add r6, #0x20
- cmp r2, r5
- blo _02034B8A
-_02034BA4:
- bl ErrorHandling
- mov r0, #0x0
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02034BAC
-FUN_02034BAC: ; 0x02034BAC
- push {r4-r6, lr}
- ldr r0, [r0, #0x14]
- mov r3, #0x0
- ldr r5, [r0, #0x4]
- ldr r4, [r0, #0x14]
- cmp r5, #0x0
- bls _02034BD4
- add r6, r4, #0x0
-_02034BBC:
- ldrh r0, [r6, #0x0]
- cmp r1, r0
- bne _02034BCC
- lsl r0, r3, #0x5
- add r0, r4, r0
- strh r2, [r0, #0xc]
- mov r0, #0x1
- pop {r4-r6, pc}
-_02034BCC:
- add r3, r3, #0x1
- add r6, #0x20
- cmp r3, r5
- blo _02034BBC
-_02034BD4:
- bl ErrorHandling
- mov r0, #0x0
- pop {r4-r6, pc}
-
- thumb_func_start FUN_02034BDC
-FUN_02034BDC: ; 0x02034BDC
- push {r4-r6, lr}
- ldr r0, [r0, #0x14]
- mov r3, #0x0
- ldr r5, [r0, #0x4]
- ldr r4, [r0, #0x14]
- cmp r5, #0x0
- bls _02034C04
- add r6, r4, #0x0
-_02034BEC:
- ldrh r0, [r6, #0x0]
- cmp r1, r0
- bne _02034BFC
- lsl r0, r3, #0x5
- add r0, r4, r0
- strh r2, [r0, #0x4]
- mov r0, #0x1
- pop {r4-r6, pc}
-_02034BFC:
- add r3, r3, #0x1
- add r6, #0x20
- cmp r3, r5
- blo _02034BEC
-_02034C04:
- bl ErrorHandling
- mov r0, #0x0
- pop {r4-r6, pc}
-
- thumb_func_start FUN_02034C0C
-FUN_02034C0C: ; 0x02034C0C
- push {r3-r4}
- ldr r0, [r0, #0x14]
- ldr r4, [r0, #0x18]
- mov r0, #0xc
- mul r0, r1
- strh r2, [r4, r0]
- add r0, r4, r0
- strh r3, [r0, #0x2]
- mov r0, #0x1
- pop {r3-r4}
- bx lr
- .balign 4
-
- thumb_func_start FUN_02034C24
-FUN_02034C24: ; 0x02034C24
- ldr r0, [r0, #0x14]
- ldr r3, [r0, #0x18]
- mov r0, #0xc
- mul r0, r1
- add r0, r3, r0
- strh r2, [r0, #0x4]
- mov r0, #0x1
- bx lr
-
- thumb_func_start FUN_02034C34
-FUN_02034C34: ; 0x02034C34
- push {r4-r6, lr}
- add r5, r1, #0x0
- add r4, r2, #0x0
- add r6, r3, #0x0
- bl FUN_02034AF0
- mov r1, #0x14
- mul r1, r5
- add r0, r0, r1
- str r4, [r0, #0x4]
- str r6, [r0, #0x8]
- mov r0, #0x1
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02034C50
-FUN_02034C50: ; 0x02034C50
- add r1, r0, #0x0
- ldr r2, [r0, #0x20]
- add r1, #0x20
- add r1, r1, #0x4
- str r2, [r0, #0x0]
- cmp r2, #0x0
- beq _02034C62
- str r1, [r0, #0x10]
- b _02034C66
-_02034C62:
- mov r2, #0x0
- str r2, [r0, #0x10]
-_02034C66:
- ldr r3, [r0, #0x0]
- mov r2, #0x14
- mul r2, r3
- add r3, r1, r2
- ldr r2, [r1, r2]
- add r1, r3, #0x4
- str r2, [r0, #0x4]
- cmp r2, #0x0
- beq _02034C7C
- str r1, [r0, #0x14]
- b _02034C80
-_02034C7C:
- mov r2, #0x0
- str r2, [r0, #0x14]
-_02034C80:
- ldr r2, [r0, #0x4]
- lsl r2, r2, #0x5
- add r3, r1, r2
- ldr r2, [r1, r2]
- add r1, r3, #0x4
- str r2, [r0, #0x8]
- cmp r2, #0x0
- beq _02034C94
- str r1, [r0, #0x18]
- b _02034C98
-_02034C94:
- mov r2, #0x0
- str r2, [r0, #0x18]
-_02034C98:
- ldr r3, [r0, #0x8]
- mov r2, #0xc
- mul r2, r3
- add r3, r1, r2
- ldr r1, [r1, r2]
- str r1, [r0, #0xc]
- cmp r1, #0x0
- beq _02034CAE
- add r1, r3, #0x4
- str r1, [r0, #0x1c]
- bx lr
-_02034CAE:
- mov r1, #0x0
- str r1, [r0, #0x1c]
- bx lr
-
- thumb_func_start FUN_02034CB4
-FUN_02034CB4: ; 0x02034CB4
- push {r3-r5, lr}
- mov r2, #0x6a
- add r4, r1, #0x0
- mov r1, #0x0
- lsl r2, r2, #0x2
- add r5, r0, #0x0
- bl Call_FillMemWithValue
- add r0, r4, #0x0
- bl FUN_020347D8
- cmp r0, #0x0
- beq _02034CDE
- add r0, r4, #0x0
- bl FUN_020347FC
- add r2, r0, #0x0
- add r0, r5, #0x0
- mov r1, #0x25
- bl LoadFromNARC
-_02034CDE:
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02034CE0
-FUN_02034CE0: ; 0x02034CE0
- ldr r1, [r0, #0x14]
- mov r0, #0x92
- lsl r0, r0, #0x4
- add r0, r1, r0
- bx lr
- .balign 4
-
- thumb_func_start FUN_02034CEC
-FUN_02034CEC: ; 0x02034CEC
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r0, r1, #0x0
- bl FUN_0203479C
- mov r1, #0x82
- lsl r1, r1, #0x4
- mov r2, #0x1
- add r4, r0, #0x0
- mov r0, #0x0
- add r1, r5, r1
- lsl r2, r2, #0x8
- bl MIi_CpuClearFast
- mov r0, #0xa
- add r1, r4, #0x0
- bl LoadFromNARC_7
- mov r1, #0x1
- lsl r1, r1, #0x8
- cmp r0, r1
- blo _02034D1C
- bl ErrorHandling
-_02034D1C:
- mov r0, #0x82
- lsl r0, r0, #0x4
- add r0, r5, r0
- mov r1, #0xa
- add r2, r4, #0x0
- bl LoadFromNARC
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02034D2C
-FUN_02034D2C: ; 0x02034D2C
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, [r4, #0x14]
- cmp r0, #0x0
- bne _02034D3A
- bl ErrorHandling
-_02034D3A:
- mov r0, #0x82
- ldr r1, [r4, #0x14]
- lsl r0, r0, #0x4
- add r0, r1, r0
- pop {r4, pc}
-
- thumb_func_start FUN_02034D44
-FUN_02034D44: ; 0x02034D44
- push {r4-r7}
- ldr r0, [r0, #0x14]
- mov r3, #0x0
- ldr r4, [r0, #0x4]
- cmp r4, #0x0
- bls _02034D76
- ldr r6, [r0, #0x14]
- add r5, r3, #0x0
- add r4, r6, #0x0
-_02034D56:
- ldrh r7, [r4, #0x18]
- cmp r1, r7
- bne _02034D6A
- add r7, r6, r5
- ldrh r7, [r7, #0x1a]
- cmp r2, r7
- bne _02034D6A
- mov r0, #0x0
- pop {r4-r7}
- bx lr
-_02034D6A:
- ldr r7, [r0, #0x4]
- add r3, r3, #0x1
- add r4, #0x20
- add r5, #0x20
- cmp r3, r7
- blo _02034D56
-_02034D76:
- mov r0, #0x1
- pop {r4-r7}
- bx lr
-
- thumb_func_start FUN_02034D7C
-FUN_02034D7C: ; 0x02034D7C
- mov r0, #0xa0
- bx lr
-
- thumb_func_start FUN_02034D80
-FUN_02034D80: ; 0x02034D80
- mov r0, #0x5
- lsl r0, r0, #0xa
- bx lr
- .balign 4
-
- thumb_func_start FUN_02034D88
-FUN_02034D88: ; 0x02034D88
- ldr r3, _02034D94 ; =MIi_CpuClear32
- mov r2, #0x5
- add r1, r0, #0x0
- mov r0, #0x0
- lsl r2, r2, #0xa
- bx r3
- .balign 4
-_02034D94: .word MIi_CpuClear32
-
- thumb_func_start FUN_02034D98
-FUN_02034D98: ; 0x02034D98
- push {r4, lr}
- add r4, r0, #0x0
- mov r1, #0x0
- mov r2, #0xa0
- bl Call_FillMemWithValue
- add r0, r4, #0x0
- add r0, #0x6c
- bl FUN_0204ADE0
- add r0, r4, #0x0
- add r0, #0x8c
- bl FUN_02055468
- bl FUN_02034E8C
- add r4, #0x68
- strh r0, [r4, #0x0]
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02034DC0
-FUN_02034DC0: ; 0x02034DC0
- bx lr
- .balign 4
-
- thumb_func_start FUN_02034DC4
-FUN_02034DC4: ; 0x02034DC4
- add r0, #0x14
- bx lr
-
- thumb_func_start FUN_02034DC8
-FUN_02034DC8: ; 0x02034DC8
- add r0, #0x28
- bx lr
-
- thumb_func_start FUN_02034DCC
-FUN_02034DCC: ; 0x02034DCC
- add r0, #0x50
- bx lr
-
- thumb_func_start FUN_02034DD0
-FUN_02034DD0: ; 0x02034DD0
- add r0, #0x3c
- bx lr
-
- thumb_func_start FUN_02034DD4
-FUN_02034DD4: ; 0x02034DD4
- add r3, r1, #0x0
- add r2, r0, #0x0
- ldmia r3!, {r0-r1}
- add r2, #0x3c
- stmia r2!, {r0-r1}
- ldmia r3!, {r0-r1}
- stmia r2!, {r0-r1}
- ldr r0, [r3, #0x0]
- str r0, [r2, #0x0]
- bx lr
-
- thumb_func_start FUN_02034DE8
-FUN_02034DE8: ; 0x02034DE8
- add r0, #0x64
- bx lr
-
- thumb_func_start FUN_02034DEC
-FUN_02034DEC: ; 0x02034DEC
- add r0, #0x66
- ldrh r0, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02034DF4
-FUN_02034DF4: ; 0x02034DF4
- add r0, #0x66
- strh r1, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02034DFC
-FUN_02034DFC: ; 0x02034DFC
- add r0, #0x68
- ldrh r0, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02034E04
-FUN_02034E04: ; 0x02034E04
- add r0, #0x68
- strh r1, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02034E0C
-FUN_02034E0C: ; 0x02034E0C
- add r0, #0x6c
- bx lr
-
- thumb_func_start FUN_02034E10
-FUN_02034E10: ; 0x02034E10
- add r0, #0x6a
- ldrb r0, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02034E18
-FUN_02034E18: ; 0x02034E18
- add r0, #0x6a
- strb r1, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02034E20
-FUN_02034E20: ; 0x02034E20
- add r0, #0x8c
- bx lr
-
- thumb_func_start FUN_02034E24
-FUN_02034E24: ; 0x02034E24
- add r0, #0x98
- bx lr
-
- thumb_func_start FUN_02034E28
-FUN_02034E28: ; 0x02034E28
- add r0, #0x96
- bx lr
-
- thumb_func_start FUN_02034E2C
-FUN_02034E2C: ; 0x02034E2C
- add r0, #0x94
- bx lr
-
- thumb_func_start FUN_02034E30
-FUN_02034E30: ; 0x02034E30
- ldr r3, _02034E38 ; =FUN_02022610
- mov r1, #0x6
- bx r3
- nop
-_02034E38: .word FUN_02022610
-
- thumb_func_start FUN_02034E3C
-FUN_02034E3C: ; 0x02034E3C
- ldr r3, _02034E44 ; =FUN_02022610
- mov r1, #0xb
- bx r3
- nop
-_02034E44: .word FUN_02022610
-
- thumb_func_start FUN_02034E48
-FUN_02034E48: ; 0x02034E48
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, [r4, #0xc]
- bl FUN_02034E3C
- add r2, r0, #0x0
- ldr r1, [r4, #0x34]
- add r0, r4, #0x0
- mov r3, #0x40
- bl FUN_02057800
- pop {r4, pc}
-
- thumb_func_start FUN_02034E60
-FUN_02034E60: ; 0x02034E60
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, [r4, #0xc]
- bl FUN_02034E3C
- add r1, r0, #0x0
- ldr r0, [r4, #0x34]
- mov r2, #0x40
- bl FUN_0205785C
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02034E78
-FUN_02034E78: ; 0x02034E78
- push {r3, lr}
- cmp r0, #0x0
- ble _02034E82
- cmp r0, #0x14
- bls _02034E88
-_02034E82:
- bl ErrorHandling
- mov r0, #0x1
-_02034E88:
- sub r0, r0, #0x1
- pop {r3, pc}
-
- thumb_func_start FUN_02034E8C
-FUN_02034E8C: ; 0x02034E8C
- mov r0, #0x1
- bx lr
-
- thumb_func_start FUN_02034E90
-FUN_02034E90: ; 0x02034E90
- push {r4, lr}
- add r4, r1, #0x0
- bl FUN_02034E78
- lsl r1, r0, #0x4
- ldr r0, _02034EB8 ; =0x020F222A
- ldrh r0, [r0, r1]
- str r0, [r4, #0x0]
- mov r0, #0x0
- mvn r0, r0
- str r0, [r4, #0x4]
- ldr r0, _02034EBC ; =0x020F222C
- ldrh r0, [r0, r1]
- str r0, [r4, #0x8]
- ldr r0, _02034EC0 ; =0x020F222E
- ldrh r0, [r0, r1]
- str r0, [r4, #0xc]
- mov r0, #0x1
- str r0, [r4, #0x10]
- pop {r4, pc}
- .balign 4
-_02034EB8: .word 0x020F222A
-_02034EBC: .word 0x020F222C
-_02034EC0: .word 0x020F222E
-
- thumb_func_start FUN_02034EC4
-FUN_02034EC4: ; 0x02034EC4
- push {r4, lr}
- add r4, r1, #0x0
- bl FUN_02034E78
- lsl r1, r0, #0x4
- ldr r0, _02034EEC ; =0x020F2224
- ldrh r0, [r0, r1]
- str r0, [r4, #0x0]
- mov r0, #0x0
- mvn r0, r0
- str r0, [r4, #0x4]
- ldr r0, _02034EF0 ; =0x020F2226
- ldrh r0, [r0, r1]
- str r0, [r4, #0x8]
- ldr r0, _02034EF4 ; =0x020F2228
- ldrh r0, [r0, r1]
- str r0, [r4, #0xc]
- mov r0, #0x0
- str r0, [r4, #0x10]
- pop {r4, pc}
- .balign 4
-_02034EEC: .word 0x020F2224
-_02034EF0: .word 0x020F2226
-_02034EF4: .word 0x020F2228
-
- thumb_func_start FUN_02034EF8
-FUN_02034EF8: ; 0x02034EF8
- ldr r3, _02034F18 ; =0x020F2224
- mov r2, #0x0
-_02034EFC:
- ldrh r1, [r3, #0x0]
- cmp r0, r1
- bne _02034F0C
- ldrb r1, [r3, #0xc]
- cmp r1, #0x0
- beq _02034F0C
- add r0, r2, #0x1
- bx lr
-_02034F0C:
- add r2, r2, #0x1
- add r3, #0x10
- cmp r2, #0x14
- blo _02034EFC
- mov r0, #0x0
- bx lr
- .balign 4
-_02034F18: .word 0x020F2224
-
- thumb_func_start FUN_02034F1C
-FUN_02034F1C: ; 0x02034F1C
- ldr r3, _02034F3C ; =0x020F2224
- mov r2, #0x0
-_02034F20:
- ldrh r1, [r3, #0x6]
- cmp r0, r1
- bne _02034F30
- ldrb r1, [r3, #0xc]
- cmp r1, #0x0
- beq _02034F30
- add r0, r2, #0x1
- bx lr
-_02034F30:
- add r2, r2, #0x1
- add r3, #0x10
- cmp r2, #0x14
- blo _02034F20
- mov r0, #0x0
- bx lr
- .balign 4
-_02034F3C: .word 0x020F2224
-
- thumb_func_start FUN_02034F40
-FUN_02034F40: ; 0x02034F40
- push {r3-r6}
- asr r3, r1, #0x4
- lsr r3, r3, #0x1b
- add r3, r1, r3
- asr r1, r2, #0x4
- lsr r1, r1, #0x1b
- add r1, r2, r1
- mov r4, #0x0
- asr r2, r1, #0x5
- ldr r5, _02034F84 ; =0x020F2224
- asr r3, r3, #0x5
- add r1, r4, #0x0
-_02034F58:
- ldrh r6, [r5, #0x6]
- cmp r0, r6
- bne _02034F76
- ldrh r6, [r5, #0x8]
- add r4, r1, #0x1
- lsr r6, r6, #0x5
- cmp r3, r6
- bne _02034F76
- ldrh r6, [r5, #0xa]
- lsr r6, r6, #0x5
- cmp r2, r6
- bne _02034F76
- add r0, r4, #0x0
- pop {r3-r6}
- bx lr
-_02034F76:
- add r1, r1, #0x1
- add r5, #0x10
- cmp r1, #0x14
- blo _02034F58
- add r0, r4, #0x0
- pop {r3-r6}
- bx lr
- .balign 4
-_02034F84: .word 0x020F2224
-
- thumb_func_start FUN_02034F88
-FUN_02034F88: ; 0x02034F88
- push {r4, lr}
- ldr r3, _02034FB8 ; =0x020F2224
- mov r4, #0x0
-_02034F8E:
- ldrh r2, [r3, #0x6]
- cmp r1, r2
- bne _02034FAE
- ldrb r2, [r3, #0xd]
- cmp r2, #0x0
- beq _02034FAE
- ldr r0, [r0, #0xc]
- bl FUN_020462AC
- ldr r2, _02034FBC ; =0x020F2232
- lsl r3, r4, #0x4
- ldrh r2, [r2, r3]
- mov r1, #0x1
- bl FUN_0205F2E4
- pop {r4, pc}
-_02034FAE:
- add r4, r4, #0x1
- add r3, #0x10
- cmp r4, #0x14
- blo _02034F8E
- pop {r4, pc}
- .balign 4
-_02034FB8: .word 0x020F2224
-_02034FBC: .word 0x020F2232
-
- thumb_func_start FUN_02034FC0
-FUN_02034FC0: ; 0x02034FC0
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r0, r1, #0x0
- bl FUN_02034E78
- add r4, r0, #0x0
- ldr r0, [r5, #0xc]
- bl FUN_020462AC
- ldr r2, _02034FE0 ; =0x020F2232
- lsl r3, r4, #0x4
- ldrh r2, [r2, r3]
- mov r1, #0x2
- bl FUN_0205F2E4
- pop {r3-r5, pc}
- .balign 4
-_02034FE0: .word 0x020F2232
-
- thumb_func_start FUN_02034FE4
-FUN_02034FE4: ; 0x02034FE4
- push {r3-r7, lr}
- add r7, r0, #0x0
- add r0, r1, #0x0
- bl FUN_02034838
- add r4, r0, #0x0
- cmp r4, #0x18
- blt _0203505C
- ldr r0, [r7, #0xc]
- bl FUN_02023794
- add r6, r0, #0x0
- add r0, r6, #0x4
- bl FUN_02012710
- sub r5, r0, #0x1
- bmi _0203500C
- ldr r0, _02035060 ; =0x0000016E
- cmp r5, r0
- blt _02035010
-_0203500C:
- bl ErrorHandling
-_02035010:
- ldr r0, [r6, #0x8]
- cmp r0, #0x2
- bls _02035044
- ldr r6, [r6, #0x4]
- mov r0, #0x3
- tst r0, r6
- bne _0203502A
- add r0, r6, #0x0
- mov r1, #0x64
- bl _u32_div_f
- cmp r1, #0x0
- bne _02035038
-_0203502A:
- mov r1, #0x19
- add r0, r6, #0x0
- lsl r1, r1, #0x4
- bl _u32_div_f
- cmp r1, #0x0
- bne _0203503C
-_02035038:
- mov r0, #0x1
- b _0203503E
-_0203503C:
- mov r0, #0x0
-_0203503E:
- cmp r0, #0x0
- bne _02035044
- add r5, r5, #0x1
-_02035044:
- add r0, r7, #0x0
- bl FUN_0204B33C
- cmp r0, #0x0
- beq _02035050
- mov r5, #0x1
-_02035050:
- lsl r0, r5, #0x2
- sub r4, #0x18
- add r0, r5, r0
- add r1, r4, r0
- ldr r0, _02035064 ; =0x020F2364
- ldrb r0, [r0, r1]
-_0203505C:
- pop {r3-r7, pc}
- nop
-_02035060: .word 0x0000016E
-_02035064: .word 0x020F2364
-
- thumb_func_start FUN_02035068
-FUN_02035068: ; 0x02035068
- push {r3, lr}
- ldr r0, [r0, #0x1c]
- ldr r0, [r0, #0x0]
- bl FUN_02034824
- cmp r0, #0x0
- beq _0203507A
- mov r0, #0x1
- pop {r3, pc}
-_0203507A:
- mov r0, #0x0
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02035080
-FUN_02035080: ; 0x02035080
- push {r3-r5, lr}
- add r5, r0, #0x0
- bl FUN_02035254
- add r4, r0, #0x0
- ldr r0, [r5, #0xc]
- bl FUN_020462AC
- bl FUN_0205F214
- cmp r0, #0x1
- bne _020350A6
- add r0, r5, #0x0
- bl FUN_020352C4
- mov r1, #0x7
- lsl r1, r1, #0x6
- str r0, [r4, r1]
- b _020350E6
-_020350A6:
- ldr r0, [r5, #0xc]
- bl FUN_020462AC
- bl FUN_0205F244
- cmp r0, #0x1
- bne _020350C2
- add r0, r5, #0x0
- bl FUN_020352C8
- mov r1, #0x7
- lsl r1, r1, #0x6
- str r0, [r4, r1]
- b _020350E6
-_020350C2:
- add r0, r5, #0x0
- bl FUN_02060144
- cmp r0, #0x1
- bne _020350DA
- add r0, r5, #0x0
- bl FUN_020352CC
- mov r1, #0x7
- lsl r1, r1, #0x6
- str r0, [r4, r1]
- b _020350E6
-_020350DA:
- add r0, r5, #0x0
- bl FUN_02035270
- mov r1, #0x7
- lsl r1, r1, #0x6
- str r0, [r4, r1]
-_020350E6:
- mov r0, #0x71
- mov r1, #0x0
- lsl r0, r0, #0x2
- str r1, [r4, r0]
- ldr r0, [r5, #0x38]
- bl FUN_02055B30
- cmp r0, #0x1
- bne _02035106
- ldr r0, [r5, #0x38]
- bl FUN_020552F8
- add r1, r0, #0x0
- ldr r0, [r5, #0x38]
- bl FUN_02055B8C
-_02035106:
- ldr r1, _02035114 ; =FUN_020352E4
- add r0, r5, #0x0
- add r2, r4, #0x0
- bl FUN_020463CC
- pop {r3-r5, pc}
- nop
-_02035114: .word FUN_020352E4
-
- thumb_func_start FUN_02035118
-FUN_02035118: ; 0x02035118
- push {r3-r5, lr}
- add r5, r0, #0x0
- bl FUN_02035254
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl FUN_020352D4
- mov r1, #0x7
- lsl r1, r1, #0x6
- str r0, [r4, r1]
- mov r2, #0x1
- add r0, r1, #0x4
- str r2, [r4, r0]
- ldr r0, [r5, #0x38]
- bl FUN_02055B30
- cmp r0, #0x1
- bne _0203514C
- ldr r0, [r5, #0x38]
- bl FUN_020552F8
- add r1, r0, #0x0
- ldr r0, [r5, #0x38]
- bl FUN_02055B8C
-_0203514C:
- ldr r1, _02035158 ; =FUN_020352E4
- add r0, r5, #0x0
- add r2, r4, #0x0
- bl FUN_020463CC
- pop {r3-r5, pc}
- .balign 4
-_02035158: .word FUN_020352E4
-
- thumb_func_start FUN_0203515C
-FUN_0203515C: ; 0x0203515C
- push {r3-r5, lr}
- add r5, r0, #0x0
- bl FUN_02035254
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl FUN_020352DC
- mov r1, #0x7
- lsl r1, r1, #0x6
- str r0, [r4, r1]
- mov r2, #0x0
- add r0, r1, #0x4
- str r2, [r4, r0]
- ldr r0, [r5, #0x38]
- bl FUN_02055B30
- cmp r0, #0x1
- bne _02035190
- ldr r0, [r5, #0x38]
- bl FUN_020552F8
- add r1, r0, #0x0
- ldr r0, [r5, #0x38]
- bl FUN_02055B8C
-_02035190:
- ldr r1, _0203519C ; =FUN_020352E4
- add r0, r5, #0x0
- add r2, r4, #0x0
- bl FUN_020463CC
- pop {r3-r5, pc}
- .balign 4
-_0203519C: .word FUN_020352E4
-
- thumb_func_start FUN_020351A0
-FUN_020351A0: ; 0x020351A0
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldr r0, _0203524C ; =0x000005FD
- bl FUN_020054C8
- bl FUN_02035254
- add r4, r0, #0x0
- mov r0, #0x71
- mov r1, #0x0
- lsl r0, r0, #0x2
- str r1, [r4, r0]
- ldr r0, [r5, #0xc]
- bl FUN_020462AC
- bl FUN_0205F214
- cmp r0, #0x1
- bne _020351D4
- add r0, r5, #0x0
- bl FUN_020352C4
- mov r1, #0x7
- lsl r1, r1, #0x6
- str r0, [r4, r1]
- b _02035240
-_020351D4:
- ldr r0, [r5, #0xc]
- bl FUN_020462AC
- bl FUN_0205F244
- cmp r0, #0x1
- bne _020351F0
- add r0, r5, #0x0
- bl FUN_020352C8
- mov r1, #0x7
- lsl r1, r1, #0x6
- str r0, [r4, r1]
- b _02035240
-_020351F0:
- add r0, r5, #0x0
- bl FUN_02060144
- cmp r0, #0x1
- bne _02035208
- add r0, r5, #0x0
- bl FUN_020352CC
- mov r1, #0x7
- lsl r1, r1, #0x6
- str r0, [r4, r1]
- b _02035240
-_02035208:
- ldr r0, [r5, #0x6c]
- cmp r0, #0x3
- bne _0203521C
- add r0, r5, #0x0
- bl FUN_020352DC
- mov r1, #0x7
- lsl r1, r1, #0x6
- str r0, [r4, r1]
- b _02035240
-_0203521C:
- cmp r0, #0x2
- bne _02035234
- add r0, r5, #0x0
- bl FUN_020352D4
- mov r1, #0x7
- lsl r1, r1, #0x6
- str r0, [r4, r1]
- mov r2, #0x1
- add r0, r1, #0x4
- str r2, [r4, r0]
- b _02035240
-_02035234:
- add r0, r5, #0x0
- bl FUN_02035270
- mov r1, #0x7
- lsl r1, r1, #0x6
- str r0, [r4, r1]
-_02035240:
- ldr r0, [r5, #0x10]
- ldr r1, _02035250 ; =FUN_020352E4
- add r2, r4, #0x0
- bl FUN_020463EC
- pop {r3-r5, pc}
- .balign 4
-_0203524C: .word 0x000005FD
-_02035250: .word FUN_020352E4
-
- thumb_func_start FUN_02035254
-FUN_02035254: ; 0x02035254
- push {r3, lr}
- mov r1, #0x2
- mov r0, #0xb
- lsl r1, r1, #0x8
- bl FUN_02016998
- mov r2, #0x0
- strh r2, [r0, #0x2a]
- mov r1, #0x7e
- strh r2, [r0, #0x28]
- lsl r1, r1, #0x2
- str r2, [r0, r1]
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02035270
-FUN_02035270: ; 0x02035270
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldr r0, [r5, #0xc]
- mov r4, #0x0
- bl FUN_02024DA0
- bl FUN_02024D64
- cmp r0, #0x0
- bne _02035288
- mov r0, #0x1
- orr r4, r0
-_02035288:
- ldr r0, [r5, #0xc]
- bl FUN_020462AC
- bl FUN_0205F388
- cmp r0, #0x0
- bne _0203529A
- mov r0, #0x2
- orr r4, r0
-_0203529A:
- ldr r0, [r5, #0xc]
- bl FUN_020462AC
- bl FUN_0205ECE0
- cmp r0, #0x0
- bne _020352AC
- mov r0, #0x4
- orr r4, r0
-_020352AC:
- ldr r0, [r5, #0x1c]
- ldr r0, [r0, #0x0]
- bl FUN_020349CC
- cmp r0, #0x1
- bne _020352BC
- mov r0, #0x6
- orr r4, r0
-_020352BC:
- mov r0, #0x6
- lsl r0, r0, #0x6
- orr r0, r4
- pop {r3-r5, pc}
-
- thumb_func_start FUN_020352C4
-FUN_020352C4: ; 0x020352C4
- mov r0, #0x90
- bx lr
-
- thumb_func_start FUN_020352C8
-FUN_020352C8: ; 0x020352C8
- mov r0, #0x94
- bx lr
-
- thumb_func_start FUN_020352CC
-FUN_020352CC: ; 0x020352CC
- ldr r0, _020352D0 ; =0x00000195
- bx lr
- .balign 4
-_020352D0: .word 0x00000195
-
- thumb_func_start FUN_020352D4
-FUN_020352D4: ; 0x020352D4
- mov r0, #0x11
- lsl r0, r0, #0x4
- bx lr
- .balign 4
-
- thumb_func_start FUN_020352DC
-FUN_020352DC: ; 0x020352DC
- ldr r0, _020352E0 ; =0x00000191
- bx lr
- .balign 4
-_020352E0: .word 0x00000191
-
- thumb_func_start FUN_020352E4
-FUN_020352E4: ; 0x020352E4
- push {r4-r6, lr}
- add r6, r0, #0x0
- bl FUN_02046528
- add r5, r0, #0x0
- add r0, r6, #0x0
- bl FUN_0204652C
- add r4, r0, #0x0
- ldrh r1, [r4, #0x2a]
- cmp r1, #0xf
- bhi _02035362
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #0x6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02035308: ; jump table (using 16-bit offset)
- .short _02035328 - _02035308 - 2; case 0
- .short _02035358 - _02035308 - 2; case 1
- .short _02035368 - _02035308 - 2; case 2
- .short _02035370 - _02035308 - 2; case 3
- .short _02035378 - _02035308 - 2; case 4
- .short _02035380 - _02035308 - 2; case 5
- .short _02035388 - _02035308 - 2; case 6
- .short _02035390 - _02035308 - 2; case 7
- .short _020353C0 - _02035308 - 2; case 8
- .short _020353D6 - _02035308 - 2; case 9
- .short _020353F6 - _02035308 - 2; case 10
- .short _02035412 - _02035308 - 2; case 11
- .short _02035398 - _02035308 - 2; case 12
- .short _02035440 - _02035308 - 2; case 13
- .short _02035478 - _02035308 - 2; case 14
- .short _02035432 - _02035308 - 2; case 15
-_02035328:
- ldr r0, [r5, #0x34]
- bl FUN_02058780
- mov r1, #0x73
- lsl r1, r1, #0x2
- add r0, r5, #0x0
- add r1, r4, r1
- bl FUN_0205CE80
- mov r1, #0x7a
- lsl r1, r1, #0x2
- add r0, r5, #0x0
- add r1, r4, r1
- bl FUN_02063964
- add r0, r6, #0x0
- bl FUN_0203549C
- add r0, r6, #0x0
- bl FUN_02035734
- mov r0, #0x1
- strh r0, [r4, #0x2a]
- b _02035484
-_02035358:
- add r0, r6, #0x0
- bl FUN_020358E4
- cmp r0, #0x0
- beq _02035364
-_02035362:
- b _02035484
-_02035364:
- mov r0, #0x0
- pop {r4-r6, pc}
-_02035368:
- add r0, r6, #0x0
- bl FUN_02035CA0
- b _02035484
-_02035370:
- add r0, r6, #0x0
- bl FUN_02035CDC
- b _02035484
-_02035378:
- add r0, r6, #0x0
- bl FUN_020365F0
- b _02035484
-_02035380:
- add r0, r6, #0x0
- bl FUN_02036644
- b _02035484
-_02035388:
- add r0, r6, #0x0
- bl FUN_02036E08
- b _02035484
-_02035390:
- add r0, r6, #0x0
- bl FUN_02036F1C
- b _02035484
-_02035398:
- add r0, r5, #0x0
- bl FUN_020464A4
- cmp r0, #0x0
- beq _02035484
- ldr r0, [r5, #0x34]
- bl FUN_02058780
- add r0, r6, #0x0
- bl FUN_0203549C
- add r0, r6, #0x0
- bl FUN_02035734
- mov r0, #0x1
- bl MOD05_021D7CA4
- mov r0, #0xe
- strh r0, [r4, #0x2a]
- b _02035484
-_020353C0:
- add r0, r5, #0x0
- bl FUN_020464A4
- cmp r0, #0x0
- beq _02035484
- mov r0, #0x1
- bl MOD05_021D7CA4
- mov r0, #0x9
- strh r0, [r4, #0x2a]
- b _02035484
-_020353D6:
- bl FUN_0200E308
- cmp r0, #0x0
- beq _02035484
- add r0, r4, #0x0
- add r1, r5, #0x0
- bl FUN_0203598C
- add r0, r4, #0x0
- bl FUN_02016A18
- ldr r0, [r5, #0x34]
- bl FUN_020587B0
- mov r0, #0x1
- pop {r4-r6, pc}
-_020353F6:
- add r0, r5, #0x0
- bl FUN_020464A4
- cmp r0, #0x0
- beq _02035484
- ldr r0, [r5, #0x34]
- bl FUN_02058780
- mov r0, #0x1
- bl MOD05_021D7CA4
- mov r0, #0xb
- strh r0, [r4, #0x2a]
- b _02035484
-_02035412:
- bl FUN_0200E308
- cmp r0, #0x0
- beq _02035484
- mov r2, #0x72
- lsl r2, r2, #0x2
- ldr r1, [r4, r2]
- add r2, #0x30
- ldr r2, [r4, r2]
- add r0, r6, #0x0
- bl FUN_020463EC
- add r0, r4, #0x0
- bl FUN_02016A18
- b _02035484
-_02035432:
- bl FUN_02016A18
- ldr r0, [r5, #0x34]
- bl FUN_020587B0
- mov r0, #0x1
- pop {r4-r6, pc}
-_02035440:
- add r1, r5, #0x0
- bl FUN_0203598C
- add r0, r4, #0x0
- bl FUN_02035718
- add r0, r4, #0x0
- mov r1, #0x1
- bl FUN_0200CCF8
- add r0, r4, #0x0
- bl FUN_02019178
- add r0, r6, #0x0
- bl FUN_020358A0
- ldr r0, [r5, #0x8]
- mov r1, #0x3
- bl FUN_0201AC68
- add r0, r4, #0x0
- bl FUN_02016A18
- ldr r0, [r5, #0x34]
- bl FUN_020587B0
- mov r0, #0x1
- pop {r4-r6, pc}
-_02035478:
- bl FUN_0200E308
- cmp r0, #0x0
- beq _02035484
- mov r0, #0x1
- strh r0, [r4, #0x2a]
-_02035484:
- ldr r0, [r4, #0x20]
- cmp r0, #0x0
- beq _02035496
- add r0, r4, #0x0
- bl FUN_02035BB0
- ldr r0, [r4, #0x38]
- bl FUN_0201FDEC
-_02035496:
- mov r0, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_0203549C
-FUN_0203549C: ; 0x0203549C
- push {r3-r7, lr}
- sub sp, #0x30
- add r4, r0, #0x0
- bl FUN_02046528
- str r0, [sp, #0x1c]
- add r0, r4, #0x0
- bl FUN_0204652C
- add r4, r0, #0x0
- add r1, r4, #0x0
- add r1, #0x30
- bl FUN_0203566C
- str r0, [sp, #0x14]
- mov r0, #0x1
- str r0, [sp, #0x0]
- mov r0, #0xb
- str r0, [sp, #0x4]
- ldr r0, [sp, #0x14]
- mov r2, #0x3
- lsl r1, r0, #0x1
- add r0, r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x8]
- mov r0, #0xc
- str r0, [sp, #0xc]
- ldr r0, _02035658 ; =0x0000023B
- add r1, r4, #0x0
- str r0, [sp, #0x10]
- ldr r0, [sp, #0x1c]
- mov r3, #0x14
- ldr r0, [r0, #0x8]
- bl FUN_02019064
- mov r0, #0x1
- str r0, [sp, #0x0]
- mov r3, #0xb
- ldr r0, [sp, #0x1c]
- str r3, [sp, #0x4]
- ldr r0, [r0, #0x8]
- ldr r2, _0203565C ; =0x000003D9
- mov r1, #0x3
- bl FUN_0200CB00
- ldr r2, _0203565C ; =0x000003D9
- add r0, r4, #0x0
- mov r1, #0x1
- mov r3, #0xb
- bl FUN_0200CCA4
- ldr r2, _02035660 ; =0x00000143
- mov r0, #0x0
- mov r1, #0x1a
- mov r3, #0xb
- bl FUN_0200A86C
- str r0, [sp, #0x18]
- ldr r0, [sp, #0x14]
- mov r1, #0xb
- bl FUN_02012838
- str r0, [r4, #0x24]
- mov r5, #0x0
- ldr r0, [sp, #0x14]
- strh r5, [r4, #0x28]
- cmp r0, #0x0
- bls _020355BC
-_02035526:
- add r0, r4, r5
- add r0, #0x30
- ldrb r3, [r0, #0x0]
- cmp r3, #0x3
- bne _02035594
- mov r0, #0xb
- bl FUN_0200AA80
- add r6, r0, #0x0
- mov r0, #0x8
- mov r1, #0xb
- bl FUN_020219F4
- add r1, r4, r5
- add r1, #0x30
- ldrb r1, [r1, #0x0]
- add r7, r0, #0x0
- ldr r0, [sp, #0x18]
- lsl r2, r1, #0x3
- ldr r1, _02035664 ; =0x020F2ACC
- ldr r1, [r1, r2]
- bl FUN_0200A914
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x1c]
- ldr r0, [r0, #0xc]
- bl FUN_020238F4
- add r2, r0, #0x0
- add r0, r6, #0x0
- mov r1, #0x0
- bl FUN_0200ABC0
- ldr r2, [sp, #0x20]
- add r0, r6, #0x0
- add r1, r7, #0x0
- bl FUN_0200B7B8
- add r2, r4, r5
- add r2, #0x30
- ldrb r2, [r2, #0x0]
- ldr r0, [r4, #0x24]
- add r1, r7, #0x0
- bl FUN_020128A0
- ldr r0, [sp, #0x20]
- bl FUN_02021A20
- add r0, r7, #0x0
- bl FUN_02021A20
- add r0, r6, #0x0
- bl FUN_0200AB18
- b _020355A2
-_02035594:
- ldr r2, _02035664 ; =0x020F2ACC
- lsl r6, r3, #0x3
- ldr r0, [r4, #0x24]
- ldr r1, [sp, #0x18]
- ldr r2, [r2, r6]
- bl FUN_02012880
-_020355A2:
- ldr r0, [sp, #0x1c]
- add r0, #0x8c
- ldr r1, [r0, #0x0]
- add r0, r4, r5
- add r0, #0x30
- ldrb r0, [r0, #0x0]
- cmp r1, r0
- bne _020355B4
- strh r5, [r4, #0x28]
-_020355B4:
- ldr r0, [sp, #0x14]
- add r5, r5, #0x1
- cmp r5, r0
- blo _02035526
-_020355BC:
- ldrh r0, [r4, #0x28]
- add r0, r4, r0
- add r0, #0x30
- ldrb r1, [r0, #0x0]
- ldr r0, [sp, #0x1c]
- add r0, #0x8c
- str r1, [r0, #0x0]
- ldr r0, [sp, #0x18]
- bl FUN_0200A8B8
- ldr r0, [r4, #0x24]
- mov r1, #0x1
- str r0, [sp, #0x24]
- str r4, [sp, #0x28]
- add r0, sp, #0x24
- strb r1, [r0, #0x8]
- strb r1, [r0, #0x9]
- ldr r1, [sp, #0x14]
- strb r1, [r0, #0xa]
- ldrb r2, [r0, #0xb]
- mov r1, #0xf
- bic r2, r1
- mov r1, #0x8
- orr r1, r2
- strb r1, [r0, #0xb]
- ldrb r2, [r0, #0xb]
- mov r1, #0x30
- bic r2, r1
- mov r1, #0x10
- orr r1, r2
- strb r1, [r0, #0xb]
- ldr r1, [sp, #0x14]
- ldrb r2, [r0, #0xb]
- cmp r1, #0x4
- blo _0203560E
- mov r1, #0xc0
- bic r2, r1
- mov r1, #0x40
- orr r1, r2
- strb r1, [r0, #0xb]
- b _02035614
-_0203560E:
- mov r1, #0xc0
- bic r2, r1
- strb r2, [r0, #0xb]
-_02035614:
- mov r0, #0xb
- str r0, [sp, #0x0]
- ldr r0, _02035668 ; =0x00000402
- mov r1, #0x1c
- str r0, [sp, #0x4]
- ldrh r3, [r4, #0x28]
- add r0, sp, #0x24
- mov r2, #0x4
- lsl r3, r3, #0x18
- lsr r3, r3, #0x18
- bl FUN_02001B8C
- str r0, [r4, #0x20]
- add r0, r4, #0x0
- bl FUN_02019220
- ldr r0, [sp, #0x1c]
- ldr r0, [r0, #0xc]
- bl FUN_020238F4
- bl FUN_020239CC
- add r3, r0, #0x0
- add r0, r4, #0x0
- add r4, #0x30
- lsl r3, r3, #0x18
- ldr r2, [sp, #0x14]
- add r1, r4, #0x0
- lsr r3, r3, #0x18
- bl FUN_020359B8
- add sp, #0x30
- pop {r3-r7, pc}
- nop
-_02035658: .word 0x0000023B
-_0203565C: .word 0x000003D9
-_02035660: .word 0x00000143
-_02035664: .word 0x020F2ACC
-_02035668: .word 0x00000402
-
- thumb_func_start FUN_0203566C
-FUN_0203566C: ; 0x0203566C
- push {r3-r4}
- mov r3, #0x7
- lsl r3, r3, #0x6
- ldr r4, [r0, r3]
- sub r3, #0xc0
- mov r2, #0x0
- tst r3, r4
- bne _02035682
- mov r3, #0x8
- strb r3, [r1, #0x0]
- add r2, r2, #0x1
-_02035682:
- mov r3, #0x7
- lsl r3, r3, #0x6
- ldr r4, [r0, r3]
- mov r3, #0x80
- tst r3, r4
- bne _02035694
- mov r3, #0x7
- strb r3, [r1, r2]
- add r2, r2, #0x1
-_02035694:
- mov r3, #0x7
- lsl r3, r3, #0x6
- ldr r4, [r0, r3]
- mov r3, #0x1
- tst r3, r4
- bne _020356A6
- mov r3, #0x0
- strb r3, [r1, r2]
- add r2, r2, #0x1
-_020356A6:
- mov r3, #0x7
- lsl r3, r3, #0x6
- ldr r4, [r0, r3]
- mov r3, #0x2
- tst r3, r4
- bne _020356B8
- mov r3, #0x1
- strb r3, [r1, r2]
- add r2, r2, #0x1
-_020356B8:
- mov r3, #0x7
- lsl r3, r3, #0x6
- ldr r4, [r0, r3]
- mov r3, #0x4
- tst r3, r4
- bne _020356CA
- mov r3, #0x2
- strb r3, [r1, r2]
- add r2, r2, #0x1
-_020356CA:
- mov r3, #0x7
- lsl r3, r3, #0x6
- ldr r4, [r0, r3]
- mov r3, #0x8
- tst r3, r4
- bne _020356DC
- mov r3, #0x3
- strb r3, [r1, r2]
- add r2, r2, #0x1
-_020356DC:
- mov r3, #0x7
- lsl r3, r3, #0x6
- ldr r4, [r0, r3]
- mov r3, #0x10
- tst r3, r4
- bne _020356EE
- mov r3, #0x4
- strb r3, [r1, r2]
- add r2, r2, #0x1
-_020356EE:
- mov r3, #0x7
- lsl r3, r3, #0x6
- ldr r4, [r0, r3]
- mov r3, #0x20
- tst r3, r4
- bne _02035700
- mov r3, #0x5
- strb r3, [r1, r2]
- add r2, r2, #0x1
-_02035700:
- mov r3, #0x7
- lsl r3, r3, #0x6
- ldr r3, [r0, r3]
- mov r0, #0x40
- tst r0, r3
- bne _02035712
- mov r0, #0x6
- strb r0, [r1, r2]
- add r2, r2, #0x1
-_02035712:
- add r0, r2, #0x0
- pop {r3-r4}
- bx lr
-
- thumb_func_start FUN_02035718
-FUN_02035718: ; 0x02035718
- push {r4, lr}
- add r4, r0, #0x0
- bl FUN_02035B78
- ldr r0, [r4, #0x20]
- mov r1, #0x0
- bl FUN_02001C5C
- ldr r0, [r4, #0x24]
- bl FUN_02012870
- mov r0, #0x0
- str r0, [r4, #0x20]
- pop {r4, pc}
-
- thumb_func_start FUN_02035734
-FUN_02035734: ; 0x02035734
- push {r3-r7, lr}
- sub sp, #0x20
- add r5, r0, #0x0
- bl FUN_02046528
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl FUN_0204652C
- add r5, r0, #0x0
- ldr r0, [r4, #0xc]
- bl FUN_020462AC
- bl FUN_0205F214
- cmp r0, #0x1
- bne _0203575A
- mov r6, #0x0
- b _0203576C
-_0203575A:
- ldr r0, [r4, #0xc]
- bl FUN_020462AC
- bl FUN_0205F244
- cmp r0, #0x1
- beq _0203576A
- b _0203588E
-_0203576A:
- mov r6, #0x1
-_0203576C:
- mov r3, #0x1
- str r3, [sp, #0x0]
- mov r0, #0xc
- str r0, [sp, #0x4]
- mov r0, #0x4
- str r0, [sp, #0x8]
- mov r0, #0xd
- str r0, [sp, #0xc]
- ldr r0, _02035894 ; =0x0000032D
- add r1, r5, #0x0
- str r0, [sp, #0x10]
- ldr r0, [r4, #0x8]
- add r1, #0x10
- mov r2, #0x3
- bl FUN_02019064
- mov r0, #0x1
- str r0, [sp, #0x0]
- mov r3, #0xb
- str r3, [sp, #0x4]
- ldr r0, [r4, #0x8]
- ldr r2, _02035898 ; =0x000003D9
- mov r1, #0x3
- bl FUN_0200CB00
- add r0, r5, #0x0
- ldr r2, _02035898 ; =0x000003D9
- add r0, #0x10
- mov r1, #0x1
- mov r3, #0xb
- bl FUN_0200CCA4
- add r0, r5, #0x0
- add r0, #0x10
- mov r1, #0xf
- bl FUN_02019620
- ldr r2, _0203589C ; =0x00000143
- mov r0, #0x0
- mov r1, #0x1a
- mov r3, #0xb
- bl FUN_0200A86C
- str r0, [sp, #0x1c]
- cmp r6, #0x0
- bne _020357D0
- mov r1, #0x9
- bl FUN_0200A914
- b _020357D6
-_020357D0:
- mov r1, #0xa
- bl FUN_0200A914
-_020357D6:
- mov r1, #0x0
- add r7, r0, #0x0
- str r1, [sp, #0x0]
- mov r0, #0xff
- str r0, [sp, #0x4]
- add r0, r5, #0x0
- add r0, #0x10
- add r2, r7, #0x0
- add r3, r1, #0x0
- str r1, [sp, #0x8]
- bl FUN_0201BD84
- add r0, r7, #0x0
- bl FUN_02021A20
- mov r0, #0xb
- bl FUN_0200AA80
- add r7, r0, #0x0
- mov r0, #0x20
- mov r1, #0xb
- bl FUN_020219F4
- str r0, [sp, #0x18]
- ldr r0, [sp, #0x1c]
- mov r1, #0xb
- bl FUN_0200A914
- str r0, [sp, #0x14]
- cmp r6, #0x0
- bne _02035834
- ldr r0, [r4, #0xc]
- bl FUN_02034E30
- bl FUN_02034E24
- mov r1, #0x0
- add r2, r0, #0x0
- str r1, [sp, #0x0]
- mov r0, #0x1
- str r0, [sp, #0x4]
- ldrh r2, [r2, #0x0]
- add r0, r7, #0x0
- mov r3, #0x2
- bl FUN_0200AD38
- b _0203584C
-_02035834:
- add r0, r4, #0x0
- bl FUN_0204BAB0
- mov r1, #0x0
- add r2, r0, #0x0
- str r1, [sp, #0x0]
- mov r0, #0x1
- str r0, [sp, #0x4]
- add r0, r7, #0x0
- mov r3, #0x2
- bl FUN_0200AD38
-_0203584C:
- ldr r1, [sp, #0x18]
- ldr r2, [sp, #0x14]
- add r0, r7, #0x0
- bl FUN_0200B7B8
- mov r0, #0x10
- str r0, [sp, #0x0]
- mov r0, #0xff
- str r0, [sp, #0x4]
- mov r1, #0x0
- add r0, r5, #0x0
- ldr r2, [sp, #0x18]
- add r0, #0x10
- add r3, r1, #0x0
- str r1, [sp, #0x8]
- bl FUN_0201BD84
- ldr r0, [sp, #0x18]
- bl FUN_02021A20
- ldr r0, [sp, #0x14]
- bl FUN_02021A20
- add r0, r7, #0x0
- bl FUN_0200AB18
- ldr r0, [sp, #0x1c]
- bl FUN_0200A8B8
- add r5, #0x10
- add r0, r5, #0x0
- bl FUN_02019220
-_0203588E:
- add sp, #0x20
- pop {r3-r7, pc}
- nop
-_02035894: .word 0x0000032D
-_02035898: .word 0x000003D9
-_0203589C: .word 0x00000143
-
- thumb_func_start FUN_020358A0
-FUN_020358A0: ; 0x020358A0
- push {r3-r5, lr}
- add r5, r0, #0x0
- bl FUN_02046528
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl FUN_0204652C
- add r5, r0, #0x0
- ldr r0, [r4, #0xc]
- bl FUN_020462AC
- bl FUN_0205F214
- cmp r0, #0x0
- bne _020358CE
- ldr r0, [r4, #0xc]
- bl FUN_020462AC
- bl FUN_0205F244
- cmp r0, #0x0
- beq _020358E0
-_020358CE:
- add r0, r5, #0x0
- add r0, #0x10
- mov r1, #0x1
- bl FUN_0200CCF8
- add r5, #0x10
- add r0, r5, #0x0
- bl FUN_02019178
-_020358E0:
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_020358E4
-FUN_020358E4: ; 0x020358E4
- push {r3-r7, lr}
- add r7, r0, #0x0
- bl FUN_02046528
- add r4, r0, #0x0
- add r0, r7, #0x0
- bl FUN_0204652C
- add r5, r0, #0x0
- ldr r0, [r5, #0x20]
- bl FUN_02001E5C
- add r6, r0, #0x0
- mov r1, #0x5e
- ldr r0, [r5, #0x20]
- lsl r1, r1, #0x4
- bl FUN_02001D2C
- str r0, [r5, #0x2c]
- ldr r0, [r5, #0x20]
- bl FUN_02001E5C
- strh r0, [r5, #0x28]
- ldrh r1, [r5, #0x28]
- cmp r6, r1
- beq _0203593A
- mov r0, #0x67
- lsl r0, r0, #0x2
- ldr r0, [r5, r0]
- ldr r0, [r0, #0x0]
- bl FUN_02035BE8
- ldrh r2, [r5, #0x28]
- add r0, r5, #0x0
- add r1, r6, #0x0
- bl FUN_02035C44
- ldrh r0, [r5, #0x28]
- add r4, #0x8c
- add r0, r5, r0
- add r0, #0x30
- ldrb r0, [r0, #0x0]
- str r0, [r4, #0x0]
-_0203593A:
- ldrh r0, [r5, #0x28]
- add r0, r0, #0x1
- lsl r0, r0, #0x2
- add r1, r5, r0
- mov r0, #0x67
- lsl r0, r0, #0x2
- ldr r0, [r1, r0]
- ldr r0, [r0, #0x0]
- bl FUN_02035C78
- mov r1, #0x1
- ldr r2, [r5, #0x2c]
- mvn r1, r1
- cmp r2, r1
- beq _02035960
- add r0, r1, #0x1
- cmp r2, r0
- beq _02035982
- b _02035966
-_02035960:
- mov r0, #0xd
- strh r0, [r5, #0x2a]
- b _02035982
-_02035966:
- ldr r0, _02035988 ; =0x020F2AD0
- lsl r2, r2, #0x3
- ldr r2, [r0, r2]
- cmp r2, r1
- bne _02035976
- mov r0, #0xd
- strh r0, [r5, #0x2a]
- b _02035982
-_02035976:
- add r0, r1, #0x1
- cmp r2, r0
- beq _02035982
- add r0, r7, #0x0
- blx r2
- pop {r3-r7, pc}
-_02035982:
- mov r0, #0x1
- pop {r3-r7, pc}
- nop
-_02035988: .word 0x020F2AD0
-
- thumb_func_start FUN_0203598C
-FUN_0203598C: ; 0x0203598C
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- bl FUN_0202EDF8
- cmp r0, #0x0
- beq _020359B4
- mov r0, #0x71
- lsl r0, r0, #0x2
- ldr r0, [r5, r0]
- cmp r0, #0x0
- beq _020359B4
- ldr r0, [r4, #0x7c]
- bl FUN_02052F74
- bl FUN_02031B50
- mov r0, #0x0
- bl FUN_02052B74
-_020359B4:
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_020359B8
-FUN_020359B8: ; 0x020359B8
- push {r4-r7, lr}
- sub sp, #0xb4
- ldr r4, _02035B60 ; =0x020F2AB4
- str r3, [sp, #0x18]
- add r3, sp, #0x9c
- str r2, [sp, #0x14]
- str r0, [sp, #0xc]
- str r1, [sp, #0x10]
- add r2, r3, #0x0
- ldmia r4!, {r0-r1}
- stmia r3!, {r0-r1}
- ldmia r4!, {r0-r1}
- stmia r3!, {r0-r1}
- ldmia r4!, {r0-r1}
- stmia r3!, {r0-r1}
- ldr r0, [sp, #0xc]
- add r1, r2, #0x0
- add r0, #0x38
- mov r2, #0x8
- mov r3, #0xb
- bl MOD05_021D959C
- mov r0, #0x2
- str r0, [sp, #0x0]
- mov r0, #0x1
- str r0, [sp, #0x4]
- ldr r0, _02035B64 ; =0x000034D8
- mov r1, #0x42
- str r0, [sp, #0x8]
- ldr r0, [sp, #0xc]
- mov r2, #0x5
- add r0, #0x38
- mov r3, #0x0
- bl MOD05_021D967C
- ldr r0, _02035B64 ; =0x000034D8
- mov r1, #0x42
- str r0, [sp, #0x0]
- ldr r0, [sp, #0xc]
- mov r2, #0x1
- add r0, #0x38
- mov r3, #0x0
- bl MOD05_021D96F4
- ldr r0, _02035B64 ; =0x000034D8
- mov r2, #0x0
- str r0, [sp, #0x0]
- ldr r0, [sp, #0xc]
- mov r1, #0x42
- add r0, #0x38
- add r3, r2, #0x0
- bl MOD05_021D9708
- mov r0, #0x1
- str r0, [sp, #0x0]
- ldr r0, _02035B64 ; =0x000034D8
- mov r1, #0x42
- str r0, [sp, #0x4]
- ldr r0, [sp, #0xc]
- mov r2, #0x2
- add r0, #0x38
- mov r3, #0x0
- bl MOD05_021D971C
- ldr r0, [sp, #0xc]
- ldr r1, _02035B68 ; =0x020F2B14
- add r0, #0x38
- bl MOD05_021D9820
- mov r2, #0x67
- ldr r1, [sp, #0xc]
- lsl r2, r2, #0x2
- str r0, [r1, r2]
- add r0, r1, #0x0
- ldr r0, [r0, r2]
- ldrh r1, [r1, #0x28]
- ldr r0, [r0, #0x0]
- bl FUN_02035BE8
- ldr r0, _02035B6C ; =0x000034D9
- mov r1, #0x42
- str r0, [sp, #0x0]
- ldr r0, [sp, #0xc]
- mov r2, #0x4
- add r0, #0x38
- mov r3, #0x0
- bl MOD05_021D96F4
- ldr r0, _02035B6C ; =0x000034D9
- mov r1, #0x42
- str r0, [sp, #0x0]
- ldr r0, [sp, #0xc]
- mov r2, #0x3
- add r0, #0x38
- mov r3, #0x0
- bl MOD05_021D9708
- mov r0, #0x1
- str r0, [sp, #0x0]
- ldr r0, _02035B6C ; =0x000034D9
- mov r1, #0x42
- str r0, [sp, #0x4]
- ldr r0, [sp, #0xc]
- mov r2, #0x6
- add r0, #0x38
- mov r3, #0x0
- bl MOD05_021D971C
- ldr r0, [sp, #0x14]
- mov r4, #0x0
- cmp r0, #0x0
- bls _02035B2C
- ldr r5, [sp, #0xc]
- ldr r3, _02035B70 ; =0x020F2B48
- add r7, r4, #0x0
- add r2, sp, #0x28
- mov r6, #0x6
-_02035AA2:
- ldmia r3!, {r0-r1}
- stmia r2!, {r0-r1}
- sub r6, r6, #0x1
- bne _02035AA2
- ldr r0, [r3, #0x0]
- ldr r3, _02035B74 ; =0x020F2AA8
- str r0, [r2, #0x0]
- ldmia r3!, {r0-r1}
- add r2, sp, #0x1c
- stmia r2!, {r0-r1}
- ldr r0, [r3, #0x0]
- str r0, [r2, #0x0]
-_02035ABA:
- add r6, sp, #0x28
- add r3, sp, #0x68
- mov r2, #0x6
-_02035AC0:
- ldmia r6!, {r0-r1}
- stmia r3!, {r0-r1}
- sub r2, r2, #0x1
- bne _02035AC0
- ldr r0, [r6, #0x0]
- add r1, sp, #0x68
- str r0, [r3, #0x0]
- mov r0, #0x2
- ldrsh r0, [r1, r0]
- add r0, r0, r7
- strh r0, [r1, #0x2]
- ldr r0, [sp, #0x10]
- ldrb r2, [r0, r4]
- cmp r2, #0x2
- bne _02035AEA
- ldr r0, [sp, #0x18]
- cmp r0, #0x1
- bne _02035AEA
- mov r0, #0x1b
- strh r0, [r1, #0x6]
- b _02035AF2
-_02035AEA:
- lsl r0, r2, #0x1
- add r1, r2, r0
- add r0, sp, #0x68
- strh r1, [r0, #0x6]
-_02035AF2:
- ldr r0, [sp, #0xc]
- add r1, sp, #0x68
- add r0, #0x38
- bl MOD05_021D9820
- mov r1, #0x1a
- lsl r1, r1, #0x4
- add r2, sp, #0x5c
- add r3, sp, #0x1c
- str r0, [r5, r1]
- ldmia r3!, {r0-r1}
- add r6, r2, #0x0
- stmia r2!, {r0-r1}
- ldr r0, [r3, #0x0]
- add r1, r6, #0x0
- str r0, [r2, #0x0]
- mov r0, #0x1a
- lsl r0, r0, #0x4
- ldr r0, [r5, r0]
- mov r2, #0x1
- ldr r0, [r0, #0x0]
- bl FUN_02020074
- ldr r0, [sp, #0x14]
- add r4, r4, #0x1
- add r7, #0x18
- add r5, r5, #0x4
- cmp r4, r0
- blo _02035ABA
-_02035B2C:
- ldr r0, [sp, #0xc]
- mov r2, #0x1
- ldrh r0, [r0, #0x28]
- add r0, r0, #0x1
- lsl r1, r0, #0x2
- ldr r0, [sp, #0xc]
- add r1, r0, r1
- mov r0, #0x67
- lsl r0, r0, #0x2
- ldr r0, [r1, r0]
- mov r1, #0x2
- ldr r0, [r0, #0x0]
- bl FUN_02035C18
- ldr r0, [sp, #0x14]
- mov r1, #0x6f
- add r2, r0, #0x1
- ldr r0, [sp, #0xc]
- lsl r1, r1, #0x2
- str r2, [r0, r1]
- mov r0, #0x10
- mov r1, #0x1
- bl FUN_0201E6E4
- add sp, #0xb4
- pop {r4-r7, pc}
- .balign 4
-_02035B60: .word 0x020F2AB4
-_02035B64: .word 0x000034D8
-_02035B68: .word 0x020F2B14
-_02035B6C: .word 0x000034D9
-_02035B70: .word 0x020F2B48
-_02035B74: .word 0x020F2AA8
-
- thumb_func_start FUN_02035B78
-FUN_02035B78: ; 0x02035B78
- push {r3-r7, lr}
- add r5, r0, #0x0
- mov r0, #0x6f
- lsl r0, r0, #0x2
- ldr r0, [r5, r0]
- mov r4, #0x0
- cmp r0, #0x0
- bls _02035BA6
- mov r7, #0x67
- lsl r7, r7, #0x2
- add r6, r7, #0x0
- add r6, #0x20
-_02035B90:
- lsl r0, r4, #0x2
- add r0, r5, r0
- ldr r0, [r0, r7]
- bl FUN_0200C3DC
- add r0, r4, #0x1
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
- ldr r0, [r5, r6]
- cmp r4, r0
- blo _02035B90
-_02035BA6:
- add r5, #0x38
- add r0, r5, #0x0
- bl MOD05_021D99F8
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02035BB0
-FUN_02035BB0: ; 0x02035BB0
- push {r3-r7, lr}
- add r5, r0, #0x0
- mov r0, #0x6f
- lsl r0, r0, #0x2
- ldr r0, [r5, r0]
- mov r4, #0x0
- cmp r0, #0x0
- bls _02035BE4
- mov r7, #0x67
- lsl r7, r7, #0x2
- add r6, r7, #0x0
- add r6, #0x20
-_02035BC8:
- lsl r0, r4, #0x2
- add r0, r5, r0
- ldr r0, [r0, r7]
- mov r1, #0x1
- ldr r0, [r0, #0x0]
- lsl r1, r1, #0xc
- bl FUN_020201E4
- add r0, r4, #0x1
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
- ldr r0, [r5, r6]
- cmp r4, r0
- blo _02035BC8
-_02035BE4:
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02035BE8
-FUN_02035BE8: ; 0x02035BE8
- push {r3-r6, lr}
- sub sp, #0xc
- add r5, r0, #0x0
- add r4, r1, #0x0
- bl FUN_0202011C
- add r6, r0, #0x0
- add r3, sp, #0x0
- ldmia r6!, {r0-r1}
- add r2, r3, #0x0
- stmia r3!, {r0-r1}
- ldr r0, [r6, #0x0]
- add r1, r2, #0x0
- str r0, [r3, #0x0]
- mov r0, #0x18
- mul r0, r4
- add r0, #0x14
- lsl r0, r0, #0xc
- str r0, [sp, #0x4]
- add r0, r5, #0x0
- bl FUN_02020044
- add sp, #0xc
- pop {r3-r6, pc}
-
- thumb_func_start FUN_02035C18
-FUN_02035C18: ; 0x02035C18
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- add r6, r2, #0x0
- bl FUN_020201DC
- mov r1, #0x3
- bl _u32_div_f
- add r2, r0, #0x0
- lsl r1, r2, #0x1
- add r1, r2, r1
- add r0, r5, #0x0
- add r1, r4, r1
- bl FUN_02020130
- add r0, r5, #0x0
- add r1, r6, #0x0
- bl FUN_0202027C
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02035C44
-FUN_02035C44: ; 0x02035C44
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r0, r1, #0x1
- lsl r0, r0, #0x2
- add r1, r5, r0
- mov r0, #0x67
- lsl r0, r0, #0x2
- ldr r0, [r1, r0]
- mov r1, #0x0
- add r4, r2, #0x0
- ldr r0, [r0, #0x0]
- add r2, r1, #0x0
- bl FUN_02035C18
- add r0, r4, #0x1
- lsl r0, r0, #0x2
- add r1, r5, r0
- mov r0, #0x67
- lsl r0, r0, #0x2
- ldr r0, [r1, r0]
- mov r1, #0x1
- ldr r0, [r0, #0x0]
- add r2, r1, #0x0
- bl FUN_02035C18
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02035C78
-FUN_02035C78: ; 0x02035C78
- push {r4, lr}
- add r4, r0, #0x0
- bl FUN_020201DC
- mov r1, #0x3
- bl _u32_div_f
- cmp r1, #0x1
- bne _02035C9E
- add r0, r4, #0x0
- bl FUN_02020388
- cmp r0, #0x0
- bne _02035C9E
- add r0, r4, #0x0
- mov r1, #0x2
- mov r2, #0x1
- bl FUN_02035C18
-_02035C9E:
- pop {r4, pc}
-
- thumb_func_start FUN_02035CA0
-FUN_02035CA0: ; 0x02035CA0
- push {r3-r5, lr}
- add r5, r0, #0x0
- bl FUN_0200E308
- cmp r0, #0x0
- beq _02035CD8
- add r0, r5, #0x0
- bl FUN_02046528
- add r0, r5, #0x0
- bl FUN_0204652C
- add r4, r0, #0x0
- bl FUN_02035718
- add r0, r4, #0x0
- bl FUN_02019178
- add r0, r5, #0x0
- bl FUN_020358A0
- mov r1, #0x72
- lsl r1, r1, #0x2
- ldr r1, [r4, r1]
- add r0, r5, #0x0
- blx r1
- mov r0, #0x3
- strh r0, [r4, #0x2a]
-_02035CD8:
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02035CDC
-FUN_02035CDC: ; 0x02035CDC
- push {r4-r6, lr}
- add r5, r0, #0x0
- bl FUN_02046528
- add r6, r0, #0x0
- add r0, r5, #0x0
- bl FUN_0204652C
- add r4, r0, #0x0
- add r0, r6, #0x0
- bl FUN_0204647C
- cmp r0, #0x0
- bne _02035D02
- mov r1, #0x72
- lsl r1, r1, #0x2
- ldr r1, [r4, r1]
- add r0, r5, #0x0
- blx r1
-_02035D02:
- pop {r4-r6, pc}
-
- thumb_func_start FUN_02035D04
-FUN_02035D04: ; 0x02035D04
- mov r2, #0x72
- lsl r2, r2, #0x2
- str r1, [r0, r2]
- mov r1, #0x3
- strh r1, [r0, #0x2a]
- bx lr
-
- thumb_func_start FUN_02035D10
-FUN_02035D10: ; 0x02035D10
- push {r4, lr}
- bl FUN_0204652C
- add r4, r0, #0x0
- mov r0, #0x0
- bl MOD05_021D7CA4
- mov r0, #0x72
- ldr r1, _02035D30 ; =FUN_02035D34
- lsl r0, r0, #0x2
- str r1, [r4, r0]
- mov r0, #0x2
- strh r0, [r4, #0x2a]
- mov r0, #0x1
- pop {r4, pc}
- nop
-_02035D30: .word FUN_02035D34
-
- thumb_func_start FUN_02035D34
-FUN_02035D34: ; 0x02035D34
- push {r3-r7, lr}
- sub sp, #0x8
- add r4, r0, #0x0
- bl FUN_02046528
- add r5, r0, #0x0
- add r0, r4, #0x0
- bl FUN_0204652C
- add r6, r0, #0x0
- mov r0, #0xb
- mov r1, #0x20
- bl FUN_02016998
- add r4, r0, #0x0
- ldr r0, [r5, #0xc]
- bl FUN_02024DA0
- str r0, [sp, #0x0]
- ldr r0, [r5, #0xc]
- bl FUN_020238F4
- str r0, [sp, #0x4]
- ldr r0, [r5, #0xc]
- bl FUN_020462AC
- add r7, r0, #0x0
- ldr r0, [sp, #0x0]
- str r0, [r4, #0x0]
- ldr r0, [sp, #0x4]
- str r0, [r4, #0x4]
- add r0, r5, #0x0
- bl FUN_0204B2A4
- str r0, [r4, #0x8]
- add r0, r7, #0x0
- mov r1, #0x0
- bl FUN_0205F524
- str r0, [r4, #0xc]
- add r0, r7, #0x0
- mov r1, #0x1
- bl FUN_0205F524
- str r0, [r4, #0x10]
- add r0, r7, #0x0
- mov r1, #0x2
- bl FUN_0205F524
- str r0, [r4, #0x14]
- add r0, r7, #0x0
- mov r1, #0x3
- bl FUN_0205F524
- str r0, [r4, #0x18]
- add r0, r5, #0x0
- add r0, #0xb0
- ldr r0, [r0, #0x0]
- add r1, r4, #0x0
- str r0, [r4, #0x1c]
- add r0, r5, #0x0
- bl FUN_02038690
- mov r0, #0x7e
- lsl r0, r0, #0x2
- str r4, [r6, r0]
- ldr r1, _02035DC4 ; =FUN_02035DC8
- sub r0, #0x30
- str r1, [r6, r0]
- mov r0, #0x0
- add sp, #0x8
- pop {r3-r7, pc}
- .balign 4
-_02035DC4: .word FUN_02035DC8
-
- thumb_func_start FUN_02035DC8
-FUN_02035DC8: ; 0x02035DC8
- push {r3-r5, lr}
- add r4, r0, #0x0
- bl FUN_02046528
- add r5, r0, #0x0
- add r0, r4, #0x0
- bl FUN_0204652C
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl FUN_0204649C
- mov r0, #0x7e
- lsl r0, r0, #0x2
- ldr r1, [r4, r0]
- cmp r1, #0x0
- beq _02035DF0
- mov r0, #0xb
- bl FUN_02016A8C
-_02035DF0:
- mov r0, #0xc
- strh r0, [r4, #0x2a]
- mov r0, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02035DF8
-FUN_02035DF8: ; 0x02035DF8
- push {r4, lr}
- bl FUN_0204652C
- add r4, r0, #0x0
- mov r0, #0x0
- bl MOD05_021D7CA4
- mov r0, #0x72
- ldr r1, _02035E18 ; =FUN_02035E1C
- lsl r0, r0, #0x2
- str r1, [r4, r0]
- mov r0, #0x2
- strh r0, [r4, #0x2a]
- mov r0, #0x1
- pop {r4, pc}
- nop
-_02035E18: .word FUN_02035E1C
-
- thumb_func_start FUN_02035E1C
-FUN_02035E1C: ; 0x02035E1C
- push {r3-r5, lr}
- add r4, r0, #0x0
- bl FUN_02046528
- add r5, r0, #0x0
- add r0, r4, #0x0
- bl FUN_0204652C
- mov r1, #0x7a
- add r4, r0, #0x0
- lsl r1, r1, #0x2
- add r0, r5, #0x0
- add r1, r4, r1
- mov r2, #0x0
- bl FUN_020379C8
- mov r1, #0x7e
- lsl r1, r1, #0x2
- str r0, [r4, r1]
- ldr r0, _02035E4C ; =FUN_02035E50
- sub r1, #0x30
- str r0, [r4, r1]
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-_02035E4C: .word FUN_02035E50
-
- thumb_func_start FUN_02035E50
-FUN_02035E50: ; 0x02035E50
- push {r4-r7, lr}
- sub sp, #0xc
- add r7, r0, #0x0
- bl FUN_02046528
- add r5, r0, #0x0
- add r0, r7, #0x0
- bl FUN_0204652C
- add r4, r0, #0x0
- mov r0, #0xb
- mov r1, #0x40
- bl FUN_02016998
- mov r1, #0x7e
- lsl r1, r1, #0x2
- ldr r1, [r4, r1]
- mov r2, #0x40
- add r6, r0, #0x0
- bl memcpy
- mov r0, #0x7e
- lsl r0, r0, #0x2
- ldr r0, [r4, r0]
- bl FUN_02016A18
- add r0, r6, #0x0
- add r0, #0x23
- ldrb r0, [r0, #0x0]
- cmp r0, #0x17
- bls _02035E90
- b _020361E6
-_02035E90:
- add r1, r0, r0
- add r1, pc
- ldrh r1, [r1, #0x6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02035E9C: ; jump table (using 16-bit offset)
- .short _020361E6 - _02035E9C - 2; case 0
- .short _02035ECC - _02035E9C - 2; case 1
- .short _020361E6 - _02035E9C - 2; case 2
- .short _020360EA - _02035E9C - 2; case 3
- .short _02035F4A - _02035E9C - 2; case 4
- .short _02035FD0 - _02035E9C - 2; case 5
- .short _02036056 - _02035E9C - 2; case 6
- .short _020360AC - _02035E9C - 2; case 7
- .short _02036144 - _02035E9C - 2; case 8
- .short _02036170 - _02035E9C - 2; case 9
- .short _020361CA - _02035E9C - 2; case 10
- .short _020361A4 - _02035E9C - 2; case 11
- .short _020361A4 - _02035E9C - 2; case 12
- .short _020361A4 - _02035E9C - 2; case 13
- .short _020361A4 - _02035E9C - 2; case 14
- .short _020361A4 - _02035E9C - 2; case 15
- .short _020361A4 - _02035E9C - 2; case 16
- .short _020361A4 - _02035E9C - 2; case 17
- .short _020361A4 - _02035E9C - 2; case 18
- .short _020361A4 - _02035E9C - 2; case 19
- .short _020361A4 - _02035E9C - 2; case 20
- .short _020361A4 - _02035E9C - 2; case 21
- .short _020361A4 - _02035E9C - 2; case 22
- .short _020361A4 - _02035E9C - 2; case 23
-_02035ECC:
- mov r0, #0xb
- mov r1, #0x30
- bl FUN_02016998
- add r7, r0, #0x0
- ldr r0, [r5, #0xc]
- bl FUN_0206BB1C
- str r0, [r7, #0x0]
- ldr r0, [r5, #0xc]
- bl LoadPlayerDataAddress
- str r0, [r7, #0x4]
- mov r0, #0x1
- strb r0, [r7, #0x11]
- add r0, r6, #0x0
- add r0, #0x22
- ldrb r0, [r0, #0x0]
- strb r0, [r7, #0x14]
- ldr r0, [r7, #0x0]
- bl FUN_0206B9AC
- strb r0, [r7, #0x13]
- mov r0, #0x0
- strh r0, [r7, #0x18]
- strb r0, [r7, #0x12]
- ldr r0, [r5, #0xc]
- bl FUN_0202A918
- str r0, [r7, #0x20]
- ldr r0, [r5, #0xc]
- bl FUN_0206BB28
- str r0, [r7, #0x1c]
- ldr r0, [r5, #0xc]
- bl FUN_02079C70
- str r0, [r7, #0x2c]
- mov r0, #0x0
- str r0, [r7, #0x28]
- ldr r1, _0203626C ; =0x020F2A9C
- add r0, r7, #0x0
- bl FUN_0207B000
- ldr r0, [r5, #0xc]
- bl FUN_020238F4
- add r1, r0, #0x0
- add r0, r7, #0x0
- bl FUN_0207C2A4
- add r0, r5, #0x0
- add r1, r7, #0x0
- bl FUN_0203796C
- mov r0, #0x7e
- lsl r0, r0, #0x2
- str r7, [r4, r0]
- ldr r1, _02036270 ; =FUN_0203684C
- add r0, r4, #0x0
- bl FUN_02035D04
- b _0203625E
-_02035F4A:
- mov r0, #0xb
- mov r1, #0x30
- bl FUN_02016998
- add r7, r0, #0x0
- ldr r0, [r5, #0xc]
- bl FUN_0206BB1C
- str r0, [r7, #0x0]
- ldr r0, [r5, #0xc]
- bl LoadPlayerDataAddress
- str r0, [r7, #0x4]
- mov r1, #0x1
- add r0, r6, #0x0
- strb r1, [r7, #0x11]
- add r0, #0x22
- ldrb r0, [r0, #0x0]
- strb r0, [r7, #0x14]
- strb r1, [r7, #0x13]
- ldrh r0, [r6, #0x26]
- strh r0, [r7, #0x18]
- mov r0, #0x2
- strb r0, [r7, #0x12]
- ldr r0, [r5, #0xc]
- bl FUN_0206BB28
- str r0, [r7, #0x1c]
- ldr r0, [r5, #0xc]
- bl FUN_02079C70
- str r0, [r7, #0x2c]
- mov r0, #0x0
- str r0, [r7, #0x28]
- ldr r1, _02036274 ; =0x020F2A8C
- add r0, r7, #0x0
- bl FUN_0207B000
- ldr r0, [r5, #0xc]
- bl FUN_020238F4
- add r1, r0, #0x0
- add r0, r7, #0x0
- bl FUN_0207C2A4
- add r0, r5, #0x0
- add r1, r7, #0x0
- bl FUN_0203796C
- mov r0, #0xb
- mov r1, #0x4
- bl FUN_02016998
- ldrh r1, [r6, #0x24]
- strh r1, [r0, #0x0]
- mov r1, #0x0
- strh r1, [r0, #0x2]
- mov r1, #0x7f
- lsl r1, r1, #0x2
- str r0, [r4, r1]
- sub r0, r1, #0x4
- str r7, [r4, r0]
- ldr r1, _02036270 ; =FUN_0203684C
- add r0, r4, #0x0
- bl FUN_02035D04
- b _0203625E
-_02035FD0:
- mov r0, #0xb
- mov r1, #0x30
- bl FUN_02016998
- add r7, r0, #0x0
- ldr r0, [r5, #0xc]
- bl FUN_0206BB1C
- str r0, [r7, #0x0]
- ldr r0, [r5, #0xc]
- bl LoadPlayerDataAddress
- str r0, [r7, #0x4]
- mov r1, #0x1
- add r0, r6, #0x0
- strb r1, [r7, #0x11]
- add r0, #0x22
- ldrb r0, [r0, #0x0]
- strb r0, [r7, #0x14]
- strb r1, [r7, #0x13]
- ldrh r0, [r6, #0x26]
- strh r0, [r7, #0x18]
- mov r0, #0x2
- strb r0, [r7, #0x12]
- ldr r0, [r5, #0xc]
- bl FUN_0206BB28
- str r0, [r7, #0x1c]
- ldr r0, [r5, #0xc]
- bl FUN_02079C70
- str r0, [r7, #0x2c]
- mov r0, #0x0
- str r0, [r7, #0x28]
- ldr r1, _02036274 ; =0x020F2A8C
- add r0, r7, #0x0
- bl FUN_0207B000
- ldr r0, [r5, #0xc]
- bl FUN_020238F4
- add r1, r0, #0x0
- add r0, r7, #0x0
- bl FUN_0207C2A4
- add r0, r5, #0x0
- add r1, r7, #0x0
- bl FUN_0203796C
- mov r0, #0xb
- mov r1, #0x4
- bl FUN_02016998
- mov r1, #0x0
- strh r1, [r0, #0x0]
- ldr r1, [r6, #0x34]
- strh r1, [r0, #0x2]
- mov r1, #0x7f
- lsl r1, r1, #0x2
- str r0, [r4, r1]
- sub r0, r1, #0x4
- str r7, [r4, r0]
- ldr r1, _02036270 ; =FUN_0203684C
- add r0, r4, #0x0
- bl FUN_02035D04
- b _0203625E
-_02036056:
- ldrh r0, [r6, #0x24]
- bl FUN_0206EAB8
- add r3, r0, #0x0
- mov r0, #0xb
- add r2, r6, #0x0
- str r0, [sp, #0x0]
- add r2, #0x22
- ldrb r2, [r2, #0x0]
- add r0, r5, #0x0
- mov r1, #0x2
- bl FUN_02037F2C
- mov r1, #0x7e
- lsl r1, r1, #0x2
- str r0, [r4, r1]
- add r0, r6, #0x0
- add r0, #0x20
- ldrb r0, [r0, #0x0]
- cmp r0, #0xa
- ldrh r0, [r6, #0x24]
- bne _02036090
- add r2, r6, #0x0
- add r2, #0x22
- ldrb r2, [r2, #0x0]
- mov r1, #0x0
- bl FUN_02036BC4
- b _0203609C
-_02036090:
- add r2, r6, #0x0
- add r2, #0x22
- ldrb r2, [r2, #0x0]
- mov r1, #0x1
- bl FUN_02036BC4
-_0203609C:
- mov r1, #0x7f
- lsl r1, r1, #0x2
- str r0, [r4, r1]
- ldr r1, _02036278 ; =FUN_02036BDC
- add r0, r4, #0x0
- bl FUN_02035D04
- b _0203625E
-_020360AC:
- ldr r0, [r5, #0xc]
- bl FUN_0206BB1C
- add r1, r6, #0x0
- add r1, #0x22
- ldrb r1, [r1, #0x0]
- bl FUN_0206B9B0
- add r1, r0, #0x0
- add r0, r5, #0x0
- mov r2, #0xb
- bl FUN_02037F90
- mov r1, #0x7e
- lsl r1, r1, #0x2
- str r0, [r4, r1]
- add r2, r6, #0x0
- add r2, #0x22
- ldrh r0, [r6, #0x24]
- ldrb r2, [r2, #0x0]
- mov r1, #0x2
- bl FUN_02036BC4
- mov r1, #0x7f
- lsl r1, r1, #0x2
- str r0, [r4, r1]
- ldr r1, _02036278 ; =FUN_02036BDC
- add r0, r4, #0x0
- bl FUN_02035D04
- b _0203625E
-_020360EA:
- mov r0, #0xb
- mov r1, #0x4
- bl FUN_02016998
- add r1, r6, #0x0
- add r1, #0x22
- ldrb r1, [r1, #0x0]
- str r1, [r0, #0x0]
- mov r1, #0x7f
- lsl r1, r1, #0x2
- str r0, [r4, r1]
- ldr r0, [r5, #0xc]
- bl FUN_0206F158
- add r7, r0, #0x0
- ldr r0, [r5, #0xc]
- bl FUN_020238F4
- ldr r1, _0203627C ; =0x020F2A90
- add r0, r7, #0x0
- mov r2, #0xb
- bl FUN_0206EFEC
- mov r1, #0x7e
- lsl r1, r1, #0x2
- add r3, r5, #0x0
- str r0, [r4, r1]
- add r3, #0x94
- ldr r0, [r4, r1]
- ldr r1, [r5, #0xc]
- ldr r3, [r3, #0x0]
- mov r2, #0x1
- bl FUN_0206E314
- mov r1, #0x7e
- lsl r1, r1, #0x2
- ldr r1, [r4, r1]
- add r0, r5, #0x0
- bl FUN_0203781C
- ldr r1, _02036280 ; =FUN_020362E4
- add r0, r4, #0x0
- bl FUN_02035D04
- b _0203625E
-_02036144:
- mov r0, #0xb
- mov r1, #0xc
- bl FUN_02016998
- ldrh r1, [r6, #0x24]
- strh r1, [r0, #0x2]
- mov r1, #0x3
- strb r1, [r0, #0x1]
- add r1, r6, #0x0
- add r1, #0x22
- ldrb r1, [r1, #0x0]
- strb r1, [r0, #0x0]
- ldrh r1, [r6, #0x38]
- strh r1, [r0, #0x4]
- ldr r1, [r6, #0x3c]
- str r1, [r0, #0x8]
- mov r1, #0x7e
- lsl r1, r1, #0x2
- str r0, [r4, r1]
- mov r0, #0x6
- strh r0, [r4, #0x2a]
- b _0203625E
-_02036170:
- mov r0, #0xb
- mov r1, #0xc
- bl FUN_02016998
- add r7, r0, #0x0
- ldr r0, [r5, #0x1c]
- ldr r0, [r0, #0x0]
- bl FUN_02034A04
- strh r0, [r7, #0x2]
- mov r0, #0x0
- strb r0, [r7, #0x1]
- add r0, r6, #0x0
- add r0, #0x22
- ldrb r0, [r0, #0x0]
- strb r0, [r7, #0x0]
- ldrh r0, [r6, #0x38]
- strh r0, [r7, #0x4]
- ldr r0, [r6, #0x3c]
- str r0, [r7, #0x8]
- mov r0, #0x7e
- lsl r0, r0, #0x2
- str r7, [r4, r0]
- mov r0, #0x6
- strh r0, [r4, #0x2a]
- b _0203625E
-_020361A4:
- sub r0, #0xb
- add r1, sp, #0x4
- strh r0, [r1, #0x6]
- add r0, r6, #0x0
- add r0, #0x22
- ldrb r0, [r0, #0x0]
- strh r0, [r1, #0x4]
- str r7, [sp, #0x4]
- ldrh r1, [r1, #0x6]
- mov r0, #0x0
- bl FUN_02063948
- mov r1, #0x7a
- lsl r1, r1, #0x2
- add r2, r0, #0x0
- add r0, sp, #0x4
- add r1, r4, r1
- blx r2
- b _0203625E
-_020361CA:
- mov r1, #0x73
- lsl r1, r1, #0x2
- add r0, r5, #0x0
- add r1, r4, r1
- bl FUN_02037844
- mov r1, #0x7e
- lsl r1, r1, #0x2
- str r0, [r4, r1]
- ldr r1, _02036280 ; =FUN_020362E4
- add r0, r4, #0x0
- bl FUN_02035D04
- b _0203625E
-_020361E6:
- add r0, r6, #0x0
- add r0, #0x20
- ldrb r0, [r0, #0x0]
- cmp r0, #0x5
- beq _02036200
- cmp r0, #0x6
- beq _02036200
- cmp r0, #0x7
- beq _02036200
- cmp r0, #0x10
- beq _02036200
- cmp r0, #0x8
- bne _02036234
-_02036200:
- mov r1, #0x73
- lsl r1, r1, #0x2
- add r0, r5, #0x0
- add r1, r4, r1
- bl FUN_02037844
- mov r2, #0x7e
- lsl r2, r2, #0x2
- str r0, [r4, r2]
- add r0, r6, #0x0
- add r0, #0x22
- ldrb r1, [r0, #0x0]
- ldr r0, [r4, r2]
- cmp r1, #0x6
- blo _02036226
- mov r1, #0x0
- bl FUN_0206E358
- b _0203622A
-_02036226:
- bl FUN_0206E358
-_0203622A:
- ldr r1, _02036280 ; =FUN_020362E4
- add r0, r4, #0x0
- bl FUN_02035D04
- b _0203625E
-_02036234:
- cmp r0, #0x9
- bne _02036254
- mov r1, #0x73
- lsl r1, r1, #0x2
- add r0, r5, #0x0
- add r1, r4, r1
- bl FUN_02037844
- mov r1, #0x7e
- lsl r1, r1, #0x2
- str r0, [r4, r1]
- ldr r1, _02036280 ; =FUN_020362E4
- add r0, r4, #0x0
- bl FUN_02035D04
- b _0203625E
-_02036254:
- add r0, r5, #0x0
- bl FUN_0204649C
- mov r0, #0xc
- strh r0, [r4, #0x2a]
-_0203625E:
- add r0, r6, #0x0
- bl FUN_02016A18
- mov r0, #0x0
- add sp, #0xc
- pop {r4-r7, pc}
- nop
-_0203626C: .word 0x020F2A9C
-_02036270: .word FUN_0203684C
-_02036274: .word 0x020F2A8C
-_02036278: .word FUN_02036BDC
-_0203627C: .word 0x020F2A90
-_02036280: .word FUN_020362E4
-
- thumb_func_start FUN_02036284
-FUN_02036284: ; 0x02036284
- push {r4, lr}
- bl FUN_0204652C
- add r4, r0, #0x0
- mov r0, #0x0
- bl MOD05_021D7CA4
- mov r0, #0x72
- ldr r1, _020362A4 ; =FUN_020362A8
- lsl r0, r0, #0x2
- str r1, [r4, r0]
- mov r0, #0x2
- strh r0, [r4, #0x2a]
- mov r0, #0x1
- pop {r4, pc}
- nop
-_020362A4: .word FUN_020362A8
-
- thumb_func_start FUN_020362A8
-FUN_020362A8: ; 0x020362A8
- push {r3-r5, lr}
- add r4, r0, #0x0
- bl FUN_02046528
- add r5, r0, #0x0
- add r0, r4, #0x0
- bl FUN_0204652C
- mov r1, #0x73
- add r4, r0, #0x0
- lsl r1, r1, #0x2
- add r0, r5, #0x0
- add r1, r4, r1
- bl FUN_02037844
- mov r1, #0x7e
- lsl r1, r1, #0x2
- str r0, [r4, r1]
- ldr r0, [r4, r1]
- mov r1, #0x0
- bl FUN_0206E358
- mov r0, #0x72
- ldr r1, _020362E0 ; =FUN_020362E4
- lsl r0, r0, #0x2
- str r1, [r4, r0]
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-_020362E0: .word FUN_020362E4
-
- thumb_func_start FUN_020362E4
-FUN_020362E4: ; 0x020362E4
- push {r3-r7, lr}
- sub sp, #0x18
- add r5, r0, #0x0
- bl FUN_02046528
- add r6, r0, #0x0
- add r0, r5, #0x0
- bl FUN_0204652C
- add r4, r0, #0x0
- mov r0, #0xb
- bl FUN_0206E2F0
- str r0, [sp, #0x8]
- bl FUN_0206E308
- mov r1, #0x7e
- lsl r1, r1, #0x2
- add r2, r0, #0x0
- ldr r0, [sp, #0x8]
- ldr r1, [r4, r1]
- bl memcpy
- mov r0, #0x7e
- lsl r0, r0, #0x2
- ldr r0, [r4, r0]
- bl FUN_02016A18
- ldr r0, [sp, #0x8]
- bl FUN_0206E384
- cmp r0, #0x5
- bls _02036328
- b _020364EE
-_02036328:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02036334: ; jump table (using 16-bit offset)
- .short _02036340 - _02036334 - 2; case 0
- .short _0203637A - _02036334 - 2; case 1
- .short _0203638A - _02036334 - 2; case 2
- .short _020364EE - _02036334 - 2; case 3
- .short _020363F6 - _02036334 - 2; case 4
- .short _020364EE - _02036334 - 2; case 5
-_02036340:
- ldr r0, [sp, #0x8]
- bl FUN_0206E37C
- add r1, sp, #0x10
- strh r0, [r1, #0x4]
- ldr r0, [sp, #0x8]
- bl FUN_0206E38C
- add r1, sp, #0x10
- strb r0, [r1, #0x6]
- str r5, [sp, #0x10]
- ldrh r0, [r1, #0x4]
- mov r1, #0x6
- mov r2, #0xb
- bl FUN_0206E7B8
- add r1, r0, #0x0
- lsl r1, r1, #0x10
- mov r0, #0x0
- lsr r1, r1, #0x10
- bl FUN_0205CE48
- mov r1, #0x73
- lsl r1, r1, #0x2
- add r2, r0, #0x0
- add r0, sp, #0x10
- add r1, r4, r1
- blx r2
- b _020364F8
-_0203637A:
- ldr r0, [sp, #0x8]
- bl FUN_0206E37C
- add r1, r0, #0x0
- add r0, r5, #0x0
- bl FUN_0203695C
- b _020364F8
-_0203638A:
- mov r0, #0xb
- mov r1, #0x40
- bl FUN_02016998
- mov r1, #0x0
- mov r2, #0x40
- add r5, r0, #0x0
- bl Call_FillMemWithValue
- ldr r0, [r6, #0xc]
- bl FUN_0206BB1C
- str r0, [r5, #0x0]
- ldr r0, [r6, #0xc]
- bl FUN_0206F158
- str r0, [r5, #0x4]
- ldr r0, [r6, #0xc]
- bl FUN_02025838
- str r0, [r5, #0x8]
- ldr r0, [r6, #0xc]
- bl LoadPlayerDataAddress
- str r0, [r5, #0xc]
- mov r0, #0x7a
- lsl r0, r0, #0x2
- add r0, r4, r0
- str r0, [r5, #0x18]
- add r0, r5, #0x0
- mov r1, #0x0
- add r0, #0x21
- strb r1, [r0, #0x0]
- add r0, r5, #0x0
- mov r1, #0x9
- add r0, #0x20
- strb r1, [r0, #0x0]
- ldr r0, [sp, #0x8]
- bl FUN_0206E37C
- strh r0, [r5, #0x24]
- ldr r1, _02036504 ; =0x020F96DC
- add r0, r6, #0x0
- add r2, r5, #0x0
- bl FUN_020373D4
- mov r0, #0x7e
- lsl r0, r0, #0x2
- str r5, [r4, r0]
- ldr r1, _02036508 ; =FUN_02035E50
- add r0, r4, #0x0
- bl FUN_02035D04
- b _020364F8
-_020363F6:
- ldr r0, [r6, #0xc]
- bl FUN_0206BB1C
- str r0, [sp, #0x4]
- mov r0, #0x7f
- lsl r0, r0, #0x2
- ldr r0, [r4, r0]
- ldr r7, [r0, #0x0]
- ldr r0, [sp, #0x8]
- bl FUN_0206E37C
- add r5, r0, #0x0
- ldr r0, [sp, #0x4]
- add r1, r7, #0x0
- bl FUN_0206B9B0
- str r0, [sp, #0xc]
- mov r0, #0x7f
- lsl r0, r0, #0x2
- ldr r0, [r4, r0]
- bl FUN_02016A18
- add r0, r5, #0x0
- bl FUN_0206EA98
- cmp r0, #0x1
- bne _02036474
- ldr r0, [sp, #0xc]
- mov r1, #0x6
- mov r2, #0x0
- bl FUN_020671BC
- cmp r0, #0x0
- bne _02036474
- add r0, r5, #0x0
- bl FUN_0206EAB8
- add r3, r0, #0x0
- mov r0, #0xb
- lsl r2, r7, #0x18
- str r0, [sp, #0x0]
- add r0, r6, #0x0
- mov r1, #0x2
- lsr r2, r2, #0x18
- bl FUN_02037F2C
- mov r1, #0x7e
- lsl r1, r1, #0x2
- str r0, [r4, r1]
- lsl r2, r7, #0x18
- add r0, r5, #0x0
- mov r1, #0x0
- lsr r2, r2, #0x18
- bl FUN_02036BC4
- mov r1, #0x7f
- lsl r1, r1, #0x2
- str r0, [r4, r1]
- ldr r1, _0203650C ; =FUN_02036BDC
- add r0, r4, #0x0
- bl FUN_02035D04
- b _020364F8
-_02036474:
- mov r0, #0xb
- mov r1, #0x40
- bl FUN_02016998
- mov r1, #0x0
- mov r2, #0x40
- add r5, r0, #0x0
- bl Call_FillMemWithValue
- ldr r0, [sp, #0x4]
- str r0, [r5, #0x0]
- ldr r0, [r6, #0xc]
- bl FUN_0206F158
- str r0, [r5, #0x4]
- ldr r0, [r6, #0xc]
- bl FUN_02025838
- str r0, [r5, #0x8]
- ldr r0, [r6, #0xc]
- bl LoadPlayerDataAddress
- str r0, [r5, #0xc]
- mov r0, #0x7a
- lsl r0, r0, #0x2
- add r0, r4, r0
- str r0, [r5, #0x18]
- add r0, r5, #0x0
- mov r1, #0x0
- add r0, #0x21
- strb r1, [r0, #0x0]
- ldr r0, [sp, #0x8]
- bl FUN_0206E37C
- strh r0, [r5, #0x24]
- add r0, r5, #0x0
- add r0, #0x22
- strb r7, [r0, #0x0]
- str r6, [r5, #0x1c]
- ldrh r0, [r5, #0x24]
- cmp r0, #0x0
- bne _020364CC
- mov r1, #0x0
- b _020364CE
-_020364CC:
- mov r1, #0xa
-_020364CE:
- add r0, r5, #0x0
- add r0, #0x20
- strb r1, [r0, #0x0]
- ldr r1, _02036504 ; =0x020F96DC
- add r0, r6, #0x0
- add r2, r5, #0x0
- bl FUN_020373D4
- mov r0, #0x7e
- lsl r0, r0, #0x2
- str r5, [r4, r0]
- ldr r1, _02036508 ; =FUN_02035E50
- add r0, r4, #0x0
- bl FUN_02035D04
- b _020364F8
-_020364EE:
- add r0, r6, #0x0
- bl FUN_0204649C
- mov r0, #0xc
- strh r0, [r4, #0x2a]
-_020364F8:
- ldr r0, [sp, #0x8]
- bl FUN_02016A18
- mov r0, #0x0
- add sp, #0x18
- pop {r3-r7, pc}
- .balign 4
-_02036504: .word 0x020F96DC
-_02036508: .word FUN_02035E50
-_0203650C: .word FUN_02036BDC
-
- thumb_func_start FUN_02036510
-FUN_02036510: ; 0x02036510
- push {r4, lr}
- bl FUN_0204652C
- add r4, r0, #0x0
- mov r0, #0x0
- bl MOD05_021D7CA4
- mov r0, #0x72
- ldr r1, _02036530 ; =FUN_02036534
- lsl r0, r0, #0x2
- str r1, [r4, r0]
- mov r0, #0x2
- strh r0, [r4, #0x2a]
- mov r0, #0x1
- pop {r4, pc}
- nop
-_02036530: .word FUN_02036534
-
- thumb_func_start FUN_02036534
-FUN_02036534: ; 0x02036534
- push {r3-r5, lr}
- sub sp, #0x8
- add r4, r0, #0x0
- bl FUN_02046528
- add r5, r0, #0x0
- add r0, r4, #0x0
- bl FUN_0204652C
- add r4, r0, #0x0
- mov r0, #0xb
- bl FUN_02065054
- mov r1, #0x7e
- lsl r1, r1, #0x2
- str r0, [r4, r1]
- str r5, [sp, #0x0]
- ldr r0, [r4, r1]
- mov r2, #0x0
- str r0, [sp, #0x4]
- mov r0, #0x1
- add r1, r0, #0x0
- mov r3, #0xff
- bl FUN_02064E90
- mov r1, #0x7e
- lsl r1, r1, #0x2
- ldr r1, [r4, r1]
- add r0, r5, #0x0
- bl FUN_02038680
- mov r0, #0x72
- ldr r1, _02036580 ; =FUN_02036584
- lsl r0, r0, #0x2
- str r1, [r4, r0]
- mov r0, #0x0
- add sp, #0x8
- pop {r3-r5, pc}
- .balign 4
-_02036580: .word FUN_02036584
-
- thumb_func_start FUN_02036584
-FUN_02036584: ; 0x02036584
- push {r3-r5, lr}
- add r4, r0, #0x0
- bl FUN_02046528
- add r5, r0, #0x0
- add r0, r4, #0x0
- bl FUN_0204652C
- mov r1, #0x7e
- add r4, r0, #0x0
- lsl r1, r1, #0x2
- ldr r1, [r4, r1]
- add r0, r5, #0x0
- bl FUN_02065314
- mov r0, #0x7e
- lsl r0, r0, #0x2
- ldr r0, [r4, r0]
- bl FUN_02065070
- add r0, r5, #0x0
- bl FUN_0204649C
- mov r0, #0xc
- strh r0, [r4, #0x2a]
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_020365BC
-FUN_020365BC: ; 0x020365BC
- push {r3-r5, lr}
- add r5, r0, #0x0
- bl FUN_0204652C
- add r4, r0, #0x0
- bl FUN_02035718
- add r0, r4, #0x0
- mov r1, #0x1
- bl FUN_0200CCF8
- ldrb r1, [r4, #0x4]
- ldr r0, [r4, #0x0]
- bl FUN_0201AC68
- add r0, r4, #0x0
- bl FUN_02019178
- add r0, r5, #0x0
- bl FUN_020358A0
- mov r0, #0x4
- strh r0, [r4, #0x2a]
- mov r0, #0x1
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_020365F0
-FUN_020365F0: ; 0x020365F0
- push {r3-r5, lr}
- add r5, r0, #0x0
- bl FUN_0204652C
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl FUN_02046528
- ldr r0, [r0, #0xc]
- bl FUN_0202280C
- cmp r0, #0x0
- beq _02036618
- mov r2, #0x0
- ldr r1, _0203663C ; =0x000007F2
- add r0, r5, #0x0
- add r3, r2, #0x0
- bl FUN_02038CD8
- b _02036636
-_02036618:
- mov r0, #0x20
- mov r1, #0x8
- bl FUN_02016998
- mov r1, #0x7e
- lsl r1, r1, #0x2
- str r0, [r4, r1]
- ldr r3, [r4, r1]
- mov r2, #0x0
- strh r2, [r3, #0x4]
- ldr r1, _02036640 ; =0x000007D5
- add r0, r5, #0x0
- add r3, r3, #0x4
- bl FUN_02038CD8
-_02036636:
- mov r0, #0x5
- strh r0, [r4, #0x2a]
- pop {r3-r5, pc}
- .balign 4
-_0203663C: .word 0x000007F2
-_02036640: .word 0x000007D5
-
- thumb_func_start FUN_02036644
-FUN_02036644: ; 0x02036644
- push {r4-r6, lr}
- add r4, r0, #0x0
- bl FUN_02046528
- add r6, r0, #0x0
- add r0, r4, #0x0
- bl FUN_0204652C
- add r4, r0, #0x0
- mov r0, #0x7e
- lsl r0, r0, #0x2
- ldr r5, [r4, r0]
- ldr r0, [r6, #0xc]
- bl FUN_0202280C
- cmp r0, #0x0
- beq _0203666C
- mov r0, #0x0
- strh r0, [r4, #0x2a]
- pop {r4-r6, pc}
-_0203666C:
- ldrh r0, [r5, #0x4]
- cmp r0, #0x0
- bne _02036676
- mov r0, #0x0
- b _02036678
-_02036676:
- mov r0, #0xf
-_02036678:
- strh r0, [r4, #0x2a]
- add r0, r5, #0x0
- bl FUN_02016A18
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02036684
-FUN_02036684: ; 0x02036684
- push {r4, lr}
- bl FUN_0204652C
- add r4, r0, #0x0
- mov r0, #0x0
- bl MOD05_021D7CA4
- mov r0, #0x72
- ldr r1, _020366A4 ; =FUN_020366A8
- lsl r0, r0, #0x2
- str r1, [r4, r0]
- mov r0, #0x2
- strh r0, [r4, #0x2a]
- mov r0, #0x1
- pop {r4, pc}
- nop
-_020366A4: .word FUN_020366A8
-
- thumb_func_start FUN_020366A8
-FUN_020366A8: ; 0x020366A8
- push {r3-r5, lr}
- add r4, r0, #0x0
- bl FUN_02046528
- add r5, r0, #0x0
- add r0, r4, #0x0
- bl FUN_0204652C
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl FUN_02037EF8
- mov r1, #0x7e
- lsl r1, r1, #0x2
- str r0, [r4, r1]
- ldr r0, _020366D0 ; =FUN_020366D4
- sub r1, #0x30
- str r0, [r4, r1]
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-_020366D0: .word FUN_020366D4
-
- thumb_func_start FUN_020366D4
-FUN_020366D4: ; 0x020366D4
- push {r3-r5, lr}
- add r4, r0, #0x0
- bl FUN_02046528
- add r5, r0, #0x0
- add r0, r4, #0x0
- bl FUN_0204652C
- add r4, r0, #0x0
- mov r0, #0x7e
- lsl r0, r0, #0x2
- ldr r0, [r4, r0]
- bl FUN_02016A18
- add r0, r5, #0x0
- bl FUN_0204649C
- mov r0, #0xc
- strh r0, [r4, #0x2a]
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02036700
-FUN_02036700: ; 0x02036700
- push {r4, lr}
- bl FUN_0204652C
- add r4, r0, #0x0
- mov r0, #0x0
- bl MOD05_021D7CA4
- mov r0, #0x72
- ldr r1, _02036720 ; =FUN_02036724
- lsl r0, r0, #0x2
- str r1, [r4, r0]
- mov r0, #0x2
- strh r0, [r4, #0x2a]
- mov r0, #0x1
- pop {r4, pc}
- nop
-_02036720: .word FUN_02036724
-
- thumb_func_start FUN_02036724
-FUN_02036724: ; 0x02036724
- push {r3-r5, lr}
- sub sp, #0x8
- add r4, r0, #0x0
- bl FUN_02046528
- add r5, r0, #0x0
- add r0, r4, #0x0
- bl FUN_0204652C
- add r4, r0, #0x0
- ldr r2, [r5, #0xc]
- mov r0, #0x2
- mov r1, #0x0
- mov r3, #0xb
- bl FUN_02085338
- mov r1, #0x7e
- lsl r1, r1, #0x2
- str r0, [r4, r1]
- add r0, sp, #0x0
- mov r1, #0x4
- bl FUN_0201373C
- mov r0, #0x7e
- lsl r0, r0, #0x2
- ldr r0, [r4, r0]
- add r1, sp, #0x0
- bl FUN_020853BC
- mov r1, #0x7e
- lsl r1, r1, #0x2
- ldr r1, [r4, r1]
- add r0, r5, #0x0
- bl FUN_02037E80
- mov r0, #0x72
- ldr r1, _02036778 ; =FUN_0203677C
- lsl r0, r0, #0x2
- str r1, [r4, r0]
- mov r0, #0x0
- add sp, #0x8
- pop {r3-r5, pc}
- .balign 4
-_02036778: .word FUN_0203677C
-
- thumb_func_start FUN_0203677C
-FUN_0203677C: ; 0x0203677C
- push {r3-r5, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- bl FUN_02046528
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl FUN_0204652C
- add r5, r0, #0x0
- mov r0, #0x7e
- lsl r0, r0, #0x2
- ldr r0, [r5, r0]
- bl FUN_020853E4
- cmp r0, #0x0
- bne _020367C6
- mov r0, #0x7e
- lsl r0, r0, #0x2
- ldr r0, [r5, r0]
- add r1, sp, #0x0
- bl FUN_020853FC
- bl FUN_0202EDF8
- cmp r0, #0x0
- beq _020367C0
- add r0, sp, #0x0
- bl FUN_02052DE8
- ldr r0, [r4, #0x78]
- add r1, sp, #0x0
- bl FUN_02052CD8
-_020367C0:
- mov r0, #0x8
- strh r0, [r5, #0x2a]
- b _020367CA
-_020367C6:
- mov r0, #0xc
- strh r0, [r5, #0x2a]
-_020367CA:
- mov r0, #0x7e
- lsl r0, r0, #0x2
- ldr r0, [r5, r0]
- bl FUN_020853A8
- add r0, r4, #0x0
- bl FUN_0204649C
- ldr r0, [r4, #0x7c]
- bl FUN_02052F74
- mov r0, #0x0
- add sp, #0x8
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_020367E8
-FUN_020367E8: ; 0x020367E8
- push {r4-r6, lr}
- add r5, r0, #0x0
- bl FUN_02046528
- add r6, r0, #0x0
- add r0, r5, #0x0
- bl FUN_0204652C
- add r4, r0, #0x0
- bl FUN_02035718
- add r0, r4, #0x0
- mov r1, #0x1
- bl FUN_0200CCF8
- ldrb r1, [r4, #0x4]
- ldr r0, [r4, #0x0]
- bl FUN_0201AC68
- add r0, r4, #0x0
- bl FUN_02019178
- add r0, r5, #0x0
- bl FUN_020358A0
- ldr r0, [r6, #0xc]
- bl FUN_020462AC
- bl FUN_0205F214
- cmp r0, #0x1
- bne _02036834
- ldr r1, _02036848 ; =0x00002275
- add r0, r5, #0x0
- mov r2, #0x0
- bl FUN_02038D10
- b _0203683E
-_02036834:
- add r0, r5, #0x0
- mov r1, #0x4
- mov r2, #0x0
- bl FUN_02038D10
-_0203683E:
- add r0, r4, #0x0
- bl FUN_02016A18
- mov r0, #0x0
- pop {r4-r6, pc}
- .balign 4
-_02036848: .word 0x00002275
-
- thumb_func_start FUN_0203684C
-FUN_0203684C: ; 0x0203684C
- push {r3-r7, lr}
- add r4, r0, #0x0
- bl FUN_02046528
- add r6, r0, #0x0
- add r0, r4, #0x0
- bl FUN_0204652C
- add r4, r0, #0x0
- mov r0, #0xb
- mov r1, #0x30
- bl FUN_02016998
- mov r1, #0x7e
- lsl r1, r1, #0x2
- ldr r1, [r4, r1]
- mov r2, #0x30
- add r7, r0, #0x0
- bl memcpy
- mov r0, #0x7e
- lsl r0, r0, #0x2
- ldr r0, [r4, r0]
- bl FUN_02016A18
- ldrb r0, [r7, #0x12]
- cmp r0, #0x2
- bne _0203692E
- mov r0, #0xb
- mov r1, #0x40
- bl FUN_02016998
- mov r1, #0x7f
- lsl r1, r1, #0x2
- ldr r1, [r4, r1]
- mov r2, #0x40
- str r1, [sp, #0x0]
- mov r1, #0x0
- add r5, r0, #0x0
- bl Call_FillMemWithValue
- ldr r0, [r6, #0xc]
- bl FUN_0206BB1C
- str r0, [r5, #0x0]
- ldr r0, [r6, #0xc]
- bl FUN_0206F158
- str r0, [r5, #0x4]
- ldr r0, [r6, #0xc]
- bl FUN_02025838
- str r0, [r5, #0x8]
- ldr r0, [r6, #0xc]
- bl LoadPlayerDataAddress
- str r0, [r5, #0xc]
- mov r0, #0x7a
- lsl r0, r0, #0x2
- add r0, r4, r0
- add r1, r5, #0x0
- str r0, [r5, #0x18]
- mov r0, #0x0
- add r1, #0x21
- strb r0, [r1, #0x0]
- ldr r1, [sp, #0x0]
- str r6, [r5, #0x1c]
- ldrh r1, [r1, #0x0]
- cmp r1, #0x0
- beq _020368E2
- add r1, r5, #0x0
- mov r2, #0x7
- add r1, #0x20
- strb r2, [r1, #0x0]
- b _020368EE
-_020368E2:
- add r0, r5, #0x0
- mov r1, #0x8
- add r0, #0x20
- strb r1, [r0, #0x0]
- ldr r0, [sp, #0x0]
- ldrh r0, [r0, #0x2]
-_020368EE:
- str r0, [r5, #0x34]
- ldr r0, [sp, #0x0]
- add r2, r5, #0x0
- ldrh r0, [r0, #0x0]
- strh r0, [r5, #0x24]
- add r0, r5, #0x0
- ldrb r1, [r7, #0x14]
- add r0, #0x22
- strb r1, [r0, #0x0]
- ldrh r0, [r7, #0x18]
- strh r0, [r5, #0x26]
- add r0, r5, #0x0
- ldrb r1, [r7, #0x16]
- add r0, #0x28
- strb r1, [r0, #0x0]
- ldr r1, _02036954 ; =0x020F96DC
- add r0, r6, #0x0
- bl FUN_020373D4
- mov r0, #0x7f
- lsl r0, r0, #0x2
- ldr r0, [r4, r0]
- bl FUN_02016A18
- mov r0, #0x7e
- lsl r0, r0, #0x2
- str r5, [r4, r0]
- ldr r1, _02036958 ; =FUN_02035E50
- add r0, r4, #0x0
- bl FUN_02035D04
- b _0203694A
-_0203692E:
- mov r1, #0x7a
- lsl r1, r1, #0x2
- ldrb r2, [r7, #0x14]
- add r0, r6, #0x0
- add r1, r4, r1
- bl FUN_020379C8
- mov r1, #0x7e
- lsl r1, r1, #0x2
- str r0, [r4, r1]
- ldr r1, _02036958 ; =FUN_02035E50
- add r0, r4, #0x0
- bl FUN_02035D04
-_0203694A:
- add r0, r7, #0x0
- bl FUN_02016A18
- mov r0, #0x0
- pop {r3-r7, pc}
- .balign 4
-_02036954: .word 0x020F96DC
-_02036958: .word FUN_02035E50
-
- thumb_func_start FUN_0203695C
-FUN_0203695C: ; 0x0203695C
- push {r4-r7, lr}
- sub sp, #0xc
- add r5, r0, #0x0
- add r4, r1, #0x0
- bl FUN_02046528
- str r0, [sp, #0x4]
- add r0, r5, #0x0
- bl FUN_0204652C
- add r6, r0, #0x0
- mov r0, #0xb
- bl FUN_020851B8
- mov r1, #0x7e
- lsl r1, r1, #0x2
- str r0, [r6, r1]
- ldr r0, [sp, #0x4]
- ldr r0, [r0, #0xc]
- bl FUN_0206F158
- str r0, [sp, #0x0]
- mov r0, #0x7e
- lsl r0, r0, #0x2
- ldr r0, [r6, r0]
- add r1, r4, #0x0
- mov r2, #0x1
- bl FUN_020851DC
- mov r5, #0x0
- add r4, r5, #0x0
-_0203699A:
- add r0, r4, #0x0
- bl FUN_0206EB1C
- add r7, r0, #0x0
- ldr r0, [sp, #0x0]
- add r1, r7, #0x0
- mov r2, #0x1
- mov r3, #0xb
- bl FUN_0206EE50
- cmp r0, #0x1
- bne _020369C6
- mov r0, #0x7e
- lsl r0, r0, #0x2
- ldr r0, [r6, r0]
- add r1, r7, #0x0
- mov r2, #0x0
- bl FUN_020851DC
- add r0, r5, #0x1
- lsl r0, r0, #0x18
- lsr r5, r0, #0x18
-_020369C6:
- add r0, r4, #0x1
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
- cmp r4, #0x40
- blo _0203699A
- ldr r0, [sp, #0x4]
- add r3, sp, #0x8
- add r0, #0x94
- ldr r0, [r0, #0x0]
- mov r1, #0x4
- add r2, sp, #0x8
- add r3, #0x1
- bl FUN_0206F17C
- mov r0, #0x7e
- add r2, sp, #0x8
- lsl r0, r0, #0x2
- ldrb r1, [r2, #0x1]
- add r3, r5, #0x3
- lsl r3, r3, #0x18
- ldrb r2, [r2, #0x0]
- ldr r0, [r6, r0]
- lsr r3, r3, #0x18
- bl FUN_020851F8
- mov r1, #0x7e
- lsl r1, r1, #0x2
- ldr r0, [sp, #0x4]
- ldr r1, [r6, r1]
- bl FUN_0203791C
- ldr r1, _02036A10 ; =FUN_02036A14
- add r0, r6, #0x0
- bl FUN_02035D04
- add sp, #0xc
- pop {r4-r7, pc}
- .balign 4
-_02036A10: .word FUN_02036A14
-
- thumb_func_start FUN_02036A14
-FUN_02036A14: ; 0x02036A14
- push {r3-r5, lr}
- add r4, r0, #0x0
- bl FUN_02046528
- add r5, r0, #0x0
- add r0, r4, #0x0
- bl FUN_0204652C
- add r4, r0, #0x0
- mov r0, #0x7e
- lsl r0, r0, #0x2
- add r1, sp, #0x0
- ldr r0, [r4, r0]
- add r1, #0x1
- add r2, sp, #0x0
- bl FUN_0208524C
- add r0, r5, #0x0
- add r3, sp, #0x0
- add r0, #0x94
- ldrb r2, [r3, #0x0]
- ldrb r3, [r3, #0x1]
- ldr r0, [r0, #0x0]
- mov r1, #0x4
- bl FUN_0206F190
- mov r1, #0x7e
- lsl r1, r1, #0x2
- ldr r1, [r4, r1]
- mov r0, #0xb
- bl FUN_02016A8C
- mov r1, #0x73
- lsl r1, r1, #0x2
- add r0, r5, #0x0
- add r1, r4, r1
- bl FUN_02037844
- mov r1, #0x7e
- lsl r1, r1, #0x2
- str r0, [r4, r1]
- ldr r1, _02036A74 ; =FUN_020362E4
- add r0, r4, #0x0
- bl FUN_02035D04
- mov r0, #0x0
- pop {r3-r5, pc}
- nop
-_02036A74: .word FUN_020362E4
-
- thumb_func_start FUN_02036A78
-FUN_02036A78: ; 0x02036A78
- push {r3-r5, lr}
- add r4, r0, #0x0
- bl FUN_02046528
- add r5, r0, #0x0
- add r0, r4, #0x0
- bl FUN_0204652C
- mov r1, #0x7e
- add r4, r0, #0x0
- lsl r1, r1, #0x2
- ldr r1, [r4, r1]
- mov r0, #0xb
- bl FUN_02016A8C
- mov r1, #0x73
- lsl r1, r1, #0x2
- add r0, r5, #0x0
- add r1, r4, r1
- bl FUN_02037844
- mov r1, #0x7e
- lsl r1, r1, #0x2
- str r0, [r4, r1]
- ldr r1, _02036AB4 ; =FUN_020362E4
- add r0, r4, #0x0
- bl FUN_02035D04
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-_02036AB4: .word FUN_020362E4
-
- thumb_func_start FUN_02036AB8
-FUN_02036AB8: ; 0x02036AB8
- push {r3-r7, lr}
- sub sp, #0x8
- add r4, r0, #0x0
- bl FUN_02046528
- add r6, r0, #0x0
- add r0, r4, #0x0
- bl FUN_0204652C
- add r4, r0, #0x0
- mov r0, #0x7f
- lsl r0, r0, #0x2
- ldr r1, [r4, r0]
- mov r0, #0xb
- ldr r7, [r1, #0x0]
- bl FUN_02016A8C
- mov r0, #0x7e
- lsl r0, r0, #0x2
- ldr r5, [r4, r0]
- ldr r0, [r5, #0x10]
- cmp r0, #0x0
- bne _02036B0E
- mov r0, #0xb
- add r1, r5, #0x0
- bl FUN_02016A8C
- mov r1, #0x7a
- lsl r1, r1, #0x2
- lsl r2, r7, #0x18
- add r0, r6, #0x0
- add r1, r4, r1
- lsr r2, r2, #0x18
- bl FUN_020379C8
- mov r1, #0x7e
- lsl r1, r1, #0x2
- str r0, [r4, r1]
- ldr r1, _02036B88 ; =FUN_02035E50
- add r0, r4, #0x0
- bl FUN_02035D04
- b _02036B82
-_02036B0E:
- ldr r0, [r6, #0xc]
- bl FUN_0206BB1C
- add r1, r7, #0x0
- bl FUN_0206B9B0
- add r2, r0, #0x0
- ldr r0, [r5, #0x14]
- add r1, r6, #0x0
- lsl r0, r0, #0x5
- add r0, #0x10
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp, #0x0]
- ldr r0, [r5, #0x18]
- lsl r0, r0, #0x5
- add r0, #0x10
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp, #0x4]
- ldr r3, [r5, #0x1c]
- mov r0, #0xb
- lsl r3, r3, #0x10
- lsr r3, r3, #0x10
- bl FUN_02063888
- ldr r1, [r5, #0x1c]
- add r7, r0, #0x0
- lsl r1, r1, #0x10
- mov r0, #0x1
- lsr r1, r1, #0x10
- mov r2, #0xb
- bl FUN_0202914C
- add r1, r0, #0x0
- add r0, r6, #0x0
- add r0, #0x98
- ldr r0, [r0, #0x0]
- mov r2, #0x1
- bl FUN_02028AD4
- mov r1, #0x7e
- lsl r1, r1, #0x2
- ldr r1, [r4, r1]
- mov r0, #0xb
- bl FUN_02016A8C
- add r0, r6, #0x0
- bl FUN_0204649C
- mov r0, #0x72
- ldr r1, _02036B8C ; =FUN_020638BC
- lsl r0, r0, #0x2
- str r1, [r4, r0]
- add r0, #0x30
- str r7, [r4, r0]
- mov r0, #0xa
- strh r0, [r4, #0x2a]
-_02036B82:
- mov r0, #0x0
- add sp, #0x8
- pop {r3-r7, pc}
- .balign 4
-_02036B88: .word FUN_02035E50
-_02036B8C: .word FUN_020638BC
-
- thumb_func_start FUN_02036B90
-FUN_02036B90: ; 0x02036B90
- push {r3-r5, lr}
- add r4, r0, #0x0
- bl FUN_02046528
- add r5, r0, #0x0
- add r0, r4, #0x0
- bl FUN_0204652C
- mov r1, #0x73
- add r4, r0, #0x0
- lsl r1, r1, #0x2
- add r0, r5, #0x0
- add r1, r4, r1
- bl FUN_02037844
- mov r1, #0x7e
- lsl r1, r1, #0x2
- str r0, [r4, r1]
- ldr r1, _02036BC0 ; =FUN_020362E4
- add r0, r4, #0x0
- bl FUN_02035D04
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-_02036BC0: .word FUN_020362E4
-
- thumb_func_start FUN_02036BC4
-FUN_02036BC4: ; 0x02036BC4
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- mov r0, #0xb
- mov r1, #0x4
- add r6, r2, #0x0
- bl FUN_02016998
- strh r5, [r0, #0x0]
- strb r6, [r0, #0x2]
- strb r4, [r0, #0x3]
- pop {r4-r6, pc}
-
- thumb_func_start FUN_02036BDC
-FUN_02036BDC: ; 0x02036BDC
- push {r4-r6, lr}
- add r4, r0, #0x0
- bl FUN_02046528
- add r5, r0, #0x0
- add r0, r4, #0x0
- bl FUN_0204652C
- add r4, r0, #0x0
- mov r0, #0x7f
- lsl r0, r0, #0x2
- ldr r6, [r4, r0]
- ldrb r1, [r6, #0x3]
- cmp r1, #0x3
- bhi _02036CD4
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #0x6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02036C06: ; jump table (using 16-bit offset)
- .short _02036C58 - _02036C06 - 2; case 0
- .short _02036C98 - _02036C06 - 2; case 1
- .short _02036C32 - _02036C06 - 2; case 2
- .short _02036C0E - _02036C06 - 2; case 3
-_02036C0E:
- sub r0, r0, #0x4
- ldr r0, [r4, r0]
- bl FUN_0208562C
- mov r1, #0x73
- lsl r1, r1, #0x2
- add r0, r5, #0x0
- add r1, r4, r1
- bl FUN_02037844
- mov r1, #0x7e
- lsl r1, r1, #0x2
- str r0, [r4, r1]
- ldr r1, _02036CE4 ; =FUN_020362E4
- add r0, r4, #0x0
- bl FUN_02035D04
- b _02036CD4
-_02036C32:
- sub r0, r0, #0x4
- ldr r0, [r4, r0]
- bl FUN_0208562C
- mov r1, #0x7a
- lsl r1, r1, #0x2
- ldrb r2, [r6, #0x2]
- add r0, r5, #0x0
- add r1, r4, r1
- bl FUN_020379C8
- mov r1, #0x7e
- lsl r1, r1, #0x2
- str r0, [r4, r1]
- ldr r1, _02036CE8 ; =FUN_02035E50
- add r0, r4, #0x0
- bl FUN_02035D04
- b _02036CD4
-_02036C58:
- sub r0, r0, #0x4
- ldr r0, [r4, r0]
- bl FUN_020855E4
- cmp r0, #0x1
- bne _02036C70
- add r0, r5, #0x0
- add r1, r4, #0x0
- mov r2, #0xc
- bl FUN_02036CEC
- b _02036CD4
-_02036C70:
- mov r0, #0x7e
- lsl r0, r0, #0x2
- ldr r0, [r4, r0]
- bl FUN_0208562C
- mov r1, #0x7a
- lsl r1, r1, #0x2
- ldrb r2, [r6, #0x2]
- add r0, r5, #0x0
- add r1, r4, r1
- bl FUN_020379C8
- mov r1, #0x7e
- lsl r1, r1, #0x2
- str r0, [r4, r1]
- ldr r1, _02036CE8 ; =FUN_02035E50
- add r0, r4, #0x0
- bl FUN_02035D04
- b _02036CD4
-_02036C98:
- sub r0, r0, #0x4
- ldr r0, [r4, r0]
- bl FUN_020855E4
- cmp r0, #0x1
- bne _02036CB0
- add r0, r5, #0x0
- add r1, r4, #0x0
- mov r2, #0xb
- bl FUN_02036CEC
- b _02036CD4
-_02036CB0:
- mov r0, #0x7e
- lsl r0, r0, #0x2
- ldr r0, [r4, r0]
- bl FUN_0208562C
- mov r1, #0x73
- lsl r1, r1, #0x2
- add r0, r5, #0x0
- add r1, r4, r1
- bl FUN_02037844
- mov r1, #0x7e
- lsl r1, r1, #0x2
- str r0, [r4, r1]
- ldr r1, _02036CE4 ; =FUN_020362E4
- add r0, r4, #0x0
- bl FUN_02035D04
-_02036CD4:
- mov r0, #0x7f
- lsl r0, r0, #0x2
- ldr r0, [r4, r0]
- bl FUN_02016A18
- mov r0, #0x0
- pop {r4-r6, pc}
- nop
-_02036CE4: .word FUN_020362E4
-_02036CE8: .word FUN_02035E50
-
- thumb_func_start FUN_02036CEC
-FUN_02036CEC: ; 0x02036CEC
- push {r3-r7, lr}
- add r5, r0, #0x0
- mov r0, #0x7f
- add r6, r1, #0x0
- str r2, [sp, #0x0]
- lsl r0, r0, #0x2
- ldr r7, [r6, r0]
- mov r0, #0xb
- mov r1, #0x40
- bl FUN_02016998
- mov r1, #0x0
- mov r2, #0x40
- add r4, r0, #0x0
- bl Call_FillMemWithValue
- ldr r0, [r5, #0xc]
- bl FUN_0206BB1C
- str r0, [r4, #0x0]
- ldr r0, [r5, #0xc]
- bl FUN_0206F158
- str r0, [r4, #0x4]
- ldr r0, [r5, #0xc]
- bl FUN_02025838
- str r0, [r4, #0x8]
- ldr r0, [r5, #0xc]
- bl LoadPlayerDataAddress
- str r0, [r4, #0xc]
- mov r0, #0x7a
- lsl r0, r0, #0x2
- add r0, r6, r0
- str r0, [r4, #0x18]
- add r0, r4, #0x0
- mov r1, #0x0
- add r0, #0x21
- strb r1, [r0, #0x0]
- ldrh r0, [r7, #0x0]
- strh r0, [r4, #0x24]
- add r0, r4, #0x0
- ldrb r1, [r7, #0x2]
- add r0, #0x22
- strb r1, [r0, #0x0]
- add r1, r4, #0x0
- ldr r0, [sp, #0x0]
- add r1, #0x20
- strb r0, [r1, #0x0]
- str r5, [r4, #0x1c]
- ldrb r1, [r7, #0x2]
- ldr r0, [r4, #0x0]
- bl FUN_0206B9B0
- add r1, r0, #0x0
- mov r0, #0x7e
- lsl r0, r0, #0x2
- ldr r0, [r6, r0]
- bl FUN_0208560C
- mov r0, #0x7e
- lsl r0, r0, #0x2
- ldr r0, [r6, r0]
- bl FUN_0208562C
- ldr r1, _02036D8C ; =0x020F96DC
- add r0, r5, #0x0
- add r2, r4, #0x0
- bl FUN_020373D4
- mov r0, #0x7e
- lsl r0, r0, #0x2
- str r4, [r6, r0]
- ldr r1, _02036D90 ; =FUN_02035E50
- add r0, r6, #0x0
- bl FUN_02035D04
- pop {r3-r7, pc}
- nop
-_02036D8C: .word 0x020F96DC
-_02036D90: .word FUN_02035E50
-
- thumb_func_start FUN_02036D94
-FUN_02036D94: ; 0x02036D94
- push {r3-r5, lr}
- add r4, r0, #0x0
- bl FUN_02046528
- add r5, r0, #0x0
- add r0, r4, #0x0
- bl FUN_0204652C
- add r4, r0, #0x0
- mov r0, #0x7e
- lsl r0, r0, #0x2
- ldr r0, [r4, r0]
- bl FUN_02087E14
- mov r1, #0x73
- lsl r1, r1, #0x2
- add r0, r5, #0x0
- add r1, r4, r1
- bl FUN_02037844
- mov r1, #0x7e
- lsl r1, r1, #0x2
- str r0, [r4, r1]
- ldr r1, _02036DD0 ; =FUN_020362E4
- add r0, r4, #0x0
- bl FUN_02035D04
- mov r0, #0x0
- pop {r3-r5, pc}
- nop
-_02036DD0: .word FUN_020362E4
-
- thumb_func_start FUN_02036DD4
-FUN_02036DD4: ; 0x02036DD4
- push {r3-r5, lr}
- add r4, r0, #0x0
- bl FUN_02046528
- add r5, r0, #0x0
- add r0, r4, #0x0
- bl FUN_0204652C
- mov r1, #0x73
- add r4, r0, #0x0
- lsl r1, r1, #0x2
- add r0, r5, #0x0
- add r1, r4, r1
- bl FUN_02037844
- mov r1, #0x7e
- lsl r1, r1, #0x2
- str r0, [r4, r1]
- ldr r1, _02036E04 ; =FUN_020362E4
- add r0, r4, #0x0
- bl FUN_02035D04
- mov r0, #0x0
- pop {r3-r5, pc}
- .balign 4
-_02036E04: .word FUN_020362E4
-
- thumb_func_start FUN_02036E08
-FUN_02036E08: ; 0x02036E08
- push {r3-r7, lr}
- sub sp, #0x48
- add r5, r0, #0x0
- bl FUN_02046528
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl FUN_0204652C
- add r6, r0, #0x0
- mov r0, #0x7e
- lsl r0, r0, #0x2
- ldr r5, [r6, r0]
- bl FUN_0200541C
- mov r0, #0x3
- mov r1, #0x49
- lsl r2, r0, #0x10
- bl FUN_0201681C
- ldr r0, [r4, #0xc]
- bl FUN_0206BB1C
- ldrb r1, [r5, #0x0]
- str r0, [sp, #0x20]
- bl FUN_0206B9B0
- str r0, [sp, #0x24]
- ldrb r0, [r5, #0x1]
- cmp r0, #0x0
- ldr r0, [r4, #0xc]
- bne _02036E9E
- bl LoadPlayerDataAddress
- str r0, [sp, #0x28]
- ldr r0, [r4, #0xc]
- bl FUN_02079C70
- add r7, r0, #0x0
- ldr r0, [r4, #0xc]
- bl FUN_02024DA0
- str r0, [sp, #0x2c]
- ldr r0, [r4, #0xc]
- bl FUN_0206F158
- str r0, [sp, #0x30]
- ldr r0, [r4, #0xc]
- bl FUN_02029FC8
- str r0, [sp, #0x34]
- ldr r0, [r4, #0xc]
- bl FUN_0204C1A8
- ldr r1, [sp, #0x2c]
- str r7, [sp, #0x0]
- str r1, [sp, #0x4]
- ldr r1, [sp, #0x30]
- ldr r3, [sp, #0x28]
- str r1, [sp, #0x8]
- ldr r1, [sp, #0x34]
- str r1, [sp, #0xc]
- str r0, [sp, #0x10]
- ldr r0, [r5, #0x8]
- ldr r1, [sp, #0x24]
- str r0, [sp, #0x14]
- mov r0, #0x1
- str r0, [sp, #0x18]
- mov r0, #0x49
- str r0, [sp, #0x1c]
- ldrh r2, [r5, #0x4]
- ldr r0, [sp, #0x20]
- bl FUN_0206C700
- b _02036EF2
-_02036E9E:
- bl LoadPlayerDataAddress
- str r0, [sp, #0x38]
- ldr r0, [r4, #0xc]
- bl FUN_02079C70
- add r7, r0, #0x0
- ldr r0, [r4, #0xc]
- bl FUN_02024DA0
- str r0, [sp, #0x3c]
- ldr r0, [r4, #0xc]
- bl FUN_0206F158
- str r0, [sp, #0x40]
- ldr r0, [r4, #0xc]
- bl FUN_02029FC8
- str r0, [sp, #0x44]
- ldr r0, [r4, #0xc]
- bl FUN_0204C1A8
- ldr r1, [sp, #0x3c]
- str r7, [sp, #0x0]
- str r1, [sp, #0x4]
- ldr r1, [sp, #0x40]
- ldr r3, [sp, #0x38]
- str r1, [sp, #0x8]
- ldr r1, [sp, #0x44]
- str r1, [sp, #0xc]
- str r0, [sp, #0x10]
- ldr r0, [r5, #0x8]
- ldr r1, [sp, #0x24]
- str r0, [sp, #0x14]
- mov r0, #0x0
- str r0, [sp, #0x18]
- mov r0, #0x49
- str r0, [sp, #0x1c]
- ldrh r2, [r5, #0x4]
- ldr r0, [sp, #0x20]
- bl FUN_0206C700
-_02036EF2:
- add r4, r0, #0x0
- mov r0, #0xb
- mov r1, #0x4
- bl FUN_02016998
- ldrb r1, [r5, #0x0]
- str r1, [r0, #0x0]
- mov r1, #0x7f
- lsl r1, r1, #0x2
- str r0, [r6, r1]
- sub r0, r1, #0x4
- ldr r0, [r6, r0]
- bl FUN_02016A18
- mov r0, #0x7e
- lsl r0, r0, #0x2
- str r4, [r6, r0]
- mov r0, #0x7
- strh r0, [r6, #0x2a]
- add sp, #0x48
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02036F1C
-FUN_02036F1C: ; 0x02036F1C
- push {r3-r5, lr}
- add r4, r0, #0x0
- bl FUN_02046528
- add r5, r0, #0x0
- add r0, r4, #0x0
- bl FUN_0204652C
- add r4, r0, #0x0
- mov r0, #0x7e
- lsl r0, r0, #0x2
- ldr r0, [r4, r0]
- bl FUN_0206C91C
- cmp r0, #0x1
- bne _02036F98
- mov r0, #0x7e
- lsl r0, r0, #0x2
- ldr r0, [r4, r0]
- bl FUN_0206C92C
- mov r0, #0x49
- bl FUN_020168D0
- ldr r0, _02036F9C ; =0x00000475
- mov r1, #0x0
- bl FUN_02005350
- mov r0, #0x0
- bl FUN_0200415C
- ldr r1, [r5, #0x1c]
- add r0, r5, #0x0
- ldr r1, [r1, #0x0]
- bl FUN_0204ADBC
- mov r1, #0x73
- lsl r1, r1, #0x2
- add r0, r5, #0x0
- add r1, r4, r1
- bl FUN_02037844
- mov r1, #0x7e
- lsl r1, r1, #0x2
- str r0, [r4, r1]
- ldr r0, [r4, r1]
- add r1, r1, #0x4
- ldr r1, [r4, r1]
- ldr r1, [r1, #0x0]
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- bl FUN_0206E358
- mov r0, #0x7f
- lsl r0, r0, #0x2
- ldr r0, [r4, r0]
- bl FUN_02016A18
- ldr r1, _02036FA0 ; =FUN_020362E4
- add r0, r4, #0x0
- bl FUN_02035D04
-_02036F98:
- pop {r3-r5, pc}
- nop
-_02036F9C: .word 0x00000475
-_02036FA0: .word FUN_020362E4
-
- thumb_func_start FUN_02036FA4
-FUN_02036FA4: ; 0x02036FA4
- push {r3-r7, lr}
- add r6, r0, #0x0
- ldr r0, [r6, #0x38]
- add r4, r1, #0x0
- add r5, r2, #0x0
- bl FUN_020552F8
- add r7, r0, #0x0
- ldr r0, [r6, #0x38]
- bl FUN_02055320
- str r0, [r4, #0x0]
- ldr r0, [r6, #0x38]
- bl FUN_0205532C
- str r0, [r5, #0x0]
- cmp r7, #0x3
- bhi _02036FFA
- add r0, r7, r7
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02036FD4: ; jump table (using 16-bit offset)
- .short _02036FDC - _02036FD4 - 2; case 0
- .short _02036FE4 - _02036FD4 - 2; case 1
- .short _02036FEC - _02036FD4 - 2; case 2
- .short _02036FF4 - _02036FD4 - 2; case 3
-_02036FDC:
- ldr r0, [r5, #0x0]
- sub r0, r0, #0x1
- str r0, [r5, #0x0]
- b _02036FFA
-_02036FE4:
- ldr r0, [r5, #0x0]
- add r0, r0, #0x1
- str r0, [r5, #0x0]
- b _02036FFA
-_02036FEC:
- ldr r0, [r4, #0x0]
- sub r0, r0, #0x1
- str r0, [r4, #0x0]
- b _02036FFA
-_02036FF4:
- ldr r0, [r4, #0x0]
- add r0, r0, #0x1
- str r0, [r4, #0x0]
-_02036FFA:
- add r0, r7, #0x0
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02037000
-FUN_02037000: ; 0x02037000
- push {r3-r5, lr}
- add r5, r1, #0x0
- bl FUN_020553A0
- bl FUN_02058BE4
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl FUN_02058BE4
- cmp r4, r0
- bne _0203701C
- mov r0, #0x1
- b _0203701E
-_0203701C:
- mov r0, #0x0
-_0203701E:
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02037024
-FUN_02037024: ; 0x02037024
- push {r4-r6, lr}
- sub sp, #0x8
- add r6, r1, #0x0
- add r1, sp, #0x4
- add r2, sp, #0x0
- add r5, r0, #0x0
- bl FUN_02036FA4
- add r4, r0, #0x0
- ldr r1, [sp, #0x4]
- ldr r2, [sp, #0x0]
- add r0, r5, #0x0
- bl FUN_0204A6E0
- bl FUN_020547A4
- cmp r0, #0x1
- bne _0203707E
- cmp r4, #0x3
- bhi _0203707E
- add r0, r4, r4
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02037058: ; jump table (using 16-bit offset)
- .short _02037060 - _02037058 - 2; case 0
- .short _02037068 - _02037058 - 2; case 1
- .short _02037070 - _02037058 - 2; case 2
- .short _02037078 - _02037058 - 2; case 3
-_02037060:
- ldr r0, [sp, #0x0]
- sub r0, r0, #0x1
- str r0, [sp, #0x0]
- b _0203707E
-_02037068:
- ldr r0, [sp, #0x0]
- add r0, r0, #0x1
- str r0, [sp, #0x0]
- b _0203707E
-_02037070:
- ldr r0, [sp, #0x4]
- sub r0, r0, #0x1
- str r0, [sp, #0x4]
- b _0203707E
-_02037078:
- ldr r0, [sp, #0x4]
- add r0, r0, #0x1
- str r0, [sp, #0x4]
-_0203707E:
- ldr r0, [r5, #0x34]
- ldr r1, [sp, #0x4]
- ldr r2, [sp, #0x0]
- bl FUN_02058D74
- str r0, [r6, #0x0]
- add sp, #0x8
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02037090
-FUN_02037090: ; 0x02037090
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- bl FUN_02037024
- ldr r0, [r4, #0x0]
- cmp r0, #0x0
- beq _020370B8
- bl FUN_020588D4
- cmp r0, #0x1
- bne _020370B8
- ldr r0, [r5, #0x38]
- ldr r1, [r4, #0x0]
- bl FUN_02037000
- cmp r0, #0x1
- bne _020370B8
- mov r0, #0x1
- pop {r3-r5, pc}
-_020370B8:
- mov r0, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start FUN_020370BC
-FUN_020370BC: ; 0x020370BC
- push {r3-r7, lr}
- sub sp, #0x10
- str r1, [sp, #0x0]
- str r2, [sp, #0x4]
- add r1, sp, #0xc
- add r2, sp, #0x8
- add r6, r0, #0x0
- bl FUN_02036FA4
- ldr r0, [sp, #0x4]
- mov r7, #0x0
- cmp r0, #0x0
- ble _02037130
- ldr r4, [sp, #0x0]
- add r5, r4, #0x0
-_020370DA:
- ldr r1, [sp, #0xc]
- ldr r0, [r4, #0x4]
- cmp r1, r0
- bne _02037124
- ldr r1, [sp, #0x8]
- ldr r0, [r4, #0x8]
- cmp r1, r0
- bne _02037124
- ldrh r0, [r4, #0x2]
- cmp r0, #0x2
- bne _0203710A
- add r0, r6, #0x0
- add r1, r5, #0x0
- bl FUN_0203713C
- cmp r0, #0x1
- bne _02037124
- mov r0, #0x14
- add r1, r7, #0x0
- mul r1, r0
- ldr r0, [sp, #0x0]
- add sp, #0x10
- ldrh r0, [r0, r1]
- pop {r3-r7, pc}
-_0203710A:
- add r0, r6, #0x0
- add r1, r5, #0x0
- bl FUN_02037168
- cmp r0, #0x1
- bne _02037124
- mov r0, #0x14
- add r1, r7, #0x0
- mul r1, r0
- ldr r0, [sp, #0x0]
- add sp, #0x10
- ldrh r0, [r0, r1]
- pop {r3-r7, pc}
-_02037124:
- ldr r0, [sp, #0x4]
- add r7, r7, #0x1
- add r4, #0x14
- add r5, #0x14
- cmp r7, r0
- blt _020370DA
-_02037130:
- ldr r0, _02037138 ; =0x0000FFFF
- add sp, #0x10
- pop {r3-r7, pc}
- nop
-_02037138: .word 0x0000FFFF
-
- thumb_func_start FUN_0203713C
-FUN_0203713C: ; 0x0203713C
- push {r4, lr}
- add r4, r0, #0x0
- ldrh r0, [r1, #0x2]
- cmp r0, #0x2
- beq _0203714A
- mov r0, #0x0
- pop {r4, pc}
-_0203714A:
- ldrh r0, [r1, #0x0]
- bl FUN_02039694
- add r1, r0, #0x0
- add r0, r4, #0x0
- bl FUN_02039528
- cmp r0, #0x1
- beq _02037160
- mov r0, #0x1
- b _02037162
-_02037160:
- mov r0, #0x0
-_02037162:
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- pop {r4, pc}
-
- thumb_func_start FUN_02037168
-FUN_02037168: ; 0x02037168
- push {r4, lr}
- add r4, r1, #0x0
- ldrh r1, [r4, #0x10]
- cmp r1, #0x4
- bne _02037176
- mov r0, #0x1
- pop {r4, pc}
-_02037176:
- ldr r0, [r0, #0x38]
- bl FUN_020552F8
- cmp r0, #0x3
- bhi _020371CC
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0203718C: ; jump table (using 16-bit offset)
- .short _02037194 - _0203718C - 2; case 0
- .short _020371A2 - _0203718C - 2; case 1
- .short _020371B0 - _0203718C - 2; case 2
- .short _020371BE - _0203718C - 2; case 3
-_02037194:
- ldrh r0, [r4, #0x10]
- cmp r0, #0x0
- beq _0203719E
- cmp r0, #0x6
- bne _020371CC
-_0203719E:
- mov r0, #0x1
- pop {r4, pc}
-_020371A2:
- ldrh r0, [r4, #0x10]
- cmp r0, #0x3
- beq _020371AC
- cmp r0, #0x6
- bne _020371CC
-_020371AC:
- mov r0, #0x1
- pop {r4, pc}
-_020371B0:
- ldrh r0, [r4, #0x10]
- cmp r0, #0x2
- beq _020371BA
- cmp r0, #0x5
- bne _020371CC
-_020371BA:
- mov r0, #0x1
- pop {r4, pc}
-_020371BE:
- ldrh r0, [r4, #0x10]
- cmp r0, #0x1
- beq _020371C8
- cmp r0, #0x5
- bne _020371CC
-_020371C8:
- mov r0, #0x1
- pop {r4, pc}
-_020371CC:
- mov r0, #0x0
- pop {r4, pc}
-
- thumb_func_start FUN_020371D0
-FUN_020371D0: ; 0x020371D0
- push {r4-r6, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- ldr r0, [r5, #0x38]
- add r6, r1, #0x0
- add r4, r2, #0x0
- bl FUN_020552F8
- cmp r0, #0x0
- beq _020371EA
- add sp, #0x8
- ldr r0, _0203722C ; =0x0000FFFF
- pop {r4-r6, pc}
-_020371EA:
- add r0, r5, #0x0
- add r1, sp, #0x4
- add r2, sp, #0x0
- bl FUN_02036FA4
- mov r0, #0x0
- cmp r4, #0x0
- ble _02037224
- ldr r2, [sp, #0x4]
- ldr r3, [sp, #0x0]
- add r1, r6, #0x0
-_02037200:
- ldr r5, [r1, #0x4]
- cmp r2, r5
- bne _0203721C
- ldr r5, [r1, #0x8]
- cmp r3, r5
- bne _0203721C
- ldrh r5, [r1, #0x2]
- cmp r5, #0x1
- bne _0203721C
- mov r1, #0x14
- mul r1, r0
- add sp, #0x8
- ldrh r0, [r6, r1]
- pop {r4-r6, pc}
-_0203721C:
- add r0, r0, #0x1
- add r1, #0x14
- cmp r0, r4
- blt _02037200
-_02037224:
- ldr r0, _0203722C ; =0x0000FFFF
- add sp, #0x8
- pop {r4-r6, pc}
- nop
-_0203722C: .word 0x0000FFFF
-
- thumb_func_start FUN_02037230
-FUN_02037230: ; 0x02037230
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldr r0, [r5, #0x38]
- add r4, r1, #0x0
- bl FUN_020552F8
- cmp r0, #0x0
- beq _02037244
- mov r0, #0x0
- pop {r3-r5, pc}
-_02037244:
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02037090
- cmp r0, #0x1
- bne _02037260
- ldr r0, [r4, #0x0]
- bl FUN_02058458
- sub r0, #0x5b
- cmp r0, #0x5
- bhi _02037260
- mov r0, #0x1
- pop {r3-r5, pc}
-_02037260:
- mov r0, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02037264
-FUN_02037264: ; 0x02037264
- push {r4-r7, lr}
- sub sp, #0xc
- str r0, [sp, #0x0]
- ldr r0, [r0, #0x38]
- str r1, [sp, #0x4]
- str r2, [sp, #0x8]
- bl FUN_02055320
- add r6, r0, #0x0
- ldr r0, [sp, #0x0]
- ldr r0, [r0, #0x38]
- bl FUN_0205532C
- add r4, r0, #0x0
- ldr r0, [sp, #0x8]
- mov r7, #0x0
- cmp r0, #0x0
- ble _020372C8
- ldr r5, [sp, #0x4]
-_0203728A:
- ldrh r1, [r5, #0x2]
- cmp r6, r1
- blt _020372BE
- ldrh r0, [r5, #0x6]
- add r0, r1, r0
- cmp r6, r0
- bge _020372BE
- ldrh r1, [r5, #0x4]
- cmp r4, r1
- blt _020372BE
- ldrh r0, [r5, #0x8]
- add r0, r1, r0
- cmp r4, r0
- bge _020372BE
- ldrh r1, [r5, #0xe]
- ldr r0, [sp, #0x0]
- bl FUN_020394F0
- ldrh r1, [r5, #0xc]
- cmp r1, r0
- bne _020372BE
- ldr r0, [sp, #0x4]
- lsl r1, r7, #0x4
- add sp, #0xc
- ldrh r0, [r0, r1]
- pop {r4-r7, pc}
-_020372BE:
- ldr r0, [sp, #0x8]
- add r7, r7, #0x1
- add r5, #0x10
- cmp r7, r0
- blt _0203728A
-_020372C8:
- ldr r0, _020372D0 ; =0x0000FFFF
- add sp, #0xc
- pop {r4-r7, pc}
- nop
-_020372D0: .word 0x0000FFFF
-
- thumb_func_start FUN_020372D4
-FUN_020372D4: ; 0x020372D4
- push {r3-r5, lr}
- add r5, r0, #0x0
- bl FUN_0200628C
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl FUN_02037400
- ldr r1, _02037300 ; =0x021C5A08
- str r0, [r1, #0x0]
- ldr r1, [r4, #0x4]
- cmp r1, #0x0
- beq _020372F4
- bl FUN_02048FC8
- b _020372F8
-_020372F4:
- bl FUN_02048EC8
-_020372F8:
- mov r0, #0x0
- str r0, [r4, #0x4]
- mov r0, #0x1
- pop {r3-r5, pc}
- .balign 4
-_02037300: .word 0x021C5A08
-
- thumb_func_start FUN_02037304
-FUN_02037304: ; 0x02037304
- push {r3, lr}
- bl FUN_02037400
- ldr r1, _02037318 ; =0x021C5A08
- str r0, [r1, #0x0]
- bl FUN_02048D90
- mov r0, #0x1
- pop {r3, pc}
- nop
-_02037318: .word 0x021C5A08
-
- thumb_func_start FUN_0203731C
-FUN_0203731C: ; 0x0203731C
- push {r3, lr}
- bl FUN_02006278
- bl FUN_02037524
- cmp r0, #0x0
- beq _0203732E
- mov r0, #0x1
- pop {r3, pc}
-_0203732E:
- mov r0, #0x0
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02037334
-FUN_02037334: ; 0x02037334
- push {r3, lr}
- bl FUN_020374B0
- ldr r0, _02037348 ; =SDK_OVERLAY_MODULE_63_ID
- ldr r1, _0203734C ; =0x021DBAB8
- bl FUN_02000E7C
- mov r0, #0x1
- pop {r3, pc}
- nop
-_02037348: .word SDK_OVERLAY_MODULE_63_ID
-_0203734C: .word 0x021DBAB8
-
- thumb_func_start LoadOverlay_MODULE_05
-LoadOverlay_MODULE_05: ; 0x02037350
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, [r4, #0x0]
- ldr r0, [r0, #0x4]
- cmp r0, #0x0
- beq _02037360
- bl ErrorHandling
-_02037360:
- ldr r0, [r4, #0x0]
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _0203736C
- bl ErrorHandling
-_0203736C:
- ldr r0, _0203738C ; =SDK_OVERLAY_MODULE_05_ID
- mov r1, #0x2
- bl HandleLoadOverlay
- mov r1, #0x0
- str r1, [r4, #0x64]
- ldr r0, [r4, #0x0]
- mov r2, #0xb
- str r1, [r0, #0x8]
- ldr r0, _02037390 ; =0x021F64C8
- add r1, r4, #0x0
- bl FUN_02006234
- ldr r1, [r4, #0x0]
- str r0, [r1, #0x0]
- pop {r4, pc}
- .balign 4
-_0203738C: .word SDK_OVERLAY_MODULE_05_ID
-_02037390: .word 0x021F64C8
-
- thumb_func_start FUN_02037394
-FUN_02037394: ; 0x02037394
- mov r1, #0x0
- str r1, [r0, #0x64]
- bx lr
- .balign 4
-
- thumb_func_start FUN_0203739C
-FUN_0203739C: ; 0x0203739C
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _020373A8
- mov r0, #0x1
- bx lr
-_020373A8:
- mov r0, #0x0
- bx lr
-
- thumb_func_start FUN_020373AC
-FUN_020373AC: ; 0x020373AC
- ldr r1, [r0, #0x0]
- ldr r1, [r1, #0x0]
- cmp r1, #0x0
- beq _020373BE
- ldr r0, [r0, #0x64]
- cmp r0, #0x0
- beq _020373BE
- mov r0, #0x1
- bx lr
-_020373BE:
- mov r0, #0x0
- bx lr
- .balign 4
-
- thumb_func_start FUN_020373C4
-FUN_020373C4: ; 0x020373C4
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x4]
- cmp r0, #0x0
- beq _020373D0
- mov r0, #0x1
- bx lr
-_020373D0:
- mov r0, #0x0
- bx lr
-
- thumb_func_start FUN_020373D4
-FUN_020373D4: ; 0x020373D4
- push {r4-r6, lr}
- add r5, r0, #0x0
- ldr r0, [r5, #0x0]
- add r4, r1, #0x0
- ldr r0, [r0, #0x4]
- add r6, r2, #0x0
- cmp r0, #0x0
- beq _020373E8
- bl ErrorHandling
-_020373E8:
- add r0, r5, #0x0
- bl FUN_02037394
- add r0, r4, #0x0
- add r1, r6, #0x0
- mov r2, #0xb
- bl FUN_02006234
- ldr r1, [r5, #0x0]
- str r0, [r1, #0x4]
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02037400
-FUN_02037400: ; 0x02037400
- push {r3-r5, lr}
- mov r2, #0x7
- add r5, r0, #0x0
- mov r0, #0x3
- mov r1, #0xb
- lsl r2, r2, #0xe
- bl FUN_0201681C
- mov r1, #0x20
- mov r0, #0x3
- lsl r2, r1, #0x9
- bl FUN_0201681C
- mov r2, #0x3
- mov r0, #0x0
- mov r1, #0x5b
- lsl r2, r2, #0x8
- bl FUN_0201681C
- add r0, r5, #0x0
- mov r1, #0xb8
- mov r2, #0xb
- bl FUN_02006268
- mov r1, #0x0
- mov r2, #0xb8
- add r4, r0, #0x0
- bl MI_CpuFill8
- mov r0, #0xb
- mov r1, #0x10
- bl FUN_02016998
- str r0, [r4, #0x0]
- mov r1, #0x0
- str r1, [r0, #0x0]
- ldr r0, [r4, #0x0]
- str r1, [r0, #0x4]
- ldr r0, [r4, #0x0]
- str r1, [r0, #0x8]
- ldr r0, [r4, #0x0]
- str r1, [r0, #0xc]
- add r0, r5, #0x0
- bl FUN_0200628C
- ldr r0, [r0, #0x8]
- str r0, [r4, #0xc]
- mov r0, #0x0
- str r0, [r4, #0x10]
- ldr r0, [r4, #0xc]
- bl FUN_02034E30
- bl FUN_02034DC0
- str r0, [r4, #0x1c]
- bl FUN_02034494
- str r0, [r4, #0x28]
- add r0, r4, #0x0
- mov r1, #0xb
- bl FUN_02034A28
- mov r0, #0xb
- bl FUN_0206F164
- add r1, r4, #0x0
- add r1, #0x94
- str r0, [r1, #0x0]
- mov r0, #0xb
- bl FUN_0205DD18
- add r1, r4, #0x0
- add r1, #0x90
- str r0, [r1, #0x0]
- add r0, r4, #0x0
- add r0, #0x90
- ldr r0, [r0, #0x0]
- bl FUN_0205DD40
- mov r0, #0xb
- bl FUN_0208A300
- add r1, r4, #0x0
- add r1, #0xb0
- str r0, [r1, #0x0]
- add r0, r4, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_020374B0
-FUN_020374B0: ; 0x020374B0
- push {r3-r5, lr}
- add r5, r0, #0x0
- bl FUN_02006278
- add r4, r0, #0x0
- ldr r0, [r4, #0x28]
- bl FUN_020344D0
- add r0, r4, #0x0
- bl FUN_02034A48
- add r0, r4, #0x0
- add r0, #0x94
- ldr r0, [r0, #0x0]
- bl FUN_02016A18
- add r0, r4, #0x0
- add r0, #0x90
- ldr r0, [r0, #0x0]
- bl FUN_0205DD38
- add r0, r4, #0x0
- add r0, #0xb0
- ldr r0, [r0, #0x0]
- bl FUN_0208A320
- ldr r0, [r4, #0x0]
- bl FUN_02016A18
- add r0, r5, #0x0
- bl FUN_0200627C
- mov r0, #0x5b
- bl FUN_020168D0
- mov r0, #0xb
- bl FUN_020168D0
- mov r0, #0x20
- bl FUN_020168D0
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02037504
-FUN_02037504: ; 0x02037504
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, [r4, #0x0]
- cmp r0, #0x0
- beq _02037520
- bl FUN_02006290
- cmp r0, #0x0
- beq _02037520
- ldr r0, [r4, #0x0]
- bl FUN_02006260
- mov r0, #0x0
- str r0, [r4, #0x0]
-_02037520:
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02037524
-FUN_02037524: ; 0x02037524
- push {r4, lr}
- add r4, r0, #0x0
- bl FUN_02037594
- add r0, r4, #0x0
- bl FUN_02046420
- cmp r0, #0x1
- bne _02037546
- ldr r0, [r4, #0x4]
- cmp r0, #0x0
- beq _02037546
- mov r1, #0x0
- add r0, r4, #0x0
- add r2, r1, #0x0
- bl MOD05_021EFA9C
-_02037546:
- ldr r0, [r4, #0x0]
- ldr r1, [r0, #0x0]
- cmp r1, #0x0
- beq _02037562
- bl FUN_02037504
- ldr r0, [r4, #0x0]
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- bne _0203756E
- ldr r0, _02037590 ; =SDK_OVERLAY_MODULE_05_ID
- bl UnloadOverlayByID
- b _0203756E
-_02037562:
- ldr r1, [r0, #0x4]
- cmp r1, #0x0
- beq _0203756E
- add r0, r0, #0x4
- bl FUN_02037504
-_0203756E:
- ldr r1, [r4, #0x0]
- ldr r0, [r1, #0xc]
- cmp r0, #0x0
- beq _0203758C
- ldr r0, [r4, #0x10]
- cmp r0, #0x0
- bne _0203758C
- ldr r0, [r1, #0x0]
- cmp r0, #0x0
- bne _0203758C
- ldr r0, [r1, #0x4]
- cmp r0, #0x0
- bne _0203758C
- mov r0, #0x1
- pop {r4, pc}
-_0203758C:
- mov r0, #0x0
- pop {r4, pc}
- .balign 4
-_02037590: .word SDK_OVERLAY_MODULE_05_ID
-
- thumb_func_start FUN_02037594
-FUN_02037594: ; 0x02037594
- push {r3-r5, lr}
- sub sp, #0x10
- add r4, r0, #0x0
- ldr r1, [r4, #0x0]
- mov r5, #0x0
- ldr r1, [r1, #0x8]
- cmp r1, #0x0
- bne _020375B4
- ldr r1, [r4, #0x64]
- cmp r1, #0x0
- beq _020375B4
- bl FUN_0204646C
- cmp r0, #0x0
- bne _020375B4
- mov r5, #0x1
-_020375B4:
- cmp r5, #0x0
- beq _020375D4
- ldr r0, [r4, #0x38]
- bl FUN_02055A38
- ldr r3, _02037758 ; =0x021C48B8
- add r0, sp, #0x8
- ldr r2, [r3, #0x48]
- ldr r3, [r3, #0x44]
- lsl r2, r2, #0x10
- lsl r3, r3, #0x10
- add r1, r4, #0x0
- lsr r2, r2, #0x10
- lsr r3, r3, #0x10
- bl MOD05_021D8164
-_020375D4:
- ldr r0, [r4, #0x1c]
- ldr r2, [r4, #0x6c]
- ldr r1, [r0, #0x0]
- ldr r0, _0203775C ; =0x00000146
- cmp r1, r0
- bne _020375E2
- mov r2, #0x0
-_020375E2:
- cmp r2, #0x4
- bhi _020376E2
- add r0, r2, r2
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_020375F2: ; jump table (using 16-bit offset)
- .short _020376E2 - _020375F2 - 2; case 0
- .short _020375FC - _020375F2 - 2; case 1
- .short _02037646 - _020375F2 - 2; case 2
- .short _0203761C - _020375F2 - 2; case 3
- .short _02037672 - _020375F2 - 2; case 4
-_020375FC:
- cmp r5, #0x0
- beq _02037610
- bl FUN_0204E2FC
- cmp r0, #0x0
- beq _02037610
- add r0, sp, #0x8
- add r1, r4, #0x0
- bl MOD05_021D85FC
-_02037610:
- add r0, r4, #0x0
- add r1, r5, #0x0
- bl FUN_0204D6C0
- add sp, #0x10
- pop {r3-r5, pc}
-_0203761C:
- cmp r5, #0x0
- beq _0203763A
- bl FUN_0204E2FC
- cmp r0, #0x0
- beq _02037638
- add r0, sp, #0x8
- add r1, r4, #0x0
- bl MOD04_021D865C
- cmp r0, #0x1
- bne _0203763A
- mov r5, #0x0
- b _0203763A
-_02037638:
- mov r5, #0x0
-_0203763A:
- add r0, r4, #0x0
- add r1, r5, #0x0
- bl FUN_0204D6C0
- add sp, #0x10
- pop {r3-r5, pc}
-_02037646:
- cmp r5, #0x0
- bne _0203764C
- b _02037754
-_0203764C:
- add r0, sp, #0x8
- add r1, r4, #0x0
- bl MOD05_021D8758
- cmp r0, #0x1
- beq _02037754
- add r3, sp, #0x8
- ldrh r0, [r3, #0x6]
- mov r2, #0x0
- str r0, [sp, #0x0]
- str r2, [sp, #0x4]
- ldrh r3, [r3, #0x4]
- ldr r0, [r4, #0x38]
- ldr r1, [r4, #0x24]
- sub r2, r2, #0x1
- bl FUN_020557F4
- add sp, #0x10
- pop {r3-r5, pc}
-_02037672:
- cmp r5, #0x0
- beq _02037754
- add r0, sp, #0x8
- add r1, r4, #0x0
- bl MOD05_021D8820
- cmp r0, #0x1
- bne _020376A6
- ldr r0, [r4, #0x4]
- ldr r0, [r0, #0x8]
- bl MOD05_021E32F0
- add r0, r4, #0x0
- mov r1, #0x4
- bl MOD05_021E81BC
- ldr r0, [r4, #0x38]
- bl MOD05_021E7138
- add r0, r4, #0x0
- mov r1, #0x0
- mov r2, #0x1
- bl MOD05_021EFA9C
- add sp, #0x10
- pop {r3-r5, pc}
-_020376A6:
- ldr r0, _02037758 ; =0x021C48B8
- ldr r1, [r0, #0x48]
- mov r0, #0x1
- tst r0, r1
- beq _020376B8
- ldr r0, [r4, #0x4]
- ldr r0, [r0, #0x8]
- bl MOD05_021E32F0
-_020376B8:
- mov r5, #0x0
- bl FUN_02037790
- cmp r0, #0x0
- beq _020376C8
- bl MOD20_02252534
- add r5, r0, #0x0
-_020376C8:
- add r3, sp, #0x8
- ldrh r0, [r3, #0x6]
- mov r2, #0x0
- mvn r2, r2
- str r0, [sp, #0x0]
- str r5, [sp, #0x4]
- ldrh r3, [r3, #0x4]
- ldr r0, [r4, #0x38]
- ldr r1, [r4, #0x24]
- bl FUN_020557F4
- add sp, #0x10
- pop {r3-r5, pc}
-_020376E2:
- cmp r5, #0x0
- beq _02037754
- add r0, sp, #0x8
- add r1, r4, #0x0
- bl MOD05_021D8320
- cmp r0, #0x1
- bne _0203771C
- ldr r0, [r4, #0x4]
- ldr r0, [r0, #0x8]
- bl MOD05_021E32F0
- add r0, r4, #0x0
- mov r1, #0x4
- bl MOD05_021E81BC
- ldr r0, [r4, #0x38]
- bl FUN_02055B14
- ldr r0, [r4, #0x38]
- bl MOD05_021E7138
- add r0, r4, #0x0
- mov r1, #0x0
- mov r2, #0x1
- bl MOD05_021EFA9C
- add sp, #0x10
- pop {r3-r5, pc}
-_0203771C:
- ldr r0, _02037758 ; =0x021C48B8
- ldr r1, [r0, #0x48]
- mov r0, #0x1
- tst r0, r1
- beq _0203772E
- ldr r0, [r4, #0x4]
- ldr r0, [r0, #0x8]
- bl MOD05_021E32F0
-_0203772E:
- mov r5, #0x0
- bl FUN_02037790
- cmp r0, #0x0
- beq _0203773E
- bl MOD20_02252534
- add r5, r0, #0x0
-_0203773E:
- add r3, sp, #0x8
- ldrh r0, [r3, #0x6]
- mov r2, #0x0
- mvn r2, r2
- str r0, [sp, #0x0]
- str r5, [sp, #0x4]
- ldrh r3, [r3, #0x4]
- ldr r0, [r4, #0x38]
- ldr r1, [r4, #0x24]
- bl FUN_020557F4
-_02037754:
- add sp, #0x10
- pop {r3-r5, pc}
- .balign 4
-_02037758: .word 0x021C48B8
-_0203775C: .word 0x00000146
-
- thumb_func_start FUN_02037760
-FUN_02037760: ; 0x02037760
- ldr r0, _02037770 ; =0x021C5A08
- ldr r3, _02037774 ; =FUN_02030FC8
- ldr r0, [r0, #0x0]
- mov r1, #0x1
- ldr r0, [r0, #0x0]
- str r1, [r0, #0x8]
- bx r3
- nop
-_02037770: .word 0x021C5A08
-_02037774: .word FUN_02030FC8
-
- thumb_func_start FUN_02037778
-FUN_02037778: ; 0x02037778
- ldr r0, _02037788 ; =0x021C5A08
- ldr r3, _0203778C ; =FUN_02030FA8
- ldr r0, [r0, #0x0]
- mov r1, #0x0
- ldr r0, [r0, #0x0]
- str r1, [r0, #0x8]
- bx r3
- nop
-_02037788: .word 0x021C5A08
-_0203778C: .word FUN_02030FA8
-
- thumb_func_start FUN_02037790
-FUN_02037790: ; 0x02037790
- ldr r0, _020377A4 ; =0x021C5A08
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x4]
- cmp r0, #0x0
- bne _0203779E
- mov r0, #0x0
- bx lr
-_0203779E:
- ldr r0, [r0, #0x14]
- bx lr
- nop
-_020377A4: .word 0x021C5A08
-
- thumb_func_start FUN_020377A8
-FUN_020377A8: ; 0x020377A8
- ldr r0, [r0, #0x8]
- bx lr
-
- thumb_func_start FUN_020377AC
-FUN_020377AC: ; 0x020377AC
- ldr r0, [r0, #0xc]
- bx lr
-
- thumb_func_start FUN_020377B0
-FUN_020377B0: ; 0x020377B0
- ldr r2, _020377C4 ; =0x020F2B9C
- add r3, r0, #0x0
- ldmia r2!, {r0-r1}
- stmia r3!, {r0-r1}
- ldmia r2!, {r0-r1}
- stmia r3!, {r0-r1}
- ldr r0, [r2, #0x0]
- str r0, [r3, #0x0]
- bx lr
- nop
-_020377C4: .word 0x020F2B9C
-
- thumb_func_start FUN_020377C8
-FUN_020377C8: ; 0x020377C8
- ldr r2, _020377DC ; =0x020F2BB0
- add r3, r0, #0x0
- ldmia r2!, {r0-r1}
- stmia r3!, {r0-r1}
- ldmia r2!, {r0-r1}
- stmia r3!, {r0-r1}
- ldr r0, [r2, #0x0]
- str r0, [r3, #0x0]
- bx lr
- nop
-_020377DC: .word 0x020F2BB0
-
- thumb_func_start FUN_020377E0
-FUN_020377E0: ; 0x020377E0
- push {r3, lr}
- bl FUN_02034E30
- bl FUN_02034DC0
- bl FUN_020377B0
- pop {r3, pc}
-
- thumb_func_start FUN_020377F0
-FUN_020377F0: ; 0x020377F0
- mov r0, #0x1
- bx lr
-
- thumb_func_start FUN_020377F4
-FUN_020377F4: ; 0x020377F4
- push {r3, lr}
- bl MOD11_0222D5C0
- cmp r0, #0x0
- beq _02037802
- mov r0, #0x1
- pop {r3, pc}
-_02037802:
- mov r0, #0x0
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02037808
-FUN_02037808: ; 0x02037808
- mov r0, #0x1
- bx lr
-
- thumb_func_start FUN_0203780C
-FUN_0203780C: ; 0x0203780C
- ldr r3, _02037814 ; =FUN_020373D4
- add r2, r1, #0x0
- ldr r1, _02037818 ; =0x020F2D94
- bx r3
- .balign 4
-_02037814: .word FUN_020373D4
-_02037818: .word 0x020F2D94
-
- thumb_func_start FUN_0203781C
-FUN_0203781C: ; 0x0203781C
- push {r4-r6, lr}
- sub sp, #0x10
- ldr r5, _02037840 ; =0x020F2D74
- add r4, sp, #0x0
- add r6, r0, #0x0
- add r2, r1, #0x0
- add r3, r4, #0x0
- ldmia r5!, {r0-r1}
- stmia r4!, {r0-r1}
- ldmia r5!, {r0-r1}
- stmia r4!, {r0-r1}
- add r0, r6, #0x0
- add r1, r3, #0x0
- bl FUN_020373D4
- add sp, #0x10
- pop {r4-r6, pc}
- nop
-_02037840: .word 0x020F2D74
-
- thumb_func_start FUN_02037844
-FUN_02037844: ; 0x02037844
- push {r4-r6, lr}
- add r5, r0, #0x0
- ldr r0, [r5, #0xc]
- add r6, r1, #0x0
- bl FUN_0206F158
- ldr r1, _02037898 ; =0x020F2BDC
- mov r2, #0xb
- bl FUN_0206EFEC
- add r3, r5, #0x0
- add r3, #0x94
- ldr r1, [r5, #0xc]
- ldr r3, [r3, #0x0]
- mov r2, #0x0
- add r4, r0, #0x0
- bl FUN_0206E314
- ldr r1, [r5, #0x6c]
- add r0, r4, #0x0
- lsl r1, r1, #0x10
- lsr r1, r1, #0x10
- bl FUN_0206E360
- ldr r0, [r5, #0x38]
- bl FUN_020553C4
- cmp r0, #0x1
- bne _02037884
- add r0, r4, #0x0
- bl FUN_0206E340
-_02037884:
- add r0, r4, #0x0
- add r1, r6, #0x0
- bl FUN_0206E354
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_0203781C
- add r0, r4, #0x0
- pop {r4-r6, pc}
- .balign 4
-_02037898: .word 0x020F2BDC
-
- thumb_func_start FUN_0203789C
-FUN_0203789C: ; 0x0203789C
- push {r4-r6, lr}
- add r5, r0, #0x0
- ldr r0, [r5, #0xc]
- add r4, r1, #0x0
- bl FUN_0206F158
- add r6, r0, #0x0
- cmp r4, #0x0
- beq _020378B4
- cmp r4, #0x1
- beq _020378BC
- b _020378C4
-_020378B4:
- ldr r1, _020378F0 ; =0x020F2BC8
- ldr r0, _020378F4 ; =0x02105DB8
- str r1, [r0, #0x0]
- b _020378C8
-_020378BC:
- ldr r1, _020378F8 ; =0x020F2BC4
- ldr r0, _020378F4 ; =0x02105DB8
- str r1, [r0, #0x0]
- b _020378C8
-_020378C4:
- bl ErrorHandling
-_020378C8:
- ldr r1, _020378F4 ; =0x02105DB8
- add r0, r6, #0x0
- ldr r1, [r1, #0x0]
- mov r2, #0x20
- bl FUN_0206EFEC
- add r3, r5, #0x0
- add r3, #0x94
- ldr r1, [r5, #0xc]
- ldr r3, [r3, #0x0]
- add r4, r0, #0x0
- mov r2, #0x3
- bl FUN_0206E314
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_0203781C
- add r0, r4, #0x0
- pop {r4-r6, pc}
- .balign 4
-_020378F0: .word 0x020F2BC8
-_020378F4: .word 0x02105DB8
-_020378F8: .word 0x020F2BC4
-
- thumb_func_start FUN_020378FC
-FUN_020378FC: ; 0x020378FC
- push {r3-r5, lr}
- add r5, r0, #0x0
- bl FUN_0206E37C
- add r4, r0, #0x0
- beq _02037916
- add r0, r5, #0x0
- bl FUN_0206E384
- cmp r0, #0x5
- bne _02037916
- bl ErrorHandling
-_02037916:
- add r0, r4, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0203791C
-FUN_0203791C: ; 0x0203791C
- push {r4-r6, lr}
- sub sp, #0x10
- ldr r5, _02037940 ; =0x020F2D44
- add r4, sp, #0x0
- add r6, r0, #0x0
- add r2, r1, #0x0
- add r3, r4, #0x0
- ldmia r5!, {r0-r1}
- stmia r4!, {r0-r1}
- ldmia r5!, {r0-r1}
- stmia r4!, {r0-r1}
- add r0, r6, #0x0
- add r1, r3, #0x0
- bl FUN_020373D4
- add sp, #0x10
- pop {r4-r6, pc}
- nop
-_02037940: .word 0x020F2D44
-
- thumb_func_start FUN_02037944
-FUN_02037944: ; 0x02037944
- push {r3-r5, lr}
- sub sp, #0x10
- ldr r4, _02037968 ; =0x020F2D24
- add r3, sp, #0x0
- add r5, r0, #0x0
- add r2, r3, #0x0
- ldmia r4!, {r0-r1}
- stmia r3!, {r0-r1}
- ldmia r4!, {r0-r1}
- stmia r3!, {r0-r1}
- add r1, r2, #0x0
- ldr r2, [r5, #0xc]
- add r0, r5, #0x0
- bl FUN_020373D4
- add sp, #0x10
- pop {r3-r5, pc}
- nop
-_02037968: .word 0x020F2D24
-
- thumb_func_start FUN_0203796C
-FUN_0203796C: ; 0x0203796C
- ldr r3, _02037974 ; =FUN_020373D4
- add r2, r1, #0x0
- ldr r1, _02037978 ; =0x020FA6E8
- bx r3
- .balign 4
-_02037974: .word FUN_020373D4
-_02037978: .word 0x020FA6E8
-
- thumb_func_start FUN_0203797C
-FUN_0203797C: ; 0x0203797C
- push {r3-r7, lr}
- add r5, r1, #0x0
- mov r1, #0x40
- add r6, r2, #0x0
- add r7, r3, #0x0
- bl FUN_02016998
- add r4, r0, #0x0
- mov r0, #0x0
- add r1, r4, #0x0
- mov r2, #0x40
- bl MIi_CpuClearFast
- ldr r0, [r5, #0xc]
- bl FUN_0206BB1C
- str r0, [r4, #0x0]
- ldr r0, [r5, #0xc]
- bl FUN_0206F158
- str r0, [r4, #0x4]
- ldr r0, [r5, #0xc]
- bl FUN_02025838
- str r0, [r4, #0x8]
- ldr r0, [r5, #0xc]
- bl LoadPlayerDataAddress
- str r0, [r4, #0xc]
- add r0, r4, #0x0
- add r0, #0x21
- strb r6, [r0, #0x0]
- add r0, r4, #0x0
- add r0, #0x20
- strb r7, [r0, #0x0]
- str r5, [r4, #0x1c]
- add r0, r4, #0x0
- pop {r3-r7, pc}
-
- thumb_func_start FUN_020379C8
-FUN_020379C8: ; 0x020379C8
- push {r3-r7, lr}
- add r5, r0, #0x0
- add r7, r2, #0x0
- mov r2, #0x0
- add r6, r1, #0x0
- mov r0, #0xb
- add r1, r5, #0x0
- add r3, r2, #0x0
- bl FUN_0203797C
- add r4, r0, #0x0
- str r6, [r4, #0x18]
- add r0, #0x22
- strb r7, [r0, #0x0]
- ldr r1, _020379F4 ; =0x020F96DC
- add r0, r5, #0x0
- add r2, r4, #0x0
- bl FUN_020373D4
- add r0, r4, #0x0
- pop {r3-r7, pc}
- nop
-_020379F4: .word 0x020F96DC
-
- thumb_func_start FUN_020379F8
-FUN_020379F8: ; 0x020379F8
- push {r3-r5, lr}
- mov r0, #0xb
- mov r2, #0x0
- mov r3, #0x3
- add r5, r1, #0x0
- bl FUN_0203797C
- add r4, r0, #0x0
- ldr r1, _02037A18 ; =0x020F96DC
- add r0, r5, #0x0
- add r2, r4, #0x0
- bl FUN_020373D4
- add r0, r4, #0x0
- pop {r3-r5, pc}
- nop
-_02037A18: .word 0x020F96DC
-
- thumb_func_start FUN_02037A1C
-FUN_02037A1C: ; 0x02037A1C
- push {r3-r5, lr}
- mov r0, #0xb
- mov r2, #0x0
- mov r3, #0x13
- add r5, r1, #0x0
- bl FUN_0203797C
- add r4, r0, #0x0
- ldr r1, _02037A3C ; =0x020F96DC
- add r0, r5, #0x0
- add r2, r4, #0x0
- bl FUN_020373D4
- add r0, r4, #0x0
- pop {r3-r5, pc}
- nop
-_02037A3C: .word 0x020F96DC
-
- thumb_func_start FUN_02037A40
-FUN_02037A40: ; 0x02037A40
- add r0, #0x22
- ldrb r0, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02037A48
-FUN_02037A48: ; 0x02037A48
- push {r4-r6, lr}
- add r4, r2, #0x0
- mov r0, #0xb
- mov r2, #0x0
- mov r3, #0x12
- add r5, r1, #0x0
- bl FUN_0203797C
- add r6, r0, #0x0
- add r0, #0x22
- strb r4, [r0, #0x0]
- ldr r1, _02037A6C ; =0x020F96DC
- add r0, r5, #0x0
- add r2, r6, #0x0
- bl FUN_020373D4
- add r0, r6, #0x0
- pop {r4-r6, pc}
- .balign 4
-_02037A6C: .word 0x020F96DC
-
- thumb_func_start FUN_02037A70
-FUN_02037A70: ; 0x02037A70
- add r0, #0x23
- ldrb r0, [r0, #0x0]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02037A78
-FUN_02037A78: ; 0x02037A78
- ldrb r0, [r0, #0x14]
- bx lr
-
- thumb_func_start FUN_02037A7C
-FUN_02037A7C: ; 0x02037A7C
- push {r4-r6, lr}
- add r5, r0, #0x0
- bl FUN_02046528
- add r6, r0, #0x0
- add r0, r5, #0x0
- bl FUN_0204652C
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl FUN_02046530
- add r5, r0, #0x0
- ldr r0, [r5, #0x0]
- cmp r0, #0x4
- bhi _02037B3A
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02037AA8: ; jump table (using 16-bit offset)
- .short _02037AB2 - _02037AA8 - 2; case 0
- .short _02037AC2 - _02037AA8 - 2; case 1
- .short _02037AF8 - _02037AA8 - 2; case 2
- .short _02037B1A - _02037AA8 - 2; case 3
- .short _02037B30 - _02037AA8 - 2; case 4
-_02037AB2:
- ldr r1, _02037B40 ; =0x020F96DC
- ldr r2, [r4, #0x4]
- add r0, r6, #0x0
- bl FUN_020373D4
- mov r0, #0x1
- str r0, [r5, #0x0]
- b _02037B3A
-_02037AC2:
- add r0, r6, #0x0
- bl FUN_0204647C
- cmp r0, #0x0
- bne _02037B3A
- ldr r0, [r4, #0x4]
- add r0, #0x22
- ldrb r0, [r0, #0x0]
- cmp r0, #0x6
- beq _02037AE6
- cmp r0, #0x7
- bne _02037AF2
- mov r0, #0x2
- bl FUN_020527D8
- mov r0, #0x4
- str r0, [r5, #0x0]
- b _02037B3A
-_02037AE6:
- mov r0, #0x1
- bl FUN_020527D8
- mov r0, #0x4
- str r0, [r5, #0x0]
- b _02037B3A
-_02037AF2:
- mov r0, #0x2
- str r0, [r5, #0x0]
- b _02037B3A
-_02037AF8:
- ldr r1, [r4, #0x0]
- add r0, r6, #0x0
- mov r2, #0x0
- bl FUN_02037C7C
- str r0, [r4, #0x8]
- ldr r1, [r4, #0x4]
- add r1, #0x22
- ldrb r1, [r1, #0x0]
- strb r1, [r0, #0x14]
- ldr r1, [r4, #0x8]
- add r0, r6, #0x0
- bl FUN_0203796C
- mov r0, #0x3
- str r0, [r5, #0x0]
- b _02037B3A
-_02037B1A:
- add r0, r6, #0x0
- bl FUN_0204647C
- cmp r0, #0x0
- bne _02037B3A
- ldr r0, [r4, #0x8]
- bl FUN_02016A18
- mov r0, #0x0
- str r0, [r5, #0x0]
- b _02037B3A
-_02037B30:
- add r0, r4, #0x0
- bl FUN_02016A18
- mov r0, #0x1
- pop {r4-r6, pc}
-_02037B3A:
- mov r0, #0x0
- pop {r4-r6, pc}
- nop
-_02037B40: .word 0x020F96DC
-
- thumb_func_start FUN_02037B44
-FUN_02037B44: ; 0x02037B44
- push {r3-r7, lr}
- add r5, r1, #0x0
- add r7, r0, #0x0
- bl FUN_02046528
- add r6, r0, #0x0
- add r0, r5, #0x0
- mov r1, #0xc
- bl FUN_02016998
- add r4, r0, #0x0
- add r0, r5, #0x0
- add r1, r6, #0x0
- mov r2, #0x0
- mov r3, #0x2
- str r5, [r4, #0x0]
- bl FUN_0203797C
- add r5, r0, #0x0
- add r0, #0x32
- ldrb r1, [r0, #0x0]
- mov r0, #0xf
- add r2, r4, #0x0
- bic r1, r0
- mov r0, #0x2
- orr r1, r0
- add r0, r5, #0x0
- add r0, #0x32
- strb r1, [r0, #0x0]
- add r0, r5, #0x0
- add r0, #0x32
- ldrb r1, [r0, #0x0]
- mov r0, #0xf0
- bic r1, r0
- mov r0, #0x20
- orr r1, r0
- add r0, r5, #0x0
- add r0, #0x32
- strb r1, [r0, #0x0]
- add r0, r5, #0x0
- mov r1, #0x1e
- add r0, #0x33
- strb r1, [r0, #0x0]
- mov r0, #0x0
- str r0, [r5, #0x14]
- ldr r1, _02037BAC ; =FUN_02037A7C
- add r0, r7, #0x0
- str r5, [r4, #0x4]
- bl FUN_0204640C
- add r0, r5, #0x0
- pop {r3-r7, pc}
- .balign 4
-_02037BAC: .word FUN_02037A7C
-
- thumb_func_start FUN_02037BB0
-FUN_02037BB0: ; 0x02037BB0
- push {r3-r7, lr}
- add r5, r2, #0x0
- add r6, r3, #0x0
- mov r0, #0xb
- mov r2, #0x0
- mov r3, #0xd
- add r7, r1, #0x0
- bl FUN_0203797C
- add r4, r0, #0x0
- ldr r1, [sp, #0x1c]
- add r0, #0x22
- strb r1, [r0, #0x0]
- add r0, r4, #0x0
- mov r1, #0x2
- add r0, #0x29
- strb r1, [r0, #0x0]
- add r0, r4, #0x0
- add r0, #0x2a
- strb r5, [r0, #0x0]
- ldr r0, [sp, #0x18]
- cmp r0, #0x0
- bne _02037BE6
- add r0, r4, #0x0
- add r0, #0x2b
- strb r6, [r0, #0x0]
- b _02037BEE
-_02037BE6:
- add r0, r4, #0x0
- mov r1, #0x0
- add r0, #0x2b
- strb r1, [r0, #0x0]
-_02037BEE:
- ldr r1, _02037BFC ; =0x020F96DC
- add r0, r7, #0x0
- add r2, r4, #0x0
- bl FUN_020373D4
- add r0, r4, #0x0
- pop {r3-r7, pc}
- .balign 4
-_02037BFC: .word 0x020F96DC
-
- thumb_func_start FUN_02037C00
-FUN_02037C00: ; 0x02037C00
- push {r4-r6, lr}
- add r5, r1, #0x0
- mov r0, #0xb
- mov r1, #0x30
- add r6, r2, #0x0
- bl FUN_02016998
- add r4, r0, #0x0
- ldr r0, [r5, #0xc]
- bl FUN_0206BB1C
- str r0, [r4, #0x0]
- ldr r0, [r5, #0xc]
- bl LoadPlayerDataAddress
- str r0, [r4, #0x4]
- mov r0, #0x1
- strb r0, [r4, #0x11]
- strb r6, [r4, #0x14]
- ldr r0, [r4, #0x0]
- bl FUN_0206B9AC
- strb r0, [r4, #0x13]
- mov r0, #0x0
- strh r0, [r4, #0x18]
- strb r0, [r4, #0x12]
- ldr r0, [r5, #0xc]
- bl FUN_0202A918
- str r0, [r4, #0x20]
- ldr r0, [r5, #0xc]
- bl FUN_0206BB28
- str r0, [r4, #0x1c]
- ldr r0, [r5, #0xc]
- bl FUN_02079C70
- str r0, [r4, #0x2c]
- mov r0, #0x0
- str r0, [r4, #0x28]
- ldr r1, _02037C74 ; =0x020F2A9C
- add r0, r4, #0x0
- bl FUN_0207B000
- ldr r0, [r5, #0xc]
- bl FUN_020238F4
- add r1, r0, #0x0
- add r0, r4, #0x0
- bl FUN_0207C2A4
- ldr r1, _02037C78 ; =0x020FA6E8
- add r0, r5, #0x0
- add r2, r4, #0x0
- bl FUN_020373D4
- add r0, r4, #0x0
- pop {r4-r6, pc}
- .balign 4
-_02037C74: .word 0x020F2A9C
-_02037C78: .word 0x020FA6E8
-
- thumb_func_start FUN_02037C7C
-FUN_02037C7C: ; 0x02037C7C
- push {r4-r6, lr}
- ldr r5, [r0, #0xc]
- add r0, r1, #0x0
- mov r1, #0x30
- add r6, r2, #0x0
- bl FUN_020169D8
- mov r1, #0x0
- mov r2, #0x30
- add r4, r0, #0x0
- bl MI_CpuFill8
- add r0, r5, #0x0
- bl LoadPlayerDataAddress
- str r0, [r4, #0x4]
- add r0, r5, #0x0
- bl FUN_0206BB1C
- str r0, [r4, #0x0]
- mov r0, #0x1
- strb r0, [r4, #0x11]
- mov r0, #0x0
- strb r0, [r4, #0x14]
- ldr r0, [r4, #0x0]
- bl FUN_0206B9AC
- strb r0, [r4, #0x13]
- mov r0, #0x0
- strh r0, [r4, #0x18]
- strb r6, [r4, #0x12]
- add r0, r5, #0x0
- bl FUN_0206BB28
- str r0, [r4, #0x1c]
- add r0, r5, #0x0
- bl FUN_02079C70
- str r0, [r4, #0x2c]
- add r0, r5, #0x0
- bl FUN_0202A918
- str r0, [r4, #0x20]
- ldr r1, _02037CEC ; =0x020F2BD0
- add r0, r4, #0x0
- bl FUN_0207B000
- add r0, r5, #0x0
- bl FUN_020238F4
- add r1, r0, #0x0
- add r0, r4, #0x0
- bl FUN_0207C2A4
- add r0, r4, #0x0
- pop {r4-r6, pc}
- .balign 4
-_02037CEC: .word 0x020F2BD0
-
- thumb_func_start FUN_02037CF0
-FUN_02037CF0: ; 0x02037CF0
- push {r4-r6, lr}
- add r5, r1, #0x0
- mov r1, #0x30
- add r6, r2, #0x0
- bl FUN_02016998
- mov r1, #0x0
- mov r2, #0x30
- add r4, r0, #0x0
- bl Call_FillMemWithValue
- ldr r0, [r5, #0xc]
- bl FUN_0206BB1C
- str r0, [r4, #0x0]
- ldr r0, [r5, #0xc]
- bl LoadPlayerDataAddress
- str r0, [r4, #0x4]
- mov r0, #0x1
- strb r0, [r4, #0x11]
- strb r6, [r4, #0x14]
- strb r0, [r4, #0x13]
- mov r0, #0x0
- strh r0, [r4, #0x18]
- mov r0, #0x2
- strb r0, [r4, #0x12]
- ldr r0, [r5, #0xc]
- bl FUN_0206BB28
- str r0, [r4, #0x1c]
- ldr r0, [r5, #0xc]
- bl FUN_02079C70
- str r0, [r4, #0x2c]
- ldr r1, _02037D58 ; =0x020F2BCC
- add r0, r4, #0x0
- bl FUN_0207B000
- ldr r0, [r5, #0xc]
- bl FUN_020238F4
- add r1, r0, #0x0
- add r0, r4, #0x0
- bl FUN_0207C2A4
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_0203796C
- add r0, r4, #0x0
- pop {r4-r6, pc}
- .balign 4
-_02037D58: .word 0x020F2BCC
-
- thumb_func_start FUN_02037D5C
-FUN_02037D5C: ; 0x02037D5C
- ldrb r0, [r0, #0x16]
- bx lr
-
- thumb_func_start FUN_02037D60
-FUN_02037D60: ; 0x02037D60
- ldr r3, _02037D68 ; =FUN_020373D4
- add r2, r1, #0x0
- ldr r1, _02037D6C ; =0x020F2CF4
- bx r3
- .balign 4
-_02037D68: .word FUN_020373D4
-_02037D6C: .word 0x020F2CF4
-
- thumb_func_start FUN_02037D70
-FUN_02037D70: ; 0x02037D70
- push {r3-r6, lr}
- sub sp, #0x4
- add r6, r0, #0x0
- bl FUN_02046530
- add r4, r0, #0x0
- add r0, r6, #0x0
- bl FUN_0204652C
- add r5, r0, #0x0
- add r0, r6, #0x0
- bl FUN_02046528
- ldr r1, [r4, #0x0]
- cmp r1, #0x0
- beq _02037D9A
- cmp r1, #0x1
- beq _02037DA8
- cmp r1, #0x2
- beq _02037DB8
- b _02037E12
-_02037D9A:
- ldr r1, [r5, #0xc]
- bl FUN_02037E80
- ldr r0, [r4, #0x0]
- add r0, r0, #0x1
- str r0, [r4, #0x0]
- b _02037E12
-_02037DA8:
- bl FUN_0204647C
- cmp r0, #0x0
- bne _02037E12
- ldr r0, [r4, #0x0]
- add r0, r0, #0x1
- str r0, [r4, #0x0]
- b _02037E12
-_02037DB8:
- ldr r0, [r5, #0xc]
- bl FUN_020853E4
- cmp r0, #0x0
- bne _02037DCC
- ldr r0, [r5, #0xc]
- bl FUN_020853E8
- cmp r0, #0x0
- bne _02037DD4
-_02037DCC:
- ldr r0, [r5, #0x0]
- mov r1, #0x0
- strh r1, [r0, #0x0]
- b _02037E00
-_02037DD4:
- ldr r0, [r5, #0x0]
- mov r1, #0x1
- strh r1, [r0, #0x0]
- ldr r0, [r5, #0x8]
- cmp r0, #0x0
- ldr r0, [r5, #0xc]
- bne _02037DEC
- bl FUN_020853EC
- ldr r1, [r5, #0x4]
- strh r0, [r1, #0x0]
- b _02037E00
-_02037DEC:
- add r1, sp, #0x0
- bl FUN_020853F0
- add r0, sp, #0x0
- ldrh r2, [r0, #0x0]
- ldr r1, [r5, #0x4]
- strh r2, [r1, #0x0]
- ldrh r1, [r0, #0x2]
- ldr r0, [r5, #0x8]
- strh r1, [r0, #0x0]
-_02037E00:
- ldr r0, [r5, #0xc]
- bl FUN_020853A8
- add r0, r5, #0x0
- bl FUN_02016A18
- add sp, #0x4
- mov r0, #0x1
- pop {r3-r6, pc}
-_02037E12:
- mov r0, #0x0
- add sp, #0x4
- pop {r3-r6, pc}
-
- thumb_func_start FUN_02037E18
-FUN_02037E18: ; 0x02037E18
- push {r3-r7, lr}
- sub sp, #0x8
- str r0, [sp, #0x0]
- str r1, [sp, #0x4]
- add r5, r2, #0x0
- add r6, r3, #0x0
- bl FUN_02046528
- add r7, r0, #0x0
- mov r0, #0x20
- mov r1, #0x10
- bl FUN_02016998
- add r4, r0, #0x0
- ldr r0, [sp, #0x4]
- cmp r6, #0x0
- str r0, [r4, #0x0]
- str r5, [r4, #0x4]
- str r6, [r4, #0x8]
- bne _02037E56
- mov r0, #0x0
- ldr r2, [r7, #0xc]
- add r1, r0, #0x0
- mov r3, #0x20
- bl FUN_02085338
- str r0, [r4, #0xc]
- ldrh r1, [r5, #0x0]
- bl FUN_020853B0
- b _02037E6C
-_02037E56:
- ldr r2, [r7, #0xc]
- mov r0, #0x1
- mov r1, #0x0
- mov r3, #0x20
- bl FUN_02085338
- str r0, [r4, #0xc]
- ldrh r1, [r5, #0x0]
- ldrh r2, [r6, #0x0]
- bl FUN_020853B4
-_02037E6C:
- ldr r0, [sp, #0x0]
- ldr r1, _02037E7C ; =FUN_02037D70
- add r2, r4, #0x0
- bl FUN_0204640C
- add sp, #0x8
- pop {r3-r7, pc}
- nop
-_02037E7C: .word FUN_02037D70
-
- thumb_func_start FUN_02037E80
-FUN_02037E80: ; 0x02037E80
- ldr r3, _02037E88 ; =FUN_020373D4
- add r2, r1, #0x0
- ldr r1, _02037E8C ; =0x020F2CE4
- bx r3
- .balign 4
-_02037E88: .word FUN_020373D4
-_02037E8C: .word 0x020F2CE4
-
- thumb_func_start FUN_02037E90
-FUN_02037E90: ; 0x02037E90
- push {r4-r6, lr}
- sub sp, #0x10
- ldr r5, _02037EB4 ; =0x020F2CD4
- add r4, sp, #0x0
- add r6, r0, #0x0
- add r2, r1, #0x0
- add r3, r4, #0x0
- ldmia r5!, {r0-r1}
- stmia r4!, {r0-r1}
- ldmia r5!, {r0-r1}
- stmia r4!, {r0-r1}
- add r0, r6, #0x0
- add r1, r3, #0x0
- bl FUN_020373D4
- add sp, #0x10
- pop {r4-r6, pc}
- nop
-_02037EB4: .word 0x020F2CD4
-
- thumb_func_start FUN_02037EB8
-FUN_02037EB8: ; 0x02037EB8
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldr r0, [r5, #0xc]
- bl FUN_02034E30
- bl FUN_02034E0C
- mov r1, #0x5
- mov r0, #0xb
- lsl r1, r1, #0x6
- bl FUN_020169D8
- add r4, r0, #0x0
- add r0, r5, #0x0
- add r1, r4, #0x0
- mov r2, #0x0
- bl FUN_0205F7A0
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02037E90
- add r0, r4, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02037EE8
-FUN_02037EE8: ; 0x02037EE8
- ldr r3, _02037EF0 ; =FUN_020373D4
- add r2, r1, #0x0
- ldr r1, _02037EF4 ; =0x020F2CC4
- bx r3
- .balign 4
-_02037EF0: .word FUN_020373D4
-_02037EF4: .word 0x020F2CC4
-
- thumb_func_start FUN_02037EF8
-FUN_02037EF8: ; 0x02037EF8
- push {r3-r5, lr}
- add r5, r0, #0x0
- mov r0, #0xb
- mov r1, #0x2
- bl FUN_020169D8
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl FUN_020377AC
- bl LoadPlayerDataAddress
- add r1, r0, #0x0
- add r0, r5, #0x0
- bl FUN_02037EE8
- add r0, r4, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02037F1C
-FUN_02037F1C: ; 0x02037F1C
- ldr r3, _02037F24 ; =FUN_020373D4
- add r2, r1, #0x0
- ldr r1, _02037F28 ; =0x020FCAC8
- bx r3
- .balign 4
-_02037F24: .word FUN_020373D4
-_02037F28: .word 0x020FCAC8
-
- thumb_func_start FUN_02037F2C
-FUN_02037F2C: ; 0x02037F2C
- push {r3-r7, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- add r6, r2, #0x0
- add r7, r3, #0x0
- bl FUN_020377AC
- mov r1, #0xb
- str r1, [sp, #0x0]
- add r1, r4, #0x0
- add r2, r6, #0x0
- add r3, r7, #0x0
- bl FUN_020854E0
- add r4, r0, #0x0
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02037F1C
- add r0, r4, #0x0
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02037F58
-FUN_02037F58: ; 0x02037F58
- push {r3-r7, lr}
- add r5, r1, #0x0
- add r7, r0, #0x0
- add r4, r2, #0x0
- add r6, r3, #0x0
- cmp r5, #0x3
- bne _02037F74
- bl FUN_020377AC
- add r1, r4, #0x0
- add r2, r6, #0x0
- bl FUN_020855B0
- b _02037F82
-_02037F74:
- bl FUN_020377AC
- add r1, r5, #0x0
- add r2, r4, #0x0
- add r3, r6, #0x0
- bl FUN_02085538
-_02037F82:
- add r4, r0, #0x0
- add r0, r7, #0x0
- add r1, r4, #0x0
- bl FUN_02037F1C
- add r0, r4, #0x0
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02037F90
-FUN_02037F90: ; 0x02037F90
- push {r4-r6, lr}
- add r4, r1, #0x0
- add r6, r2, #0x0
- add r5, r0, #0x0
- bl FUN_020377AC
- add r1, r4, #0x0
- add r2, r6, #0x0
- bl FUN_02085578
- add r4, r0, #0x0
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02037F1C
- add r0, r4, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02037FB4
-FUN_02037FB4: ; 0x02037FB4
- ldr r3, _02037FBC ; =FUN_020373D4
- add r2, r1, #0x0
- ldr r1, _02037FC0 ; =0x020FD1B0
- bx r3
- .balign 4
-_02037FBC: .word FUN_020373D4
-_02037FC0: .word 0x020FD1B0
-
- thumb_func_start FUN_02037FC4
-FUN_02037FC4: ; 0x02037FC4
- push {r3-r5, lr}
- add r5, r1, #0x0
- add r4, r0, #0x0
- bl FUN_020377AC
- add r1, r5, #0x0
- bl FUN_02087D00
- add r5, r0, #0x0
- add r0, r4, #0x0
- add r1, r5, #0x0
- bl FUN_02037FB4
- add r0, r5, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02037FE4
-FUN_02037FE4: ; 0x02037FE4
- push {r4-r6, lr}
- sub sp, #0x10
- ldr r5, _02038008 ; =0x020F2CB4
- add r4, sp, #0x0
- add r6, r0, #0x0
- add r2, r1, #0x0
- add r3, r4, #0x0
- ldmia r5!, {r0-r1}
- stmia r4!, {r0-r1}
- ldmia r5!, {r0-r1}
- stmia r4!, {r0-r1}
- add r0, r6, #0x0
- add r1, r3, #0x0
- bl FUN_020373D4
- add sp, #0x10
- pop {r4-r6, pc}
- nop
-_02038008: .word 0x020F2CB4
-
- thumb_func_start FUN_0203800C
-FUN_0203800C: ; 0x0203800C
- push {r3-r7, lr}
- add r5, r1, #0x0
- mov r1, #0x20
- add r7, r2, #0x0
- add r6, r3, #0x0
- bl FUN_02016998
- mov r1, #0x0
- mov r2, #0x20
- add r4, r0, #0x0
- bl Call_FillMemWithValue
- add r0, r5, #0x0
- bl FUN_0206BB1C
- add r1, r7, #0x0
- bl FUN_0206B9B0
- str r0, [r4, #0x0]
- add r0, r5, #0x0
- bl FUN_02027E24
- str r0, [sp, #0x0]
- mov r1, #0x0
- bl FUN_02027008
- add r7, r0, #0x0
- ldr r0, [sp, #0x0]
- bl FUN_0202708C
- str r7, [r4, #0x4]
- str r0, [r4, #0x8]
- add r0, r5, #0x0
- bl LoadPlayerDataAddress
- str r0, [r4, #0xc]
- add r0, r5, #0x0
- bl FUN_02029FC8
- str r0, [r4, #0x10]
- add r0, r5, #0x0
- bl FUN_020238F4
- str r0, [r4, #0x14]
- ldr r0, [sp, #0x18]
- str r6, [r4, #0x18]
- str r0, [r4, #0x1c]
- add r0, r4, #0x0
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02038070
-FUN_02038070: ; 0x02038070
- push {r3-r5, lr}
- add r5, r0, #0x0
- bl FUN_02046528
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl FUN_0204652C
- add r5, r0, #0x0
- ldr r0, [r5, #0x0]
- cmp r0, #0x0
- beq _0203808E
- cmp r0, #0x1
- beq _0203809E
- b _020380C8
-_0203808E:
- ldr r1, [r5, #0xc]
- add r0, r4, #0x0
- bl FUN_0203811C
- ldr r0, [r5, #0x0]
- add r0, r0, #0x1
- str r0, [r5, #0x0]
- b _020380C8
-_0203809E:
- add r0, r4, #0x0
- bl FUN_0204647C
- cmp r0, #0x0
- bne _020380C8
- ldr r0, [r5, #0x8]
- cmp r0, #0x1
- bne _020380B2
- mov r1, #0x1
- b _020380B4
-_020380B2:
- mov r1, #0x0
-_020380B4:
- ldr r0, [r5, #0x4]
- strh r1, [r0, #0x0]
- ldr r0, [r5, #0xc]
- bl FUN_02016A18
- add r0, r5, #0x0
- bl FUN_02016A18
- mov r0, #0x1
- pop {r3-r5, pc}
-_020380C8:
- mov r0, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start FUN_020380CC
-FUN_020380CC: ; 0x020380CC
- push {r3-r7, lr}
- sub sp, #0x8
- add r6, r0, #0x0
- add r5, r1, #0x0
- mov r0, #0x20
- mov r1, #0x10
- add r7, r2, #0x0
- str r3, [sp, #0x4]
- bl FUN_02016998
- add r4, r0, #0x0
- add r2, r4, #0x0
- mov r1, #0x10
- mov r0, #0x0
-_020380E8:
- strb r0, [r2, #0x0]
- add r2, r2, #0x1
- sub r1, r1, #0x1
- bne _020380E8
- add r0, sp, #0x10
- ldrh r0, [r0, #0x10]
- add r3, r4, #0x0
- add r1, r7, #0x0
- str r0, [sp, #0x0]
- ldr r2, [sp, #0x4]
- mov r0, #0x20
- add r3, #0x8
- bl FUN_0203800C
- str r0, [r4, #0xc]
- ldr r1, _02038118 ; =FUN_02038070
- add r0, r6, #0x0
- add r2, r4, #0x0
- str r5, [r4, #0x4]
- bl FUN_0204640C
- add sp, #0x8
- pop {r3-r7, pc}
- nop
-_02038118: .word FUN_02038070
-
- thumb_func_start FUN_0203811C
-FUN_0203811C: ; 0x0203811C
- push {r3, lr}
- add r2, r1, #0x0
- ldr r1, _0203812C ; =0x02105DDC
- bl FUN_020373D4
- mov r0, #0x1
- pop {r3, pc}
- nop
-_0203812C: .word 0x02105DDC
-
- thumb_func_start FUN_02038130
-FUN_02038130: ; 0x02038130
- push {r3, lr}
- add r2, r1, #0x0
- ldr r1, _02038140 ; =0x02105DCC
- bl FUN_020373D4
- mov r0, #0x1
- pop {r3, pc}
- nop
-_02038140: .word 0x02105DCC
-
- thumb_func_start FUN_02038144
-FUN_02038144: ; 0x02038144
- push {r3-r5, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- ldr r0, [r4, #0xc]
- bl FUN_020238F4
- str r0, [r5, #0x4]
- ldr r0, [r4, #0xc]
- bl FUN_0206BB1C
- str r0, [r5, #0x8]
- ldr r0, [r4, #0xc]
- mov r1, #0x9
- bl FUN_02022610
- str r0, [r5, #0xc]
- ldr r0, [r4, #0xc]
- bl FUN_02029AFC
- str r0, [r5, #0x14]
- ldr r0, [r4, #0xc]
- bl LoadPlayerDataAddress
- str r0, [r5, #0x18]
- ldr r0, [r4, #0xc]
- bl FUN_02024DA0
- str r0, [r5, #0x24]
- ldr r0, [r4, #0xc]
- bl FUN_0206BB28
- str r0, [r5, #0x30]
- ldr r0, [r4, #0xc]
- str r0, [r5, #0x10]
- add r0, r4, #0x0
- add r0, #0x98
- ldr r0, [r0, #0x0]
- str r0, [r5, #0x1c]
- ldr r0, [r4, #0xc]
- bl FUN_02029FC8
- str r0, [r5, #0x20]
- bl FUN_02023924
- add r1, r0, #0x0
- mov r0, #0x20
- bl FUN_02016998
- str r0, [r5, #0x38]
- bl FUN_020690C4
- add r1, r0, #0x0
- mov r0, #0x20
- bl FUN_02016998
- str r0, [r5, #0x3c]
- bl FUN_020690C4
- add r1, r0, #0x0
- mov r0, #0x20
- bl FUN_02016998
- str r0, [r5, #0x40]
- str r4, [r5, #0x0]
- mov r0, #0x0
- str r0, [r5, #0x34]
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_020381CC
-FUN_020381CC: ; 0x020381CC
- push {r4, lr}
- add r4, r0, #0x0
- ldr r0, [r4, #0x38]
- cmp r0, #0x0
- beq _020381DE
- bl FUN_02016A18
- mov r0, #0x0
- str r0, [r4, #0x38]
-_020381DE:
- ldr r0, [r4, #0x3c]
- cmp r0, #0x0
- beq _020381EC
- bl FUN_02016A18
- mov r0, #0x0
- str r0, [r4, #0x3c]
-_020381EC:
- ldr r0, [r4, #0x40]
- cmp r0, #0x0
- beq _020381FA
- bl FUN_02016A18
- mov r0, #0x0
- str r0, [r4, #0x40]
-_020381FA:
- pop {r4, pc}
-
- thumb_func_start FUN_020381FC
-FUN_020381FC: ; 0x020381FC
- push {r4-r7, lr}
- sub sp, #0x34
- add r6, r0, #0x0
- bl FUN_02046528
- add r5, r0, #0x0
- add r0, r6, #0x0
- bl FUN_0204652C
- add r4, r0, #0x0
- ldr r0, [r4, #0x0]
- cmp r0, #0x7
- bls _02038218
- b _020383C8
-_02038218:
- add r1, r0, r0
- add r1, pc
- ldrh r1, [r1, #0x6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02038224: ; jump table (using 16-bit offset)
- .short _02038234 - _02038224 - 2; case 0
- .short _0203824A - _02038224 - 2; case 1
- .short _02038258 - _02038224 - 2; case 2
- .short _0203826A - _02038224 - 2; case 3
- .short _02038288 - _02038224 - 2; case 4
- .short _020382F6 - _02038224 - 2; case 5
- .short _02038386 - _02038224 - 2; case 6
- .short _020383B2 - _02038224 - 2; case 7
-_02038234:
- bl FUN_02033590
- cmp r0, #0x0
- bne _02038242
- add r0, r6, #0x0
- bl FUN_0204AF3C
-_02038242:
- ldr r0, [r4, #0x0]
- add r0, r0, #0x1
- str r0, [r4, #0x0]
- b _020383C8
-_0203824A:
- add r0, r4, #0x4
- add r1, r5, #0x0
- bl FUN_02038144
- ldr r0, [r4, #0x0]
- add r0, r0, #0x1
- str r0, [r4, #0x0]
-_02038258:
- ldr r1, _020383D0 ; =0x02105DBC
- add r0, r6, #0x0
- add r2, r4, #0x4
- bl FUN_02046500
- ldr r0, [r4, #0x0]
- add r0, r0, #0x1
- str r0, [r4, #0x0]
- b _020383C8
-_0203826A:
- ldr r1, [r4, #0x2c]
- cmp r1, #0x0
- bne _02038282
- add r0, r4, #0x4
- bl FUN_020381CC
- add r0, r4, #0x0
- bl FUN_02016A18
- add sp, #0x34
- mov r0, #0x1
- pop {r4-r7, pc}
-_02038282:
- add r0, r0, #0x1
- str r0, [r4, #0x0]
- b _020383C8
-_02038288:
- ldr r0, [r4, #0x3c]
- str r0, [r4, #0x50]
- ldr r0, [r4, #0x40]
- bl FUN_020690E4
- str r0, [r4, #0x48]
- ldr r0, [r4, #0x44]
- bl FUN_020690E4
- str r0, [r4, #0x4c]
- ldr r0, [r5, #0xc]
- bl LoadPlayerDataAddress
- str r0, [r4, #0x5c]
- mov r0, #0x1
- str r0, [r4, #0x58]
- add r0, r5, #0x0
- bl FUN_0204B2A4
- cmp r0, #0x4
- bhi _020382C8
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_020382BE: ; jump table (using 16-bit offset)
- .short _020382C8 - _020382BE - 2; case 0
- .short _020382C8 - _020382BE - 2; case 1
- .short _020382CE - _020382BE - 2; case 2
- .short _020382D4 - _020382BE - 2; case 3
- .short _020382D4 - _020382BE - 2; case 4
-_020382C8:
- mov r0, #0x0
- str r0, [r4, #0x54]
- b _020382D8
-_020382CE:
- mov r0, #0x1
- str r0, [r4, #0x54]
- b _020382D8
-_020382D4:
- mov r0, #0x2
- str r0, [r4, #0x54]
-_020382D8:
- bl FUN_02033590
- cmp r0, #0x0
- beq _020382E4
- mov r0, #0x3
- str r0, [r4, #0x54]
-_020382E4:
- add r2, r4, #0x0
- ldr r1, _020383D4 ; =0x020F2CA4
- add r0, r6, #0x0
- add r2, #0x48
- bl FUN_02046500
- mov r0, #0x5
- str r0, [r4, #0x0]
- b _020383C8
-_020382F6:
- ldr r0, [r4, #0x44]
- mov r1, #0x6
- mov r2, #0x0
- bl FUN_020671BC
- add r3, r0, #0x0
- add r0, sp, #0x30
- str r0, [sp, #0x0]
- lsl r3, r3, #0x10
- ldr r1, [r4, #0x44]
- mov r0, #0x0
- mov r2, #0x1
- lsr r3, r3, #0x10
- bl FUN_02069168
- str r0, [sp, #0x20]
- cmp r0, #0x0
- beq _02038380
- mov r0, #0x3
- mov r1, #0x1a
- lsl r2, r0, #0x10
- bl FUN_0201681C
- ldr r0, [r5, #0xc]
- bl LoadPlayerDataAddress
- str r0, [sp, #0x24]
- ldr r0, [r5, #0xc]
- bl FUN_02079C70
- add r6, r0, #0x0
- ldr r0, [r5, #0xc]
- bl FUN_02024DA0
- add r7, r0, #0x0
- ldr r0, [r5, #0xc]
- bl FUN_0206F158
- str r0, [sp, #0x28]
- ldr r0, [r5, #0xc]
- bl FUN_02029FC8
- str r0, [sp, #0x2c]
- ldr r0, [r5, #0xc]
- bl FUN_0204C1A8
- str r6, [sp, #0x0]
- ldr r1, [sp, #0x28]
- str r7, [sp, #0x4]
- str r1, [sp, #0x8]
- ldr r1, [sp, #0x2c]
- ldr r2, [sp, #0x20]
- str r1, [sp, #0xc]
- str r0, [sp, #0x10]
- ldr r0, [sp, #0x30]
- ldr r3, [sp, #0x24]
- str r0, [sp, #0x14]
- mov r0, #0x4
- str r0, [sp, #0x18]
- mov r0, #0x1a
- str r0, [sp, #0x1c]
- ldr r1, [r4, #0x44]
- mov r0, #0x0
- bl FUN_0206C700
- str r0, [r4, #0x60]
- mov r0, #0x6
- str r0, [r4, #0x0]
- b _020383C8
-_02038380:
- mov r0, #0x7
- str r0, [r4, #0x0]
- b _020383C8
-_02038386:
- ldr r0, [r4, #0x60]
- bl FUN_0206C91C
- cmp r0, #0x0
- beq _020383C8
- ldr r0, [r4, #0xc]
- ldr r1, [r4, #0x30]
- bl FUN_0206B9B0
- add r1, r0, #0x0
- ldr r0, [r4, #0x44]
- bl FUN_02069B88
- ldr r0, [r4, #0x60]
- bl FUN_0206C92C
- mov r0, #0x1a
- bl FUN_020168D0
- mov r0, #0x7
- str r0, [r4, #0x0]
- b _020383C8
-_020383B2:
- ldr r0, [r4, #0x38]
- add r0, r0, #0x1
- str r0, [r4, #0x38]
- mov r0, #0x2
- str r0, [r4, #0x0]
- ldr r0, [r5, #0xc]
- bl FUN_02029FC8
- mov r1, #0x10
- bl FUN_0202A170
-_020383C8:
- mov r0, #0x0
- add sp, #0x34
- pop {r4-r7, pc}
- nop
-_020383D0: .word 0x02105DBC
-_020383D4: .word 0x020F2CA4
-
- thumb_func_start FUN_020383D8
-FUN_020383D8: ; 0x020383D8
- push {r4, lr}
- add r4, r0, #0x0
- mov r0, #0x20
- mov r1, #0x68
- bl FUN_02016998
- add r2, r0, #0x0
- mov r0, #0x0
- str r0, [r2, #0x0]
- ldr r1, _020383F4 ; =FUN_020381FC
- add r0, r4, #0x0
- bl FUN_0204640C
- pop {r4, pc}
- .balign 4
-_020383F4: .word FUN_020381FC
-
- thumb_func_start FUN_020383F8
-FUN_020383F8: ; 0x020383F8
- push {r3-r5, lr}
- add r5, r0, #0x0
- mov r0, #0x20
- mov r1, #0xc
- bl FUN_02016998
- add r4, r0, #0x0
- ldr r0, [r5, #0x7c]
- str r0, [r4, #0x0]
- add r0, r5, #0x0
- add r0, #0x98
- ldr r0, [r0, #0x0]
- str r0, [r4, #0x4]
- ldr r0, [r5, #0xc]
- bl LoadPlayerDataAddress
- str r0, [r4, #0x8]
- ldr r1, _02038428 ; =0x020F2C94
- add r0, r5, #0x0
- add r2, r4, #0x0
- bl FUN_020373D4
- pop {r3-r5, pc}
- nop
-_02038428: .word 0x020F2C94
-
- thumb_func_start FUN_0203842C
-FUN_0203842C: ; 0x0203842C
- push {r3-r5, lr}
- add r5, r0, #0x0
- mov r0, #0xb
- mov r1, #0x14
- bl FUN_02016998
- add r4, r0, #0x0
- ldr r0, [r5, #0xc]
- str r0, [r4, #0x0]
- ldr r0, [r5, #0x7c]
- str r0, [r4, #0x4]
- ldr r0, [r5, #0xc]
- bl LoadPlayerDataAddress
- str r0, [r4, #0x8]
- ldr r0, [r5, #0xc]
- bl FUN_02029FC8
- str r0, [r4, #0xc]
- add r0, r5, #0x0
- add r0, #0x98
- ldr r0, [r0, #0x0]
- ldr r1, _02038468 ; =0x020F2D04
- str r0, [r4, #0x10]
- add r0, r5, #0x0
- add r2, r4, #0x0
- bl FUN_020373D4
- add r0, r4, #0x0
- pop {r3-r5, pc}
- .balign 4
-_02038468: .word 0x020F2D04
-
- thumb_func_start FUN_0203846C
-FUN_0203846C: ; 0x0203846C
- ldr r3, _02038474 ; =FUN_020373D4
- add r2, r1, #0x0
- ldr r1, _02038478 ; =0x020F2D54
- bx r3
- .balign 4
-_02038474: .word FUN_020373D4
-_02038478: .word 0x020F2D54
-
- thumb_func_start FUN_0203847C
-FUN_0203847C: ; 0x0203847C
- push {r3-r7, lr}
- add r5, r0, #0x0
- bl FUN_02046528
- add r6, r0, #0x0
- add r0, r5, #0x0
- bl FUN_0204652C
- add r4, r0, #0x0
- ldr r0, [r4, #0x0]
- cmp r0, #0x3
- bhi _02038544
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_020384A0: ; jump table (using 16-bit offset)
- .short _020384A8 - _020384A0 - 2; case 0
- .short _020384B6 - _020384A0 - 2; case 1
- .short _020384C8 - _020384A0 - 2; case 2
- .short _020384D6 - _020384A0 - 2; case 3
-_020384A8:
- add r0, r5, #0x0
- bl FUN_0204AF3C
- ldr r0, [r4, #0x0]
- add r0, r0, #0x1
- str r0, [r4, #0x0]
- b _02038544
-_020384B6:
- ldr r1, _02038548 ; =0x020FA5FC
- ldr r2, [r4, #0xc]
- add r0, r5, #0x0
- bl FUN_02046500
- ldr r0, [r4, #0x0]
- add r0, r0, #0x1
- str r0, [r4, #0x0]
- b _02038544
-_020384C8:
- add r0, r5, #0x0
- bl FUN_0204AF84
- ldr r0, [r4, #0x0]
- add r0, r0, #0x1
- str r0, [r4, #0x0]
- b _02038544
-_020384D6:
- ldr r1, [r4, #0xc]
- ldr r0, [r1, #0x0]
- cmp r0, #0x1
- bne _020384F2
- ldr r0, [r1, #0x18]
- ldr r1, [r4, #0x10]
- bl FUN_02021CE0
- cmp r0, #0x0
- bne _02038514
- ldr r0, [r4, #0xc]
- mov r1, #0x1
- str r1, [r0, #0x14]
- b _02038514
-_020384F2:
- cmp r0, #0x5
- bne _02038514
- ldr r0, [r1, #0x18]
- bl FUN_02021F2C
- add r7, r0, #0x0
- ldr r0, [r6, #0xc]
- bl FUN_0202881C
- add r1, r7, #0x0
- bl FUN_02028854
- cmp r0, #0x0
- beq _02038514
- ldr r0, [r4, #0xc]
- mov r1, #0x2
- str r1, [r0, #0x14]
-_02038514:
- ldr r0, [r4, #0xc]
- ldr r0, [r0, #0x14]
- cmp r0, #0x0
- bne _02038522
- add r0, r5, #0x0
- bl FUN_0203854C
-_02038522:
- ldr r1, [r4, #0x8]
- cmp r1, #0x0
- beq _0203852E
- ldr r0, [r4, #0xc]
- ldr r0, [r0, #0x14]
- strh r0, [r1, #0x0]
-_0203852E:
- ldr r0, [r4, #0xc]
- bl FUN_02077AC4
- ldr r0, [r4, #0x10]
- bl FUN_02021A20
- add r0, r4, #0x0
- bl FUN_02016A18
- mov r0, #0x1
- pop {r3-r7, pc}
-_02038544:
- mov r0, #0x0
- pop {r3-r7, pc}
- .balign 4
-_02038548: .word 0x020FA5FC
-
- thumb_func_start FUN_0203854C
-FUN_0203854C: ; 0x0203854C
- push {r3-r5, lr}
- add r4, r0, #0x0
- bl FUN_02046528
- add r5, r0, #0x0
- add r0, r4, #0x0
- bl FUN_0204652C
- add r4, r0, #0x0
- ldr r0, [r4, #0xc]
- ldr r0, [r0, #0x0]
- cmp r0, #0x6
- bhi _020385CA
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02038572: ; jump table (using 16-bit offset)
- .short _02038580 - _02038572 - 2; case 0
- .short _02038590 - _02038572 - 2; case 1
- .short _020385CA - _02038572 - 2; case 2
- .short _020385CA - _02038572 - 2; case 3
- .short _020385CA - _02038572 - 2; case 4
- .short _020385A8 - _02038572 - 2; case 5
- .short _020385BC - _02038572 - 2; case 6
-_02038580:
- ldr r0, [r5, #0xc]
- bl FUN_020238F4
- ldr r1, [r4, #0xc]
- add r1, #0x1c
- bl FUN_0202395C
- pop {r3-r5, pc}
-_02038590:
- ldr r0, [r5, #0xc]
- bl FUN_0206BB1C
- ldr r1, [r4, #0x4]
- bl FUN_0206B9B0
- ldr r2, [r4, #0xc]
- mov r1, #0x75
- add r2, #0x1c
- bl FUN_02067830
- pop {r3-r5, pc}
-_020385A8:
- ldr r0, [r5, #0xc]
- bl FUN_0202881C
- ldr r3, [r4, #0xc]
- mov r1, #0x0
- ldr r3, [r3, #0x18]
- add r2, r1, #0x0
- bl FUN_020287C0
- pop {r3-r5, pc}
-_020385BC:
- ldr r0, [r5, #0xc]
- bl FUN_02024EB4
- ldr r1, [r4, #0xc]
- ldr r1, [r1, #0x18]
- bl FUN_02024F18
-_020385CA:
- pop {r3-r5, pc}
-
- thumb_func_start FUN_020385CC
-FUN_020385CC: ; 0x020385CC
- push {r3-r7, lr}
- sub sp, #0x10
- str r0, [sp, #0x4]
- add r6, r1, #0x0
- str r2, [sp, #0x8]
- str r3, [sp, #0xc]
- ldr r5, [sp, #0x2c]
- bl FUN_02046528
- add r7, r0, #0x0
- mov r0, #0xb
- mov r1, #0x14
- bl FUN_020169D8
- add r4, r0, #0x0
- mov r0, #0x0
- str r0, [r4, #0x0]
- ldr r0, [sp, #0x28]
- str r0, [r4, #0x4]
- ldr r0, [sp, #0x30]
- str r0, [r4, #0x8]
- ldr r0, [r7, #0xc]
- bl LoadPlayerDataAddress
- str r0, [sp, #0x0]
- ldr r2, [sp, #0x8]
- ldr r3, [sp, #0xc]
- mov r0, #0xb
- add r1, r6, #0x0
- bl FUN_02077A84
- str r0, [r4, #0xc]
- mov r0, #0xc
- mov r1, #0xb
- bl FUN_020219F4
- str r0, [r4, #0x10]
- cmp r6, #0x1
- beq _02038620
- cmp r6, #0x5
- beq _02038656
- b _02038660
-_02038620:
- ldr r0, [r7, #0xc]
- bl FUN_0206BB1C
- ldr r1, [r4, #0x4]
- bl FUN_0206B9B0
- mov r1, #0x6f
- mov r2, #0x0
- add r6, r0, #0x0
- bl FUN_020671BC
- ldr r1, [r4, #0xc]
- mov r2, #0x0
- str r0, [r1, #0x10]
- add r0, r6, #0x0
- mov r1, #0x70
- bl FUN_020671BC
- ldr r1, [r4, #0xc]
- cmp r5, #0x0
- str r0, [r1, #0x8]
- beq _0203866E
- ldr r0, [r4, #0x10]
- add r1, r5, #0x0
- bl FUN_02021E28
- b _0203866E
-_02038656:
- ldr r0, [r4, #0x10]
- add r1, r5, #0x0
- bl FUN_02021E28
- b _0203866E
-_02038660:
- cmp r5, #0x0
- beq _0203866E
- ldr r0, [r4, #0xc]
- add r1, r5, #0x0
- ldr r0, [r0, #0x18]
- bl FUN_02021E28
-_0203866E:
- ldr r0, [sp, #0x4]
- ldr r1, _0203867C ; =FUN_0203847C
- add r2, r4, #0x0
- bl FUN_0204640C
- add sp, #0x10
- pop {r3-r7, pc}
- .balign 4
-_0203867C: .word FUN_0203847C
-
- thumb_func_start FUN_02038680
-FUN_02038680: ; 0x02038680
- ldr r3, _02038688 ; =FUN_020373D4
- add r2, r1, #0x0
- ldr r1, _0203868C ; =0x020F2C54
- bx r3
- .balign 4
-_02038688: .word FUN_020373D4
-_0203868C: .word 0x020F2C54
-
- thumb_func_start FUN_02038690
-FUN_02038690: ; 0x02038690
- push {r3, lr}
- add r2, r1, #0x0
- ldr r1, _020386A0 ; =0x020F2C44
- bl FUN_020373D4
- mov r0, #0x1
- pop {r3, pc}
- nop
-_020386A0: .word 0x020F2C44
-
- thumb_func_start FUN_020386A4
-FUN_020386A4: ; 0x020386A4
- ldr r3, _020386AC ; =FUN_020373D4
- add r2, r1, #0x0
- ldr r1, _020386B0 ; =0x020F2C34
- bx r3
- .balign 4
-_020386AC: .word FUN_020373D4
-_020386B0: .word 0x020F2C34
-
- thumb_func_start FUN_020386B4
-FUN_020386B4: ; 0x020386B4
- push {r3-r5, lr}
- sub sp, #0x10
- add r4, r0, #0x0
- ldr r0, [r4, #0xc]
- bl FUN_02029ABC
- ldr r5, _020386DC ; =0x020F2C24
- add r3, sp, #0x0
- add r2, r3, #0x0
- ldmia r5!, {r0-r1}
- stmia r3!, {r0-r1}
- ldmia r5!, {r0-r1}
- stmia r3!, {r0-r1}
- add r1, r2, #0x0
- ldr r2, [r4, #0xc]
- add r0, r4, #0x0
- bl FUN_020373D4
- add sp, #0x10
- pop {r3-r5, pc}
- .balign 4
-_020386DC: .word 0x020F2C24
-
- thumb_func_start FUN_020386E0
-FUN_020386E0: ; 0x020386E0
- push {r4-r6, lr}
- sub sp, #0x10
- ldr r3, _0203878C ; =0x020F2C64
- add r2, sp, #0x0
- add r5, r0, #0x0
- add r6, r1, #0x0
- ldmia r3!, {r0-r1}
- stmia r2!, {r0-r1}
- ldmia r3!, {r0-r1}
- stmia r2!, {r0-r1}
- mov r0, #0xb
- mov r1, #0x44
- bl FUN_020169D8
- add r4, r0, #0x0
- ldr r0, [r5, #0xc]
- bl FUN_0202ABBC
- str r0, [r4, #0x0]
- ldr r0, [r5, #0xc]
- bl FUN_02023788
- str r0, [r4, #0x4]
- ldr r0, [r5, #0xc]
- mov r1, #0x2
- bl FUN_02022610
- str r0, [r4, #0x8]
- ldr r0, [r5, #0xc]
- bl FUN_02022510
- str r0, [r4, #0xc]
- ldr r0, [r5, #0xc]
- bl FUN_02024DA0
- str r0, [r4, #0x10]
- ldr r0, [r5, #0xc]
- bl FUN_020286EC
- str r0, [r4, #0x14]
- ldr r0, [r5, #0xc]
- bl FUN_02029AFC
- str r0, [r4, #0x18]
- ldr r0, [r5, #0xc]
- bl FUN_020238F4
- str r0, [r4, #0x1c]
- ldr r0, [r5, #0xc]
- bl LoadPlayerDataAddress
- str r0, [r4, #0x24]
- ldr r0, [r5, #0xc]
- bl FUN_02029FC8
- str r0, [r4, #0x28]
- add r0, r5, #0x0
- add r0, #0x98
- ldr r0, [r0, #0x0]
- str r0, [r4, #0x2c]
- ldr r0, [r5, #0xc]
- bl FUN_02079C70
- str r0, [r4, #0x3c]
- ldr r0, [r5, #0xc]
- str r0, [r4, #0x20]
- ldr r0, [r5, #0xc]
- bl FUN_0206BB28
- str r0, [r4, #0x34]
- ldr r0, [r4, #0x14]
- bl FUN_02033830
- str r0, [r4, #0x38]
- ldr r0, [r5, #0xc]
- bl FUN_0206F158
- str r0, [r4, #0x30]
- add r0, r5, #0x0
- add r1, sp, #0x0
- add r2, r4, #0x0
- str r6, [r4, #0x40]
- bl FUN_020373D4
- add sp, #0x10
- pop {r4-r6, pc}
- .balign 4
-_0203878C: .word 0x020F2C64
-
- thumb_func_start FUN_02038790
-FUN_02038790: ; 0x02038790
- push {r3-r7, lr}
- sub sp, #0x10
- ldr r3, _02038800 ; =0x020F2C74
- add r7, r2, #0x0
- add r2, sp, #0x0
- add r5, r0, #0x0
- add r6, r1, #0x0
- ldmia r3!, {r0-r1}
- stmia r2!, {r0-r1}
- ldmia r3!, {r0-r1}
- stmia r2!, {r0-r1}
- mov r0, #0xb
- mov r1, #0x28
- bl FUN_020169D8
- add r4, r0, #0x0
- ldr r0, [r5, #0xc]
- bl FUN_0202A8D8
- str r0, [r4, #0x0]
- ldr r0, [r5, #0xc]
- bl FUN_0202A8E4
- str r0, [r4, #0x4]
- ldr r0, [r5, #0xc]
- bl FUN_02023788
- str r0, [r4, #0x8]
- ldr r0, [r5, #0xc]
- bl LoadPlayerDataAddress
- str r0, [r4, #0x10]
- ldr r0, [r5, #0xc]
- bl FUN_020286EC
- bl FUN_02028228
- str r0, [r4, #0x14]
- ldr r0, [r5, #0xc]
- str r0, [r4, #0xc]
- ldr r0, [r5, #0xc]
- bl FUN_020286EC
- bl FUN_02033830
- str r0, [r4, #0x1c]
- str r6, [r4, #0x18]
- add r0, r5, #0x0
- add r1, sp, #0x0
- add r2, r4, #0x0
- str r7, [r4, #0x24]
- bl FUN_020373D4
- add r0, r4, #0x0
- add sp, #0x10
- pop {r3-r7, pc}
- .balign 4
-_02038800: .word 0x020F2C74
-
- thumb_func_start FUN_02038804
-FUN_02038804: ; 0x02038804
- ldr r3, _0203880C ; =FUN_020373D4
- ldr r1, _02038810 ; =0x020F2D14
- ldr r2, [r0, #0xc]
- bx r3
- .balign 4
-_0203880C: .word FUN_020373D4
-_02038810: .word 0x020F2D14
-
- thumb_func_start FUN_02038814
-FUN_02038814: ; 0x02038814
- ldr r3, _0203881C ; =FUN_020373D4
- add r2, r1, #0x0
- ldr r1, _02038820 ; =0x020F2D64
- bx r3
- .balign 4
-_0203881C: .word FUN_020373D4
-_02038820: .word 0x020F2D64
-
- thumb_func_start FUN_02038824
-FUN_02038824: ; 0x02038824
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldr r0, [r5, #0xc]
- mov r1, #0xb
- add r2, sp, #0x0
- bl FUN_02022534
- ldr r1, [sp, #0x0]
- add r4, r0, #0x0
- cmp r1, #0x2
- bne _02038842
- bl FUN_02016A18
- mov r0, #0x0
- pop {r3-r5, pc}
-_02038842:
- ldr r1, _02038850 ; =0x020F2BF4
- add r0, r5, #0x0
- add r2, r4, #0x0
- bl FUN_020373D4
- add r0, r4, #0x0
- pop {r3-r5, pc}
- .balign 4
-_02038850: .word 0x020F2BF4
-
- thumb_func_start FUN_02038854
-FUN_02038854: ; 0x02038854
- ldr r3, _0203885C ; =FUN_020373D4
- add r2, r1, #0x0
- ldr r1, _02038860 ; =0x020F2C04
- bx r3
- .balign 4
-_0203885C: .word FUN_020373D4
-_02038860: .word 0x020F2C04
-
- thumb_func_start FUN_02038864
-FUN_02038864: ; 0x02038864
- push {r4-r6, lr}
- sub sp, #0x10
- ldr r5, _02038888 ; =0x020F2C84
- add r4, sp, #0x0
- add r6, r0, #0x0
- add r2, r1, #0x0
- add r3, r4, #0x0
- ldmia r5!, {r0-r1}
- stmia r4!, {r0-r1}
- ldmia r5!, {r0-r1}
- stmia r4!, {r0-r1}
- add r0, r6, #0x0
- add r1, r3, #0x0
- bl FUN_020373D4
- add sp, #0x10
- pop {r4-r6, pc}
- nop
-_02038888: .word 0x020F2C84
-
- thumb_func_start FUN_0203888C
-FUN_0203888C: ; 0x0203888C
- push {r4-r6, lr}
- sub sp, #0x10
- ldr r5, _020388B0 ; =0x020F2D84
- add r4, sp, #0x0
- add r6, r0, #0x0
- add r2, r1, #0x0
- add r3, r4, #0x0
- ldmia r5!, {r0-r1}
- stmia r4!, {r0-r1}
- ldmia r5!, {r0-r1}
- stmia r4!, {r0-r1}
- add r0, r6, #0x0
- add r1, r3, #0x0
- bl FUN_020373D4
- add sp, #0x10
- pop {r4-r6, pc}
- nop
-_020388B0: .word 0x020F2D84
-
- thumb_func_start FUN_020388B4
-FUN_020388B4: ; 0x020388B4
- push {r3-r5, lr}
- sub sp, #0x10
- add r4, r0, #0x0
- ldr r0, [r4, #0xc]
- bl FUN_0206BB1C
- bl MOD05_021ED49C
- add r5, r0, #0x0
- bne _020388CC
- bl ErrorHandling
-_020388CC:
- add r0, r4, #0x0
- add r1, r5, #0x0
- bl FUN_020613CC
- str r5, [sp, #0x0]
- ldr r0, [r4, #0xc]
- bl LoadPlayerDataAddress
- str r0, [sp, #0x4]
- ldr r0, [r4, #0xc]
- bl FUN_020238F4
- str r0, [sp, #0x8]
- ldr r1, [r4, #0x1c]
- add r0, r4, #0x0
- ldr r1, [r1, #0x0]
- bl FUN_0204AB58
- add r1, sp, #0x0
- strh r0, [r1, #0xc]
- ldr r0, [r4, #0x10]
- add r1, sp, #0x0
- bl FUN_020863DC
- add sp, #0x10
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02038900
-FUN_02038900: ; 0x02038900
- push {r3, lr}
- add r2, r1, #0x0
- ldr r1, _02038910 ; =0x020F2C14
- bl FUN_020373D4
- mov r0, #0x1
- pop {r3, pc}
- nop
-_02038910: .word 0x020F2C14
-
- thumb_func_start FUN_02038914
-FUN_02038914: ; 0x02038914
- push {r4-r7, lr}
- sub sp, #0xc
- add r6, r0, #0x0
- bl FUN_02046528
- add r4, r0, #0x0
- ldr r0, [r4, #0xc]
- bl FUN_020462AC
- add r7, r0, #0x0
- add r0, r6, #0x0
- bl FUN_0204652C
- add r5, r0, #0x0
- add r0, r6, #0x0
- bl FUN_02046530
- add r6, r0, #0x0
- ldr r0, [r6, #0x0]
- cmp r0, #0x0
- beq _02038944
- cmp r0, #0x1
- beq _02038956
- b _020389C6
-_02038944:
- add r5, #0xc
- add r0, r4, #0x0
- add r1, r5, #0x0
- bl FUN_02038900
- ldr r0, [r6, #0x0]
- add r0, r0, #0x1
- str r0, [r6, #0x0]
- b _020389C6
-_02038956:
- add r0, r4, #0x0
- bl FUN_0204647C
- cmp r0, #0x0
- bne _020389C6
- ldr r0, [r4, #0xc]
- bl FUN_0202390C
- str r0, [sp, #0x0]
- bl FUN_020126FC
- str r0, [sp, #0x4]
- ldr r0, [sp, #0x0]
- add r6, r1, #0x0
- bl FUN_02028930
- str r0, [sp, #0x8]
- ldr r0, [r5, #0x4]
- ldr r1, [r5, #0x8]
- ldr r2, [sp, #0x4]
- add r3, r6, #0x0
- bl FUN_020127C0
- mov r2, #0x3c
- mov r3, #0x0
- bl _ll_sdiv
- add r3, r0, #0x0
- ldr r1, [sp, #0x8]
- ldr r2, [r5, #0x0]
- add r0, r4, #0x0
- bl FUN_02061A8C
- ldr r0, [r4, #0xc]
- bl FUN_0202390C
- ldr r1, [r5, #0x0]
- bl FUN_02028918
- add r0, r7, #0x0
- bl FUN_0205F6C8
- ldr r1, [r5, #0x18]
- cmp r1, r0
- ble _020389BA
- lsl r1, r1, #0x10
- add r0, r7, #0x0
- lsr r1, r1, #0x10
- bl FUN_0205F6D8
-_020389BA:
- add r0, r5, #0x0
- bl FUN_02016A18
- add sp, #0xc
- mov r0, #0x1
- pop {r4-r7, pc}
-_020389C6:
- mov r0, #0x0
- add sp, #0xc
- pop {r4-r7, pc}
-
- thumb_func_start FUN_020389CC
-FUN_020389CC: ; 0x020389CC
- push {r3-r7, lr}
- add r7, r0, #0x0
- add r6, r1, #0x0
- bl FUN_02046528
- add r5, r0, #0x0
- ldr r0, [r5, #0xc]
- bl LoadPlayerDataAddress
- str r0, [sp, #0x0]
- mov r0, #0x20
- add r1, r0, #0x0
- bl FUN_02016998
- add r4, r0, #0x0
- str r4, [r4, #0xc]
- ldr r0, [r5, #0xc]
- bl FUN_0202390C
- bl FUN_02028930
- str r0, [r4, #0x0]
- bl FUN_020126FC
- str r0, [r4, #0x4]
- str r1, [r4, #0x8]
- ldr r0, [r5, #0xc]
- bl FUN_02029FC8
- str r0, [r4, #0x14]
- mov r0, #0x0
- str r0, [r4, #0x18]
- ldr r0, [sp, #0x0]
- bl FUN_02025084
- str r0, [r4, #0x1c]
- lsl r1, r6, #0x18
- ldr r0, [r5, #0xc]
- lsr r1, r1, #0x18
- bl FUN_02038A3C
- str r0, [r4, #0x10]
- ldr r0, [r5, #0xc]
- bl FUN_02029FC8
- mov r1, #0x5
- bl FUN_0202A170
- ldr r1, _02038A38 ; =FUN_02038914
- add r0, r7, #0x0
- add r2, r4, #0x0
- bl FUN_0204640C
- pop {r3-r7, pc}
- .balign 4
-_02038A38: .word FUN_02038914
-
- thumb_func_start FUN_02038A3C
-FUN_02038A3C: ; 0x02038A3C
- push {r4-r7, lr}
- sub sp, #0x14
- str r1, [sp, #0x0]
- bl FUN_0202881C
- add r4, r0, #0x0
- bl FUN_0201B9D4
- str r0, [sp, #0x4]
- add r0, r4, #0x0
- bl FUN_020287A4
- bl FUN_0201B9E0
- ldr r0, _02038AAC ; =0x020F2BE8
- add r1, sp, #0x8
- mov r2, #0xc
- bl MI_CpuCopy8
- mov r4, #0x0
- mov r7, #0xc
- add r6, sp, #0x8
-_02038A68:
- add r0, r4, #0x1
- lsl r0, r0, #0x18
- lsr r5, r0, #0x18
- cmp r5, #0xc
- bhs _02038A92
-_02038A72:
- bl FUN_0201B9EC
- add r1, r7, #0x0
- bl _s32_div_f
- lsl r0, r1, #0x18
- lsr r2, r0, #0x18
- ldrb r1, [r6, r4]
- ldrb r0, [r6, r2]
- strb r0, [r6, r4]
- add r0, r5, #0x1
- lsl r0, r0, #0x18
- lsr r5, r0, #0x18
- strb r1, [r6, r2]
- cmp r5, #0xc
- blo _02038A72
-_02038A92:
- add r0, r4, #0x1
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
- cmp r4, #0xc
- blo _02038A68
- ldr r0, [sp, #0x4]
- bl FUN_0201B9E0
- ldr r0, [sp, #0x0]
- add r1, sp, #0x8
- ldrb r0, [r1, r0]
- add sp, #0x14
- pop {r4-r7, pc}
- .balign 4
-_02038AAC: .word 0x020F2BE8
-
- thumb_func_start FUN_02038AB0
-FUN_02038AB0: ; 0x02038AB0
- push {r4, lr}
- bl FUN_0204652C
- add r4, r0, #0x0
- bl MOD06_0224D79C
- cmp r0, #0x1
- bne _02038ACA
- add r0, r4, #0x0
- bl MOD06_0224D76C
- mov r0, #0x1
- pop {r4, pc}
-_02038ACA:
- mov r0, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02038AD0
-FUN_02038AD0: ; 0x02038AD0
- push {r4, lr}
- add r4, r0, #0x0
- bl FUN_02046528
- add r2, r0, #0x0
- ldr r1, [r2, #0xc]
- ldr r2, [r2, #0x8]
- mov r0, #0x4
- bl MOD06_0224D70C
- add r2, r0, #0x0
- ldr r1, _02038AF0 ; =FUN_02038AB0
- add r0, r4, #0x0
- bl FUN_0204640C
- pop {r4, pc}
- .balign 4
-_02038AF0: .word FUN_02038AB0
-
- thumb_func_start FUN_02038AF4
-FUN_02038AF4: ; 0x02038AF4
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r0, r1, #0x0
- mov r1, #0x8
- add r6, r2, #0x0
- bl FUN_02016998
- add r4, r0, #0x0
- str r6, [r4, #0x4]
- ldr r0, [r5, #0xc]
- ldr r1, _02038B18 ; =0x020F2DA4
- str r0, [r4, #0x0]
- add r0, r5, #0x0
- add r2, r4, #0x0
- bl FUN_020373D4
- add r0, r4, #0x0
- pop {r4-r6, pc}
- .balign 4
-_02038B18: .word 0x020F2DA4
diff --git a/arm9/asm/unk_02013724.s b/arm9/asm/unk_02013724.s
new file mode 100644
index 00000000..38b194ec
--- /dev/null
+++ b/arm9/asm/unk_02013724.s
@@ -0,0 +1,395 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ thumb_func_start FUN_02013724
+FUN_02013724: ; 0x02013724
+ ldr r1, _02013738 ; =0x0000FFFF
+ mov r2, #0x0
+ strh r1, [r0, #0x0]
+_0201372A:
+ add r2, r2, #0x1
+ strh r1, [r0, #0x4]
+ add r0, r0, #0x2
+ cmp r2, #0x2
+ blt _0201372A
+ bx lr
+ nop
+_02013738: .word 0x0000FFFF
+
+ thumb_func_start FUN_0201373C
+FUN_0201373C: ; 0x0201373C
+ strh r1, [r0, #0x0]
+ mov r2, #0x0
+ ldr r1, _02013750 ; =0x0000FFFF
+ strh r2, [r0, #0x2]
+_02013744:
+ add r2, r2, #0x1
+ strh r1, [r0, #0x4]
+ add r0, r0, #0x2
+ cmp r2, #0x2
+ blt _02013744
+ bx lr
+ .balign 4
+_02013750: .word 0x0000FFFF
+
+ thumb_func_start FUN_02013754
+FUN_02013754: ; 0x02013754
+ push {r4, lr}
+ mov r1, #0x4
+ add r4, r0, #0x0
+ bl FUN_0201373C
+ mov r0, #0x5
+ strh r0, [r4, #0x2]
+ pop {r4, pc}
+
+ thumb_func_start FUN_02013764
+FUN_02013764: ; 0x02013764
+ push {r4-r6, lr}
+ add r6, r1, #0x0
+ add r5, r0, #0x0
+ cmp r6, #0x4
+ blo _02013772
+ bl ErrorHandling
+_02013772:
+ cmp r6, #0x4
+ bhs _020137B8
+ mov r0, #0xa
+ add r4, r6, #0x0
+ mul r4, r0
+ ldr r1, _020137BC ; =0x020ED556
+ add r0, r5, #0x0
+ ldrb r1, [r1, r4]
+ bl FUN_0201373C
+ ldr r0, _020137C0 ; =0x020ED557
+ mov r1, #0x0
+ ldrb r0, [r0, r4]
+ mvn r1, r1
+ strh r0, [r5, #0x2]
+ ldr r0, _020137C4 ; =0x020ED558
+ ldrsh r0, [r0, r4]
+ cmp r0, r1
+ beq _020137A2
+ ldr r1, _020137C8 ; =0x020ED55A
+ ldrh r1, [r1, r4]
+ bl FUN_02013A9C
+ strh r0, [r5, #0x4]
+_020137A2:
+ ldr r0, _020137CC ; =0x020ED55C
+ mov r1, #0x0
+ ldrsh r0, [r0, r4]
+ mvn r1, r1
+ cmp r0, r1
+ beq _020137B8
+ ldr r1, _020137D0 ; =0x020ED55E
+ ldrh r1, [r1, r4]
+ bl FUN_02013A9C
+ strh r0, [r5, #0x6]
+_020137B8:
+ pop {r4-r6, pc}
+ nop
+_020137BC: .word 0x020ED556
+_020137C0: .word 0x020ED557
+_020137C4: .word 0x020ED558
+_020137C8: .word 0x020ED55A
+_020137CC: .word 0x020ED55C
+_020137D0: .word 0x020ED55E
+
+ thumb_func_start FUN_020137D4
+FUN_020137D4: ; 0x020137D4
+ push {r3-r7, lr}
+ sub sp, #0x8
+ str r0, [sp, #0x0]
+ add r0, r1, #0x0
+ str r1, [sp, #0x4]
+ bl FUN_0200AA80
+ ldr r5, [sp, #0x0]
+ ldr r7, _02013838 ; =0x0000FFFF
+ add r6, r0, #0x0
+ mov r4, #0x0
+_020137EA:
+ ldrh r2, [r5, #0x4]
+ cmp r2, r7
+ beq _02013800
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_0200B518
+ add r4, r4, #0x1
+ add r5, r5, #0x2
+ cmp r4, #0x2
+ blt _020137EA
+_02013800:
+ ldr r2, [sp, #0x0]
+ mov r0, #0x1
+ ldrh r2, [r2, #0x0]
+ mov r1, #0x1a
+ lsl r3, r2, #0x1
+ ldr r2, _0201383C ; =0x020ED54C
+ ldrh r2, [r2, r3]
+ ldr r3, [sp, #0x4]
+ bl FUN_0200A86C
+ add r5, r0, #0x0
+ ldr r2, [sp, #0x0]
+ ldr r3, [sp, #0x4]
+ ldrh r2, [r2, #0x2]
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_0200A9C4
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0200A8B8
+ add r0, r6, #0x0
+ bl FUN_0200AB18
+ add r0, r4, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_02013838: .word 0x0000FFFF
+_0201383C: .word 0x020ED54C
+
+ thumb_func_start FUN_02013840
+FUN_02013840: ; 0x02013840
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r3, r1, #0x0
+ ldrh r1, [r4, #0x0]
+ mov r0, #0x1a
+ lsl r2, r1, #0x1
+ ldr r1, _02013858 ; =0x020ED54C
+ ldrh r1, [r1, r2]
+ ldrh r2, [r4, #0x2]
+ bl FUN_0200A738
+ pop {r4, pc}
+ .balign 4
+_02013858: .word 0x020ED54C
+
+ thumb_func_start FUN_0201385C
+FUN_0201385C: ; 0x0201385C
+ ldrh r1, [r0, #0x0]
+ ldr r0, _0201386C ; =0x0000FFFF
+ cmp r1, r0
+ beq _02013868
+ mov r0, #0x1
+ bx lr
+_02013868:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0201386C: .word 0x0000FFFF
+
+ thumb_func_start FUN_02013870
+FUN_02013870: ; 0x02013870
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldrh r0, [r4, #0x0]
+ ldrh r1, [r4, #0x2]
+ bl FUN_020138A0
+ mov r3, #0x0
+ cmp r0, #0x0
+ bls _02013896
+ ldr r1, _0201389C ; =0x0000FFFF
+_02013884:
+ ldrh r2, [r4, #0x4]
+ cmp r2, r1
+ bne _0201388E
+ mov r0, #0x0
+ pop {r4, pc}
+_0201388E:
+ add r3, r3, #0x1
+ add r4, r4, #0x2
+ cmp r3, r0
+ blo _02013884
+_02013896:
+ mov r0, #0x1
+ pop {r4, pc}
+ nop
+_0201389C: .word 0x0000FFFF
+
+ thumb_func_start FUN_020138A0
+FUN_020138A0: ; 0x020138A0
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x5
+ blo _020138AE
+ bl ErrorHandling
+_020138AE:
+ add r0, r5, #0x0
+ bl FUN_02013974
+ cmp r4, r0
+ blo _020138BC
+ bl ErrorHandling
+_020138BC:
+ ldr r1, _02013910 ; =0x020ED54C
+ lsl r2, r5, #0x1
+ ldrh r1, [r1, r2]
+ mov r0, #0x1a
+ add r2, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0200A738
+ str r0, [sp, #0x0]
+ bl FUN_02021F2C
+ add r4, r0, #0x0
+ ldrh r1, [r4, #0x0]
+ ldr r0, _02013914 ; =0x0000FFFF
+ mov r5, #0x0
+ cmp r1, r0
+ beq _02013904
+ add r7, r0, #0x0
+ sub r6, r0, #0x1
+_020138E2:
+ cmp r1, r6
+ bne _020138FC
+ add r0, r4, #0x0
+ bl FUN_0201B8F8
+ cmp r0, #0x0
+ beq _020138F2
+ add r5, r5, #0x1
+_020138F2:
+ add r0, r4, #0x0
+ bl FUN_0201B8B8
+ add r4, r0, #0x0
+ b _020138FE
+_020138FC:
+ add r4, r4, #0x2
+_020138FE:
+ ldrh r1, [r4, #0x0]
+ cmp r1, r7
+ bne _020138E2
+_02013904:
+ ldr r0, [sp, #0x0]
+ bl FUN_02021A20
+ add r0, r5, #0x0
+ pop {r3-r7, pc}
+ nop
+_02013910: .word 0x020ED54C
+_02013914: .word 0x0000FFFF
+
+ thumb_func_start FUN_02013918
+FUN_02013918: ; 0x02013918
+ lsl r1, r1, #0x1
+ add r0, r0, r1
+ ldrh r0, [r0, #0x4]
+ bx lr
+
+ thumb_func_start FUN_02013920
+FUN_02013920: ; 0x02013920
+ ldrh r0, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02013924
+FUN_02013924: ; 0x02013924
+ ldrh r0, [r0, #0x2]
+ bx lr
+
+ thumb_func_start FUN_02013928
+FUN_02013928: ; 0x02013928
+ push {r3-r4}
+ ldrh r3, [r0, #0x0]
+ ldrh r2, [r1, #0x0]
+ cmp r3, r2
+ bne _0201393A
+ ldrh r3, [r0, #0x2]
+ ldrh r2, [r1, #0x2]
+ cmp r3, r2
+ beq _02013940
+_0201393A:
+ mov r0, #0x0
+ pop {r3-r4}
+ bx lr
+_02013940:
+ mov r4, #0x0
+_02013942:
+ ldrh r3, [r0, #0x4]
+ ldrh r2, [r1, #0x4]
+ cmp r3, r2
+ beq _02013950
+ mov r0, #0x0
+ pop {r3-r4}
+ bx lr
+_02013950:
+ add r4, r4, #0x1
+ add r1, r1, #0x2
+ add r0, r0, #0x2
+ cmp r4, #0x2
+ blt _02013942
+ mov r0, #0x1
+ pop {r3-r4}
+ bx lr
+
+ thumb_func_start FUN_02013960
+FUN_02013960: ; 0x02013960
+ ldrh r2, [r1, #0x0]
+ strh r2, [r0, #0x0]
+ ldrh r2, [r1, #0x2]
+ strh r2, [r0, #0x2]
+ ldrh r2, [r1, #0x4]
+ strh r2, [r0, #0x4]
+ ldrh r1, [r1, #0x6]
+ strh r1, [r0, #0x6]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02013974
+FUN_02013974: ; 0x02013974
+ cmp r0, #0x5
+ bhs _0201397C
+ mov r0, #0x14
+ bx lr
+_0201397C:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02013980
+FUN_02013980: ; 0x02013980
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ cmp r4, #0x5
+ blo _02013990
+ bl ErrorHandling
+_02013990:
+ strh r4, [r5, #0x0]
+ strh r6, [r5, #0x2]
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02013998
+FUN_02013998: ; 0x02013998
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ cmp r4, #0x2
+ blo _020139A8
+ bl ErrorHandling
+_020139A8:
+ lsl r0, r4, #0x1
+ add r0, r5, r0
+ strh r6, [r0, #0x4]
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020139B0
+FUN_020139B0: ; 0x020139B0
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldrh r0, [r4, #0x0]
+ ldrh r1, [r4, #0x2]
+ bl FUN_020138A0
+ cmp r0, #0x2
+ bhs _020139D0
+ lsl r1, r0, #0x1
+ add r2, r4, r1
+ ldr r1, _020139D4 ; =0x0000FFFF
+_020139C6:
+ add r0, r0, #0x1
+ strh r1, [r2, #0x4]
+ add r2, r2, #0x2
+ cmp r0, #0x2
+ blo _020139C6
+_020139D0:
+ pop {r4, pc}
+ nop
+_020139D4: .word 0x0000FFFF
diff --git a/arm9/asm/unk_020139D8.s b/arm9/asm/unk_020139D8.s
new file mode 100644
index 00000000..5cab9916
--- /dev/null
+++ b/arm9/asm/unk_020139D8.s
@@ -0,0 +1,81286 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ thumb_func_start FUN_020139D8
+FUN_020139D8: ; 0x020139D8
+ push {r3-r7, lr}
+ mov r1, #0x30
+ add r6, r0, #0x0
+ bl FUN_02016998
+ ldr r4, _02013A0C ; =0x020ED5C0
+ str r0, [sp, #0x0]
+ mov r7, #0x0
+ add r5, r0, #0x0
+_020139EA:
+ ldr r0, [sp, #0x0]
+ mov r1, #0x1a
+ str r6, [r0, #0x0]
+ ldrh r2, [r4, #0x0]
+ mov r0, #0x1
+ add r3, r6, #0x0
+ bl FUN_0200A86C
+ str r0, [r5, #0x4]
+ add r7, r7, #0x1
+ add r4, r4, #0x2
+ add r5, r5, #0x4
+ cmp r7, #0xb
+ blt _020139EA
+ ldr r0, [sp, #0x0]
+ pop {r3-r7, pc}
+ nop
+_02013A0C: .word 0x020ED5C0
+
+ thumb_func_start FUN_02013A10
+FUN_02013A10: ; 0x02013A10
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ mov r4, #0x0
+ add r5, r6, #0x0
+_02013A18:
+ ldr r0, [r5, #0x4]
+ bl FUN_0200A8B8
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, #0xb
+ blt _02013A18
+ add r0, r6, #0x0
+ bl FUN_02016A18
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02013A30
+FUN_02013A30: ; 0x02013A30
+ push {r3-r5, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r4, r2, #0x0
+ add r0, r1, #0x0
+ add r1, sp, #0x4
+ add r2, sp, #0x0
+ bl FUN_02013AEC
+ ldr r0, [sp, #0x4]
+ ldr r1, [sp, #0x0]
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ ldr r0, [r0, #0x4]
+ add r2, r4, #0x0
+ bl FUN_0200A8E0
+ add sp, #0x8
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02013A58
+FUN_02013A58: ; 0x02013A58
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r4, r1, #0x0
+ ldr r1, _02013A94 ; =0x0000FFFF
+ cmp r0, r1
+ beq _02013A88
+ add r1, sp, #0x8
+ add r2, sp, #0x4
+ bl FUN_02013AEC
+ ldr r0, [sp, #0x8]
+ mov r3, #0x0
+ lsl r1, r0, #0x1
+ ldr r0, _02013A98 ; =0x020ED5C0
+ ldrh r0, [r0, r1]
+ str r0, [sp, #0x8]
+ str r4, [sp, #0x0]
+ ldr r1, [sp, #0x8]
+ ldr r2, [sp, #0x4]
+ mov r0, #0x1a
+ bl FUN_0200A648
+ add sp, #0xc
+ pop {r3-r4, pc}
+_02013A88:
+ add r0, r4, #0x0
+ bl FUN_02021A4C
+ add sp, #0xc
+ pop {r3-r4, pc}
+ nop
+_02013A94: .word 0x0000FFFF
+_02013A98: .word 0x020ED5C0
+
+ thumb_func_start FUN_02013A9C
+FUN_02013A9C: ; 0x02013A9C
+ push {r4-r5}
+ ldr r4, _02013AE0 ; =0x020ED5C0
+ mov r2, #0x0
+_02013AA2:
+ ldrh r3, [r4, #0x0]
+ cmp r0, r3
+ bne _02013AD0
+ mov r4, #0x0
+ add r3, r4, #0x0
+ cmp r2, #0x0
+ bls _02013AC6
+ ldr r0, _02013AE4 ; =0x020ED5D6
+_02013AB2:
+ lsl r5, r4, #0x1
+ ldrh r5, [r0, r5]
+ add r4, r4, #0x1
+ lsl r4, r4, #0x10
+ add r3, r3, r5
+ lsl r3, r3, #0x10
+ lsr r4, r4, #0x10
+ lsr r3, r3, #0x10
+ cmp r4, r2
+ blo _02013AB2
+_02013AC6:
+ add r0, r3, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ pop {r4-r5}
+ bx lr
+_02013AD0:
+ add r2, r2, #0x1
+ add r4, r4, #0x2
+ cmp r2, #0xb
+ blo _02013AA2
+ ldr r0, _02013AE8 ; =0x0000FFFF
+ pop {r4-r5}
+ bx lr
+ nop
+_02013AE0: .word 0x020ED5C0
+_02013AE4: .word 0x020ED5D6
+_02013AE8: .word 0x0000FFFF
+
+ thumb_func_start FUN_02013AEC
+FUN_02013AEC: ; 0x02013AEC
+ push {r3-r6}
+ ldr r3, _02013B20 ; =0x00000FFF
+ ldr r6, _02013B24 ; =0x020ED5D6
+ and r3, r0
+ mov r0, #0x0
+ add r5, r0, #0x0
+_02013AF8:
+ ldrh r4, [r6, #0x0]
+ add r0, r0, r4
+ cmp r3, r0
+ bhs _02013B12
+ str r5, [r1, #0x0]
+ ldr r1, _02013B24 ; =0x020ED5D6
+ lsl r4, r5, #0x1
+ ldrh r1, [r1, r4]
+ sub r0, r0, r1
+ sub r0, r3, r0
+ str r0, [r2, #0x0]
+ pop {r3-r6}
+ bx lr
+_02013B12:
+ add r5, r5, #0x1
+ add r6, r6, #0x2
+ cmp r5, #0xb
+ blo _02013AF8
+ pop {r3-r6}
+ bx lr
+ nop
+_02013B20: .word 0x00000FFF
+_02013B24: .word 0x020ED5D6
+
+ thumb_func_start FUN_02013B28
+FUN_02013B28: ; 0x02013B28
+ mov r0, #0x8
+ bx lr
+
+ thumb_func_start FUN_02013B2C
+FUN_02013B2C: ; 0x02013B2C
+ push {r3, lr}
+ mov r2, #0x0
+ str r2, [r0, #0x0]
+ ldr r3, _02013B54 ; =0x020ED5B4
+ str r2, [r0, #0x4]
+_02013B36:
+ ldrb r1, [r3, #0x0]
+ cmp r1, #0x2
+ bne _02013B48
+ ldr r1, _02013B58 ; =0x020ED5B5
+ lsl r2, r2, #0x1
+ ldrb r1, [r1, r2]
+ bl FUN_02013C18
+ pop {r3, pc}
+_02013B48:
+ add r2, r2, #0x1
+ add r3, r3, #0x2
+ cmp r2, #0x6
+ blo _02013B36
+ pop {r3, pc}
+ nop
+_02013B54: .word 0x020ED5B4
+_02013B58: .word 0x020ED5B5
+
+ thumb_func_start FUN_02013B5C
+FUN_02013B5C: ; 0x02013B5C
+ ldr r3, _02013B64 ; =FUN_02022610
+ mov r1, #0x22
+ bx r3
+ nop
+_02013B64: .word FUN_02022610
+
+ thumb_func_start FUN_02013B68
+FUN_02013B68: ; 0x02013B68
+ ldr r0, [r0, #0x4]
+ add r2, r0, #0x0
+ lsr r2, r1
+ mov r0, #0x1
+ and r0, r2
+ bx lr
+
+ thumb_func_start FUN_02013B74
+FUN_02013B74: ; 0x02013B74
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r2, #0x0
+ ldr r3, [r5, #0x4]
+ add r4, r2, #0x0
+ mov r0, #0x1
+_02013B80:
+ add r1, r3, #0x0
+ lsr r1, r2
+ tst r1, r0
+ bne _02013B8A
+ add r4, r4, #0x1
+_02013B8A:
+ add r2, r2, #0x1
+ cmp r2, #0x20
+ blo _02013B80
+ cmp r4, #0x0
+ beq _02013BC4
+ bl rand_LC
+ add r1, r4, #0x0
+ bl _u32_div_f
+ ldr r4, [r5, #0x4]
+ mov r0, #0x0
+ mov r2, #0x1
+_02013BA4:
+ add r3, r4, #0x0
+ lsr r3, r0
+ tst r3, r2
+ bne _02013BBE
+ cmp r1, #0x0
+ bne _02013BBC
+ mov r1, #0x1
+ ldr r2, [r5, #0x4]
+ lsl r1, r0
+ orr r1, r2
+ str r1, [r5, #0x4]
+ pop {r3-r5, pc}
+_02013BBC:
+ sub r1, r1, #0x1
+_02013BBE:
+ add r0, r0, #0x1
+ cmp r0, #0x20
+ blo _02013BA4
+_02013BC4:
+ mov r0, #0x20
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02013BC8
+FUN_02013BC8: ; 0x02013BC8
+ ldr r3, [r0, #0x4]
+ mov r2, #0x0
+ mov r0, #0x1
+_02013BCE:
+ add r1, r3, #0x0
+ lsr r1, r2
+ tst r1, r0
+ bne _02013BDA
+ mov r0, #0x0
+ bx lr
+_02013BDA:
+ add r2, r2, #0x1
+ cmp r2, #0x20
+ blo _02013BCE
+ mov r0, #0x1
+ bx lr
+
+ thumb_func_start FUN_02013BE4
+FUN_02013BE4: ; 0x02013BE4
+ push {r3-r4}
+ mov r3, #0x0
+ ldr r4, _02013C08 ; =0x020ED5D6
+ add r2, r3, #0x0
+_02013BEC:
+ ldrh r1, [r4, #0x0]
+ add r2, r2, #0x1
+ add r4, r4, #0x2
+ add r1, r3, r1
+ lsl r1, r1, #0x10
+ lsr r3, r1, #0x10
+ cmp r2, #0x9
+ blt _02013BEC
+ add r0, r3, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ pop {r3-r4}
+ bx lr
+ nop
+_02013C08: .word 0x020ED5D6
+
+ thumb_func_start FUN_02013C0C
+FUN_02013C0C: ; 0x02013C0C
+ ldr r0, [r0, #0x0]
+ add r2, r0, #0x0
+ lsr r2, r1
+ mov r0, #0x1
+ and r0, r2
+ bx lr
+
+ thumb_func_start FUN_02013C18
+FUN_02013C18: ; 0x02013C18
+ mov r2, #0x1
+ ldr r3, [r0, #0x0]
+ lsl r2, r1
+ add r1, r3, #0x0
+ orr r1, r2
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02013C28
+FUN_02013C28: ; 0x02013C28
+ push {r4-r7}
+ mov r3, #0x0
+ ldr r5, _02013C64 ; =0x020ED5EC
+ add r2, r3, #0x0
+_02013C30:
+ ldr r7, [r5, #0x4]
+ add r4, r2, #0x0
+ cmp r7, #0x0
+ ble _02013C54
+ ldr r6, [r5, #0x0]
+_02013C3A:
+ ldrh r1, [r6, #0x0]
+ cmp r0, r1
+ bne _02013C4C
+ ldr r0, _02013C68 ; =0x020ED5F0
+ lsl r1, r3, #0x3
+ ldr r0, [r0, r1]
+ sub r0, r0, #0x1
+ pop {r4-r7}
+ bx lr
+_02013C4C:
+ add r4, r4, #0x1
+ add r6, r6, #0x2
+ cmp r4, r7
+ blt _02013C3A
+_02013C54:
+ add r3, r3, #0x1
+ add r5, #0x8
+ cmp r3, #0xc
+ blo _02013C30
+ mov r0, #0x0
+ pop {r4-r7}
+ bx lr
+ nop
+_02013C64: .word 0x020ED5EC
+_02013C68: .word 0x020ED5F0
+
+ thumb_func_start FUN_02013C6C
+FUN_02013C6C: ; 0x02013C6C
+ push {r3-r7, lr}
+ ldr r3, _02013CC8 ; =0x020ED5EC
+ add r6, r1, #0x0
+ mov r7, #0x0
+_02013C74:
+ ldr r5, [r3, #0x4]
+ mov r2, #0x0
+ cmp r5, #0x0
+ ble _02013CBC
+ ldr r4, [r3, #0x0]
+_02013C7E:
+ ldrh r1, [r4, #0x0]
+ cmp r0, r1
+ bne _02013CB4
+ ldr r2, _02013CCC ; =0x020ED5F0
+ lsl r1, r7, #0x3
+ ldr r2, [r2, r1]
+ mov r0, #0x0
+ cmp r2, #0x0
+ beq _02013CAC
+ ldr r2, _02013CC8 ; =0x020ED5EC
+ add r2, r2, r1
+ ldr r2, [r2, #0x4]
+_02013C96:
+ cmp r6, #0x0
+ bne _02013CA4
+ ldr r2, _02013CC8 ; =0x020ED5EC
+ lsl r0, r0, #0x1
+ ldr r1, [r2, r1]
+ ldrh r0, [r1, r0]
+ pop {r3-r7, pc}
+_02013CA4:
+ sub r6, r6, #0x1
+ add r0, r0, #0x1
+ cmp r2, #0x0
+ bne _02013C96
+_02013CAC:
+ bl ErrorHandling
+ ldr r0, _02013CD0 ; =0x0000FFFF
+ pop {r3-r7, pc}
+_02013CB4:
+ add r2, r2, #0x1
+ add r4, r4, #0x2
+ cmp r2, r5
+ blt _02013C7E
+_02013CBC:
+ add r7, r7, #0x1
+ add r3, #0x8
+ cmp r7, #0xc
+ blo _02013C74
+ pop {r3-r7, pc}
+ nop
+_02013CC8: .word 0x020ED5EC
+_02013CCC: .word 0x020ED5F0
+_02013CD0: .word 0x0000FFFF
+
+ thumb_func_start FUN_02013CD4
+FUN_02013CD4: ; 0x02013CD4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ mov r1, #0x18
+ bl FUN_02016998
+ add r4, r0, #0x0
+ bne _02013CE8
+ bl ErrorHandling
+_02013CE8:
+ ldr r0, [r5, #0x0]
+ ldr r1, [r5, #0xc]
+ bl FUN_02013F68
+ str r0, [r4, #0x0]
+ ldr r0, [r5, #0x0]
+ str r0, [r4, #0x4]
+ ldr r0, [r5, #0x4]
+ ldr r1, [r5, #0xc]
+ bl FUN_02013F98
+ str r0, [r4, #0x8]
+ ldr r0, [r5, #0x4]
+ str r0, [r4, #0xc]
+ ldr r0, [r5, #0x8]
+ ldr r1, [r5, #0xc]
+ bl FUN_02013FC8
+ str r0, [r4, #0x10]
+ ldr r0, [r5, #0x8]
+ str r0, [r4, #0x14]
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02013D18
+FUN_02013D18: ; 0x02013D18
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02013D22
+ bl ErrorHandling
+_02013D22:
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _02013D2C
+ bl ErrorHandling
+_02013D2C:
+ ldr r0, [r4, #0x8]
+ cmp r0, #0x0
+ bne _02013D36
+ bl ErrorHandling
+_02013D36:
+ ldr r0, [r4, #0x10]
+ cmp r0, #0x0
+ bne _02013D40
+ bl ErrorHandling
+_02013D40:
+ ldr r0, [r4, #0x0]
+ bl FUN_02016A18
+ ldr r0, [r4, #0x8]
+ bl FUN_02016A18
+ ldr r0, [r4, #0x10]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02013D5C
+FUN_02013D5C: ; 0x02013D5C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, _02013D90 ; =0x04000444
+ mov r6, #0x0
+ str r6, [r0, #0x0]
+ ldr r0, [r5, #0x4]
+ cmp r0, #0x0
+ ble _02013D86
+ add r4, r6, #0x0
+_02013D6E:
+ ldr r0, [r5, #0x0]
+ add r0, r0, r4
+ ldr r1, [r0, #0x20]
+ cmp r1, #0x0
+ beq _02013D7C
+ bl FUN_020140D8
+_02013D7C:
+ ldr r0, [r5, #0x4]
+ add r6, r6, #0x1
+ add r4, #0x40
+ cmp r6, r0
+ blt _02013D6E
+_02013D86:
+ ldr r0, _02013D94 ; =0x04000448
+ mov r1, #0x1
+ str r1, [r0, #0x0]
+ pop {r4-r6, pc}
+ nop
+_02013D90: .word 0x04000444
+_02013D94: .word 0x04000448
+
+ thumb_func_start FUN_02013D98
+FUN_02013D98: ; 0x02013D98
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_02014024
+ add r4, r0, #0x0
+ bne _02013DAA
+ bl ErrorHandling
+_02013DAA:
+ ldr r0, [r5, #0x4]
+ ldr r0, [r0, #0x8]
+ cmp r0, #0x0
+ beq _02013DB6
+ bl ErrorHandling
+_02013DB6:
+ ldr r0, [r5, #0x4]
+ bl FUN_0201407C
+ str r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _02013DC6
+ bl ErrorHandling
+_02013DC6:
+ ldr r0, [r5, #0x4]
+ ldr r1, [r4, #0x0]
+ add r2, r4, #0x4
+ bl FUN_020140A4
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02013DD4
+FUN_02013DD4: ; 0x02013DD4
+ push {r4, lr}
+ ldr r1, _02013DE8 ; =0x021064BC
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ ldr r1, [r1, #0x0]
+ blx r1
+ add r0, r4, #0x0
+ bl FUN_02013F50
+ pop {r4, pc}
+ .balign 4
+_02013DE8: .word 0x021064BC
+
+ thumb_func_start FUN_02013DEC
+FUN_02013DEC: ; 0x02013DEC
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ mov r6, #0x0
+ cmp r0, #0x0
+ ble _02013E12
+ add r4, r6, #0x0
+_02013DFA:
+ ldr r1, [r5, #0x8]
+ ldr r0, [r1, r4]
+ cmp r0, #0x0
+ beq _02013E08
+ add r0, r1, r4
+ bl FUN_02013DD4
+_02013E08:
+ ldr r0, [r5, #0xc]
+ add r6, r6, #0x1
+ add r4, #0x28
+ cmp r6, r0
+ blt _02013DFA
+_02013E12:
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02013E14
+FUN_02013E14: ; 0x02013E14
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_02014050
+ add r4, r0, #0x0
+ bne _02013E26
+ bl ErrorHandling
+_02013E26:
+ ldr r0, [r5, #0x8]
+ bl FUN_02014090
+ str r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _02013E36
+ bl ErrorHandling
+_02013E36:
+ ldr r0, [r5, #0x4]
+ ldr r1, [r4, #0x0]
+ add r2, r4, #0x4
+ bl FUN_020140B4
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02013E44
+FUN_02013E44: ; 0x02013E44
+ push {r4, lr}
+ ldr r1, _02013E58 ; =0x021064C4
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ ldr r1, [r1, #0x0]
+ blx r1
+ add r0, r4, #0x0
+ bl FUN_02013F5C
+ pop {r4, pc}
+ .balign 4
+_02013E58: .word 0x021064C4
+
+ thumb_func_start FUN_02013E5C
+FUN_02013E5C: ; 0x02013E5C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x14]
+ mov r6, #0x0
+ cmp r0, #0x0
+ ble _02013E82
+ add r4, r6, #0x0
+_02013E6A:
+ ldr r1, [r5, #0x10]
+ ldr r0, [r1, r4]
+ cmp r0, #0x0
+ beq _02013E78
+ add r0, r1, r4
+ bl FUN_02013E44
+_02013E78:
+ ldr r0, [r5, #0x14]
+ add r6, r6, #0x1
+ add r4, #0x18
+ cmp r6, r0
+ blt _02013E6A
+_02013E82:
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02013E84
+FUN_02013E84: ; 0x02013E84
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_02013FF8
+ add r4, r0, #0x0
+ bne _02013E96
+ bl ErrorHandling
+_02013E96:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_02014218
+ mov r0, #0x1
+ str r0, [r4, #0x1c]
+ str r0, [r4, #0x20]
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02013EA8
+FUN_02013EA8: ; 0x02013EA8
+ ldr r3, _02013EAC ; =FUN_02013F30
+ bx r3
+ .balign 4
+_02013EAC: .word FUN_02013F30
+
+ thumb_func_start FUN_02013EB0
+FUN_02013EB0: ; 0x02013EB0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _02013EBE
+ bl ErrorHandling
+_02013EBE:
+ str r4, [r5, #0x20]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02013EC4
+FUN_02013EC4: ; 0x02013EC4
+ strh r1, [r0, #0x0]
+ strh r2, [r0, #0x2]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02013ECC
+FUN_02013ECC: ; 0x02013ECC
+ ldrh r1, [r0, #0x2]
+ ldrh r0, [r0, #0x0]
+ lsl r1, r1, #0x10
+ orr r0, r1
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02013ED8
+FUN_02013ED8: ; 0x02013ED8
+ strh r1, [r0, #0x4]
+ strh r2, [r0, #0x6]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02013EE0
+FUN_02013EE0: ; 0x02013EE0
+ str r1, [r0, #0xc]
+ str r2, [r0, #0x10]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02013EE8
+FUN_02013EE8: ; 0x02013EE8
+ strh r1, [r0, #0x8]
+ strh r2, [r0, #0xa]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02013EF0
+FUN_02013EF0: ; 0x02013EF0
+ ldrh r1, [r0, #0xa]
+ ldrh r0, [r0, #0x8]
+ lsl r1, r1, #0x10
+ orr r0, r1
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02013EFC
+FUN_02013EFC: ; 0x02013EFC
+ str r1, [r0, #0x14]
+ bx lr
+
+ thumb_func_start FUN_02013F00
+FUN_02013F00: ; 0x02013F00
+ ldr r0, [r0, #0x14]
+ bx lr
+
+ thumb_func_start FUN_02013F04
+FUN_02013F04: ; 0x02013F04
+ add r0, #0x3e
+ strb r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02013F0C
+FUN_02013F0C: ; 0x02013F0C
+ strh r1, [r0, #0x3c]
+ bx lr
+
+ thumb_func_start FUN_02013F10
+FUN_02013F10: ; 0x02013F10
+ str r1, [r0, #0x24]
+ bx lr
+
+ thumb_func_start FUN_02013F14
+FUN_02013F14: ; 0x02013F14
+ str r1, [r0, #0x28]
+ bx lr
+
+ thumb_func_start FUN_02013F18
+FUN_02013F18: ; 0x02013F18
+ str r1, [r0, #0x2c]
+ bx lr
+
+ thumb_func_start FUN_02013F1C
+FUN_02013F1C: ; 0x02013F1C
+ str r1, [r0, #0x30]
+ bx lr
+
+ thumb_func_start FUN_02013F20
+FUN_02013F20: ; 0x02013F20
+ cmp r1, #0x0
+ bne _02013F28
+ str r2, [r0, #0x34]
+ bx lr
+_02013F28:
+ str r2, [r0, #0x38]
+ bx lr
+
+ thumb_func_start FUN_02013F2C
+FUN_02013F2C: ; 0x02013F2C
+ str r1, [r0, #0x18]
+ bx lr
+
+ thumb_func_start FUN_02013F30
+FUN_02013F30: ; 0x02013F30
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x40
+ bl memset
+ add r0, r4, #0x0
+ mov r1, #0x1f
+ add r0, #0x3e
+ strb r1, [r0, #0x0]
+ ldr r0, _02013F4C ; =0x00007FFF
+ strh r0, [r4, #0x3c]
+ pop {r4, pc}
+ nop
+_02013F4C: .word 0x00007FFF
+
+ thumb_func_start FUN_02013F50
+FUN_02013F50: ; 0x02013F50
+ ldr r3, _02013F58 ; =FUN_020B1A24
+ mov r1, #0x0
+ stmia r0!, {r1}
+ bx r3
+ .balign 4
+_02013F58: .word FUN_020B1A24
+
+ thumb_func_start FUN_02013F5C
+FUN_02013F5C: ; 0x02013F5C
+ ldr r3, _02013F64 ; =FUN_020B19DC
+ mov r1, #0x0
+ stmia r0!, {r1}
+ bx r3
+ .balign 4
+_02013F64: .word FUN_020B19DC
+
+ thumb_func_start FUN_02013F68
+FUN_02013F68: ; 0x02013F68
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ add r0, r1, #0x0
+ lsl r1, r6, #0x6
+ bl FUN_02016998
+ add r7, r0, #0x0
+ bne _02013F7C
+ bl ErrorHandling
+_02013F7C:
+ mov r4, #0x0
+ cmp r6, #0x0
+ ble _02013F92
+ add r5, r7, #0x0
+_02013F84:
+ add r0, r5, #0x0
+ bl FUN_02013F30
+ add r4, r4, #0x1
+ add r5, #0x40
+ cmp r4, r6
+ blt _02013F84
+_02013F92:
+ add r0, r7, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02013F98
+FUN_02013F98: ; 0x02013F98
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ add r0, r1, #0x0
+ mov r1, #0x28
+ mul r1, r6
+ bl FUN_02016998
+ add r7, r0, #0x0
+ bne _02013FAE
+ bl ErrorHandling
+_02013FAE:
+ mov r4, #0x0
+ cmp r6, #0x0
+ ble _02013FC4
+ add r5, r7, #0x0
+_02013FB6:
+ add r0, r5, #0x0
+ bl FUN_02013F50
+ add r4, r4, #0x1
+ add r5, #0x28
+ cmp r4, r6
+ blt _02013FB6
+_02013FC4:
+ add r0, r7, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02013FC8
+FUN_02013FC8: ; 0x02013FC8
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ add r0, r1, #0x0
+ mov r1, #0x18
+ mul r1, r6
+ bl FUN_02016998
+ add r7, r0, #0x0
+ bne _02013FDE
+ bl ErrorHandling
+_02013FDE:
+ mov r4, #0x0
+ cmp r6, #0x0
+ ble _02013FF4
+ add r5, r7, #0x0
+_02013FE6:
+ add r0, r5, #0x0
+ bl FUN_02013F5C
+ add r4, r4, #0x1
+ add r5, #0x18
+ cmp r4, r6
+ blt _02013FE6
+_02013FF4:
+ add r0, r7, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02013FF8
+FUN_02013FF8: ; 0x02013FF8
+ push {r3-r4}
+ ldr r4, [r0, #0x4]
+ mov r1, #0x0
+ cmp r4, #0x0
+ ble _0201401C
+ ldr r3, [r0, #0x0]
+ add r2, r3, #0x0
+_02014006:
+ ldr r0, [r2, #0x1c]
+ cmp r0, #0x0
+ bne _02014014
+ lsl r0, r1, #0x6
+ add r0, r3, r0
+ pop {r3-r4}
+ bx lr
+_02014014:
+ add r1, r1, #0x1
+ add r2, #0x40
+ cmp r1, r4
+ blt _02014006
+_0201401C:
+ mov r0, #0x0
+ pop {r3-r4}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02014024
+FUN_02014024: ; 0x02014024
+ push {r3-r4}
+ ldr r4, [r0, #0x4]
+ mov r1, #0x0
+ cmp r4, #0x0
+ ble _0201404A
+ ldr r3, [r0, #0x8]
+ add r2, r3, #0x0
+_02014032:
+ ldr r0, [r2, #0x0]
+ cmp r0, #0x0
+ bne _02014042
+ mov r0, #0x28
+ mul r0, r1
+ add r0, r3, r0
+ pop {r3-r4}
+ bx lr
+_02014042:
+ add r1, r1, #0x1
+ add r2, #0x28
+ cmp r1, r4
+ blt _02014032
+_0201404A:
+ mov r0, #0x0
+ pop {r3-r4}
+ bx lr
+
+ thumb_func_start FUN_02014050
+FUN_02014050: ; 0x02014050
+ push {r3-r4}
+ ldr r4, [r0, #0x4]
+ mov r1, #0x0
+ cmp r4, #0x0
+ ble _02014076
+ ldr r3, [r0, #0x10]
+ add r2, r3, #0x0
+_0201405E:
+ ldr r0, [r2, #0x0]
+ cmp r0, #0x0
+ bne _0201406E
+ mov r0, #0x18
+ mul r0, r1
+ add r0, r3, r0
+ pop {r3-r4}
+ bx lr
+_0201406E:
+ add r1, r1, #0x1
+ add r2, #0x18
+ cmp r1, r4
+ blt _0201405E
+_02014076:
+ mov r0, #0x0
+ pop {r3-r4}
+ bx lr
+
+ thumb_func_start FUN_0201407C
+FUN_0201407C: ; 0x0201407C
+ push {r3, lr}
+ ldr r3, _0201408C ; =0x021064B8
+ mov r1, #0x0
+ ldr r0, [r0, #0x10]
+ ldr r3, [r3, #0x0]
+ add r2, r1, #0x0
+ blx r3
+ pop {r3, pc}
+ .balign 4
+_0201408C: .word 0x021064B8
+
+ thumb_func_start FUN_02014090
+FUN_02014090: ; 0x02014090
+ push {r3, lr}
+ ldr r3, _020140A0 ; =0x021064C0
+ mov r1, #0x0
+ ldr r3, [r3, #0x0]
+ lsl r0, r0, #0x5
+ add r2, r1, #0x0
+ blx r3
+ pop {r3, pc}
+ .balign 4
+_020140A0: .word 0x021064C0
+
+ thumb_func_start FUN_020140A4
+FUN_020140A4: ; 0x020140A4
+ push {r3, lr}
+ lsl r1, r1, #0x10
+ add r3, r2, #0x0
+ lsr r1, r1, #0xd
+ mov r2, #0x0
+ bl FUN_020B1528
+ pop {r3, pc}
+
+ thumb_func_start FUN_020140B4
+FUN_020140B4: ; 0x020140B4
+ push {r3-r5, lr}
+ add r3, r2, #0x0
+ ldr r2, _020140D4 ; =0xFFFF0000
+ add r5, r0, #0x0
+ and r2, r1
+ lsr r2, r2, #0x10
+ lsl r1, r1, #0x10
+ ldr r4, [r5, #0x8]
+ lsl r2, r2, #0x3
+ str r2, [r5, #0x8]
+ lsr r1, r1, #0xd
+ mov r2, #0x0
+ bl FUN_020B1240
+ str r4, [r5, #0x8]
+ pop {r3-r5, pc}
+ .balign 4
+_020140D4: .word 0xFFFF0000
+
+ thumb_func_start FUN_020140D8
+FUN_020140D8: ; 0x020140D8
+ push {r3-r7, lr}
+ sub sp, #0x18
+ ldr r7, _020141F8 ; =0x04000444
+ mov r6, #0x0
+ add r5, r0, #0x0
+ str r6, [r7, #0x0]
+ ldrh r1, [r5, #0x3c]
+ ldr r0, _020141FC ; =0x7FFF8000
+ orr r0, r1
+ str r0, [r7, #0x7c]
+ add r0, r7, #0x0
+ ldr r1, _02014200 ; =0x00004210
+ add r0, #0x80
+ str r1, [r0, #0x0]
+ ldr r3, [r5, #0x24]
+ ldr r4, [r3, #0x8]
+ ldr r2, [r3, #0x10]
+ ldr r1, [r3, #0x4]
+ ldr r0, [r3, #0x0]
+ lsl r3, r2, #0x1d
+ lsl r2, r1, #0x17
+ lsl r1, r0, #0x14
+ ldr r0, [r5, #0x28]
+ lsl r4, r4, #0x1a
+ lsr r0, r0, #0x3
+ orr r4, r0
+ mov r0, #0x1
+ lsl r0, r0, #0x1e
+ orr r0, r4
+ orr r0, r1
+ orr r0, r2
+ orr r0, r3
+ str r0, [r7, #0x64]
+ ldr r0, [r5, #0x24]
+ ldr r0, [r0, #0x8]
+ cmp r0, #0x2
+ bne _02014124
+ mov r6, #0x1
+_02014124:
+ ldr r0, [r5, #0x30]
+ ldr r1, [r5, #0x2c]
+ lsl r0, r0, #0x5
+ add r1, r1, r0
+ mov r0, #0x4
+ sub r0, r0, r6
+ lsr r1, r0
+ ldr r2, _02014204 ; =0x040004AC
+ add r0, r5, #0x0
+ str r1, [r2, #0x0]
+ add r0, #0x3e
+ ldrb r0, [r0, #0x0]
+ sub r2, #0x8
+ lsl r1, r0, #0x10
+ mov r0, #0xc0
+ orr r0, r1
+ str r0, [r2, #0x0]
+ ldr r0, [r5, #0x34]
+ cmp r0, #0x0
+ beq _02014156
+ mov r0, #0x8
+ ldrsh r0, [r5, r0]
+ mov r7, #0x0
+ str r0, [sp, #0x14]
+ b _0201415E
+_02014156:
+ mov r0, #0x8
+ ldrsh r7, [r5, r0]
+ mov r0, #0x0
+ str r0, [sp, #0x14]
+_0201415E:
+ ldr r0, [r5, #0x38]
+ cmp r0, #0x0
+ beq _0201416C
+ mov r0, #0xa
+ ldrsh r6, [r5, r0]
+ mov r4, #0x0
+ b _02014172
+_0201416C:
+ mov r0, #0xa
+ ldrsh r4, [r5, r0]
+ mov r6, #0x0
+_02014172:
+ ldr r0, [r5, #0x14]
+ mov r1, #0x6
+ lsl r2, r0, #0xc
+ mov r0, #0x2
+ ldrsh r0, [r5, r0]
+ ldrsh r1, [r5, r1]
+ mov r3, #0x4
+ ldrsh r3, [r5, r3]
+ add r0, r0, r1
+ lsl r1, r0, #0xc
+ mov r0, #0x0
+ ldrsh r0, [r5, r0]
+ add r0, r0, r3
+ ldr r3, _02014208 ; =0x04000470
+ lsl r0, r0, #0xc
+ str r0, [r3, #0x0]
+ str r1, [r3, #0x0]
+ str r2, [r3, #0x0]
+ ldr r0, [r5, #0x18]
+ ldr r1, _0201420C ; =0x020FFA38
+ asr r0, r0, #0x4
+ lsl r2, r0, #0x1
+ lsl r0, r2, #0x1
+ add r2, r2, #0x1
+ lsl r2, r2, #0x1
+ ldrsh r0, [r1, r0]
+ ldrsh r1, [r1, r2]
+ bl G3_RotZ
+ ldr r2, [r5, #0x10]
+ ldr r0, [r5, #0xc]
+ ldr r1, _02014210 ; =0x0400046C
+ mov r3, #0x8
+ str r0, [r1, #0x0]
+ str r2, [r1, #0x0]
+ lsr r0, r1, #0xe
+ str r0, [r1, #0x0]
+ mov r2, #0x4
+ mov r0, #0x6
+ ldrsh r2, [r5, r2]
+ ldrsh r0, [r5, r0]
+ neg r2, r2
+ neg r0, r0
+ lsl r2, r2, #0xc
+ lsl r0, r0, #0xc
+ str r2, [r1, #0x4]
+ str r0, [r1, #0x4]
+ mov r0, #0x0
+ str r0, [r1, #0x4]
+ mov r1, #0xa
+ ldrsh r1, [r5, r1]
+ add r2, r0, #0x0
+ str r1, [sp, #0x0]
+ ldr r1, [sp, #0x14]
+ str r1, [sp, #0x4]
+ str r6, [sp, #0x8]
+ str r7, [sp, #0xc]
+ str r4, [sp, #0x10]
+ ldrsh r3, [r5, r3]
+ add r1, r0, #0x0
+ bl FUN_020B0250
+ ldr r0, _02014214 ; =0x04000448
+ mov r1, #0x1
+ str r1, [r0, #0x0]
+ add sp, #0x18
+ pop {r3-r7, pc}
+ .balign 4
+_020141F8: .word 0x04000444
+_020141FC: .word 0x7FFF8000
+_02014200: .word 0x00004210
+_02014204: .word 0x040004AC
+_02014208: .word 0x04000470
+_0201420C: .word 0x020FFA38
+_02014210: .word 0x0400046C
+_02014214: .word 0x04000448
+
+ thumb_func_start FUN_02014218
+FUN_02014218: ; 0x02014218
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ ldr r1, [r5, #0x4]
+ add r7, r0, #0x0
+ ldr r2, [r1, #0x10]
+ mov r6, #0x8
+ mov r0, #0x0
+ cmp r2, #0x0
+ ble _02014236
+_0201422A:
+ ldr r2, [r5, #0x4]
+ add r0, r0, #0x1
+ ldr r2, [r2, #0x10]
+ lsl r6, r6, #0x1
+ cmp r0, r2
+ blt _0201422A
+_02014236:
+ ldr r1, [r1, #0x14]
+ mov r4, #0x8
+ mov r0, #0x0
+ cmp r1, #0x0
+ ble _0201424C
+_02014240:
+ ldr r1, [r5, #0x4]
+ add r0, r0, #0x1
+ ldr r1, [r1, #0x14]
+ lsl r4, r4, #0x1
+ cmp r0, r1
+ blt _02014240
+_0201424C:
+ mov r1, #0xc
+ mov r2, #0xe
+ ldrsh r1, [r5, r1]
+ ldrsh r2, [r5, r2]
+ add r0, r7, #0x0
+ bl FUN_02013EC4
+ lsr r1, r6, #0x1f
+ lsr r2, r4, #0x1f
+ add r1, r6, r1
+ add r2, r4, r2
+ lsl r1, r1, #0xf
+ lsl r2, r2, #0xf
+ add r0, r7, #0x0
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_02013ED8
+ mov r0, #0x1
+ lsl r0, r0, #0xc
+ str r0, [r7, #0xc]
+ str r0, [r7, #0x10]
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ bl FUN_02013EE8
+ ldr r1, [r5, #0x18]
+ add r0, r7, #0x0
+ bl FUN_02013EFC
+ ldr r1, [r5, #0x14]
+ add r0, r7, #0x0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_02013F04
+ ldr r1, [r5, #0x4]
+ add r0, r7, #0x0
+ add r1, #0x10
+ bl FUN_02013F10
+ ldr r0, [r5, #0x4]
+ mov r1, #0x0
+ add r0, r0, #0x4
+ bl FUN_020B1A14
+ add r1, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_02013F14
+ ldr r0, [r5, #0x8]
+ mov r1, #0x0
+ add r0, r0, #0x4
+ bl FUN_020B19C4
+ add r1, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_02013F18
+ ldrh r1, [r5, #0x1c]
+ add r0, r7, #0x0
+ bl FUN_02013F1C
+ mov r1, #0x0
+ add r0, r7, #0x0
+ add r2, r1, #0x0
+ bl FUN_02013F20
+ add r0, r7, #0x0
+ mov r1, #0x1
+ mov r2, #0x0
+ bl FUN_02013F20
+ ldrh r1, [r5, #0x10]
+ add r0, r7, #0x0
+ bl FUN_02013F2C
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020142EC
+FUN_020142EC: ; 0x020142EC
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ ldr r0, _02014394 ; =FUN_020143DC
+ mov r1, #0x50
+ mov r2, #0x0
+ bl FUN_020061E8
+ str r0, [sp, #0x4]
+ bl FUN_0201B6C8
+ add r4, r0, #0x0
+ cmp r5, #0x0
+ beq _02014330
+ cmp r6, #0x0
+ bne _02014320
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_020031FC
+ str r0, [sp, #0x0]
+ ldr r0, _02014398 ; =FUN_020144E0
+ str r0, [r4, #0x4]
+ b _0201434A
+_02014320:
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_020031FC
+ str r0, [sp, #0x0]
+ ldr r0, _0201439C ; =FUN_020144FC
+ str r0, [r4, #0x4]
+ b _0201434A
+_02014330:
+ cmp r6, #0x0
+ bne _02014340
+ bl FUN_020222E8
+ str r0, [sp, #0x0]
+ ldr r0, _020143A0 ; =FUN_020144B0
+ str r0, [r4, #0x4]
+ b _0201434A
+_02014340:
+ bl FUN_020222F8
+ str r0, [sp, #0x0]
+ ldr r0, _020143A4 ; =FUN_020144C8
+ str r0, [r4, #0x4]
+_0201434A:
+ ldr r1, [sp, #0x0]
+ lsl r0, r7, #0x5
+ str r0, [sp, #0x8]
+ add r0, r1, r0
+ add r1, r4, #0x0
+ add r1, #0xc
+ mov r2, #0x20
+ bl MIi_CpuCopy16
+ ldr r1, [sp, #0x0]
+ ldr r0, [sp, #0x8]
+ mov r2, #0x20
+ add r0, r1, r0
+ add r1, r4, #0x0
+ add r1, #0x2c
+ bl MIi_CpuCopy16
+ ldr r0, [sp, #0x4]
+ mov r1, #0x1
+ str r0, [r4, #0x0]
+ add r0, r4, #0x0
+ str r5, [r4, #0x8]
+ add r0, #0x4c
+ strb r6, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x4d
+ strb r7, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x4e
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x0
+ add r0, #0x4f
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_02014394: .word FUN_020143DC
+_02014398: .word FUN_020144E0
+_0201439C: .word FUN_020144FC
+_020143A0: .word FUN_020144B0
+_020143A4: .word FUN_020144C8
+
+ thumb_func_start FUN_020143A8
+FUN_020143A8: ; 0x020143A8
+ cmp r1, #0x0
+ beq _020143B6
+ cmp r1, #0x1
+ beq _020143BE
+ cmp r1, #0x2
+ beq _020143C6
+ bx lr
+_020143B6:
+ mov r1, #0x0
+ add r0, #0x4e
+ strb r1, [r0, #0x0]
+ bx lr
+_020143BE:
+ mov r1, #0x2
+ add r0, #0x4e
+ strb r1, [r0, #0x0]
+ bx lr
+_020143C6:
+ mov r1, #0x3
+ add r0, #0x4e
+ strb r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020143D0
+FUN_020143D0: ; 0x020143D0
+ ldr r3, _020143D8 ; =FUN_0200621C
+ ldr r0, [r0, #0x0]
+ bx r3
+ nop
+_020143D8: .word FUN_0200621C
+
+ thumb_func_start FUN_020143DC
+FUN_020143DC: ; 0x020143DC
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x4e
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x3
+ bhi _02014452
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020143F8: ; jump table (using 16-bit offset)
+ .short _02014400 - _020143F8 - 2; case 0
+ .short _02014410 - _020143F8 - 2; case 1
+ .short _02014452 - _020143F8 - 2; case 2
+ .short _02014444 - _020143F8 - 2; case 3
+_02014400:
+ add r0, r4, #0x0
+ mov r1, #0x0
+ add r0, #0x4f
+ strb r1, [r0, #0x0]
+ mov r0, #0x1
+ add r4, #0x4e
+ strb r0, [r4, #0x0]
+ pop {r3-r5, pc}
+_02014410:
+ add r0, r4, #0x0
+ bl FUN_02014454
+ cmp r0, #0x1
+ bne _02014424
+ add r1, r4, #0x0
+ ldr r2, [r4, #0x4]
+ add r0, r4, #0x0
+ add r1, #0x2c
+ blx r2
+_02014424:
+ add r0, r4, #0x0
+ add r0, #0x4f
+ ldrb r0, [r0, #0x0]
+ add r1, r0, #0x1
+ add r0, r4, #0x0
+ add r0, #0x4f
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x4f
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x20
+ bne _02014452
+ mov r0, #0x0
+ add r4, #0x4f
+ strb r0, [r4, #0x0]
+ pop {r3-r5, pc}
+_02014444:
+ ldr r2, [r4, #0x4]
+ add r0, r4, #0x0
+ add r1, #0xc
+ blx r2
+ add r0, r5, #0x0
+ bl FUN_0200621C
+_02014452:
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02014454
+FUN_02014454: ; 0x02014454
+ push {r4-r5}
+ add r1, r0, #0x0
+ add r1, #0x4f
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x0
+ bne _02014482
+ mov r1, #0x1e
+ mov r4, #0x0
+ mov r3, #0x1
+ lsl r1, r1, #0xa
+_02014468:
+ add r2, r3, #0x0
+ lsl r2, r4
+ tst r2, r1
+ beq _02014474
+ ldrh r2, [r0, #0xc]
+ strh r2, [r0, #0x2c]
+_02014474:
+ add r4, r4, #0x1
+ add r0, r0, #0x2
+ cmp r4, #0x10
+ blo _02014468
+ mov r0, #0x1
+ pop {r4-r5}
+ bx lr
+_02014482:
+ cmp r1, #0x18
+ bne _020144AA
+ mov r1, #0x1e
+ mov r5, #0x0
+ add r4, r0, #0x0
+ mov r3, #0x1
+ lsl r1, r1, #0xa
+_02014490:
+ add r2, r3, #0x0
+ lsl r2, r5
+ tst r2, r1
+ beq _0201449C
+ ldrh r2, [r0, #0x2a]
+ strh r2, [r4, #0x2c]
+_0201449C:
+ add r5, r5, #0x1
+ add r4, r4, #0x2
+ cmp r5, #0x10
+ blo _02014490
+ mov r0, #0x1
+ pop {r4-r5}
+ bx lr
+_020144AA:
+ mov r0, #0x0
+ pop {r4-r5}
+ bx lr
+
+ thumb_func_start FUN_020144B0
+FUN_020144B0: ; 0x020144B0
+ push {r3, lr}
+ add r3, r0, #0x0
+ add r3, #0x4d
+ ldrb r3, [r3, #0x0]
+ mov r0, #0x0
+ mov r2, #0x20
+ lsl r3, r3, #0x15
+ lsr r3, r3, #0x10
+ bl FUN_02017FB4
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020144C8
+FUN_020144C8: ; 0x020144C8
+ push {r3, lr}
+ add r3, r0, #0x0
+ add r3, #0x4d
+ ldrb r3, [r3, #0x0]
+ mov r0, #0x4
+ mov r2, #0x20
+ lsl r3, r3, #0x15
+ lsr r3, r3, #0x10
+ bl FUN_02017FB4
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020144E0
+FUN_020144E0: ; 0x020144E0
+ push {r3, lr}
+ add r3, r0, #0x0
+ mov r0, #0x20
+ str r0, [sp, #0x0]
+ ldr r0, [r3, #0x8]
+ add r3, #0x4d
+ ldrb r3, [r3, #0x0]
+ mov r2, #0x0
+ lsl r3, r3, #0x14
+ lsr r3, r3, #0x10
+ bl FUN_02003054
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020144FC
+FUN_020144FC: ; 0x020144FC
+ push {r3, lr}
+ add r3, r0, #0x0
+ mov r0, #0x20
+ str r0, [sp, #0x0]
+ ldr r0, [r3, #0x8]
+ add r3, #0x4d
+ ldrb r3, [r3, #0x0]
+ mov r2, #0x1
+ lsl r3, r3, #0x14
+ lsr r3, r3, #0x10
+ bl FUN_02003054
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02014518
+FUN_02014518: ; 0x02014518
+ push {r3-r7, lr}
+ mov r1, #0x78
+ add r7, r0, #0x0
+ bl FUN_02016998
+ mov r1, #0x0
+ mov r2, #0x78
+ add r6, r0, #0x0
+ bl MI_CpuFill8
+ ldr r2, _02014560 ; =0x0000019E
+ mov r0, #0x0
+ mov r1, #0x1a
+ add r3, r7, #0x0
+ bl FUN_0200A86C
+ str r0, [r6, #0x0]
+ mov r4, #0x0
+ add r5, r6, #0x0
+_0201453E:
+ mov r0, #0x16
+ add r1, r7, #0x0
+ bl FUN_020219F4
+ str r0, [r5, #0x4]
+ ldr r0, [r6, #0x0]
+ ldr r2, [r5, #0x4]
+ add r1, r4, #0x0
+ bl FUN_0200A8E0
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, #0x1d
+ blt _0201453E
+ add r0, r6, #0x0
+ pop {r3-r7, pc}
+ nop
+_02014560: .word 0x0000019E
+
+ thumb_func_start FUN_02014564
+FUN_02014564: ; 0x02014564
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ add r5, r6, #0x0
+ mov r4, #0x1c
+ add r5, #0x70
+_0201456E:
+ ldr r0, [r5, #0x4]
+ bl FUN_02021A20
+ sub r5, r5, #0x4
+ sub r4, r4, #0x1
+ bpl _0201456E
+ ldr r0, [r6, #0x0]
+ bl FUN_0200A8B8
+ add r0, r6, #0x0
+ bl FUN_02016A18
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02014588
+FUN_02014588: ; 0x02014588
+ lsl r1, r1, #0x2
+ add r0, r0, r1
+ ldr r0, [r0, #0x4]
+ bx lr
+
+ thumb_func_start FUN_02014590
+FUN_02014590: ; 0x02014590
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r1, #0x9c
+ bl FUN_02016998
+ add r1, r5, #0x0
+ add r4, r0, #0x0
+ bl FUN_020146F0
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020145A8
+FUN_020145A8: ; 0x020145A8
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x9b
+ ldrb r1, [r1, #0x0]
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ cmp r1, #0x1
+ bne _020145BE
+ bl FUN_020146C4
+_020145BE:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020145C8
+FUN_020145C8: ; 0x020145C8
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ ldr r2, [r4, #0x0]
+ add r5, r0, #0x0
+ str r2, [r5, #0x7c]
+ add r2, r5, #0x0
+ ldr r3, [r4, #0x4]
+ add r2, #0x80
+ str r3, [r2, #0x0]
+ add r2, r5, #0x0
+ ldrb r3, [r4, #0x10]
+ add r2, #0x98
+ strb r3, [r2, #0x0]
+ add r2, r5, #0x0
+ ldrb r3, [r4, #0x11]
+ add r2, #0x99
+ strb r3, [r2, #0x0]
+ bl FUN_02014730
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02014754
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02014784
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02014814
+ add r0, r5, #0x0
+ add r0, #0x9b
+ ldrb r1, [r0, #0x0]
+ mov r0, #0xf
+ bic r1, r0
+ mov r0, #0x1
+ orr r1, r0
+ add r0, r5, #0x0
+ add r0, #0x9b
+ strb r1, [r0, #0x0]
+ add r0, r5, #0x0
+ add r0, #0x9b
+ ldrb r1, [r0, #0x0]
+ mov r0, #0xf0
+ add r5, #0x9b
+ bic r1, r0
+ mov r0, #0x80
+ orr r0, r1
+ strb r0, [r5, #0x0]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02014630
+FUN_02014630: ; 0x02014630
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x9b
+ ldrb r2, [r1, #0x0]
+ mov r1, #0xf0
+ bic r2, r1
+ mov r1, #0x80
+ orr r2, r1
+ add r1, r4, #0x0
+ add r1, #0x9b
+ strb r2, [r1, #0x0]
+ bl FUN_0201466C
+ cmp r0, #0x0
+ bne _0201466A
+ add r1, r4, #0x0
+ add r1, #0x9b
+ ldrb r1, [r1, #0x0]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x1c
+ bne _0201466A
+ add r4, #0x9a
+ ldrb r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _02014668
+ mov r0, #0x3
+ pop {r4, pc}
+_02014668:
+ mov r0, #0x4
+_0201466A:
+ pop {r4, pc}
+
+ thumb_func_start FUN_0201466C
+FUN_0201466C: ; 0x0201466C
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x9b
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ cmp r0, #0x1
+ beq _02014680
+ bl ErrorHandling
+_02014680:
+ add r0, r4, #0x0
+ add r0, #0x9a
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x3
+ bne _02014690
+ ldr r0, [r4, #0x0]
+ bl FUN_02022144
+_02014690:
+ add r1, r4, #0x0
+ add r1, #0x9a
+ ldrb r2, [r1, #0x0]
+ mov r0, #0x0
+ cmp r2, #0x3
+ beq _020146AA
+ add r1, r4, #0x0
+ mov r0, #0x38
+ add r1, #0xc
+ mul r0, r2
+ add r0, r1, r0
+ bl FUN_02014930
+_020146AA:
+ cmp r0, #0x1
+ bne _020146BE
+ add r4, #0x9a
+ ldrb r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _020146BA
+ mov r0, #0x1
+ pop {r4, pc}
+_020146BA:
+ mov r0, #0x2
+ pop {r4, pc}
+_020146BE:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020146C4
+FUN_020146C4: ; 0x020146C4
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ ldr r0, [r6, #0x0]
+ bl FUN_0202212C
+ add r5, r6, #0x0
+ mov r4, #0x0
+ add r5, #0xc
+_020146D4:
+ add r0, r5, #0x0
+ bl FUN_02014970
+ add r4, r4, #0x1
+ add r5, #0x38
+ cmp r4, #0x2
+ blt _020146D4
+ add r0, r6, #0x0
+ add r6, #0x84
+ ldr r1, [r6, #0x0]
+ bl FUN_020146F0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020146F0
+FUN_020146F0: ; 0x020146F0
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x9c
+ bl memset
+ add r0, r5, #0x0
+ add r0, #0x9b
+ ldrb r1, [r0, #0x0]
+ mov r0, #0xf
+ bic r1, r0
+ add r0, r5, #0x0
+ add r0, #0x9b
+ strb r1, [r0, #0x0]
+ add r0, r5, #0x0
+ add r0, #0x84
+ str r4, [r0, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x3
+ add r0, #0x9a
+ strb r1, [r0, #0x0]
+ add r0, r5, #0x0
+ add r0, #0x9b
+ ldrb r1, [r0, #0x0]
+ mov r0, #0xf0
+ add r5, #0x9b
+ bic r1, r0
+ mov r0, #0x80
+ orr r0, r1
+ strb r0, [r5, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02014730
+FUN_02014730: ; 0x02014730
+ push {r3, lr}
+ sub sp, #0x8
+ add r3, r0, #0x0
+ ldr r0, [r1, #0x8]
+ mov r1, #0x1
+ str r0, [sp, #0x0]
+ add r0, r3, #0x0
+ add r0, #0x84
+ ldr r0, [r0, #0x0]
+ str r0, [sp, #0x4]
+ ldr r2, [r3, #0x7c]
+ add r3, #0x80
+ ldr r3, [r3, #0x0]
+ mov r0, #0x54
+ bl FUN_02014A3C
+ add sp, #0x8
+ pop {r3, pc}
+
+ thumb_func_start FUN_02014754
+FUN_02014754: ; 0x02014754
+ push {r3, lr}
+ sub sp, #0x8
+ add r3, r1, #0x0
+ add r1, r0, #0x0
+ add r1, #0x80
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x4
+ bhs _02014768
+ mov r2, #0x0
+ b _0201476A
+_02014768:
+ mov r2, #0x4
+_0201476A:
+ mov r1, #0x40
+ str r1, [sp, #0x0]
+ add r0, #0x84
+ ldr r0, [r0, #0x0]
+ mov r1, #0x0
+ str r0, [sp, #0x4]
+ ldr r3, [r3, #0xc]
+ mov r0, #0x54
+ lsl r3, r3, #0x5
+ bl FUN_02014A8C
+ add sp, #0x8
+ pop {r3, pc}
+
+ thumb_func_start FUN_02014784
+FUN_02014784: ; 0x02014784
+ push {r3-r7, lr}
+ sub sp, #0x30
+ add r7, r0, #0x0
+ mov r3, #0x0
+ add r4, r7, #0x0
+_0201478E:
+ add r0, r4, #0x0
+ add r3, r3, #0x1
+ lsl r2, r3, #0xc
+ add r0, #0x88
+ add r4, r4, #0x4
+ str r2, [r0, #0x0]
+ cmp r3, #0x4
+ blt _0201478E
+ ldr r0, [r7, #0x7c]
+ mov r5, #0x0
+ str r0, [sp, #0x0]
+ add r0, r7, #0x0
+ add r0, #0x80
+ ldr r0, [r0, #0x0]
+ add r4, r7, #0x0
+ str r0, [sp, #0x4]
+ mov r0, #0x54
+ str r0, [sp, #0x8]
+ ldr r0, [r1, #0x8]
+ add r6, r5, #0x0
+ str r0, [sp, #0x1c]
+ ldr r0, [r1, #0xc]
+ add r4, #0xc
+ str r0, [sp, #0x20]
+ add r0, r7, #0x0
+ add r0, #0x88
+ str r0, [sp, #0x24]
+ mov r0, #0x4
+ str r0, [sp, #0x28]
+ add r0, r7, #0x0
+ add r0, #0x98
+ ldrb r1, [r0, #0x0]
+ add r0, sp, #0x20
+ strb r1, [r0, #0xc]
+_020147D2:
+ mov r1, #0x0
+ mov r2, #0x2
+ add r3, sp, #0x0
+_020147D8:
+ add r0, r5, r2
+ str r0, [r3, #0xc]
+ add r1, r1, #0x1
+ add r2, r2, #0x2
+ add r3, r3, #0x4
+ cmp r1, #0x4
+ blt _020147D8
+ add r0, r7, #0x0
+ add r0, #0x99
+ ldrb r0, [r0, #0x0]
+ add r2, r7, #0x0
+ add r2, #0x84
+ add r1, r0, r6
+ add r0, sp, #0x20
+ strb r1, [r0, #0xd]
+ ldr r0, [sp, #0x20]
+ add r1, sp, #0x0
+ add r0, r0, r5
+ str r0, [sp, #0x20]
+ ldr r2, [r2, #0x0]
+ add r0, r4, #0x0
+ bl FUN_020148A8
+ add r5, r5, #0x1
+ add r6, r6, #0x4
+ add r4, #0x38
+ cmp r5, #0x2
+ blt _020147D2
+ add sp, #0x30
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02014814
+FUN_02014814: ; 0x02014814
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ mov r0, #0x0
+ add r1, r0, #0x0
+ add r2, r4, #0x0
+_02014820:
+ add r3, r4, #0x0
+ add r3, #0x99
+ ldrb r3, [r3, #0x0]
+ add r0, r0, #0x1
+ lsl r3, r3, #0x3
+ add r3, r3, r1
+ strb r3, [r2, #0x4]
+ add r3, r4, #0x0
+ add r3, #0x99
+ ldrb r3, [r3, #0x0]
+ lsl r3, r3, #0x3
+ add r3, r3, r1
+ add r3, #0x20
+ strb r3, [r2, #0x5]
+ add r3, r4, #0x0
+ add r3, #0x98
+ ldrb r3, [r3, #0x0]
+ add r1, #0x20
+ lsl r3, r3, #0x3
+ strb r3, [r2, #0x6]
+ add r3, r4, #0x0
+ add r3, #0x98
+ ldrb r3, [r3, #0x0]
+ lsl r3, r3, #0x3
+ add r3, #0x30
+ strb r3, [r2, #0x7]
+ add r2, r2, #0x4
+ cmp r0, #0x2
+ blt _02014820
+ add r0, r4, #0x0
+ add r0, #0x84
+ ldr r0, [r0, #0x0]
+ ldr r2, _02014874 ; =FUN_02014878
+ str r0, [sp, #0x0]
+ add r0, r4, #0x4
+ mov r1, #0x2
+ add r3, r4, #0x0
+ bl FUN_020220C4
+ str r0, [r4, #0x0]
+ add sp, #0x4
+ pop {r3-r4, pc}
+ .balign 4
+_02014874: .word FUN_02014878
+
+ thumb_func_start FUN_02014878
+FUN_02014878: ; 0x02014878
+ push {r4, lr}
+ add r3, r2, #0x0
+ add r3, #0x9b
+ ldrb r3, [r3, #0x0]
+ mov r4, #0xf0
+ bic r3, r4
+ lsl r4, r1, #0x18
+ lsr r4, r4, #0x18
+ lsl r4, r4, #0x1c
+ lsr r4, r4, #0x18
+ orr r4, r3
+ add r3, r2, #0x0
+ add r3, #0x9b
+ strb r4, [r3, #0x0]
+ cmp r1, #0x0
+ bne _020148A2
+ add r2, #0x9a
+ strb r0, [r2, #0x0]
+ ldr r0, _020148A4 ; =0x000005E4
+ bl FUN_020054C8
+_020148A2:
+ pop {r4, pc}
+ .balign 4
+_020148A4: .word 0x000005E4
+
+ thumb_func_start FUN_020148A8
+FUN_020148A8: ; 0x020148A8
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r5, r1, #0x0
+ str r2, [sp, #0x8]
+ str r0, [sp, #0x4]
+ ldr r1, [r5, #0x24]
+ ldr r2, [r5, #0x28]
+ add r0, #0x28
+ bl FUN_020149FC
+ ldr r1, [r5, #0x0]
+ ldr r0, [sp, #0x4]
+ ldr r6, [sp, #0x4]
+ str r1, [r0, #0x0]
+ ldr r1, [r5, #0x4]
+ ldr r4, [sp, #0x4]
+ str r1, [r0, #0x4]
+ add r0, r5, #0x0
+ add r0, #0x2c
+ ldrb r1, [r0, #0x0]
+ ldr r0, [sp, #0x4]
+ add r6, #0x18
+ add r0, #0x34
+ strb r1, [r0, #0x0]
+ add r0, r5, #0x0
+ add r0, #0x2d
+ ldrb r1, [r0, #0x0]
+ ldr r0, [sp, #0x4]
+ add r7, r5, #0x0
+ add r0, #0x35
+ strb r1, [r0, #0x0]
+ mov r0, #0x0
+ str r0, [sp, #0xc]
+_020148EA:
+ ldr r0, [sp, #0x8]
+ mov r2, #0x1
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x8]
+ ldr r1, [r7, #0xc]
+ add r3, r6, #0x0
+ bl FUN_02006BDC
+ str r0, [r4, #0x8]
+ ldr r0, [r4, #0x18]
+ ldr r1, [r5, #0x1c]
+ bl FUN_02014BA4
+ ldr r0, [r4, #0x18]
+ ldr r1, [r5, #0x20]
+ bl FUN_02014BC4
+ ldr r0, [sp, #0xc]
+ add r6, r6, #0x4
+ add r0, r0, #0x1
+ add r7, r7, #0x4
+ add r4, r4, #0x4
+ str r0, [sp, #0xc]
+ cmp r0, #0x4
+ blt _020148EA
+ ldr r0, [sp, #0x4]
+ bl FUN_020149D0
+ ldr r0, [sp, #0x4]
+ mov r1, #0x0
+ add r0, #0x36
+ str r0, [sp, #0x4]
+ strb r1, [r0, #0x0]
+ add sp, #0x10
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02014930
+FUN_02014930: ; 0x02014930
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x28
+ bl FUN_02014A10
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x36
+ ldrb r0, [r0, #0x0]
+ cmp r0, r4
+ beq _02014952
+ add r0, r5, #0x0
+ bl FUN_020149D0
+ add r0, r5, #0x0
+ add r0, #0x36
+ strb r4, [r0, #0x0]
+_02014952:
+ ldr r0, [r5, #0x2c]
+ sub r0, r0, #0x1
+ cmp r4, r0
+ bne _0201495E
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0201495E:
+ add r5, #0x28
+ mov r1, #0x1
+ add r0, r5, #0x0
+ lsl r1, r1, #0xc
+ bl FUN_02014A08
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02014970
+FUN_02014970: ; 0x02014970
+ push {r4-r6, lr}
+ sub sp, #0x10
+ add r6, r0, #0x0
+ add r0, #0x35
+ ldrb r0, [r0, #0x0]
+ ldr r1, [r6, #0x18]
+ add r3, r6, #0x0
+ str r0, [sp, #0x0]
+ ldrh r0, [r1, #0x0]
+ mov r2, #0x0
+ add r3, #0x34
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x4]
+ ldrh r0, [r1, #0x2]
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x8]
+ str r2, [sp, #0xc]
+ ldr r1, [r6, #0x4]
+ ldrb r3, [r3, #0x0]
+ lsl r1, r1, #0x18
+ ldr r0, [r6, #0x0]
+ lsr r1, r1, #0x18
+ bl FUN_02018540
+ ldr r1, [r6, #0x4]
+ ldr r0, [r6, #0x0]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_0201AC68
+ mov r4, #0x0
+ add r5, r6, #0x0
+_020149B4:
+ ldr r0, [r5, #0x8]
+ bl FUN_02016A18
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, #0x4
+ blt _020149B4
+ add r0, r6, #0x0
+ mov r1, #0x0
+ mov r2, #0x38
+ bl memset
+ add sp, #0x10
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020149D0
+FUN_020149D0: ; 0x020149D0
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ add r0, #0x28
+ bl FUN_02014A10
+ add r2, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x35
+ ldrb r0, [r0, #0x0]
+ lsl r2, r2, #0x2
+ add r2, r4, r2
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x0]
+ ldr r1, [r4, #0x4]
+ add r4, #0x34
+ ldrb r3, [r4, #0x0]
+ ldr r2, [r2, #0x18]
+ bl FUN_02014B58
+ add sp, #0x4
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_020149FC
+FUN_020149FC: ; 0x020149FC
+ str r1, [r0, #0x0]
+ str r2, [r0, #0x4]
+ mov r1, #0x0
+ str r1, [r0, #0x8]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02014A08
+FUN_02014A08: ; 0x02014A08
+ ldr r2, [r0, #0x8]
+ add r1, r2, r1
+ str r1, [r0, #0x8]
+ bx lr
+
+ thumb_func_start FUN_02014A10
+FUN_02014A10: ; 0x02014A10
+ push {r4-r5}
+ ldr r5, [r0, #0x4]
+ mov r2, #0x0
+ cmp r5, #0x0
+ bls _02014A34
+ ldr r3, [r0, #0x0]
+ ldr r4, [r0, #0x8]
+_02014A1E:
+ ldr r1, [r3, #0x0]
+ cmp r1, r4
+ blt _02014A2A
+ add r0, r2, #0x0
+ pop {r4-r5}
+ bx lr
+_02014A2A:
+ ldr r1, [r0, #0x4]
+ add r2, r2, #0x1
+ add r3, r3, #0x4
+ cmp r2, r1
+ blo _02014A1E
+_02014A34:
+ sub r0, r5, #0x1
+ pop {r4-r5}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02014A3C
+FUN_02014A3C: ; 0x02014A3C
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r7, r0, #0x0
+ str r1, [sp, #0x4]
+ ldr r0, [sp, #0x24]
+ mov r1, #0x14
+ add r5, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_02016998
+ add r4, r0, #0x0
+ add r2, r4, #0x0
+ mov r1, #0x14
+ mov r0, #0x0
+_02014A58:
+ strb r0, [r2, #0x0]
+ add r2, r2, #0x1
+ sub r1, r1, #0x1
+ bne _02014A58
+ ldr r0, [sp, #0x24]
+ ldr r1, [sp, #0x4]
+ str r0, [sp, #0x0]
+ add r0, r7, #0x0
+ mov r2, #0x1
+ add r3, r4, #0x4
+ bl FUN_02006BB0
+ str r0, [r4, #0x8]
+ str r5, [r4, #0x0]
+ ldr r0, [sp, #0x20]
+ str r6, [r4, #0xc]
+ str r0, [r4, #0x10]
+ ldr r0, _02014A88 ; =FUN_02014AD4
+ add r1, r4, #0x0
+ mov r2, #0x80
+ bl FUN_0200CA98
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_02014A88: .word FUN_02014AD4
+
+ thumb_func_start FUN_02014A8C
+FUN_02014A8C: ; 0x02014A8C
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ str r1, [sp, #0x0]
+ ldr r0, [sp, #0x1c]
+ mov r1, #0x14
+ add r5, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_02016998
+ add r4, r0, #0x0
+ add r2, r4, #0x0
+ mov r1, #0x14
+ mov r0, #0x0
+_02014AA6:
+ strb r0, [r2, #0x0]
+ add r2, r2, #0x1
+ sub r1, r1, #0x1
+ bne _02014AA6
+ ldr r1, [sp, #0x0]
+ ldr r3, [sp, #0x1c]
+ add r0, r7, #0x0
+ add r2, r4, #0x0
+ bl FUN_02006C08
+ str r0, [r4, #0x4]
+ str r5, [r4, #0x8]
+ ldr r0, [sp, #0x18]
+ str r6, [r4, #0xc]
+ str r0, [r4, #0x10]
+ ldr r0, _02014AD0 ; =FUN_02014B10
+ add r1, r4, #0x0
+ mov r2, #0x80
+ bl FUN_0200CA98
+ pop {r3-r7, pc}
+ .balign 4
+_02014AD0: .word FUN_02014B10
+
+ thumb_func_start FUN_02014AD4
+FUN_02014AD4: ; 0x02014AD4
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ ldr r1, [r4, #0x4]
+ add r5, r0, #0x0
+ ldr r0, [r1, #0x14]
+ ldr r1, [r1, #0x10]
+ bl DC_FlushRange
+ ldr r3, [r4, #0x4]
+ ldr r0, [r4, #0x10]
+ str r0, [sp, #0x0]
+ ldr r1, [r4, #0xc]
+ ldr r2, [r3, #0x14]
+ lsl r1, r1, #0x18
+ ldr r0, [r4, #0x0]
+ ldr r3, [r3, #0x10]
+ lsr r1, r1, #0x18
+ bl FUN_02017E14
+ add r0, r5, #0x0
+ bl FUN_0200CAB4
+ ldr r0, [r4, #0x8]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02014B10
+FUN_02014B10: ; 0x02014B10
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ ldr r1, [r4, #0x10]
+ ldr r0, [r0, #0xc]
+ bl DC_FlushRange
+ ldr r0, [r4, #0x8]
+ cmp r0, #0x0
+ bne _02014B34
+ ldr r0, [r4, #0x0]
+ ldr r1, [r4, #0xc]
+ ldr r0, [r0, #0xc]
+ ldr r2, [r4, #0x10]
+ bl GX_LoadBGPltt
+ b _02014B44
+_02014B34:
+ cmp r0, #0x4
+ bne _02014B44
+ ldr r0, [r4, #0x0]
+ ldr r1, [r4, #0xc]
+ ldr r0, [r0, #0xc]
+ ldr r2, [r4, #0x10]
+ bl GXS_LoadBGPltt
+_02014B44:
+ add r0, r5, #0x0
+ bl FUN_0200CAB4
+ ldr r0, [r4, #0x4]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02014B58
+FUN_02014B58: ; 0x02014B58
+ push {r3-r6, lr}
+ sub sp, #0x1c
+ add r4, r1, #0x0
+ add r1, r2, #0x0
+ add r2, r3, #0x0
+ ldrh r6, [r1, #0x0]
+ ldrh r3, [r1, #0x2]
+ lsl r2, r2, #0x18
+ lsl r6, r6, #0x15
+ lsr r6, r6, #0x18
+ lsl r3, r3, #0x15
+ str r6, [sp, #0x0]
+ lsr r3, r3, #0x18
+ str r3, [sp, #0x4]
+ add r1, #0xc
+ str r1, [sp, #0x8]
+ mov r1, #0x0
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x10]
+ str r6, [sp, #0x14]
+ str r3, [sp, #0x18]
+ ldr r3, [sp, #0x30]
+ lsl r1, r4, #0x18
+ lsl r3, r3, #0x18
+ lsr r1, r1, #0x18
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ add r5, r0, #0x0
+ bl FUN_02018170
+ lsl r1, r4, #0x18
+ add r0, r5, #0x0
+ lsr r1, r1, #0x18
+ bl FUN_0201AC68
+ add sp, #0x1c
+ pop {r3-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02014BA4
+FUN_02014BA4: ; 0x02014BA4
+ push {r3-r4}
+ ldr r2, [r0, #0x8]
+ add r0, #0xc
+ lsr r4, r2, #0x1
+ mov r3, #0x0
+ cmp r4, #0x0
+ ble _02014BC0
+_02014BB2:
+ ldrh r2, [r0, #0x0]
+ add r3, r3, #0x1
+ add r2, r2, r1
+ strh r2, [r0, #0x0]
+ add r0, r0, #0x2
+ cmp r3, r4
+ blt _02014BB2
+_02014BC0:
+ pop {r3-r4}
+ bx lr
+
+ thumb_func_start FUN_02014BC4
+FUN_02014BC4: ; 0x02014BC4
+ push {r4-r5}
+ ldr r2, [r0, #0x8]
+ add r0, #0xc
+ lsr r3, r2, #0x1
+ mov r2, #0x0
+ cmp r3, #0x0
+ ble _02014BEA
+ ldr r4, _02014BF0 ; =0x00000FFF
+ lsl r1, r1, #0xc
+_02014BD6:
+ ldrh r5, [r0, #0x0]
+ add r2, r2, #0x1
+ and r5, r4
+ strh r5, [r0, #0x0]
+ ldrh r5, [r0, #0x0]
+ orr r5, r1
+ strh r5, [r0, #0x0]
+ add r0, r0, #0x2
+ cmp r2, r3
+ blt _02014BD6
+_02014BEA:
+ pop {r4-r5}
+ bx lr
+ nop
+_02014BF0: .word 0x00000FFF
+
+ thumb_func_start FUN_02014BF4
+FUN_02014BF4: ; 0x02014BF4
+ push {r3-r7, lr}
+ add r7, r1, #0x0
+ mov r1, #0xc
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ bl FUN_02016998
+ add r4, r0, #0x0
+ strb r6, [r4, #0x8]
+ mov r0, #0x1d
+ strb r7, [r4, #0x9]
+ lsl r0, r0, #0x4
+ add r6, r7, #0x0
+ mul r6, r0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ str r5, [r4, #0x4]
+ bl FUN_02016998
+ mov r1, #0x0
+ add r2, r6, #0x0
+ str r0, [r4, #0x0]
+ bl MI_CpuFill8
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02014C28
+FUN_02014C28: ; 0x02014C28
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02014C3C
+FUN_02014C3C: ; 0x02014C3C
+ push {r4, lr}
+ add r4, r0, #0x0
+ cmp r4, #0x19
+ blo _02014C48
+ bl ErrorHandling
+_02014C48:
+ ldr r0, _02014C50 ; =0x020ED64C
+ ldrb r0, [r0, r4]
+ pop {r4, pc}
+ nop
+_02014C50: .word 0x020ED64C
+
+ thumb_func_start FUN_02014C54
+FUN_02014C54: ; 0x02014C54
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ str r3, [sp, #0x4]
+ add r0, r2, #0x0
+ ldrh r6, [r0, #0x0]
+ ldrh r0, [r0, #0x2]
+ add r7, r1, #0x0
+ ldrb r1, [r5, #0x9]
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x4]
+ str r2, [sp, #0x0]
+ cmp r0, r1
+ blo _02014C74
+ bl ErrorHandling
+_02014C74:
+ ldr r0, [sp, #0x4]
+ mov r1, #0x1d
+ add r4, r0, #0x0
+ lsl r1, r1, #0x4
+ ldr r0, [r5, #0x0]
+ mul r4, r1
+ add r0, r0, r4
+ ldr r0, [r0, #0x10]
+ cmp r0, #0x0
+ beq _02014C8C
+ bl ErrorHandling
+_02014C8C:
+ ldr r0, [r5, #0x0]
+ mov r2, #0x1d
+ add r0, r0, r4
+ mov r1, #0x0
+ lsl r2, r2, #0x4
+ bl MI_CpuFill8
+ ldr r0, [r5, #0x0]
+ mov r1, #0x1
+ add r0, r0, r4
+ str r1, [r0, #0x10]
+ ldr r0, [r5, #0x0]
+ cmp r6, #0x86
+ str r7, [r0, r4]
+ blt _02014CAE
+ mov r6, #0x0
+ str r6, [sp, #0x8]
+_02014CAE:
+ ldr r0, [r5, #0x0]
+ add r0, r0, r4
+ str r6, [r0, #0x14]
+ ldrb r0, [r5, #0x8]
+ cmp r0, #0x0
+ beq _02014CC0
+ ldr r0, [sp, #0x0]
+ ldrb r2, [r0, #0x4]
+ b _02014CC2
+_02014CC0:
+ mov r2, #0x0
+_02014CC2:
+ ldr r0, [r5, #0x0]
+ add r1, r0, r4
+ mov r0, #0x73
+ lsl r0, r0, #0x2
+ strb r2, [r1, r0]
+ ldr r1, [r5, #0x0]
+ ldr r2, [r5, #0x4]
+ add r1, r1, r4
+ ldr r1, [r1, #0x14]
+ mov r0, #0x5e
+ bl FUN_02006528
+ ldr r1, [r5, #0x0]
+ mov r2, #0x0
+ add r1, r1, r4
+ str r0, [r1, #0x8]
+ ldr r0, [r5, #0x0]
+ mov r6, #0x1c
+ add r1, r0, r4
+ ldr r0, [r1, #0x8]
+ str r0, [r1, #0xc]
+ ldr r0, [r5, #0x0]
+ add r0, r0, r4
+ str r2, [r0, #0x1c]
+ ldr r0, [r5, #0x0]
+ add r0, r0, r4
+ str r2, [r0, #0x20]
+ ldr r0, [r5, #0x0]
+ add r1, r0, r4
+ ldr r0, _02014D74 ; =0x000001CD
+ strb r2, [r1, r0]
+ ldr r1, [r5, #0x0]
+ add r3, r1, r4
+ add r1, r0, #0x1
+ strb r6, [r3, r1]
+ ldr r1, [r5, #0x0]
+ add r0, r0, #0x2
+ add r1, r1, r4
+ strb r2, [r1, r0]
+ ldr r1, [r5, #0x0]
+ ldr r0, _02014D78 ; =FUN_02014DD8
+ add r1, r1, r4
+ bl FUN_0200CA44
+ ldr r1, [r5, #0x0]
+ add r1, r1, r4
+ str r0, [r1, #0x4]
+ ldr r0, [r5, #0x0]
+ add r1, r0, r4
+ ldr r0, [sp, #0x8]
+ str r0, [r1, #0x54]
+ add r0, r7, #0x0
+ mov r1, #0x0
+ bl FUN_0200782C
+ ldr r1, [r5, #0x0]
+ add r1, r1, r4
+ str r0, [r1, #0x58]
+ add r0, r7, #0x0
+ mov r1, #0x1
+ bl FUN_0200782C
+ ldr r1, [r5, #0x0]
+ add r1, r1, r4
+ str r0, [r1, #0x5c]
+ ldr r1, [r5, #0x0]
+ mov r0, #0x0
+ add r1, r1, r4
+ str r0, [r1, #0x60]
+ ldr r1, [r5, #0x0]
+ add r1, r1, r4
+ str r0, [r1, #0x64]
+ ldr r1, [r5, #0x0]
+ add r1, r1, r4
+ str r0, [r1, #0x68]
+ ldr r1, [r5, #0x0]
+ add r1, r1, r4
+ str r0, [r1, #0x6c]
+ ldr r1, [r5, #0x0]
+ add r1, r1, r4
+ str r0, [r1, #0x70]
+ ldr r1, [r5, #0x0]
+ add r1, r1, r4
+ str r0, [r1, #0x74]
+ ldr r1, [r5, #0x0]
+ add r1, r1, r4
+ str r0, [r1, #0x78]
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_02014D74: .word 0x000001CD
+_02014D78: .word FUN_02014DD8
+
+ thumb_func_start FUN_02014D7C
+FUN_02014D7C: ; 0x02014D7C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldrb r0, [r5, #0x9]
+ add r4, r1, #0x0
+ cmp r4, r0
+ blo _02014D8C
+ bl ErrorHandling
+_02014D8C:
+ mov r0, #0x1d
+ lsl r0, r0, #0x4
+ ldr r1, [r5, #0x0]
+ mul r0, r4
+ add r0, r1, r0
+ ldr r0, [r0, #0x20]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02014D9C
+FUN_02014D9C: ; 0x02014D9C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r0, #0x1d
+ lsl r0, r0, #0x4
+ add r4, r1, #0x0
+ mul r4, r0
+ ldr r0, [r5, #0x0]
+ add r0, r0, r4
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ beq _02014DD6
+ bl FUN_0200CAB4
+ ldr r1, [r5, #0x0]
+ mov r0, #0x0
+ add r1, r1, r4
+ str r0, [r1, #0x4]
+ ldr r1, [r5, #0x0]
+ mov r2, #0x1
+ add r1, r1, r4
+ str r2, [r1, #0x20]
+ ldr r1, [r5, #0x0]
+ add r1, r1, r4
+ str r0, [r1, #0x10]
+ ldr r0, [r5, #0x0]
+ add r0, r0, r4
+ ldr r0, [r0, #0x8]
+ bl FUN_02016A18
+_02014DD6:
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02014DD8
+FUN_02014DD8: ; 0x02014DD8
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x54]
+ cmp r0, #0x0
+ bne _02014DEC
+ add r0, r4, #0x0
+ bl FUN_02014E10
+ b _02014DF0
+_02014DEC:
+ sub r0, r0, #0x1
+ str r0, [r4, #0x54]
+_02014DF0:
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0x0
+ beq _02014E0E
+ mov r0, #0x1
+ str r0, [r4, #0x20]
+ mov r0, #0x0
+ str r0, [r4, #0x10]
+ add r0, r5, #0x0
+ bl FUN_0200CAB4
+ mov r0, #0x0
+ str r0, [r4, #0x4]
+ ldr r0, [r4, #0x8]
+ bl FUN_02016A18
+_02014E0E:
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02014E10
+FUN_02014E10: ; 0x02014E10
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ mov r6, #0x0
+ str r6, [r5, #0x18]
+ add r7, r5, #0x0
+ str r6, [r5, #0x44]
+ add r4, r6, #0x0
+ add r7, #0x7c
+_02014E20:
+ mov r0, #0x54
+ add r1, r4, #0x0
+ mul r1, r0
+ add r0, r7, r1
+ ldr r1, [r7, r1]
+ cmp r1, #0x0
+ beq _02014E4E
+ add r1, r0, #0x0
+ add r1, #0x2d
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x0
+ bne _02014E40
+ ldr r2, [r0, #0x50]
+ add r1, r5, #0x0
+ blx r2
+ b _02014E54
+_02014E40:
+ add r1, r0, #0x0
+ add r1, #0x2d
+ ldrb r1, [r1, #0x0]
+ add r0, #0x2d
+ sub r1, r1, #0x1
+ strb r1, [r0, #0x0]
+ b _02014E54
+_02014E4E:
+ add r0, r6, #0x1
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+_02014E54:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0x4
+ blo _02014E20
+ cmp r6, #0x4
+ bne _02014E68
+ ldr r0, _02014EFC ; =0x000001CD
+ mov r1, #0x0
+ strb r1, [r5, r0]
+_02014E68:
+ ldr r0, _02014EFC ; =0x000001CD
+ ldrb r1, [r5, r0]
+ cmp r1, #0x0
+ beq _02014E7E
+ add r0, r5, #0x0
+ bl FUN_020156E8
+ add r0, r5, #0x0
+ bl FUN_02015730
+ pop {r3-r7, pc}
+_02014E7E:
+ add r0, r0, #0x2
+ ldrb r0, [r5, r0]
+ cmp r0, #0x0
+ beq _02014E96
+ ldr r0, [r5, #0x0]
+ bl FUN_02007F20
+ cmp r0, #0x0
+ bne _02014EF8
+ ldr r0, _02014F00 ; =0x000001CF
+ mov r1, #0x0
+ strb r1, [r5, r0]
+_02014E96:
+ add r6, r5, #0x0
+ add r4, r5, #0x0
+ ldr r7, _02014F04 ; =0x020ED6A4
+ add r6, #0xc
+ add r4, #0x44
+_02014EA0:
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ ldr r0, [r5, #0xc]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x22
+ blo _02014EB2
+ bl ErrorHandling
+_02014EB2:
+ ldr r1, [r5, #0xc]
+ add r0, r5, #0x0
+ ldr r1, [r1, #0x0]
+ lsl r1, r1, #0x2
+ ldr r1, [r7, r1]
+ blx r1
+ ldr r0, [r5, #0x1c]
+ cmp r0, #0x0
+ bne _02014EF8
+ ldr r0, [r6, #0x0]
+ add r0, r0, #0x4
+ str r0, [r6, #0x0]
+ ldr r0, [r5, #0x18]
+ cmp r0, #0x0
+ bne _02014EF8
+ ldr r0, _02014EFC ; =0x000001CD
+ ldrb r0, [r5, r0]
+ cmp r0, #0x0
+ beq _02014EE6
+ add r0, r5, #0x0
+ bl FUN_020156E8
+ add r0, r5, #0x0
+ bl FUN_02015730
+ pop {r3-r7, pc}
+_02014EE6:
+ mov r0, #0x1
+ ldr r1, [r5, #0x44]
+ lsl r0, r0, #0x8
+ cmp r1, r0
+ blt _02014EA0
+ bl ErrorHandling
+ mov r0, #0x1
+ str r0, [r5, #0x1c]
+_02014EF8:
+ pop {r3-r7, pc}
+ nop
+_02014EFC: .word 0x000001CD
+_02014F00: .word 0x000001CF
+_02014F04: .word 0x020ED6A4
+
+ thumb_func_start FUN_02014F08
+FUN_02014F08: ; 0x02014F08
+ push {r4, lr}
+ lsl r1, r1, #0x2
+ ldr r4, [r0, r1]
+ cmp r2, #0x1
+ beq _02014F16
+ bl ErrorHandling
+_02014F16:
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02014F1C
+FUN_02014F1C: ; 0x02014F1C
+ ldr r3, _02014F24 ; =FUN_02014F08
+ add r2, r1, #0x0
+ mov r1, #0x0
+ bx r3
+ .balign 4
+_02014F24: .word FUN_02014F08
+
+ thumb_func_start FUN_02014F28
+FUN_02014F28: ; 0x02014F28
+ ldr r3, _02014F30 ; =FUN_02014F1C
+ mov r1, #0x1
+ bx r3
+ nop
+_02014F30: .word FUN_02014F1C
+
+ thumb_func_start FUN_02014F34
+FUN_02014F34: ; 0x02014F34
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ mov r3, #0x0
+ add r0, #0x7c
+ mov r2, #0x54
+_02014F3E:
+ add r1, r3, #0x0
+ mul r1, r2
+ add r4, r0, r1
+ ldr r1, [r0, r1]
+ cmp r1, #0x0
+ bne _02014F68
+ add r0, r4, #0x0
+ mov r1, #0x0
+ mov r2, #0x54
+ bl MI_CpuFill8
+ mov r0, #0x1
+ str r0, [r4, #0x0]
+ mov r0, #0xc
+ add r1, r5, #0x0
+ mul r1, r0
+ ldr r0, _02014F7C ; =0x020ED668
+ ldr r0, [r0, r1]
+ str r0, [r4, #0x50]
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+_02014F68:
+ add r1, r3, #0x1
+ lsl r1, r1, #0x18
+ lsr r3, r1, #0x18
+ cmp r3, #0x4
+ blo _02014F3E
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ nop
+_02014F7C: .word 0x020ED668
+
+ thumb_func_start FUN_02014F80
+FUN_02014F80: ; 0x02014F80
+ push {r4, lr}
+ add r4, r1, #0x0
+ ldr r1, [r0, #0xc]
+ add r1, r1, #0x4
+ str r1, [r0, #0xc]
+ add r0, r1, #0x0
+ bl FUN_02014F28
+ str r0, [r4, #0x0]
+ pop {r4, pc}
+
+ thumb_func_start FUN_02014F94
+FUN_02014F94: ; 0x02014F94
+ push {r4, lr}
+ add r4, r1, #0x0
+ ldr r1, [r0, #0xc]
+ add r1, r1, #0x4
+ str r1, [r0, #0xc]
+ add r0, r1, #0x0
+ bl FUN_02014F28
+ strb r0, [r4, #0x0]
+ pop {r4, pc}
+
+ thumb_func_start FUN_02014FA8
+FUN_02014FA8: ; 0x02014FA8
+ push {r4, lr}
+ add r4, r1, #0x0
+ ldr r1, [r0, #0xc]
+ add r1, r1, #0x4
+ str r1, [r0, #0xc]
+ add r0, r1, #0x0
+ bl FUN_02014F28
+ strb r0, [r4, #0x0]
+ ldrb r0, [r4, #0x0]
+ cmp r0, #0x8
+ blo _02014FC4
+ bl ErrorHandling
+_02014FC4:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02014FC8
+FUN_02014FC8: ; 0x02014FC8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r2, #0x0
+ bl FUN_02014FA8
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02014FA8
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02014FDC
+FUN_02014FDC: ; 0x02014FDC
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r5, r0, #0x0
+ add r4, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_02014FA8
+ add r0, r5, #0x0
+ add r1, sp, #0x0
+ bl FUN_02014F94
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x12
+ bne _0201501C
+ add r1, sp, #0x0
+ add r0, r5, #0x0
+ add r1, #0x2
+ bl FUN_02014FA8
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x2]
+ add r1, r6, #0x0
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ ldr r0, [r0, #0x24]
+ str r0, [r4, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02014F80
+ add sp, #0x4
+ pop {r3-r6, pc}
+_0201501C:
+ cmp r0, #0x13
+ bne _02015048
+ add r1, sp, #0x0
+ add r2, sp, #0x0
+ add r0, r5, #0x0
+ add r1, #0x2
+ add r2, #0x1
+ bl FUN_02014FC8
+ add r0, sp, #0x0
+ ldrb r1, [r0, #0x2]
+ add sp, #0x4
+ lsl r1, r1, #0x2
+ add r1, r5, r1
+ ldr r1, [r1, #0x24]
+ str r1, [r4, #0x0]
+ ldrb r0, [r0, #0x1]
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ ldr r0, [r0, #0x24]
+ str r0, [r6, #0x0]
+ pop {r3-r6, pc}
+_02015048:
+ bl ErrorHandling
+ add sp, #0x4
+ pop {r3-r6, pc}
+
+ thumb_func_start FUN_02015050
+FUN_02015050: ; 0x02015050
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r5, r0, #0x0
+ add r4, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_02014FA8
+ add r1, sp, #0x0
+ add r0, r5, #0x0
+ add r1, #0x1
+ bl FUN_02014F94
+ add r0, r5, #0x0
+ add r1, sp, #0x0
+ bl FUN_02014F94
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x1]
+ cmp r0, #0x12
+ bne _02015082
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02014F80
+ b _020150A2
+_02015082:
+ cmp r0, #0x13
+ bne _0201509E
+ add r1, sp, #0x0
+ add r0, r5, #0x0
+ add r1, #0x3
+ bl FUN_02014FA8
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x3]
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ ldr r0, [r0, #0x24]
+ str r0, [r4, #0x0]
+ b _020150A2
+_0201509E:
+ bl ErrorHandling
+_020150A2:
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x12
+ bne _020150B6
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02014F80
+ add sp, #0x4
+ pop {r3-r6, pc}
+_020150B6:
+ cmp r0, #0x13
+ bne _020150D4
+ add r1, sp, #0x0
+ add r0, r5, #0x0
+ add r1, #0x2
+ bl FUN_02014FA8
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x2]
+ add sp, #0x4
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ ldr r0, [r0, #0x24]
+ str r0, [r6, #0x0]
+ pop {r3-r6, pc}
+_020150D4:
+ bl ErrorHandling
+ add sp, #0x4
+ pop {r3-r6, pc}
+
+ thumb_func_start FUN_020150DC
+FUN_020150DC: ; 0x020150DC
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r4, r2, #0x0
+ add r2, sp, #0x0
+ add r2, #0x3
+ add r5, r0, #0x0
+ add r6, r3, #0x0
+ bl FUN_02014FC8
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x3]
+ add r1, sp, #0x0
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ ldr r7, [r0, #0x24]
+ add r0, r5, #0x0
+ bl FUN_02014F94
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x14
+ bne _02015112
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02014F80
+ b _02015132
+_02015112:
+ cmp r0, #0x15
+ bne _0201512E
+ add r1, sp, #0x0
+ add r0, r5, #0x0
+ add r1, #0x2
+ bl FUN_02014FA8
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x2]
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ ldr r0, [r0, #0x24]
+ str r0, [r6, #0x0]
+ b _02015132
+_0201512E:
+ bl ErrorHandling
+_02015132:
+ add r0, r5, #0x0
+ add r1, sp, #0x0
+ bl FUN_02014F94
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x14
+ bne _0201514C
+ add r0, r5, #0x0
+ add r1, sp, #0x4
+ bl FUN_02014F80
+ b _0201516C
+_0201514C:
+ cmp r0, #0x15
+ bne _02015168
+ add r1, sp, #0x0
+ add r0, r5, #0x0
+ add r1, #0x1
+ bl FUN_02014FA8
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x1]
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ ldr r0, [r0, #0x24]
+ str r0, [sp, #0x4]
+ b _0201516C
+_02015168:
+ bl ErrorHandling
+_0201516C:
+ ldr r0, [sp, #0x4]
+ add r0, r7, r0
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x10
+ sub r1, r1, r2
+ mov r0, #0x10
+ ror r1, r0
+ add r0, r2, r1
+ str r0, [r4, #0x0]
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02015184
+FUN_02015184: ; 0x02015184
+ ldr r2, [r0, #0x0]
+ ldr r0, [r1, #0x0]
+ sub r0, r2, r0
+ bpl _02015190
+ mov r0, #0xf
+ bx lr
+_02015190:
+ cmp r0, #0x0
+ ble _02015198
+ mov r0, #0x10
+ bx lr
+_02015198:
+ mov r0, #0x11
+ bx lr
+
+ thumb_func_start FUN_0201519C
+FUN_0201519C: ; 0x0201519C
+ add r2, r0, #0x0
+ ldr r0, [r2, #0x0]
+ ldr r2, [r2, #0x74]
+ mov r1, #0x1
+ neg r3, r2
+ asr r2, r3, #0x2
+ lsr r2, r2, #0x1d
+ add r2, r3, r2
+ ldr r3, _020151B4 ; =FUN_020079E0
+ asr r2, r2, #0x3
+ bx r3
+ nop
+_020151B4: .word FUN_020079E0
+
+ thumb_func_start FUN_020151B8
+FUN_020151B8: ; 0x020151B8
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_020151D0
+ mov r0, #0x1
+ str r0, [r4, #0x18]
+ str r0, [r4, #0x1c]
+ pop {r4, pc}
+
+ thumb_func_start FUN_020151C8
+FUN_020151C8: ; 0x020151C8
+ mov r1, #0x1
+ str r1, [r0, #0x18]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020151D0
+FUN_020151D0: ; 0x020151D0
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ ldr r2, [r4, #0x58]
+ mov r1, #0x0
+ bl FUN_02007558
+ ldr r0, [r4, #0x0]
+ ldr r2, [r4, #0x5c]
+ mov r1, #0x1
+ bl FUN_02007558
+ ldr r0, [r4, #0x0]
+ mov r1, #0x9
+ mov r2, #0x0
+ bl FUN_02007558
+ ldr r0, [r4, #0x0]
+ mov r1, #0xa
+ mov r2, #0x0
+ bl FUN_02007558
+ mov r1, #0xc
+ add r2, r1, #0x0
+ ldr r0, [r4, #0x0]
+ add r2, #0xf4
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0x0
+ ldr r0, [r4, #0x0]
+ add r2, #0xf3
+ bl FUN_02007558
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02015218
+FUN_02015218: ; 0x02015218
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r1, sp, #0x0
+ add r1, #0x1
+ add r2, sp, #0x0
+ add r4, r0, #0x0
+ bl FUN_02014FC8
+ add r0, sp, #0x0
+ ldrb r1, [r0, #0x0]
+ ldrb r0, [r0, #0x1]
+ lsl r1, r1, #0x2
+ add r1, r4, r1
+ lsl r0, r0, #0x2
+ ldr r1, [r1, #0x24]
+ add r0, r4, r0
+ str r1, [r0, #0x24]
+ add sp, #0x4
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02015240
+FUN_02015240: ; 0x02015240
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r1, sp, #0x0
+ add r2, sp, #0x8
+ add r3, sp, #0x4
+ add r4, r0, #0x0
+ bl FUN_02014FDC
+ ldr r1, [sp, #0x8]
+ ldr r0, [sp, #0x4]
+ add r1, r1, r0
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ str r1, [r0, #0x24]
+ add sp, #0xc
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_02015264
+FUN_02015264: ; 0x02015264
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r1, sp, #0x0
+ add r2, sp, #0x8
+ add r3, sp, #0x4
+ add r4, r0, #0x0
+ bl FUN_02014FDC
+ ldr r1, [sp, #0x8]
+ ldr r0, [sp, #0x4]
+ add r2, r1, #0x0
+ mul r2, r0
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ str r2, [r0, #0x24]
+ add sp, #0xc
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201528C
+FUN_0201528C: ; 0x0201528C
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r1, sp, #0x0
+ add r2, sp, #0x8
+ add r3, sp, #0x4
+ add r4, r0, #0x0
+ bl FUN_02015050
+ ldr r1, [sp, #0x8]
+ ldr r0, [sp, #0x4]
+ sub r1, r1, r0
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ str r1, [r0, #0x24]
+ add sp, #0xc
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_020152B0
+FUN_020152B0: ; 0x020152B0
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r1, sp, #0x0
+ add r2, sp, #0x8
+ add r3, sp, #0x4
+ add r4, r0, #0x0
+ bl FUN_02015050
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0x4]
+ bl _s32_div_f
+ add r1, sp, #0x0
+ ldrb r1, [r1, #0x0]
+ lsl r1, r1, #0x2
+ add r1, r4, r1
+ str r0, [r1, #0x24]
+ add sp, #0xc
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020152D8
+FUN_020152D8: ; 0x020152D8
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r1, sp, #0x0
+ add r2, sp, #0x8
+ add r3, sp, #0x4
+ add r4, r0, #0x0
+ bl FUN_02015050
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0x4]
+ bl _s32_div_f
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ str r1, [r0, #0x24]
+ add sp, #0xc
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02015300
+FUN_02015300: ; 0x02015300
+ push {r3-r5, lr}
+ sub sp, #0x10
+ add r1, sp, #0x0
+ add r5, r0, #0x0
+ bl FUN_02014F94
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x14
+ bne _02015334
+ add r1, sp, #0x0
+ add r0, r5, #0x0
+ add r1, #0x3
+ bl FUN_02014FA8
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x3]
+ add r1, sp, #0x8
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ ldr r0, [r0, #0x24]
+ str r0, [sp, #0xc]
+ add r0, r5, #0x0
+ bl FUN_02014F80
+ b _02015362
+_02015334:
+ cmp r0, #0x15
+ bne _0201535E
+ add r1, sp, #0x0
+ add r2, sp, #0x0
+ add r0, r5, #0x0
+ add r1, #0x3
+ add r2, #0x2
+ bl FUN_02014FC8
+ add r0, sp, #0x0
+ ldrb r1, [r0, #0x3]
+ lsl r1, r1, #0x2
+ add r1, r5, r1
+ ldr r1, [r1, #0x24]
+ str r1, [sp, #0xc]
+ ldrb r0, [r0, #0x2]
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ ldr r0, [r0, #0x24]
+ str r0, [sp, #0x8]
+ b _02015362
+_0201535E:
+ bl ErrorHandling
+_02015362:
+ add r1, sp, #0x0
+ add r0, r5, #0x0
+ add r1, #0x1
+ bl FUN_02014F94
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x1]
+ cmp r0, #0x11
+ bls _02015378
+ bl ErrorHandling
+_02015378:
+ add r0, sp, #0xc
+ add r1, sp, #0x8
+ bl FUN_02015184
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, sp, #0x0
+ bl FUN_02014F94
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x14
+ bne _020153A6
+ add r1, sp, #0x0
+ add r0, r5, #0x0
+ add r1, #0x3
+ bl FUN_02014FA8
+ add r0, r5, #0x0
+ add r1, sp, #0x4
+ bl FUN_02014F80
+ b _020153CA
+_020153A6:
+ cmp r0, #0x15
+ bne _020153C6
+ add r1, sp, #0x0
+ add r2, sp, #0x0
+ add r0, r5, #0x0
+ add r1, #0x3
+ add r2, #0x2
+ bl FUN_02014FC8
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x2]
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ ldr r0, [r0, #0x24]
+ str r0, [sp, #0x4]
+ b _020153CA
+_020153C6:
+ bl ErrorHandling
+_020153CA:
+ add r0, sp, #0x0
+ ldrb r1, [r0, #0x1]
+ cmp r1, r4
+ bne _020153DC
+ ldrb r0, [r0, #0x3]
+ ldr r1, [sp, #0x4]
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ str r1, [r0, #0x24]
+_020153DC:
+ add sp, #0x10
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020153E0
+FUN_020153E0: ; 0x020153E0
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ add r1, sp, #0x0
+ bl FUN_02014FA8
+ ldr r0, [r4, #0xc]
+ add r0, r0, #0x4
+ str r0, [r4, #0xc]
+ bl FUN_02014F28
+ add r1, sp, #0x0
+ ldrb r1, [r1, #0x0]
+ lsl r1, r1, #0x2
+ add r1, r4, r1
+ str r0, [r1, #0x24]
+ add sp, #0x4
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_02015404
+FUN_02015404: ; 0x02015404
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x50]
+ cmp r0, #0x0
+ beq _02015412
+ bl ErrorHandling
+_02015412:
+ ldr r0, [r4, #0xc]
+ add r0, r0, #0x4
+ str r0, [r4, #0xc]
+ str r0, [r4, #0x50]
+ ldr r0, [r4, #0xc]
+ bl FUN_02014F28
+ str r0, [r4, #0x48]
+ mov r0, #0x0
+ str r0, [r4, #0x4c]
+ pop {r4, pc}
+
+ thumb_func_start FUN_02015428
+FUN_02015428: ; 0x02015428
+ ldr r1, [r0, #0x4c]
+ add r2, r1, #0x1
+ str r2, [r0, #0x4c]
+ ldr r1, [r0, #0x48]
+ cmp r2, r1
+ blt _0201543E
+ mov r1, #0x0
+ str r1, [r0, #0x50]
+ str r1, [r0, #0x4c]
+ str r1, [r0, #0x48]
+ bx lr
+_0201543E:
+ ldr r1, [r0, #0x50]
+ str r1, [r0, #0xc]
+ bx lr
+
+ thumb_func_start FUN_02015444
+FUN_02015444: ; 0x02015444
+ push {r4, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ add r1, sp, #0x4
+ bl FUN_02014F80
+ add r0, r4, #0x0
+ add r1, sp, #0x0
+ bl FUN_02014FA8
+ add r2, sp, #0x0
+ ldrb r2, [r2, #0x0]
+ ldr r0, [r4, #0x0]
+ ldr r1, [sp, #0x4]
+ lsl r2, r2, #0x2
+ add r2, r4, r2
+ ldr r2, [r2, #0x24]
+ bl FUN_02007558
+ add sp, #0x8
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02015470
+FUN_02015470: ; 0x02015470
+ push {r4, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ add r1, sp, #0x4
+ bl FUN_02014F80
+ add r0, r4, #0x0
+ add r1, sp, #0x0
+ bl FUN_02014FA8
+ add r2, sp, #0x0
+ ldrb r2, [r2, #0x0]
+ ldr r0, [r4, #0x0]
+ ldr r1, [sp, #0x4]
+ lsl r2, r2, #0x2
+ add r2, r4, r2
+ ldr r2, [r2, #0x24]
+ bl FUN_020079E0
+ add sp, #0x8
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201549C
+FUN_0201549C: ; 0x0201549C
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r1, sp, #0x8
+ add r4, r0, #0x0
+ bl FUN_02014F80
+ add r1, sp, #0x0
+ add r0, r4, #0x0
+ add r1, #0x1
+ bl FUN_02014F94
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x1]
+ cmp r0, #0x14
+ bne _020154C4
+ add r0, r4, #0x0
+ add r1, sp, #0x4
+ bl FUN_02014F80
+ b _020154E4
+_020154C4:
+ cmp r0, #0x15
+ bne _020154E0
+ add r1, sp, #0x0
+ add r0, r4, #0x0
+ add r1, #0x2
+ bl FUN_02014FA8
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x2]
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ ldr r0, [r0, #0x24]
+ str r0, [sp, #0x4]
+ b _020154E4
+_020154E0:
+ bl ErrorHandling
+_020154E4:
+ add r0, r4, #0x0
+ add r1, sp, #0x0
+ bl FUN_02014F94
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x16
+ bne _02015502
+ ldr r0, [r4, #0x0]
+ ldr r1, [sp, #0x8]
+ ldr r2, [sp, #0x4]
+ bl FUN_02007558
+ add sp, #0xc
+ pop {r3-r4, pc}
+_02015502:
+ cmp r0, #0x17
+ bne _02015514
+ ldr r0, [r4, #0x0]
+ ldr r1, [sp, #0x8]
+ ldr r2, [sp, #0x4]
+ bl FUN_020079E0
+ add sp, #0xc
+ pop {r3-r4, pc}
+_02015514:
+ bl ErrorHandling
+ add sp, #0xc
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_0201551C
+FUN_0201551C: ; 0x0201551C
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r1, sp, #0x0
+ add r2, sp, #0x8
+ add r3, sp, #0x4
+ add r4, r0, #0x0
+ bl FUN_020150DC
+ ldr r0, [sp, #0x8]
+ ldr r2, [sp, #0x4]
+ asr r0, r0, #0x4
+ lsl r1, r0, #0x2
+ ldr r0, _0201554C ; =0x020FFA38
+ ldrsh r0, [r0, r1]
+ mul r0, r2
+ asr r1, r0, #0xc
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ str r1, [r0, #0x24]
+ add sp, #0xc
+ pop {r3-r4, pc}
+ nop
+_0201554C: .word 0x020FFA38
+
+ thumb_func_start FUN_02015550
+FUN_02015550: ; 0x02015550
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r1, sp, #0x0
+ add r2, sp, #0x8
+ add r3, sp, #0x4
+ add r4, r0, #0x0
+ bl FUN_020150DC
+ ldr r1, [sp, #0x8]
+ ldr r0, [sp, #0x4]
+ asr r1, r1, #0x4
+ lsl r1, r1, #0x1
+ add r1, r1, #0x1
+ lsl r2, r1, #0x1
+ ldr r1, _02015584 ; =0x020FFA38
+ ldrsh r1, [r1, r2]
+ mul r1, r0
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x0]
+ asr r1, r1, #0xc
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ str r1, [r0, #0x24]
+ add sp, #0xc
+ pop {r3-r4, pc}
+ nop
+_02015584: .word 0x020FFA38
+
+ thumb_func_start FUN_02015588
+FUN_02015588: ; 0x02015588
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r1, sp, #0x0
+ add r4, r0, #0x0
+ add r1, #0x1
+ bl FUN_02014FA8
+ add r0, r4, #0x0
+ add r1, sp, #0x0
+ bl FUN_02014F94
+ add r0, sp, #0x0
+ ldrb r1, [r0, #0x0]
+ cmp r1, #0x8
+ bne _020155B4
+ ldrb r0, [r0, #0x1]
+ add sp, #0x4
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ ldr r0, [r0, #0x24]
+ str r0, [r4, #0x60]
+ pop {r3-r4, pc}
+_020155B4:
+ cmp r1, #0x9
+ bne _020155C6
+ ldrb r0, [r0, #0x1]
+ add sp, #0x4
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ ldr r0, [r0, #0x24]
+ str r0, [r4, #0x64]
+ pop {r3-r4, pc}
+_020155C6:
+ bl ErrorHandling
+ add sp, #0x4
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020155D0
+FUN_020155D0: ; 0x020155D0
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r1, sp, #0x0
+ add r4, r0, #0x0
+ add r1, #0x1
+ bl FUN_02014FA8
+ add r0, r4, #0x0
+ add r1, sp, #0x0
+ bl FUN_02014F94
+ add r0, sp, #0x0
+ ldrb r1, [r0, #0x0]
+ cmp r1, #0x8
+ bne _02015600
+ ldrb r0, [r0, #0x1]
+ ldr r1, [r4, #0x60]
+ add sp, #0x4
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ ldr r0, [r0, #0x24]
+ add r0, r1, r0
+ str r0, [r4, #0x60]
+ pop {r3-r4, pc}
+_02015600:
+ cmp r1, #0x9
+ bne _02015616
+ ldrb r0, [r0, #0x1]
+ ldr r1, [r4, #0x64]
+ add sp, #0x4
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ ldr r0, [r0, #0x24]
+ add r0, r1, r0
+ str r0, [r4, #0x64]
+ pop {r3-r4, pc}
+_02015616:
+ bl ErrorHandling
+ add sp, #0x4
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02015620
+FUN_02015620: ; 0x02015620
+ push {r3-r5, lr}
+ sub sp, #0x8
+ add r1, sp, #0x0
+ add r1, #0x3
+ add r5, r0, #0x0
+ bl FUN_02014F94
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x3]
+ cmp r0, #0x8
+ bne _0201563C
+ add r4, r5, #0x0
+ add r4, #0x60
+ b _0201567C
+_0201563C:
+ cmp r0, #0x9
+ bne _02015646
+ add r4, r5, #0x0
+ add r4, #0x64
+ b _0201567C
+_02015646:
+ cmp r0, #0xa
+ bne _02015650
+ add r4, r5, #0x0
+ add r4, #0x68
+ b _0201567C
+_02015650:
+ cmp r0, #0xb
+ bne _0201565A
+ add r4, r5, #0x0
+ add r4, #0x6c
+ b _0201567C
+_0201565A:
+ cmp r0, #0xc
+ bne _02015664
+ add r4, r5, #0x0
+ add r4, #0x70
+ b _0201567C
+_02015664:
+ cmp r0, #0xd
+ bne _0201566E
+ add r4, r5, #0x0
+ add r4, #0x74
+ b _0201567C
+_0201566E:
+ cmp r0, #0xe
+ bne _02015678
+ add r4, r5, #0x0
+ add r4, #0x78
+ b _0201567C
+_02015678:
+ bl ErrorHandling
+_0201567C:
+ add r1, sp, #0x0
+ add r0, r5, #0x0
+ add r1, #0x1
+ bl FUN_02014F94
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x1]
+ cmp r0, #0x14
+ bne _02015698
+ add r0, r5, #0x0
+ add r1, sp, #0x4
+ bl FUN_02014F80
+ b _020156B8
+_02015698:
+ cmp r0, #0x15
+ bne _020156B4
+ add r1, sp, #0x0
+ add r0, r5, #0x0
+ add r1, #0x2
+ bl FUN_02014FA8
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x2]
+ lsl r0, r0, #0x2
+ add r0, r5, r0
+ ldr r0, [r0, #0x24]
+ str r0, [sp, #0x4]
+ b _020156B8
+_020156B4:
+ bl ErrorHandling
+_020156B8:
+ add r0, r5, #0x0
+ add r1, sp, #0x0
+ bl FUN_02014F94
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x16
+ bne _020156D0
+ ldr r0, [sp, #0x4]
+ add sp, #0x8
+ str r0, [r4, #0x0]
+ pop {r3-r5, pc}
+_020156D0:
+ cmp r0, #0x17
+ bne _020156E0
+ ldr r0, [sp, #0x4]
+ ldr r1, [r4, #0x0]
+ add sp, #0x8
+ add r0, r1, r0
+ str r0, [r4, #0x0]
+ pop {r3-r5, pc}
+_020156E0:
+ bl ErrorHandling
+ add sp, #0x8
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020156E8
+FUN_020156E8: ; 0x020156E8
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ mov r0, #0x73
+ lsl r0, r0, #0x2
+ ldrb r0, [r4, r0]
+ cmp r0, #0x0
+ ldr r0, [r4, #0x0]
+ beq _0201570A
+ ldr r3, [r4, #0x60]
+ ldr r2, [r4, #0x68]
+ ldr r5, [r4, #0x58]
+ add r2, r3, r2
+ mov r1, #0x0
+ sub r2, r5, r2
+ bl FUN_02007558
+ b _0201571A
+_0201570A:
+ ldr r3, [r4, #0x58]
+ ldr r2, [r4, #0x60]
+ ldr r5, [r4, #0x68]
+ add r2, r3, r2
+ mov r1, #0x0
+ add r2, r5, r2
+ bl FUN_02007558
+_0201571A:
+ ldr r3, [r4, #0x5c]
+ ldr r2, [r4, #0x64]
+ ldr r5, [r4, #0x6c]
+ add r2, r3, r2
+ ldr r0, [r4, #0x0]
+ mov r1, #0x1
+ add r2, r5, r2
+ bl FUN_02007558
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02015730
+FUN_02015730: ; 0x02015730
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r1, #0xc
+ add r2, r1, #0x0
+ ldr r3, [r4, #0x70]
+ add r2, #0xf4
+ ldr r0, [r4, #0x0]
+ add r2, r3, r2
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0x0
+ ldr r3, [r4, #0x74]
+ add r2, #0xf3
+ ldr r0, [r4, #0x0]
+ add r2, r3, r2
+ bl FUN_02007558
+ ldr r2, [r4, #0x78]
+ ldr r0, [r4, #0x0]
+ lsl r2, r2, #0x10
+ mov r1, #0x9
+ lsr r2, r2, #0x10
+ bl FUN_02007558
+ ldr r0, _02015794 ; =0x000001CE
+ ldrb r0, [r4, r0]
+ cmp r0, #0x1b
+ bne _02015778
+ ldr r0, [r4, #0x74]
+ cmp r0, #0x0
+ bge _02015792
+ add r0, r4, #0x0
+ bl FUN_0201519C
+ pop {r4, pc}
+_02015778:
+ cmp r0, #0x1d
+ bne _0201578A
+ ldr r0, [r4, #0x74]
+ cmp r0, #0x0
+ beq _02015792
+ add r0, r4, #0x0
+ bl FUN_0201519C
+ pop {r4, pc}
+_0201578A:
+ cmp r0, #0x1c
+ beq _02015792
+ bl ErrorHandling
+_02015792:
+ pop {r4, pc}
+ .balign 4
+_02015794: .word 0x000001CE
+
+ thumb_func_start FUN_02015798
+FUN_02015798: ; 0x02015798
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ add r1, sp, #0x0
+ bl FUN_02014FA8
+ ldr r0, [r4, #0xc]
+ add r0, r0, #0x4
+ str r0, [r4, #0xc]
+ bl FUN_02014F28
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x8
+ beq _020157BA
+ cmp r0, #0xa
+ bne _020157CA
+_020157BA:
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x0]
+ add sp, #0x4
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ ldr r0, [r0, #0x24]
+ str r0, [r4, #0x68]
+ pop {r3-r4, pc}
+_020157CA:
+ cmp r0, #0x9
+ beq _020157D2
+ cmp r0, #0xb
+ bne _020157E2
+_020157D2:
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x0]
+ add sp, #0x4
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ ldr r0, [r0, #0x24]
+ str r0, [r4, #0x6c]
+ pop {r3-r4, pc}
+_020157E2:
+ bl ErrorHandling
+ add sp, #0x4
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020157EC
+FUN_020157EC: ; 0x020157EC
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x54
+ bl FUN_02014F80
+ mov r0, #0x1
+ str r0, [r4, #0x18]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02015800
+FUN_02015800: ; 0x02015800
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r1, sp, #0x4
+ add r1, #0x2
+ add r4, r0, #0x0
+ bl FUN_02014F94
+ add r1, sp, #0x4
+ add r0, r4, #0x0
+ add r1, #0x1
+ bl FUN_02014F94
+ add r0, r4, #0x0
+ add r1, sp, #0x4
+ bl FUN_02014F94
+ add r0, r4, #0x0
+ add r1, sp, #0x8
+ bl FUN_02014F80
+ ldr r0, [sp, #0x8]
+ add r3, sp, #0x4
+ str r0, [sp, #0x0]
+ ldrb r1, [r3, #0x2]
+ ldrb r2, [r3, #0x1]
+ ldrb r3, [r3, #0x0]
+ ldr r0, [r4, #0x0]
+ bl FUN_02007E68
+ add sp, #0xc
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02015840
+FUN_02015840: ; 0x02015840
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_02007F20
+ cmp r0, #0x0
+ beq _02015856
+ ldr r0, _02015858 ; =0x000001CF
+ mov r1, #0x1
+ strb r1, [r4, r0]
+ str r1, [r4, #0x18]
+_02015856:
+ pop {r4, pc}
+ .balign 4
+_02015858: .word 0x000001CF
+
+ thumb_func_start FUN_0201585C
+FUN_0201585C: ; 0x0201585C
+ ldr r1, _02015864 ; =0x000001CD
+ mov r2, #0x1
+ strb r2, [r0, r1]
+ bx lr
+ .balign 4
+_02015864: .word 0x000001CD
+
+ thumb_func_start FUN_02015868
+FUN_02015868: ; 0x02015868
+ push {r4, lr}
+ ldr r1, _0201589C ; =0x000001CE
+ add r4, r0, #0x0
+ add r1, r4, r1
+ bl FUN_02014F94
+ ldr r0, _0201589C ; =0x000001CE
+ mov r1, #0x1
+ ldrb r0, [r4, r0]
+ add r2, r1, #0x0
+ cmp r0, #0x1b
+ beq _02015886
+ cmp r0, #0x1d
+ beq _02015886
+ mov r2, #0x0
+_02015886:
+ cmp r2, #0x0
+ bne _02015890
+ cmp r0, #0x1c
+ beq _02015890
+ mov r1, #0x0
+_02015890:
+ cmp r1, #0x0
+ bne _02015898
+ bl ErrorHandling
+_02015898:
+ pop {r4, pc}
+ nop
+_0201589C: .word 0x000001CE
+
+ thumb_func_start FUN_020158A0
+FUN_020158A0: ; 0x020158A0
+ ldr r3, _020158A8 ; =FUN_0201598C
+ mov r1, #0x0
+ bx r3
+ nop
+_020158A8: .word FUN_0201598C
+
+ thumb_func_start FUN_020158AC
+FUN_020158AC: ; 0x020158AC
+ ldr r3, _020158B4 ; =FUN_0201598C
+ mov r1, #0x1
+ bx r3
+ nop
+_020158B4: .word FUN_0201598C
+
+ thumb_func_start FUN_020158B8
+FUN_020158B8: ; 0x020158B8
+ ldr r3, _020158C0 ; =FUN_0201598C
+ mov r1, #0x2
+ bx r3
+ nop
+_020158C0: .word FUN_0201598C
+
+ thumb_func_start FUN_020158C4
+FUN_020158C4: ; 0x020158C4
+ ldr r3, _020158CC ; =FUN_0201598C
+ mov r1, #0x3
+ bx r3
+ nop
+_020158CC: .word FUN_0201598C
+
+ thumb_func_start FUN_020158D0
+FUN_020158D0: ; 0x020158D0
+ ldr r3, _020158D8 ; =FUN_0201598C
+ mov r1, #0x4
+ bx r3
+ nop
+_020158D8: .word FUN_0201598C
+
+ thumb_func_start FUN_020158DC
+FUN_020158DC: ; 0x020158DC
+ push {r3, lr}
+ cmp r0, #0x18
+ bne _020158E8
+ ldr r0, [r2, #0x0]
+ str r0, [r3, #0x0]
+ pop {r3, pc}
+_020158E8:
+ cmp r0, #0x19
+ bne _020158F6
+ ldr r1, [r1, #0x0]
+ ldr r0, [r2, #0x0]
+ add r0, r1, r0
+ str r0, [r3, #0x0]
+ pop {r3, pc}
+_020158F6:
+ cmp r0, #0x1a
+ bne _02015904
+ ldr r1, [r3, #0x0]
+ ldr r0, [r2, #0x0]
+ add r0, r1, r0
+ str r0, [r3, #0x0]
+ pop {r3, pc}
+_02015904:
+ bl ErrorHandling
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201590C
+FUN_0201590C: ; 0x0201590C
+ push {r3, lr}
+ sub r0, #0x23
+ cmp r0, #0x4
+ bhi _02015984
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02015920: ; jump table (using 16-bit offset)
+ .short _0201592A - _02015920 - 2; case 0
+ .short _0201593C - _02015920 - 2; case 1
+ .short _0201594E - _02015920 - 2; case 2
+ .short _02015960 - _02015920 - 2; case 3
+ .short _02015972 - _02015920 - 2; case 4
+_0201592A:
+ add r0, r1, #0x0
+ add r0, #0x3c
+ str r0, [r1, #0x24]
+ add r0, r2, #0x0
+ add r0, #0x68
+ str r0, [r1, #0x28]
+ ldr r0, [r2, #0x68]
+ str r0, [r1, #0x30]
+ pop {r3, pc}
+_0201593C:
+ add r0, r1, #0x0
+ add r0, #0x40
+ str r0, [r1, #0x24]
+ add r0, r2, #0x0
+ add r0, #0x6c
+ str r0, [r1, #0x28]
+ ldr r0, [r2, #0x6c]
+ str r0, [r1, #0x30]
+ pop {r3, pc}
+_0201594E:
+ add r0, r1, #0x0
+ add r0, #0x44
+ str r0, [r1, #0x24]
+ add r0, r2, #0x0
+ add r0, #0x70
+ str r0, [r1, #0x28]
+ ldr r0, [r2, #0x70]
+ str r0, [r1, #0x30]
+ pop {r3, pc}
+_02015960:
+ add r0, r1, #0x0
+ add r0, #0x48
+ str r0, [r1, #0x24]
+ add r0, r2, #0x0
+ add r0, #0x74
+ str r0, [r1, #0x28]
+ ldr r0, [r2, #0x74]
+ str r0, [r1, #0x30]
+ pop {r3, pc}
+_02015972:
+ add r0, r1, #0x0
+ add r0, #0x4c
+ str r0, [r1, #0x24]
+ add r0, r2, #0x0
+ add r0, #0x78
+ str r0, [r1, #0x28]
+ ldr r0, [r2, #0x78]
+ str r0, [r1, #0x30]
+ pop {r3, pc}
+_02015984:
+ bl ErrorHandling
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201598C
+FUN_0201598C: ; 0x0201598C
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r6, r1, #0x0
+ lsl r1, r6, #0x18
+ lsr r1, r1, #0x18
+ add r5, r0, #0x0
+ bl FUN_02014F34
+ str r0, [sp, #0x4]
+ ldr r1, [sp, #0x4]
+ add r0, r5, #0x0
+ add r1, #0x2c
+ bl FUN_02014F94
+ ldr r1, [sp, #0x4]
+ add r0, r5, #0x0
+ add r1, #0x2d
+ bl FUN_02014F94
+ mov r0, #0xc
+ mul r0, r6
+ ldr r1, _02015A28 ; =0x020ED66C
+ str r0, [sp, #0x0]
+ ldr r0, [r1, r0]
+ mov r4, #0x0
+ cmp r0, #0x0
+ ble _020159E2
+ ldr r1, _02015A2C ; =0x020ED668
+ ldr r0, [sp, #0x0]
+ add r6, r1, r0
+ ldr r0, [sp, #0x4]
+ add r7, r0, #0x4
+_020159CC:
+ lsl r1, r4, #0x2
+ add r0, r5, #0x0
+ add r1, r7, r1
+ bl FUN_02014F80
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ ldr r0, [r6, #0x4]
+ cmp r4, r0
+ blt _020159CC
+_020159E2:
+ ldr r1, _02015A30 ; =0x020ED670
+ ldr r0, [sp, #0x0]
+ add r2, r5, #0x0
+ ldr r0, [r1, r0]
+ lsl r1, r0, #0x2
+ ldr r0, [sp, #0x4]
+ add r0, r0, r1
+ ldr r0, [r0, #0x4]
+ ldr r1, [sp, #0x4]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201590C
+ ldr r0, [sp, #0x4]
+ add r0, #0x2d
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02015A14
+ ldr r0, [sp, #0x4]
+ add r1, r5, #0x0
+ add r2, r0, #0x0
+ ldr r2, [r2, #0x50]
+ blx r2
+ add sp, #0x8
+ pop {r3-r7, pc}
+_02015A14:
+ ldr r0, [sp, #0x4]
+ add r0, #0x2d
+ ldrb r0, [r0, #0x0]
+ sub r1, r0, #0x1
+ ldr r0, [sp, #0x4]
+ add r0, #0x2d
+ str r0, [sp, #0x4]
+ strb r1, [r0, #0x0]
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_02015A28: .word 0x020ED66C
+_02015A2C: .word 0x020ED668
+_02015A30: .word 0x020ED670
+
+ thumb_func_start FUN_02015A34
+FUN_02015A34: ; 0x02015A34
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x1c]
+ ldr r1, [r4, #0x10]
+ add r0, r0, #0x1
+ ldr r2, [r4, #0x14]
+ mul r0, r1
+ add r0, r2, r0
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ ldr r0, [r4, #0x4]
+ sub r0, #0x1e
+ cmp r0, #0x3
+ bhi _02015AC0
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02015A5C: ; jump table (using 16-bit offset)
+ .short _02015A64 - _02015A5C - 2; case 0
+ .short _02015A78 - _02015A5C - 2; case 1
+ .short _02015A90 - _02015A5C - 2; case 2
+ .short _02015AA6 - _02015A5C - 2; case 3
+_02015A64:
+ asr r0, r1, #0x4
+ lsl r1, r0, #0x2
+ ldr r0, _02015AE8 ; =0x020FFA38
+ ldr r2, [r4, #0xc]
+ ldrsh r0, [r0, r1]
+ mul r0, r2
+ asr r1, r0, #0xc
+ ldr r0, [r4, #0x24]
+ str r1, [r0, #0x0]
+ b _02015AC4
+_02015A78:
+ asr r1, r1, #0x4
+ lsl r1, r1, #0x1
+ add r1, r1, #0x1
+ lsl r2, r1, #0x1
+ ldr r1, _02015AE8 ; =0x020FFA38
+ ldr r0, [r4, #0xc]
+ ldrsh r1, [r1, r2]
+ mul r1, r0
+ ldr r0, [r4, #0x24]
+ asr r1, r1, #0xc
+ str r1, [r0, #0x0]
+ b _02015AC4
+_02015A90:
+ asr r0, r1, #0x4
+ lsl r1, r0, #0x2
+ ldr r0, _02015AE8 ; =0x020FFA38
+ ldr r2, [r4, #0xc]
+ ldrsh r0, [r0, r1]
+ mul r0, r2
+ asr r0, r0, #0xc
+ neg r1, r0
+ ldr r0, [r4, #0x24]
+ str r1, [r0, #0x0]
+ b _02015AC4
+_02015AA6:
+ asr r1, r1, #0x4
+ lsl r1, r1, #0x1
+ add r1, r1, #0x1
+ lsl r2, r1, #0x1
+ ldr r1, _02015AE8 ; =0x020FFA38
+ ldr r0, [r4, #0xc]
+ ldrsh r1, [r1, r2]
+ mul r1, r0
+ asr r0, r1, #0xc
+ neg r1, r0
+ ldr r0, [r4, #0x24]
+ str r1, [r0, #0x0]
+ b _02015AC4
+_02015AC0:
+ bl ErrorHandling
+_02015AC4:
+ add r0, r4, #0x0
+ add r0, #0x2c
+ ldrb r0, [r0, #0x0]
+ add r1, r4, #0x0
+ ldr r2, [r4, #0x24]
+ ldr r3, [r4, #0x28]
+ add r1, #0x30
+ bl FUN_020158DC
+ ldr r0, [r4, #0x1c]
+ add r1, r0, #0x1
+ str r1, [r4, #0x1c]
+ ldr r0, [r4, #0x18]
+ cmp r1, r0
+ blt _02015AE6
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+_02015AE6:
+ pop {r4, pc}
+ .balign 4
+_02015AE8: .word 0x020FFA38
+
+ thumb_func_start FUN_02015AEC
+FUN_02015AEC: ; 0x02015AEC
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x1c]
+ ldr r1, [r4, #0x10]
+ add r0, r0, #0x1
+ mul r0, r1
+ ldr r1, [r4, #0x18]
+ bl _s32_div_f
+ ldr r1, [r4, #0x14]
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ ldr r0, [r4, #0x4]
+ sub r0, #0x1e
+ cmp r0, #0x3
+ bhi _02015B7E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02015B1A: ; jump table (using 16-bit offset)
+ .short _02015B22 - _02015B1A - 2; case 0
+ .short _02015B36 - _02015B1A - 2; case 1
+ .short _02015B4E - _02015B1A - 2; case 2
+ .short _02015B64 - _02015B1A - 2; case 3
+_02015B22:
+ asr r0, r1, #0x4
+ lsl r1, r0, #0x2
+ ldr r0, _02015BA8 ; =0x020FFA38
+ ldr r2, [r4, #0xc]
+ ldrsh r0, [r0, r1]
+ mul r0, r2
+ asr r1, r0, #0xc
+ ldr r0, [r4, #0x24]
+ str r1, [r0, #0x0]
+ b _02015B82
+_02015B36:
+ asr r1, r1, #0x4
+ lsl r1, r1, #0x1
+ add r1, r1, #0x1
+ lsl r2, r1, #0x1
+ ldr r1, _02015BA8 ; =0x020FFA38
+ ldr r0, [r4, #0xc]
+ ldrsh r1, [r1, r2]
+ mul r1, r0
+ ldr r0, [r4, #0x24]
+ asr r1, r1, #0xc
+ str r1, [r0, #0x0]
+ b _02015B82
+_02015B4E:
+ asr r0, r1, #0x4
+ lsl r1, r0, #0x2
+ ldr r0, _02015BA8 ; =0x020FFA38
+ ldr r2, [r4, #0xc]
+ ldrsh r0, [r0, r1]
+ mul r0, r2
+ asr r0, r0, #0xc
+ neg r1, r0
+ ldr r0, [r4, #0x24]
+ str r1, [r0, #0x0]
+ b _02015B82
+_02015B64:
+ asr r1, r1, #0x4
+ lsl r1, r1, #0x1
+ add r1, r1, #0x1
+ lsl r2, r1, #0x1
+ ldr r1, _02015BA8 ; =0x020FFA38
+ ldr r0, [r4, #0xc]
+ ldrsh r1, [r1, r2]
+ mul r1, r0
+ asr r0, r1, #0xc
+ neg r1, r0
+ ldr r0, [r4, #0x24]
+ str r1, [r0, #0x0]
+ b _02015B82
+_02015B7E:
+ bl ErrorHandling
+_02015B82:
+ add r0, r4, #0x0
+ add r0, #0x2c
+ ldrb r0, [r0, #0x0]
+ add r1, r4, #0x0
+ ldr r2, [r4, #0x24]
+ ldr r3, [r4, #0x28]
+ add r1, #0x30
+ bl FUN_020158DC
+ ldr r0, [r4, #0x1c]
+ add r1, r0, #0x1
+ str r1, [r4, #0x1c]
+ ldr r0, [r4, #0x18]
+ cmp r1, r0
+ blt _02015BA4
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+_02015BA4:
+ pop {r4, pc}
+ nop
+_02015BA8: .word 0x020FFA38
+
+ thumb_func_start FUN_02015BAC
+FUN_02015BAC: ; 0x02015BAC
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x24]
+ ldr r3, [r4, #0xc]
+ ldr r2, [r4, #0x14]
+ ldr r5, [r4, #0x8]
+ mul r2, r3
+ ldr r0, [r1, #0x0]
+ add r2, r5, r2
+ add r0, r0, r2
+ str r0, [r1, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x2c
+ add r1, r4, #0x0
+ ldrb r0, [r0, #0x0]
+ ldr r2, [r4, #0x24]
+ ldr r3, [r4, #0x28]
+ add r1, #0x30
+ bl FUN_020158DC
+ ldr r0, [r4, #0x14]
+ add r1, r0, #0x1
+ str r1, [r4, #0x14]
+ ldr r0, [r4, #0x10]
+ cmp r1, r0
+ blt _02015BE4
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+_02015BE4:
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02015BE8
+FUN_02015BE8: ; 0x02015BE8
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x10]
+ add r1, r0, #0x1
+ ldr r0, [r4, #0x8]
+ mul r0, r1
+ ldr r1, [r4, #0xc]
+ bl _s32_div_f
+ ldr r1, [r4, #0x24]
+ str r0, [r1, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x2c
+ add r1, r4, #0x0
+ ldrb r0, [r0, #0x0]
+ ldr r2, [r4, #0x24]
+ ldr r3, [r4, #0x28]
+ add r1, #0x30
+ bl FUN_020158DC
+ ldr r0, [r4, #0x10]
+ add r1, r0, #0x1
+ str r1, [r4, #0x10]
+ ldr r0, [r4, #0xc]
+ cmp r1, r0
+ blt _02015C20
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+_02015C20:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02015C24
+FUN_02015C24: ; 0x02015C24
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0xc]
+ ldr r0, [r4, #0x14]
+ ldr r2, [r4, #0x8]
+ mul r0, r1
+ ldr r1, [r4, #0x24]
+ add r2, r2, r0
+ ldr r0, [r1, #0x0]
+ add r0, r0, r2
+ str r0, [r1, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x2c
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x18
+ beq _02015C48
+ cmp r0, #0x1a
+ bne _02015C6E
+_02015C48:
+ cmp r2, #0x0
+ ldr r2, [r4, #0x10]
+ bge _02015C5E
+ ldr r1, [r4, #0x24]
+ ldr r0, [r1, #0x0]
+ cmp r0, r2
+ bgt _02015CA4
+ str r2, [r1, #0x0]
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ b _02015CA4
+_02015C5E:
+ ldr r1, [r4, #0x24]
+ ldr r0, [r1, #0x0]
+ cmp r0, r2
+ blt _02015CA4
+ str r2, [r1, #0x0]
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ b _02015CA4
+_02015C6E:
+ cmp r0, #0x19
+ bne _02015CA0
+ ldr r1, [r4, #0x24]
+ ldr r3, [r4, #0x30]
+ ldr r0, [r1, #0x0]
+ add r3, r3, r0
+ cmp r2, #0x0
+ ldr r2, [r4, #0x10]
+ bge _02015C90
+ cmp r3, r2
+ bgt _02015CA4
+ sub r2, r2, r3
+ add r0, r0, r2
+ str r0, [r1, #0x0]
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ b _02015CA4
+_02015C90:
+ cmp r3, r2
+ blt _02015CA4
+ sub r2, r3, r2
+ sub r0, r0, r2
+ str r0, [r1, #0x0]
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ b _02015CA4
+_02015CA0:
+ bl ErrorHandling
+_02015CA4:
+ add r0, r4, #0x0
+ add r0, #0x2c
+ ldrb r0, [r0, #0x0]
+ add r1, r4, #0x0
+ ldr r2, [r4, #0x24]
+ ldr r3, [r4, #0x28]
+ add r1, #0x30
+ bl FUN_020158DC
+ ldr r0, [r4, #0x14]
+ add r0, r0, #0x1
+ str r0, [r4, #0x14]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02015CC0
+FUN_02015CC0: ; 0x02015CC0
+ ldr r3, _02015CDC ; =0x020ED72C
+ mov r2, #0x0
+_02015CC4:
+ ldrh r1, [r3, #0x2]
+ cmp r0, r1
+ bhs _02015CCE
+ add r0, r2, #0x0
+ bx lr
+_02015CCE:
+ add r2, r2, #0x1
+ add r3, r3, #0x2
+ cmp r2, #0x2
+ blt _02015CC4
+ add r0, r2, #0x0
+ bx lr
+ nop
+_02015CDC: .word 0x020ED72C
+
+ thumb_func_start FUN_02015CE0
+FUN_02015CE0: ; 0x02015CE0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02015CC0
+ lsl r1, r0, #0x1
+ ldr r0, _02015CF4 ; =0x020ED72C
+ ldrh r0, [r0, r1]
+ sub r0, r4, r0
+ pop {r4, pc}
+ nop
+_02015CF4: .word 0x020ED72C
+
+ thumb_func_start FUN_02015CF8
+FUN_02015CF8: ; 0x02015CF8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x3
+ blt _02015D06
+ bl ErrorHandling
+_02015D06:
+ ldr r0, _02015D10 ; =0x020ED72C
+ lsl r1, r5, #0x1
+ ldrh r0, [r0, r1]
+ add r0, r4, r0
+ pop {r3-r5, pc}
+ .balign 4
+_02015D10: .word 0x020ED72C
+
+ thumb_func_start FUN_02015D14
+FUN_02015D14: ; 0x02015D14
+ cmp r0, #0x7
+ bhi _02015D34
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02015D24: ; jump table (using 16-bit offset)
+ .short _02015D34 - _02015D24 - 2; case 0
+ .short _02015D34 - _02015D24 - 2; case 1
+ .short _02015D38 - _02015D24 - 2; case 2
+ .short _02015D3E - _02015D24 - 2; case 3
+ .short _02015D38 - _02015D24 - 2; case 4
+ .short _02015D42 - _02015D24 - 2; case 5
+ .short _02015D34 - _02015D24 - 2; case 6
+ .short _02015D38 - _02015D24 - 2; case 7
+_02015D34:
+ mov r0, #0xea
+ bx lr
+_02015D38:
+ mov r0, #0x6d
+ lsl r0, r0, #0x2
+ bx lr
+_02015D3E:
+ ldr r0, _02015D48 ; =0x000001B7
+ bx lr
+_02015D42:
+ ldr r0, _02015D4C ; =0x000001B6
+ bx lr
+ nop
+_02015D48: .word 0x000001B7
+_02015D4C: .word 0x000001B6
+
+ thumb_func_start FUN_02015D50
+FUN_02015D50: ; 0x02015D50
+ cmp r0, #0x7
+ bhi _02015D70
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02015D60: ; jump table (using 16-bit offset)
+ .short _02015D70 - _02015D60 - 2; case 0
+ .short _02015D70 - _02015D60 - 2; case 1
+ .short _02015D74 - _02015D60 - 2; case 2
+ .short _02015D78 - _02015D60 - 2; case 3
+ .short _02015D74 - _02015D60 - 2; case 4
+ .short _02015D7E - _02015D60 - 2; case 5
+ .short _02015D70 - _02015D60 - 2; case 6
+ .short _02015D74 - _02015D60 - 2; case 7
+_02015D70:
+ mov r0, #0xeb
+ bx lr
+_02015D74:
+ ldr r0, _02015D84 ; =0x000001B5
+ bx lr
+_02015D78:
+ mov r0, #0x6e
+ lsl r0, r0, #0x2
+ bx lr
+_02015D7E:
+ mov r0, #0x6d
+ lsl r0, r0, #0x2
+ bx lr
+ .balign 4
+_02015D84: .word 0x000001B5
+
+ thumb_func_start FUN_02015D88
+FUN_02015D88: ; 0x02015D88
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r6, r3, #0x0
+ str r0, [sp, #0x0]
+ str r1, [sp, #0x4]
+ str r2, [sp, #0x8]
+ cmp r6, #0x1
+ beq _02015D9C
+ mov r2, #0x1
+ b _02015D9E
+_02015D9C:
+ mov r2, #0x0
+_02015D9E:
+ ldr r0, [sp, #0x8]
+ mov r4, #0x0
+ sub r0, r0, #0x1
+ str r0, [sp, #0xc]
+ beq _02015E18
+ ldr r1, _02015E28 ; =0x020ED734
+ lsl r0, r2, #0x1
+ ldr r5, [sp, #0x4]
+ add r7, r1, r0
+_02015DB0:
+ ldr r0, [sp, #0x0]
+ ldrb r0, [r0, r4]
+ cmp r0, #0xff
+ beq _02015E18
+ cmp r0, #0xf7
+ blo _02015DEA
+ ldr r0, [sp, #0x8]
+ sub r3, r0, #0x1
+ cmp r3, #0xa
+ blo _02015DC6
+ mov r3, #0xa
+_02015DC6:
+ mov r1, #0x0
+ cmp r3, #0x0
+ ble _02015DDC
+ mov r0, #0x6b
+ ldr r2, [sp, #0x4]
+ lsl r0, r0, #0x2
+_02015DD2:
+ add r1, r1, #0x1
+ strh r0, [r2, #0x0]
+ add r2, r2, #0x2
+ cmp r1, r3
+ blt _02015DD2
+_02015DDC:
+ ldr r0, [sp, #0x4]
+ ldr r2, _02015E2C ; =0x0000FFFF
+ lsl r1, r1, #0x1
+ strh r2, [r0, r1]
+ add sp, #0x10
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02015DEA:
+ lsl r0, r0, #0x2
+ ldrh r0, [r7, r0]
+ cmp r0, #0xea
+ beq _02015DF8
+ cmp r0, #0xeb
+ beq _02015E02
+ b _02015E0C
+_02015DF8:
+ add r0, r6, #0x0
+ bl FUN_02015D14
+ strh r0, [r5, #0x0]
+ b _02015E0E
+_02015E02:
+ add r0, r6, #0x0
+ bl FUN_02015D50
+ strh r0, [r5, #0x0]
+ b _02015E0E
+_02015E0C:
+ strh r0, [r5, #0x0]
+_02015E0E:
+ ldr r0, [sp, #0xc]
+ add r4, r4, #0x1
+ add r5, r5, #0x2
+ cmp r4, r0
+ blo _02015DB0
+_02015E18:
+ ldr r2, _02015E2C ; =0x0000FFFF
+ ldr r0, [sp, #0x4]
+ lsl r1, r4, #0x1
+ strh r2, [r0, r1]
+ mov r0, #0x1
+ add sp, #0x10
+ pop {r3-r7, pc}
+ nop
+_02015E28: .word 0x020ED734
+_02015E2C: .word 0x0000FFFF
+
+ thumb_func_start FUN_02015E30
+FUN_02015E30: ; 0x02015E30
+ ldr r0, _02015E38 ; =0x021C4898
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+_02015E38: .word 0x021C4898
+
+ thumb_func_start FUN_02015E3C
+FUN_02015E3C: ; 0x02015E3C
+ push {r3, lr}
+ ldr r1, _02015E5C ; =0x021C4898
+ mov r2, #0x1
+ str r2, [r1, #0x0]
+ mov r2, #0x0
+ str r2, [r1, #0x10]
+ str r2, [r1, #0x14]
+ str r2, [r1, #0x8]
+ str r2, [r1, #0xc]
+ str r0, [r1, #0x4]
+ bl FUN_02020BF4
+ ldr r2, _02015E5C ; =0x021C4898
+ str r0, [r2, #0x18]
+ str r1, [r2, #0x1c]
+ pop {r3, pc}
+ .balign 4
+_02015E5C: .word 0x021C4898
+
+ thumb_func_start FUN_02015E60
+FUN_02015E60: ; 0x02015E60
+ push {r3-r5, lr}
+ ldr r0, _02015E9C ; =0x021C4898
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02015E9A
+ bl FUN_02020BF4
+ ldr r2, _02015E9C ; =0x021C4898
+ ldr r3, [r2, #0x18]
+ ldr r2, [r2, #0x1c]
+ sub r0, r0, r3
+ sbc r1, r2
+ bl FUN_02020C14
+ add r5, r1, #0x0
+ ldr r1, _02015E9C ; =0x021C4898
+ add r4, r0, #0x0
+ ldr r3, [r1, #0x8]
+ ldr r2, [r1, #0xc]
+ sub r0, r3, r4
+ sbc r2, r5
+ bhs _02015E9A
+ ldr r0, [r1, #0x4]
+ sub r1, r4, r3
+ bl FUN_02029E54
+ ldr r0, _02015E9C ; =0x021C4898
+ str r4, [r0, #0x8]
+ str r5, [r0, #0xc]
+_02015E9A:
+ pop {r3-r5, pc}
+ .balign 4
+_02015E9C: .word 0x021C4898
+
+ thumb_func_start FUN_02015EA0
+FUN_02015EA0: ; 0x02015EA0
+ push {r3, lr}
+ ldr r3, _02015EC8 ; =0x027E0000
+ ldr r1, _02015ECC ; =0x00003FF8
+ mov r0, #0x1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ mov r0, #0x3
+ bl MI_WaitDma
+ ldr r0, _02015ED0 ; =0x021C48B8
+ ldr r0, [r0, #0x1c]
+ bl FUN_0201B5CC
+ ldr r0, _02015ED0 ; =0x021C48B8
+ ldr r1, [r0, #0x30]
+ add r1, r1, #0x1
+ str r1, [r0, #0x30]
+ pop {r3, pc}
+ nop
+_02015EC8: .word 0x027E0000
+_02015ECC: .word 0x00003FF8
+_02015ED0: .word 0x021C48B8
+
+ thumb_func_start FUN_02015ED4
+FUN_02015ED4: ; 0x02015ED4
+ ldr r3, _02015EE8 ; =0x027E0000
+ ldr r1, _02015EEC ; =0x00003FF8
+ mov r0, #0x1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ ldr r3, _02015EF0 ; =MI_WaitDma
+ mov r0, #0x3
+ bx r3
+ nop
+_02015EE8: .word 0x027E0000
+_02015EEC: .word 0x00003FF8
+_02015EF0: .word MI_WaitDma
+
+ thumb_func_start FUN_02015EF4
+FUN_02015EF4: ; 0x02015EF4
+ push {r3, lr}
+ mov r0, #0x1
+ bl OS_DisableIrqMask
+ ldr r1, _02015F0C ; =FUN_02015ED4
+ mov r0, #0x1
+ bl OS_SetIrqFunction
+ mov r0, #0x1
+ bl OS_EnableIrqMask
+ pop {r3, pc}
+ .balign 4
+_02015F0C: .word FUN_02015ED4
+
+ thumb_func_start FUN_02015F10
+FUN_02015F10: ; 0x02015F10
+ ldr r2, _02015F18 ; =0x021C48B8
+ str r0, [r2, #0x0]
+ str r1, [r2, #0x4]
+ bx lr
+ .balign 4
+_02015F18: .word 0x021C48B8
+
+ thumb_func_start FUN_02015F1C
+FUN_02015F1C: ; 0x02015F1C
+ push {r3, lr}
+ mov r0, #0x0
+ bl FUN_02015F80
+ ldr r0, _02015F30 ; =0x021C48B8
+ mov r1, #0x0
+ str r1, [r0, #0x8]
+ str r1, [r0, #0xc]
+ pop {r3, pc}
+ nop
+_02015F30: .word 0x021C48B8
+
+ thumb_func_start FUN_02015F34
+FUN_02015F34: ; 0x02015F34
+ push {r3, lr}
+ cmp r0, #0x0
+ bne _02015F4C
+ mov r0, #0x0
+ bl FUN_02015F80
+ ldr r0, _02015F68 ; =0x021C48B8
+ mov r1, #0x0
+ str r1, [r0, #0x8]
+ str r1, [r0, #0xc]
+ mov r0, #0x1
+ pop {r3, pc}
+_02015F4C:
+ ldr r2, _02015F68 ; =0x021C48B8
+ ldr r3, [r2, #0x8]
+ cmp r3, #0x0
+ bne _02015F62
+ str r1, [r2, #0xc]
+ str r0, [r2, #0x8]
+ mov r0, #0x1
+ bl FUN_02015F80
+ mov r0, #0x1
+ pop {r3, pc}
+_02015F62:
+ mov r0, #0x0
+ pop {r3, pc}
+ nop
+_02015F68: .word 0x021C48B8
+
+ thumb_func_start FUN_02015F6C
+FUN_02015F6C: ; 0x02015F6C
+ push {r3, lr}
+ ldr r0, _02015F7C ; =0x021C48B8
+ ldr r1, [r0, #0x8]
+ cmp r1, #0x0
+ beq _02015F7A
+ ldr r0, [r0, #0xc]
+ blx r1
+_02015F7A:
+ pop {r3, pc}
+ .balign 4
+_02015F7C: .word 0x021C48B8
+
+ thumb_func_start FUN_02015F80
+FUN_02015F80: ; 0x02015F80
+ push {r3, lr}
+ ldr r2, _02015FC0 ; =0x04000208
+ ldrh r1, [r2, #0x0]
+ mov r1, #0x0
+ strh r1, [r2, #0x0]
+ cmp r0, #0x0
+ bne _02015F9E
+ ldr r0, [r2, #0x8]
+ mov r0, #0x2
+ bl OS_DisableIrqMask
+ mov r0, #0x0
+ bl GX_HBlankIntr
+ b _02015FB4
+_02015F9E:
+ ldr r0, [r2, #0x8]
+ ldr r1, _02015FC4 ; =FUN_02015F6C
+ mov r0, #0x2
+ bl OS_SetIrqFunction
+ mov r0, #0x2
+ bl OS_EnableIrqMask
+ mov r0, #0x1
+ bl GX_HBlankIntr
+_02015FB4:
+ ldr r1, _02015FC0 ; =0x04000208
+ ldrh r0, [r1, #0x0]
+ mov r0, #0x1
+ strh r0, [r1, #0x0]
+ pop {r3, pc}
+ nop
+_02015FC0: .word 0x04000208
+_02015FC4: .word FUN_02015F6C
+
+ thumb_func_start FUN_02015FC8
+FUN_02015FC8: ; 0x02015FC8
+ push {r3, lr}
+ sub sp, #0x30
+ add r0, sp, #0x10
+ bl OS_GetLowEntropyData
+ add r0, sp, #0x0
+ add r1, sp, #0x10
+ mov r2, #0x20
+ bl MATH_CalcMD5
+ mov r3, #0x0
+ add r1, r3, #0x0
+ add r2, sp, #0x0
+_02015FE2:
+ ldrb r0, [r2, #0x0]
+ add r1, r1, #0x1
+ add r2, r2, #0x1
+ add r3, r3, r0
+ cmp r1, #0x10
+ blo _02015FE2
+ lsl r0, r3, #0x18
+ lsr r3, r0, #0x18
+ mov r0, #0x3
+ tst r0, r3
+ beq _02016002
+ mov r0, #0x3
+_02015FFA:
+ add r3, r3, #0x1
+ add r1, r3, #0x0
+ tst r1, r0
+ bne _02015FFA
+_02016002:
+ ldr r0, _02016010 ; =0x020EDB10
+ mov r1, #0x4
+ mov r2, #0x5c
+ bl FUN_020166C8
+ add sp, #0x30
+ pop {r3, pc}
+ .balign 4
+_02016010: .word 0x020EDB10
+
+ thumb_func_start InitSystemForTheGame
+InitSystemForTheGame: ; 0x02016014
+ push {r3-r5, lr}
+ bl OS_Init
+ bl FX_Init
+ ldr r2, _02016124 ; =0x04000304
+ ldr r0, _02016128 ; =0xFFFFFDF1
+ ldrh r1, [r2, #0x0]
+ and r1, r0
+ ldr r0, _0201612C ; =0x0000020E
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ bl GX_Init
+ bl OS_InitTick
+ bl FUN_02015FC8
+ mov r0, #0xa0
+ bl FUN_0201B578
+ add r1, r0, #0x0
+ mov r0, #0x0
+ mov r2, #0x4
+ bl OS_AllocFromArenaLo
+ add r1, r0, #0x0
+ mov r0, #0xa0
+ bl FUN_0201B580
+ ldr r1, _02016130 ; =0x021C48B8
+ str r0, [r1, #0x18]
+ mov r0, #0x10
+ bl FUN_0201B578
+ add r1, r0, #0x0
+ mov r0, #0x0
+ mov r2, #0x4
+ bl OS_AllocFromArenaLo
+ add r1, r0, #0x0
+ mov r0, #0x10
+ bl FUN_0201B580
+ ldr r1, _02016130 ; =0x021C48B8
+ str r0, [r1, #0x1c]
+ mov r0, #0x20
+ bl FUN_0201B578
+ add r1, r0, #0x0
+ mov r0, #0x0
+ mov r2, #0x4
+ bl OS_AllocFromArenaLo
+ add r1, r0, #0x0
+ mov r0, #0x20
+ bl FUN_0201B580
+ ldr r1, _02016130 ; =0x021C48B8
+ str r0, [r1, #0x20]
+ mov r0, #0x4
+ bl FUN_0201B578
+ add r1, r0, #0x0
+ mov r0, #0x0
+ mov r2, #0x4
+ bl OS_AllocFromArenaLo
+ add r1, r0, #0x0
+ mov r0, #0x4
+ bl FUN_0201B580
+ ldr r1, _02016130 ; =0x021C48B8
+ str r0, [r1, #0x24]
+ bl GX_DispOff
+ ldr r2, _02016134 ; =0x04001000
+ ldr r0, _02016138 ; =0xFFFEFFFF
+ ldr r1, [r2, #0x0]
+ and r0, r1
+ str r0, [r2, #0x0]
+ ldr r2, _02016124 ; =0x04000304
+ ldrh r1, [r2, #0x0]
+ lsr r0, r2, #0xb
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ ldr r1, _0201613C ; =FUN_02015EA0
+ mov r0, #0x1
+ bl OS_SetIrqFunction
+ mov r0, #0x1
+ bl OS_EnableIrqMask
+ mov r0, #0x1
+ lsl r0, r0, #0x12
+ bl OS_EnableIrqMask
+ ldr r1, _02016140 ; =0x04000208
+ ldrh r0, [r1, #0x0]
+ mov r0, #0x1
+ strh r0, [r1, #0x0]
+ bl GX_VBlankIntr
+ mov r0, #0x1
+ bl FS_Init
+ bl FUN_02022450
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FS_TryLoadTable
+ add r4, r0, #0x0
+ mov r0, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x4
+ bl OS_AllocFromArenaLo
+ add r5, r0, #0x0
+ bne _02016108
+ bl ErrorHandling
+_02016108:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FS_TryLoadTable
+ ldr r0, _02016130 ; =0x021C48B8
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ str r1, [r0, #0x8]
+ str r1, [r0, #0x10]
+ str r1, [r0, #0x14]
+ str r1, [r0, #0x2c]
+ ldr r0, _02016144 ; =0x021C4918
+ strb r1, [r0, #0x5]
+ pop {r3-r5, pc}
+ .balign 4
+_02016124: .word 0x04000304
+_02016128: .word 0xFFFFFDF1
+_0201612C: .word 0x0000020E
+_02016130: .word 0x021C48B8
+_02016134: .word 0x04001000
+_02016138: .word 0xFFFEFFFF
+_0201613C: .word FUN_02015EA0
+_02016140: .word 0x04000208
+_02016144: .word 0x021C4918
+
+ thumb_func_start InitGraphicMemory
+InitGraphicMemory: ; 0x02016148
+ push {r3, lr}
+ ldr r0, _02016198 ; =0x000001FF
+ bl GX_SetBankForLCDC
+ mov r1, #0x1a
+ mov r2, #0x29
+ mov r0, #0x0
+ lsl r1, r1, #0x16
+ lsl r2, r2, #0xe
+ bl MIi_CpuClearFast
+ bl GX_DisableBankForLCDC
+ mov r1, #0x7
+ mov r2, #0x1
+ mov r0, #0xc0
+ lsl r1, r1, #0x18
+ lsl r2, r2, #0xa
+ bl MIi_CpuClearFast
+ mov r2, #0x1
+ ldr r1, _0201619C ; =0x07000400
+ mov r0, #0xc0
+ lsl r2, r2, #0xa
+ bl MIi_CpuClearFast
+ mov r1, #0x5
+ mov r2, #0x1
+ mov r0, #0x0
+ lsl r1, r1, #0x18
+ lsl r2, r2, #0xa
+ bl MIi_CpuClearFast
+ mov r2, #0x1
+ ldr r1, _020161A0 ; =0x05000400
+ mov r0, #0x0
+ lsl r2, r2, #0xa
+ bl MIi_CpuClearFast
+ pop {r3, pc}
+ .balign 4
+_02016198: .word 0x000001FF
+_0201619C: .word 0x07000400
+_020161A0: .word 0x05000400
+
+ thumb_func_start FUN_020161A4
+FUN_020161A4: ; 0x020161A4
+ push {r4-r6, lr}
+ sub sp, #0x48
+ add r6, r0, #0x0
+ add r4, r1, #0x0
+ add r0, sp, #0x0
+ bl FS_InitFile
+ add r0, sp, #0x0
+ add r1, r4, #0x0
+ bl FS_OpenFile
+ cmp r0, #0x0
+ beq _020161F0
+ ldr r1, [sp, #0x28]
+ ldr r0, [sp, #0x24]
+ sub r5, r1, r0
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_02016998
+ add r4, r0, #0x0
+ beq _020161E8
+ add r0, sp, #0x0
+ add r1, r4, #0x0
+ add r2, r5, #0x0
+ bl FS_ReadFile
+ cmp r5, r0
+ beq _020161E8
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_02016A8C
+ mov r4, #0x0
+_020161E8:
+ add r0, sp, #0x0
+ bl FS_CloseFile
+ b _020161F2
+_020161F0:
+ mov r4, #0x0
+_020161F2:
+ add r0, r4, #0x0
+ add sp, #0x48
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020161F8
+FUN_020161F8: ; 0x020161F8
+ push {r3-r5, lr}
+ sub sp, #0x48
+ add r5, r0, #0x0
+ add r0, sp, #0x0
+ add r4, r1, #0x0
+ bl FS_InitFile
+ add r0, sp, #0x0
+ add r1, r5, #0x0
+ bl FS_OpenFile
+ cmp r0, #0x0
+ beq _0201622A
+ ldr r1, [sp, #0x28]
+ ldr r0, [sp, #0x24]
+ sub r2, r1, r0
+ ldr r1, [r4, #0x0]
+ cmp r1, #0x0
+ beq _02016224
+ add r0, sp, #0x0
+ bl FS_ReadFile
+_02016224:
+ add r0, sp, #0x0
+ bl FS_CloseFile
+_0201622A:
+ add sp, #0x48
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02016230
+FUN_02016230: ; 0x02016230
+ push {r3-r7, lr}
+ sub sp, #0x8
+ str r0, [sp, #0x0]
+ bl strlen
+ lsl r0, r0, #0x10
+ lsr r3, r0, #0x10
+ lsr r2, r3, #0x1f
+ lsl r1, r3, #0x1e
+ sub r1, r1, r2
+ mov r0, #0x1e
+ ror r1, r0
+ add r0, r2, r1
+ beq _02016258
+ lsr r0, r3, #0x2
+ add r0, r0, #0x1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x4]
+ b _0201625E
+_02016258:
+ lsl r0, r3, #0xe
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x4]
+_0201625E:
+ ldr r0, [sp, #0x4]
+ mov r7, #0x0
+ mov r12, r7
+ cmp r0, #0x0
+ ble _0201629A
+ add r6, r7, #0x0
+ add r4, r7, #0x0
+_0201626C:
+ ldr r2, [sp, #0x0]
+ mov r1, #0x0
+ add r0, r1, #0x0
+ add r2, r2, r6
+ add r3, r1, #0x0
+_02016276:
+ ldrsb r5, [r2, r4]
+ cmp r5, #0x0
+ beq _0201628A
+ lsl r5, r3
+ add r0, r0, #0x1
+ orr r1, r5
+ add r2, r2, #0x1
+ add r3, #0x8
+ cmp r0, #0x4
+ blt _02016276
+_0201628A:
+ mov r0, r12
+ eor r7, r1
+ add r1, r0, #0x1
+ ldr r0, [sp, #0x4]
+ add r6, r6, #0x4
+ mov r12, r1
+ cmp r1, r0
+ blt _0201626C
+_0201629A:
+ add r0, r7, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020162A0
+FUN_020162A0: ; 0x020162A0
+ ldr r3, _020162C4 ; =0x021C4928
+ mov r2, #0x0
+_020162A4:
+ ldr r1, [r3, #0x4]
+ cmp r0, r1
+ bne _020162B4
+ ldr r1, [r3, #0x0]
+ cmp r1, #0x0
+ beq _020162B4
+ add r0, r2, #0x0
+ bx lr
+_020162B4:
+ add r2, r2, #0x1
+ add r3, #0x8
+ cmp r2, #0x80
+ blt _020162A4
+ mov r0, #0x0
+ mvn r0, r0
+ bx lr
+ nop
+_020162C4: .word 0x021C4928
+
+ thumb_func_start FUN_020162C8
+FUN_020162C8: ; 0x020162C8
+ push {r3-r4}
+ ldr r3, _020162F4 ; =0x021C4928
+ mov r4, #0x0
+_020162CE:
+ ldr r2, [r3, #0x0]
+ cmp r2, #0x0
+ bne _020162E4
+ ldr r2, _020162F4 ; =0x021C4928
+ lsl r3, r4, #0x3
+ str r0, [r2, r3]
+ ldr r0, _020162F8 ; =0x021C492C
+ str r1, [r0, r3]
+ add r0, r4, #0x0
+ pop {r3-r4}
+ bx lr
+_020162E4:
+ add r4, r4, #0x1
+ add r3, #0x8
+ cmp r4, #0x80
+ blt _020162CE
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r4}
+ bx lr
+ .balign 4
+_020162F4: .word 0x021C4928
+_020162F8: .word 0x021C492C
+
+ thumb_func_start FUN_020162FC
+FUN_020162FC: ; 0x020162FC
+ push {r3-r7, lr}
+ mov r6, #0x0
+ ldr r5, _02016320 ; =0x021C4D20
+ mov r4, #0x7f
+ sub r7, r6, #0x1
+_02016306:
+ ldr r0, [r5, #0x0]
+ cmp r0, #0x0
+ beq _02016314
+ bl FUN_02016A18
+ str r6, [r5, #0x0]
+ str r6, [r5, #0x4]
+_02016314:
+ sub r4, r4, #0x1
+ sub r5, #0x8
+ cmp r4, r7
+ bgt _02016306
+ pop {r3-r7, pc}
+ nop
+_02016320: .word 0x021C4D20
+
+ thumb_func_start FUN_02016324
+FUN_02016324: ; 0x02016324
+ push {r3-r7, lr}
+ sub sp, #0x68
+ add r2, r0, #0x0
+ mov r5, #0x0
+ ldrsb r0, [r2, r5]
+ add r4, r1, #0x0
+ cmp r0, #0x21
+ add r0, sp, #0x0
+ bne _02016340
+ add r1, r2, #0x1
+ bl strcpy
+ mov r5, #0x1
+ b _02016346
+_02016340:
+ add r1, r2, #0x0
+ bl strcpy
+_02016346:
+ add r0, sp, #0x0
+ bl FUN_02016230
+ add r7, r0, #0x0
+ bl FUN_020162A0
+ cmp r0, #0x0
+ blt _02016362
+ cmp r5, #0x0
+ bne _02016362
+ lsl r1, r0, #0x3
+ ldr r0, _020163B8 ; =0x021C4928
+ ldr r4, [r0, r1]
+ b _020163B2
+_02016362:
+ add r0, sp, #0x20
+ bl FS_InitFile
+ add r0, sp, #0x20
+ add r1, sp, #0x0
+ bl FS_OpenFile
+ cmp r0, #0x0
+ beq _020163B0
+ ldr r1, [sp, #0x48]
+ ldr r0, [sp, #0x44]
+ sub r6, r1, r0
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ bl FUN_02016998
+ add r4, r0, #0x0
+ beq _0201639C
+ add r0, sp, #0x20
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FS_ReadFile
+ cmp r6, r0
+ beq _0201639C
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r4, #0x0
+_0201639C:
+ add r0, sp, #0x20
+ bl FS_CloseFile
+ cmp r5, #0x0
+ bne _020163B2
+ add r0, r4, #0x0
+ add r1, r7, #0x0
+ bl FUN_020162C8
+ b _020163B2
+_020163B0:
+ mov r4, #0x0
+_020163B2:
+ add r0, r4, #0x0
+ add sp, #0x68
+ pop {r3-r7, pc}
+ .balign 4
+_020163B8: .word 0x021C4928
+
+ thumb_func_start FUN_020163BC
+FUN_020163BC: ; 0x020163BC
+ push {r3, lr}
+ sub sp, #0x8
+ ldr r0, _0201641C ; =0x021C48B8
+ mov r2, #0x0
+ str r2, [r0, #0x34]
+ str r2, [r0, #0x38]
+ str r2, [r0, #0x3c]
+ str r2, [r0, #0x40]
+ str r2, [r0, #0x44]
+ str r2, [r0, #0x48]
+ str r2, [r0, #0x4c]
+ str r2, [r0, #0x50]
+ mov r1, #0x8
+ str r1, [r0, #0x54]
+ mov r1, #0xf
+ str r1, [r0, #0x58]
+ ldr r0, _02016420 ; =0x021C48F8
+ strh r2, [r0, #0x1c]
+ strh r2, [r0, #0x1e]
+ strh r2, [r0, #0x20]
+ strh r2, [r0, #0x22]
+ ldr r0, _02016424 ; =0x021C4918
+ strb r2, [r0, #0x4]
+ bl TP_Init
+ add r0, sp, #0x0
+ bl TP_GetUserInfo
+ cmp r0, #0x1
+ add r0, sp, #0x0
+ bne _02016402
+ bl TP_SetCalibrateParam
+ add sp, #0x8
+ pop {r3, pc}
+_02016402:
+ ldr r1, _02016428 ; =0x000002AE
+ strh r1, [r0, #0x0]
+ ldr r1, _0201642C ; =0x0000058C
+ strh r1, [r0, #0x2]
+ ldr r1, _02016430 ; =0x00000E25
+ strh r1, [r0, #0x4]
+ ldr r1, _02016434 ; =0x00001208
+ strh r1, [r0, #0x6]
+ add r0, sp, #0x0
+ bl TP_SetCalibrateParam
+ add sp, #0x8
+ pop {r3, pc}
+ .balign 4
+_0201641C: .word 0x021C48B8
+_02016420: .word 0x021C48F8
+_02016424: .word 0x021C4918
+_02016428: .word 0x000002AE
+_0201642C: .word 0x0000058C
+_02016430: .word 0x00000E25
+_02016434: .word 0x00001208
+
+ thumb_func_start FUN_02016438
+FUN_02016438: ; 0x02016438
+ ldr r1, _02016440 ; =0x021C4918
+ strb r0, [r1, #0x6]
+ bx lr
+ nop
+_02016440: .word 0x021C4918
+
+ thumb_func_start FUN_02016444
+FUN_02016444: ; 0x02016444
+ ldr r1, _02016450 ; =0x021C4918
+ ldrb r2, [r1, #0x7]
+ orr r0, r2
+ strb r0, [r1, #0x7]
+ bx lr
+ nop
+_02016450: .word 0x021C4918
+
+ thumb_func_start FUN_02016454
+FUN_02016454: ; 0x02016454
+ ldr r1, _02016460 ; =0x021C4918
+ mvn r0, r0
+ ldrb r2, [r1, #0x7]
+ and r0, r2
+ strb r0, [r1, #0x7]
+ bx lr
+ .balign 4
+_02016460: .word 0x021C4918
+
+ thumb_func_start FUN_02016464
+FUN_02016464: ; 0x02016464
+ push {r4, lr}
+ sub sp, #0x10
+ ldr r2, _02016550 ; =0x027FFFA8
+ mov r0, #0x2
+ ldrh r1, [r2, #0x0]
+ lsl r0, r0, #0xe
+ and r0, r1
+ asr r0, r0, #0xf
+ beq _0201648A
+ ldr r0, _02016554 ; =0x021C48B8
+ mov r1, #0x0
+ str r1, [r0, #0x48]
+ str r1, [r0, #0x44]
+ str r1, [r0, #0x4c]
+ ldr r0, _02016558 ; =0x021C48F8
+ add sp, #0x10
+ strh r1, [r0, #0x20]
+ strh r1, [r0, #0x22]
+ pop {r4, pc}
+_0201648A:
+ ldr r0, _0201655C ; =0x04000130
+ ldrh r1, [r0, #0x0]
+ ldrh r0, [r2, #0x0]
+ orr r1, r0
+ ldr r0, _02016560 ; =0x00002FFF
+ eor r1, r0
+ and r0, r1
+ ldr r1, _02016554 ; =0x021C48B8
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ ldr r2, [r1, #0x38]
+ add r3, r0, #0x0
+ eor r3, r2
+ and r3, r0
+ str r3, [r1, #0x3c]
+ str r3, [r1, #0x40]
+ cmp r0, #0x0
+ beq _020164C2
+ cmp r2, r0
+ bne _020164C2
+ ldr r2, [r1, #0x50]
+ sub r2, r2, #0x1
+ str r2, [r1, #0x50]
+ bne _020164C8
+ str r0, [r1, #0x40]
+ ldr r2, [r1, #0x54]
+ str r2, [r1, #0x50]
+ b _020164C8
+_020164C2:
+ ldr r1, _02016554 ; =0x021C48B8
+ ldr r2, [r1, #0x58]
+ str r2, [r1, #0x50]
+_020164C8:
+ ldr r1, _02016554 ; =0x021C48B8
+ str r0, [r1, #0x38]
+ ldr r2, [r1, #0x3c]
+ str r2, [r1, #0x48]
+ str r0, [r1, #0x44]
+ ldr r0, [r1, #0x40]
+ str r0, [r1, #0x4c]
+ bl FUN_02016568
+ ldr r0, _02016564 ; =0x021C4918
+ ldrb r0, [r0, #0x4]
+ cmp r0, #0x0
+ bne _020164F4
+ add r4, sp, #0x8
+_020164E4:
+ bl TP_RequestSamplingAsync
+ add r0, r4, #0x0
+ bl TP_WaitRawResult
+ cmp r0, #0x0
+ bne _020164E4
+ b _020164FA
+_020164F4:
+ add r0, sp, #0x8
+ bl TP_GetLatestRawPointInAuto
+_020164FA:
+ add r0, sp, #0x0
+ add r1, sp, #0x8
+ bl TP_GetCalibratedPoint
+ add r1, sp, #0x0
+ ldrh r3, [r1, #0x6]
+ cmp r3, #0x0
+ bne _02016516
+ ldrh r2, [r1, #0x0]
+ ldr r0, _02016558 ; =0x021C48F8
+ strh r2, [r0, #0x1c]
+ ldrh r1, [r1, #0x2]
+ strh r1, [r0, #0x1e]
+ b _0201653A
+_02016516:
+ ldr r0, _02016558 ; =0x021C48F8
+ ldrh r2, [r0, #0x22]
+ cmp r2, #0x0
+ beq _02016536
+ cmp r3, #0x1
+ beq _0201652A
+ cmp r3, #0x2
+ beq _02016530
+ cmp r3, #0x3
+ b _0201653A
+_0201652A:
+ ldrh r1, [r1, #0x2]
+ strh r1, [r0, #0x1e]
+ b _0201653A
+_02016530:
+ ldrh r1, [r1, #0x0]
+ strh r1, [r0, #0x1c]
+ b _0201653A
+_02016536:
+ mov r0, #0x0
+ strh r0, [r1, #0x4]
+_0201653A:
+ add r0, sp, #0x0
+ ldrh r2, [r0, #0x4]
+ ldr r0, _02016558 ; =0x021C48F8
+ ldrh r1, [r0, #0x22]
+ eor r1, r2
+ and r1, r2
+ strh r1, [r0, #0x20]
+ strh r2, [r0, #0x22]
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_02016550: .word 0x027FFFA8
+_02016554: .word 0x021C48B8
+_02016558: .word 0x021C48F8
+_0201655C: .word 0x04000130
+_02016560: .word 0x00002FFF
+_02016564: .word 0x021C4918
+
+ thumb_func_start FUN_02016568
+FUN_02016568: ; 0x02016568
+ ldr r0, _02016690 ; =0x021C48B8
+ ldr r1, [r0, #0x34]
+ cmp r1, #0x3
+ bls _02016572
+ b _0201668C
+_02016572:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0201657E: ; jump table (using 16-bit offset)
+ .short _0201668C - _0201657E - 2; case 0
+ .short _02016586 - _0201657E - 2; case 1
+ .short _020165BC - _0201657E - 2; case 2
+ .short _02016642 - _0201657E - 2; case 3
+_02016586:
+ ldr r2, [r0, #0x48]
+ mov r1, #0x8
+ add r3, r2, #0x0
+ tst r3, r1
+ beq _02016596
+ lsl r1, r1, #0x7
+ orr r1, r2
+ str r1, [r0, #0x48]
+_02016596:
+ ldr r1, _02016690 ; =0x021C48B8
+ mov r0, #0x8
+ ldr r2, [r1, #0x44]
+ add r3, r2, #0x0
+ tst r3, r0
+ beq _020165A8
+ lsl r0, r0, #0x7
+ orr r0, r2
+ str r0, [r1, #0x44]
+_020165A8:
+ ldr r1, _02016690 ; =0x021C48B8
+ mov r0, #0x8
+ ldr r2, [r1, #0x4c]
+ add r3, r2, #0x0
+ tst r3, r0
+ beq _0201668C
+ lsl r0, r0, #0x7
+ orr r0, r2
+ str r0, [r1, #0x4c]
+ bx lr
+_020165BC:
+ ldr r3, [r0, #0x48]
+ mov r0, #0x1
+ lsl r0, r0, #0xa
+ add r2, r3, #0x0
+ mov r1, #0x0
+ tst r2, r0
+ beq _020165CE
+ lsl r0, r0, #0x1
+ orr r1, r0
+_020165CE:
+ mov r0, #0x2
+ lsl r0, r0, #0xa
+ add r2, r3, #0x0
+ tst r2, r0
+ beq _020165DC
+ lsr r0, r0, #0x1
+ orr r1, r0
+_020165DC:
+ ldr r2, _02016690 ; =0x021C48B8
+ ldr r0, _02016694 ; =0x0000F3FF
+ ldr r3, [r2, #0x48]
+ and r0, r3
+ orr r0, r1
+ str r0, [r2, #0x48]
+ ldr r3, [r2, #0x44]
+ mov r1, #0x1
+ lsl r1, r1, #0xa
+ add r2, r3, #0x0
+ mov r0, #0x0
+ tst r2, r1
+ beq _020165FA
+ lsl r1, r1, #0x1
+ orr r0, r1
+_020165FA:
+ mov r1, #0x2
+ lsl r1, r1, #0xa
+ add r2, r3, #0x0
+ tst r2, r1
+ beq _02016608
+ lsr r1, r1, #0x1
+ orr r0, r1
+_02016608:
+ ldr r2, _02016690 ; =0x021C48B8
+ ldr r1, _02016694 ; =0x0000F3FF
+ ldr r3, [r2, #0x44]
+ and r1, r3
+ orr r0, r1
+ str r0, [r2, #0x44]
+ ldr r3, [r2, #0x4c]
+ mov r1, #0x1
+ lsl r1, r1, #0xa
+ add r2, r3, #0x0
+ mov r0, #0x0
+ tst r2, r1
+ beq _02016626
+ lsl r1, r1, #0x1
+ orr r0, r1
+_02016626:
+ mov r1, #0x2
+ lsl r1, r1, #0xa
+ add r2, r3, #0x0
+ tst r2, r1
+ beq _02016634
+ lsr r1, r1, #0x1
+ orr r0, r1
+_02016634:
+ ldr r2, _02016690 ; =0x021C48B8
+ ldr r1, _02016694 ; =0x0000F3FF
+ ldr r3, [r2, #0x4c]
+ and r1, r3
+ orr r0, r1
+ str r0, [r2, #0x4c]
+ bx lr
+_02016642:
+ mov r1, #0x2
+ ldr r2, [r0, #0x48]
+ lsl r1, r1, #0x8
+ tst r1, r2
+ beq _02016652
+ mov r1, #0x1
+ orr r1, r2
+ str r1, [r0, #0x48]
+_02016652:
+ ldr r1, _02016690 ; =0x021C48B8
+ mov r0, #0x2
+ ldr r2, [r1, #0x44]
+ lsl r0, r0, #0x8
+ tst r0, r2
+ beq _02016664
+ mov r0, #0x1
+ orr r0, r2
+ str r0, [r1, #0x44]
+_02016664:
+ ldr r1, _02016690 ; =0x021C48B8
+ mov r0, #0x2
+ ldr r2, [r1, #0x4c]
+ lsl r0, r0, #0x8
+ tst r0, r2
+ beq _02016676
+ mov r0, #0x1
+ orr r0, r2
+ str r0, [r1, #0x4c]
+_02016676:
+ ldr r1, _02016690 ; =0x021C48B8
+ ldr r0, _02016698 ; =0x0000FCFF
+ ldr r2, [r1, #0x48]
+ and r2, r0
+ str r2, [r1, #0x48]
+ ldr r2, [r1, #0x44]
+ and r2, r0
+ str r2, [r1, #0x44]
+ ldr r2, [r1, #0x4c]
+ and r0, r2
+ str r0, [r1, #0x4c]
+_0201668C:
+ bx lr
+ nop
+_02016690: .word 0x021C48B8
+_02016694: .word 0x0000F3FF
+_02016698: .word 0x0000FCFF
+
+ thumb_func_start FUN_0201669C
+FUN_0201669C: ; 0x0201669C
+ ldr r2, _020166A4 ; =0x021C48B8
+ str r0, [r2, #0x54]
+ str r1, [r2, #0x58]
+ bx lr
+ .balign 4
+_020166A4: .word 0x021C48B8
+
+ thumb_func_start FUN_020166A8
+FUN_020166A8: ; 0x020166A8
+ ldr r1, _020166B4 ; =0x021C4918
+ ldrb r2, [r1, #0x8]
+ orr r0, r2
+ strb r0, [r1, #0x8]
+ bx lr
+ nop
+_020166B4: .word 0x021C4918
+
+ thumb_func_start FUN_020166B8
+FUN_020166B8: ; 0x020166B8
+ ldr r1, _020166C4 ; =0x021C4918
+ mvn r0, r0
+ ldrb r2, [r1, #0x8]
+ and r0, r2
+ strb r0, [r1, #0x8]
+ bx lr
+ .balign 4
+_020166C4: .word 0x021C4918
+
+ thumb_func_start FUN_020166C8
+FUN_020166C8: ; 0x020166C8
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ str r0, [sp, #0x4]
+ add r0, #0x18
+ add r6, r2, #0x0
+ str r0, [sp, #0x4]
+ cmp r6, r0
+ bhs _020166E0
+ add r6, r0, #0x0
+_020166E0:
+ cmp r3, #0x0
+ beq _020166FE
+ mov r0, #0x3
+ tst r0, r3
+ beq _020166F4
+ mov r0, #0x3
+_020166EC:
+ add r3, r3, #0x1
+ add r1, r3, #0x0
+ tst r1, r0
+ bne _020166EC
+_020166F4:
+ mov r0, #0x0
+ add r1, r3, #0x0
+ mov r2, #0x4
+ bl OS_AllocFromArenaLo
+_020166FE:
+ ldr r1, [sp, #0x4]
+ lsl r7, r6, #0x1
+ lsl r2, r1, #0x1
+ add r1, r1, r2
+ add r1, r1, #0x1
+ lsl r1, r1, #0x2
+ add r1, r7, r1
+ mov r0, #0x0
+ add r1, r6, r1
+ mov r2, #0x4
+ bl OS_AllocFromArenaLo
+ ldr r1, _020167F0 ; =0x021C4D28
+ str r0, [r1, #0x0]
+ ldr r1, [sp, #0x4]
+ add r1, r1, #0x1
+ lsl r1, r1, #0x2
+ add r1, r0, r1
+ ldr r0, _020167F0 ; =0x021C4D28
+ str r1, [r0, #0x4]
+ ldr r0, [sp, #0x4]
+ lsl r0, r0, #0x2
+ add r2, r1, r0
+ ldr r1, _020167F0 ; =0x021C4D28
+ str r2, [r1, #0x8]
+ add r1, r2, r0
+ ldr r0, _020167F0 ; =0x021C4D28
+ str r1, [r0, #0xc]
+ add r1, r1, r7
+ str r1, [r0, #0x10]
+ strh r6, [r0, #0x14]
+ strh r4, [r0, #0x16]
+ ldr r0, [sp, #0x4]
+ mov r7, #0x0
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ ldr r0, _020167F0 ; =0x021C4D28
+ cmp r4, #0x0
+ strh r1, [r0, #0x1a]
+ strh r1, [r0, #0x18]
+ bls _020167A0
+ str r7, [sp, #0x0]
+_02016752:
+ ldr r0, [r5, #0x4]
+ cmp r0, #0x0
+ beq _0201675C
+ cmp r0, #0x2
+ beq _02016768
+_0201675C:
+ ldr r1, [r5, #0x0]
+ mov r0, #0x0
+ mov r2, #0x4
+ bl OS_AllocFromArenaLo
+ b _02016772
+_02016768:
+ ldr r1, [r5, #0x0]
+ mov r0, #0x2
+ mov r2, #0x4
+ bl OS_AllocFromArenaHi
+_02016772:
+ cmp r0, #0x0
+ beq _0201678E
+ ldr r1, [r5, #0x0]
+ mov r2, #0x0
+ bl tempName_NNS_FndCreateExpHeapEx
+ ldr r1, _020167F0 ; =0x021C4D28
+ ldr r2, [r1, #0x0]
+ ldr r1, [sp, #0x0]
+ str r0, [r2, r1]
+ ldr r0, _020167F0 ; =0x021C4D28
+ ldr r0, [r0, #0x10]
+ strb r7, [r0, r7]
+ b _02016792
+_0201678E:
+ bl ErrorHandling
+_02016792:
+ ldr r0, [sp, #0x0]
+ add r7, r7, #0x1
+ add r0, r0, #0x4
+ add r5, #0x8
+ str r0, [sp, #0x0]
+ cmp r7, r4
+ blo _02016752
+_020167A0:
+ ldr r0, [sp, #0x4]
+ add r1, r0, #0x1
+ cmp r4, r1
+ bhs _020167C0
+ ldr r3, _020167F0 ; =0x021C4D28
+ lsl r2, r4, #0x2
+ mov r0, #0x0
+_020167AE:
+ ldr r5, [r3, #0x0]
+ str r0, [r5, r2]
+ ldrh r7, [r3, #0x1a]
+ ldr r5, [r3, #0x10]
+ add r2, r2, #0x4
+ strb r7, [r5, r4]
+ add r4, r4, #0x1
+ cmp r4, r1
+ blo _020167AE
+_020167C0:
+ cmp r4, r6
+ bhs _020167D2
+ ldr r0, _020167F0 ; =0x021C4D28
+_020167C6:
+ ldrh r2, [r0, #0x1a]
+ ldr r1, [r0, #0x10]
+ strb r2, [r1, r4]
+ add r4, r4, #0x1
+ cmp r4, r6
+ blo _020167C6
+_020167D2:
+ mov r4, #0x0
+ cmp r6, #0x0
+ bls _020167EA
+ ldr r0, _020167F0 ; =0x021C4D28
+ add r3, r4, #0x0
+ add r2, r4, #0x0
+_020167DE:
+ ldr r1, [r0, #0xc]
+ add r4, r4, #0x1
+ strh r2, [r1, r3]
+ add r3, r3, #0x2
+ cmp r4, r6
+ blo _020167DE
+_020167EA:
+ add sp, #0x8
+ pop {r3-r7, pc}
+ nop
+_020167F0: .word 0x021C4D28
+
+ thumb_func_start FUN_020167F4
+FUN_020167F4: ; 0x020167F4
+ ldr r1, _02016818 ; =0x021C4D28
+ ldrh r0, [r1, #0x16]
+ ldrh r3, [r1, #0x18]
+ cmp r0, r3
+ bge _02016812
+ ldr r2, [r1, #0x0]
+ lsl r1, r0, #0x2
+ add r2, r2, r1
+_02016804:
+ ldr r1, [r2, #0x0]
+ cmp r1, #0x0
+ beq _02016816
+ add r0, r0, #0x1
+ add r2, r2, #0x4
+ cmp r0, r3
+ blt _02016804
+_02016812:
+ mov r0, #0x0
+ mvn r0, r0
+_02016816:
+ bx lr
+ .balign 4
+_02016818: .word 0x021C4D28
+
+ thumb_func_start FUN_0201681C
+FUN_0201681C: ; 0x0201681C
+ push {r3, lr}
+ mov r3, #0x4
+ bl FUN_02016834
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02016828
+FUN_02016828: ; 0x02016828
+ push {r3, lr}
+ mov r3, #0x3
+ mvn r3, r3
+ bl FUN_02016834
+ pop {r3, pc}
+
+ thumb_func_start FUN_02016834
+FUN_02016834: ; 0x02016834
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ add r5, r1, #0x0
+ str r2, [sp, #0x0]
+ add r7, r3, #0x0
+ bl OS_GetProcMode
+ cmp r0, #0x12
+ bne _0201684C
+ bl ErrorHandling
+_0201684C:
+ ldr r1, _020168CC ; =0x021C4D28
+ ldr r0, [r1, #0x10]
+ ldrh r3, [r1, #0x1a]
+ ldrb r2, [r0, r5]
+ cmp r3, r2
+ bne _020168C2
+ ldrb r0, [r0, r4]
+ ldr r1, [r1, #0x0]
+ lsl r0, r0, #0x2
+ ldr r6, [r1, r0]
+ cmp r6, #0x0
+ beq _020168BC
+ ldr r1, [sp, #0x0]
+ add r0, r6, #0x0
+ add r2, r7, #0x0
+ bl tempName_NNS_FndAllocFromExpHeapEx
+ str r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _020168B6
+ bl FUN_020167F4
+ add r7, r0, #0x0
+ bmi _020168B0
+ ldr r0, [sp, #0x4]
+ ldr r1, [sp, #0x0]
+ mov r2, #0x0
+ lsl r4, r7, #0x2
+ bl tempName_NNS_FndCreateExpHeapEx
+ ldr r1, _020168CC ; =0x021C4D28
+ ldr r2, [r1, #0x0]
+ str r0, [r2, r4]
+ ldr r0, [r1, #0x0]
+ ldr r0, [r0, r4]
+ cmp r0, #0x0
+ beq _020168AA
+ ldr r0, [r1, #0x4]
+ str r6, [r0, r4]
+ ldr r0, [sp, #0x4]
+ ldr r2, [r1, #0x8]
+ add sp, #0x8
+ str r0, [r2, r4]
+ ldr r0, [r1, #0x10]
+ strb r7, [r0, r5]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_020168AA:
+ bl ErrorHandling
+ b _020168C6
+_020168B0:
+ bl ErrorHandling
+ b _020168C6
+_020168B6:
+ bl ErrorHandling
+ b _020168C6
+_020168BC:
+ bl ErrorHandling
+ b _020168C6
+_020168C2:
+ bl ErrorHandling
+_020168C6:
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_020168CC: .word 0x021C4D28
+
+ thumb_func_start FUN_020168D0
+FUN_020168D0: ; 0x020168D0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl OS_GetProcMode
+ cmp r0, #0x12
+ bne _020168E0
+ bl ErrorHandling
+_020168E0:
+ ldr r0, _02016940 ; =0x021C4D28
+ ldr r1, [r0, #0x0]
+ ldr r0, [r0, #0x10]
+ ldrb r0, [r0, r4]
+ lsl r0, r0, #0x2
+ ldr r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0201693E
+ bl thunk_FUN_020adc8c
+ ldr r1, _02016940 ; =0x021C4D28
+ ldr r0, [r1, #0x10]
+ ldrb r0, [r0, r4]
+ lsl r2, r0, #0x2
+ ldr r0, [r1, #0x4]
+ ldr r1, [r1, #0x8]
+ ldr r0, [r0, r2]
+ ldr r1, [r1, r2]
+ cmp r0, #0x0
+ beq _02016912
+ cmp r1, #0x0
+ beq _02016912
+ bl FUN_020ADDF0
+ b _02016916
+_02016912:
+ bl ErrorHandling
+_02016916:
+ ldr r1, _02016940 ; =0x021C4D28
+ mov r0, #0x0
+ ldr r2, [r1, #0x10]
+ ldr r3, [r1, #0x0]
+ ldrb r2, [r2, r4]
+ lsl r2, r2, #0x2
+ str r0, [r3, r2]
+ ldr r2, [r1, #0x10]
+ ldr r3, [r1, #0x4]
+ ldrb r2, [r2, r4]
+ lsl r2, r2, #0x2
+ str r0, [r3, r2]
+ ldr r2, [r1, #0x10]
+ ldr r3, [r1, #0x8]
+ ldrb r2, [r2, r4]
+ lsl r2, r2, #0x2
+ str r0, [r3, r2]
+ ldrh r2, [r1, #0x1a]
+ ldr r0, [r1, #0x10]
+ strb r2, [r0, r4]
+_0201693E:
+ pop {r4, pc}
+ .balign 4
+_02016940: .word 0x021C4D28
+
+ thumb_func_start FUN_02016944
+FUN_02016944: ; 0x02016944
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r7, r2, #0x0
+ add r6, r3, #0x0
+ cmp r5, #0x0
+ bne _02016956
+ bl ErrorHandling
+_02016956:
+ bl OS_DisableInterrupts
+ add r4, #0x10
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r7, #0x0
+ bl tempName_NNS_FndAllocFromExpHeapEx
+ add r4, r0, #0x0
+ ldr r0, [sp, #0x0]
+ bl OS_RestoreInterrupts
+ cmp r4, #0x0
+ beq _02016984
+ ldr r1, [r4, #0xc]
+ mov r0, #0xff
+ bic r1, r0
+ lsl r0, r6, #0x18
+ lsr r0, r0, #0x18
+ orr r0, r1
+ str r0, [r4, #0xc]
+ add r4, #0x10
+_02016984:
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02016988
+FUN_02016988: ; 0x02016988
+ push {r3, lr}
+ bl FUN_02031810
+ cmp r0, #0x0
+ beq _02016996
+ bl FUN_0208A9B8
+_02016996:
+ pop {r3, pc}
+
+ thumb_func_start FUN_02016998
+FUN_02016998: ; 0x02016998
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _020169D4 ; =0x021C4D28
+ mov r4, #0x0
+ ldrh r2, [r0, #0x14]
+ cmp r5, r2
+ bhs _020169BA
+ ldr r2, [r0, #0x0]
+ ldr r0, [r0, #0x10]
+ add r3, r5, #0x0
+ ldrb r0, [r0, r5]
+ lsl r0, r0, #0x2
+ ldr r0, [r2, r0]
+ mov r2, #0x4
+ bl FUN_02016944
+ add r4, r0, #0x0
+_020169BA:
+ cmp r4, #0x0
+ beq _020169CC
+ ldr r0, _020169D4 ; =0x021C4D28
+ lsl r1, r5, #0x1
+ ldr r2, [r0, #0xc]
+ ldrh r0, [r2, r1]
+ add r0, r0, #0x1
+ strh r0, [r2, r1]
+ b _020169D0
+_020169CC:
+ bl FUN_02016988
+_020169D0:
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_020169D4: .word 0x021C4D28
+
+ thumb_func_start FUN_020169D8
+FUN_020169D8: ; 0x020169D8
+ push {r3-r5, lr}
+ ldr r2, _02016A14 ; =0x021C4D28
+ add r5, r0, #0x0
+ ldrh r0, [r2, #0x14]
+ mov r4, #0x0
+ cmp r5, r0
+ bhs _020169FA
+ ldr r0, [r2, #0x0]
+ ldr r2, [r2, #0x10]
+ add r3, r5, #0x0
+ ldrb r2, [r2, r5]
+ lsl r2, r2, #0x2
+ ldr r0, [r0, r2]
+ sub r2, r4, #0x4
+ bl FUN_02016944
+ add r4, r0, #0x0
+_020169FA:
+ cmp r4, #0x0
+ beq _02016A0C
+ ldr r0, _02016A14 ; =0x021C4D28
+ lsl r1, r5, #0x1
+ ldr r2, [r0, #0xc]
+ ldrh r0, [r2, r1]
+ add r0, r0, #0x1
+ strh r0, [r2, r1]
+ b _02016A10
+_02016A0C:
+ bl FUN_02016988
+_02016A10:
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_02016A14: .word 0x021C4D28
+
+ thumb_func_start FUN_02016A18
+FUN_02016A18: ; 0x02016A18
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ sub r0, r6, #0x4
+ ldr r0, [r0, #0x0]
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ ldr r0, _02016A88 ; =0x021C4D28
+ ldrh r1, [r0, #0x14]
+ cmp r4, r1
+ bhs _02016A80
+ ldr r1, [r0, #0x0]
+ ldr r0, [r0, #0x10]
+ ldrb r0, [r0, r4]
+ lsl r0, r0, #0x2
+ ldr r7, [r1, r0]
+ cmp r7, #0x0
+ bne _02016A3E
+ bl ErrorHandling
+_02016A3E:
+ ldr r0, _02016A88 ; =0x021C4D28
+ lsl r5, r4, #0x1
+ ldr r0, [r0, #0xc]
+ ldrh r0, [r0, r5]
+ cmp r0, #0x0
+ bne _02016A50
+ add r0, r4, #0x0
+ bl FUN_02016B90
+_02016A50:
+ ldr r0, _02016A88 ; =0x021C4D28
+ ldr r0, [r0, #0xc]
+ ldrh r0, [r0, r5]
+ cmp r0, #0x0
+ bne _02016A5E
+ bl ErrorHandling
+_02016A5E:
+ ldr r0, _02016A88 ; =0x021C4D28
+ ldr r1, [r0, #0xc]
+ ldrh r0, [r1, r5]
+ sub r0, r0, #0x1
+ strh r0, [r1, r5]
+ bl OS_DisableInterrupts
+ sub r6, #0x10
+ add r4, r0, #0x0
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ bl FUN_020ADDF0
+ add r0, r4, #0x0
+ bl OS_RestoreInterrupts
+ pop {r3-r7, pc}
+_02016A80:
+ bl ErrorHandling
+ pop {r3-r7, pc}
+ nop
+_02016A88: .word 0x021C4D28
+
+ thumb_func_start FUN_02016A8C
+FUN_02016A8C: ; 0x02016A8C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl OS_GetProcMode
+ cmp r0, #0x12
+ bne _02016A9E
+ bl ErrorHandling
+_02016A9E:
+ ldr r0, _02016AF4 ; =0x021C4D28
+ ldrh r1, [r0, #0x14]
+ cmp r5, r1
+ bhs _02016AEE
+ ldr r1, [r0, #0x0]
+ ldr r0, [r0, #0x10]
+ ldrb r0, [r0, r5]
+ lsl r0, r0, #0x2
+ ldr r6, [r1, r0]
+ cmp r6, #0x0
+ bne _02016AB8
+ bl ErrorHandling
+_02016AB8:
+ sub r0, r4, #0x4
+ ldr r0, [r0, #0x0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, r5
+ beq _02016AC8
+ bl ErrorHandling
+_02016AC8:
+ sub r4, #0x10
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_020ADDF0
+ ldr r0, _02016AF4 ; =0x021C4D28
+ lsl r4, r5, #0x1
+ ldr r0, [r0, #0xc]
+ ldrh r0, [r0, r4]
+ cmp r0, #0x0
+ bne _02016AE2
+ bl ErrorHandling
+_02016AE2:
+ ldr r0, _02016AF4 ; =0x021C4D28
+ ldr r1, [r0, #0xc]
+ ldrh r0, [r1, r4]
+ sub r0, r0, #0x1
+ strh r0, [r1, r4]
+ pop {r4-r6, pc}
+_02016AEE:
+ bl ErrorHandling
+ pop {r4-r6, pc}
+ .balign 4
+_02016AF4: .word 0x021C4D28
+
+ thumb_func_start FUN_02016AF8
+FUN_02016AF8: ; 0x02016AF8
+ push {r3, lr}
+ ldr r1, _02016B1C ; =0x021C4D28
+ ldrh r2, [r1, #0x14]
+ cmp r0, r2
+ bhs _02016B12
+ ldr r2, [r1, #0x0]
+ ldr r1, [r1, #0x10]
+ ldrb r0, [r1, r0]
+ lsl r0, r0, #0x2
+ ldr r0, [r2, r0]
+ bl FUN_020ADDC8
+ pop {r3, pc}
+_02016B12:
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3, pc}
+ nop
+_02016B1C: .word 0x021C4D28
+
+ thumb_func_start FUN_02016B20
+FUN_02016B20: ; 0x02016B20
+ push {r4, lr}
+ ldr r4, _02016B40 ; =0x021C4D28
+ ldrh r3, [r4, #0x14]
+ cmp r1, r3
+ bhs _02016B3A
+ ldr r3, [r4, #0x0]
+ ldr r4, [r4, #0x10]
+ ldrb r1, [r4, r1]
+ lsl r1, r1, #0x2
+ ldr r1, [r3, r1]
+ bl FUN_020AE82C
+ pop {r4, pc}
+_02016B3A:
+ bl ErrorHandling
+ pop {r4, pc}
+ .balign 4
+_02016B40: .word 0x021C4D28
+
+ thumb_func_start FUN_02016B44
+FUN_02016B44: ; 0x02016B44
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl OS_GetProcMode
+ cmp r0, #0x12
+ bne _02016B56
+ bl ErrorHandling
+_02016B56:
+ add r0, r5, #0x0
+ sub r0, #0x10
+ bl FUN_020ADDC0
+ add r4, #0x10
+ cmp r0, r4
+ blo _02016B84
+ sub r2, r5, #0x4
+ ldr r0, _02016B8C ; =0x021C4D28
+ ldr r2, [r2, #0x0]
+ ldr r1, [r0, #0x0]
+ lsl r2, r2, #0x18
+ ldr r0, [r0, #0x10]
+ lsr r2, r2, #0x18
+ ldrb r0, [r0, r2]
+ sub r5, #0x10
+ add r2, r4, #0x0
+ lsl r0, r0, #0x2
+ ldr r0, [r1, r0]
+ add r1, r5, #0x0
+ bl FUN_020ADE2C
+ pop {r3-r5, pc}
+_02016B84:
+ bl ErrorHandling
+ pop {r3-r5, pc}
+ nop
+_02016B8C: .word 0x021C4D28
+
+ thumb_func_start FUN_02016B90
+FUN_02016B90: ; 0x02016B90
+ mov r0, #0x1
+ bx lr
+
+ thumb_func_start FUN_02016B94
+FUN_02016B94: ; 0x02016B94
+ push {r3-r5, lr}
+ mov r1, #0x5a
+ lsl r1, r1, #0x2
+ add r5, r0, #0x0
+ bl FUN_02016998
+ mov r2, #0x5a
+ mov r1, #0x0
+ lsl r2, r2, #0x2
+ add r4, r0, #0x0
+ bl memset
+ str r5, [r4, #0x0]
+ mov r0, #0x0
+ strh r0, [r4, #0x4]
+ strh r0, [r4, #0x6]
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02016BB8
+FUN_02016BB8: ; 0x02016BB8
+ ldr r0, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02016BBC
+FUN_02016BBC: ; 0x02016BBC
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ ldr r1, [r4, #0x4]
+ ldr r2, [r4, #0xc]
+ bl GX_SetGraphicsMode
+ ldr r0, [r4, #0x8]
+ bl GXS_SetGraphicsMode
+ mov r2, #0x1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2, #0x0]
+ ldr r0, _02016BF0 ; =0xC7FFFFFF
+ and r1, r0
+ str r1, [r2, #0x0]
+ ldr r1, [r2, #0x0]
+ asr r0, r0, #0x3
+ and r0, r1
+ str r0, [r2, #0x0]
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ pop {r4, pc}
+ nop
+_02016BF0: .word 0xC7FFFFFF
+
+ thumb_func_start FUN_02016BF4
+FUN_02016BF4: ; 0x02016BF4
+ push {r3, lr}
+ add r2, r0, #0x0
+ cmp r1, #0x0
+ bne _02016C0C
+ ldr r0, [r2, #0x0]
+ ldr r1, [r2, #0x4]
+ ldr r2, [r2, #0xc]
+ bl GX_SetGraphicsMode
+ bl FUN_0201E6D8
+ pop {r3, pc}
+_02016C0C:
+ ldr r0, [r2, #0x8]
+ bl GXS_SetGraphicsMode
+ bl FUN_0201E740
+ pop {r3, pc}
+
+ thumb_func_start FUN_02016C18
+FUN_02016C18: ; 0x02016C18
+ push {r3-r7, lr}
+ sub sp, #0x18
+ str r1, [sp, #0x4]
+ str r3, [sp, #0x8]
+ add r4, r2, #0x0
+ str r0, [sp, #0x0]
+ ldrb r0, [r4, #0x10]
+ ldr r1, [sp, #0x8]
+ bl FUN_020177DC
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x7
+ bls _02016C36
+ b _0201705A
+_02016C36:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02016C42: ; jump table (using 16-bit offset)
+ .short _02016C52 - _02016C42 - 2; case 0
+ .short _02016CAA - _02016C42 - 2; case 1
+ .short _02016D02 - _02016C42 - 2; case 2
+ .short _02016DA4 - _02016C42 - 2; case 3
+ .short _02016E46 - _02016C42 - 2; case 4
+ .short _02016E9E - _02016C42 - 2; case 5
+ .short _02016EF6 - _02016C42 - 2; case 6
+ .short _02016F98 - _02016C42 - 2; case 7
+_02016C52:
+ mov r0, #0x1
+ add r1, r0, #0x0
+ bl FUN_0201E6E4
+ ldrb r3, [r4, #0x14]
+ ldrb r1, [r4, #0x12]
+ ldrb r0, [r4, #0x11]
+ ldrb r2, [r4, #0x13]
+ lsl r6, r3, #0xd
+ lsl r0, r0, #0x7
+ lsl r3, r2, #0x2
+ str r0, [sp, #0xc]
+ ldr r2, _02016FB4 ; =0x04000008
+ lsl r7, r1, #0x8
+ ldrh r1, [r2, #0x0]
+ mov r0, #0x43
+ and r0, r1
+ lsl r1, r5, #0xe
+ orr r1, r0
+ ldr r0, [sp, #0xc]
+ orr r0, r1
+ orr r0, r7
+ orr r0, r3
+ orr r0, r6
+ strh r0, [r2, #0x0]
+ ldrh r1, [r2, #0x0]
+ mov r0, #0x3
+ bic r1, r0
+ ldrb r0, [r4, #0x15]
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ ldr r0, [r4, #0x18]
+ cmp r0, #0x0
+ beq _02016CA0
+ ldrh r1, [r2, #0x0]
+ mov r0, #0x40
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ b _0201705A
+_02016CA0:
+ ldrh r1, [r2, #0x0]
+ mov r0, #0x40
+ bic r1, r0
+ strh r1, [r2, #0x0]
+ b _0201705A
+_02016CAA:
+ mov r0, #0x2
+ mov r1, #0x1
+ bl FUN_0201E6E4
+ ldrb r3, [r4, #0x14]
+ ldrb r1, [r4, #0x12]
+ ldrb r0, [r4, #0x11]
+ ldrb r2, [r4, #0x13]
+ lsl r6, r3, #0xd
+ lsl r0, r0, #0x7
+ lsl r3, r2, #0x2
+ str r0, [sp, #0x10]
+ ldr r2, _02016FB8 ; =0x0400000A
+ lsl r7, r1, #0x8
+ ldrh r1, [r2, #0x0]
+ mov r0, #0x43
+ and r0, r1
+ lsl r1, r5, #0xe
+ orr r1, r0
+ ldr r0, [sp, #0x10]
+ orr r0, r1
+ orr r0, r7
+ orr r0, r3
+ orr r0, r6
+ strh r0, [r2, #0x0]
+ ldrh r1, [r2, #0x0]
+ mov r0, #0x3
+ bic r1, r0
+ ldrb r0, [r4, #0x15]
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ ldr r0, [r4, #0x18]
+ cmp r0, #0x0
+ beq _02016CF8
+ ldrh r1, [r2, #0x0]
+ mov r0, #0x40
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ b _0201705A
+_02016CF8:
+ ldrh r1, [r2, #0x0]
+ mov r0, #0x40
+ bic r1, r0
+ strh r1, [r2, #0x0]
+ b _0201705A
+_02016D02:
+ mov r0, #0x4
+ mov r1, #0x1
+ bl FUN_0201E6E4
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x0
+ beq _02016D18
+ cmp r0, #0x1
+ beq _02016D3A
+ cmp r0, #0x2
+ beq _02016D5C
+_02016D18:
+ ldrb r1, [r4, #0x12]
+ ldr r7, _02016FBC ; =0x0400000C
+ ldrb r2, [r4, #0x13]
+ lsl r3, r1, #0x8
+ ldrb r0, [r4, #0x11]
+ lsl r6, r2, #0x2
+ ldrh r1, [r7, #0x0]
+ lsl r2, r0, #0x7
+ mov r0, #0x43
+ and r0, r1
+ lsl r1, r5, #0xe
+ orr r0, r1
+ orr r0, r2
+ orr r0, r3
+ orr r0, r6
+ strh r0, [r7, #0x0]
+ b _02016D7C
+_02016D3A:
+ ldrb r2, [r4, #0x13]
+ ldrb r1, [r4, #0x12]
+ ldrb r0, [r4, #0x16]
+ lsl r3, r2, #0x2
+ ldr r7, _02016FBC ; =0x0400000C
+ lsl r2, r1, #0x8
+ lsl r6, r0, #0xd
+ ldrh r1, [r7, #0x0]
+ mov r0, #0x43
+ and r0, r1
+ lsl r1, r5, #0xe
+ orr r0, r1
+ orr r0, r2
+ orr r0, r3
+ orr r0, r6
+ strh r0, [r7, #0x0]
+ b _02016D7C
+_02016D5C:
+ ldrb r1, [r4, #0x12]
+ ldr r7, _02016FBC ; =0x0400000C
+ ldrb r0, [r4, #0x16]
+ lsl r3, r1, #0x8
+ ldrb r2, [r4, #0x13]
+ lsl r6, r0, #0xd
+ ldrh r1, [r7, #0x0]
+ mov r0, #0x43
+ lsl r2, r2, #0x2
+ and r0, r1
+ lsl r1, r5, #0xe
+ orr r0, r1
+ orr r0, r2
+ orr r0, r3
+ orr r0, r6
+ strh r0, [r7, #0x0]
+_02016D7C:
+ ldr r0, _02016FBC ; =0x0400000C
+ mov r1, #0x3
+ ldrh r2, [r0, #0x0]
+ bic r2, r1
+ ldrb r1, [r4, #0x15]
+ orr r1, r2
+ strh r1, [r0, #0x0]
+ ldr r1, [r4, #0x18]
+ cmp r1, #0x0
+ beq _02016D9A
+ ldrh r2, [r0, #0x0]
+ mov r1, #0x40
+ orr r1, r2
+ strh r1, [r0, #0x0]
+ b _0201705A
+_02016D9A:
+ ldrh r2, [r0, #0x0]
+ mov r1, #0x40
+ bic r2, r1
+ strh r2, [r0, #0x0]
+ b _0201705A
+_02016DA4:
+ mov r0, #0x8
+ mov r1, #0x1
+ bl FUN_0201E6E4
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x0
+ beq _02016DBA
+ cmp r0, #0x1
+ beq _02016DDC
+ cmp r0, #0x2
+ beq _02016DFE
+_02016DBA:
+ ldrb r1, [r4, #0x12]
+ ldr r7, _02016FC0 ; =0x0400000E
+ ldrb r2, [r4, #0x13]
+ lsl r3, r1, #0x8
+ ldrb r0, [r4, #0x11]
+ lsl r6, r2, #0x2
+ ldrh r1, [r7, #0x0]
+ lsl r2, r0, #0x7
+ mov r0, #0x43
+ and r0, r1
+ lsl r1, r5, #0xe
+ orr r0, r1
+ orr r0, r2
+ orr r0, r3
+ orr r0, r6
+ strh r0, [r7, #0x0]
+ b _02016E1E
+_02016DDC:
+ ldrb r2, [r4, #0x13]
+ ldrb r1, [r4, #0x12]
+ ldrb r0, [r4, #0x16]
+ lsl r3, r2, #0x2
+ ldr r7, _02016FC0 ; =0x0400000E
+ lsl r2, r1, #0x8
+ lsl r6, r0, #0xd
+ ldrh r1, [r7, #0x0]
+ mov r0, #0x43
+ and r0, r1
+ lsl r1, r5, #0xe
+ orr r0, r1
+ orr r0, r2
+ orr r0, r3
+ orr r0, r6
+ strh r0, [r7, #0x0]
+ b _02016E1E
+_02016DFE:
+ ldrb r1, [r4, #0x12]
+ ldr r7, _02016FC0 ; =0x0400000E
+ ldrb r0, [r4, #0x16]
+ lsl r3, r1, #0x8
+ ldrb r2, [r4, #0x13]
+ lsl r6, r0, #0xd
+ ldrh r1, [r7, #0x0]
+ mov r0, #0x43
+ lsl r2, r2, #0x2
+ and r0, r1
+ lsl r1, r5, #0xe
+ orr r0, r1
+ orr r0, r2
+ orr r0, r3
+ orr r0, r6
+ strh r0, [r7, #0x0]
+_02016E1E:
+ ldr r0, _02016FC0 ; =0x0400000E
+ mov r1, #0x3
+ ldrh r2, [r0, #0x0]
+ bic r2, r1
+ ldrb r1, [r4, #0x15]
+ orr r1, r2
+ strh r1, [r0, #0x0]
+ ldr r1, [r4, #0x18]
+ cmp r1, #0x0
+ beq _02016E3C
+ ldrh r2, [r0, #0x0]
+ mov r1, #0x40
+ orr r1, r2
+ strh r1, [r0, #0x0]
+ b _0201705A
+_02016E3C:
+ ldrh r2, [r0, #0x0]
+ mov r1, #0x40
+ bic r2, r1
+ strh r2, [r0, #0x0]
+ b _0201705A
+_02016E46:
+ mov r0, #0x1
+ add r1, r0, #0x0
+ bl FUN_0201E74C
+ ldrb r3, [r4, #0x14]
+ ldrb r1, [r4, #0x12]
+ ldrb r0, [r4, #0x11]
+ ldrb r2, [r4, #0x13]
+ lsl r6, r3, #0xd
+ lsl r0, r0, #0x7
+ lsl r3, r2, #0x2
+ str r0, [sp, #0x14]
+ ldr r2, _02016FC4 ; =0x04001008
+ lsl r7, r1, #0x8
+ ldrh r1, [r2, #0x0]
+ mov r0, #0x43
+ and r0, r1
+ lsl r1, r5, #0xe
+ orr r1, r0
+ ldr r0, [sp, #0x14]
+ orr r0, r1
+ orr r0, r7
+ orr r0, r3
+ orr r0, r6
+ strh r0, [r2, #0x0]
+ ldrh r1, [r2, #0x0]
+ mov r0, #0x3
+ bic r1, r0
+ ldrb r0, [r4, #0x15]
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ ldr r0, [r4, #0x18]
+ cmp r0, #0x0
+ beq _02016E94
+ ldrh r1, [r2, #0x0]
+ mov r0, #0x40
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ b _0201705A
+_02016E94:
+ ldrh r1, [r2, #0x0]
+ mov r0, #0x40
+ bic r1, r0
+ strh r1, [r2, #0x0]
+ b _0201705A
+_02016E9E:
+ mov r0, #0x2
+ mov r1, #0x1
+ bl FUN_0201E74C
+ ldrb r2, [r4, #0x13]
+ ldrb r1, [r4, #0x12]
+ ldrb r0, [r4, #0x11]
+ lsl r6, r2, #0x2
+ ldrb r3, [r4, #0x14]
+ lsl r0, r0, #0x7
+ mov r12, r0
+ ldr r2, _02016FC8 ; =0x0400100A
+ lsl r7, r1, #0x8
+ ldrh r1, [r2, #0x0]
+ mov r0, #0x43
+ lsl r3, r3, #0xd
+ and r0, r1
+ lsl r1, r5, #0xe
+ orr r0, r1
+ mov r1, r12
+ orr r0, r1
+ orr r0, r7
+ orr r0, r6
+ orr r0, r3
+ strh r0, [r2, #0x0]
+ ldrh r1, [r2, #0x0]
+ mov r0, #0x3
+ bic r1, r0
+ ldrb r0, [r4, #0x15]
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ ldr r0, [r4, #0x18]
+ cmp r0, #0x0
+ beq _02016EEC
+ ldrh r1, [r2, #0x0]
+ mov r0, #0x40
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ b _0201705A
+_02016EEC:
+ ldrh r1, [r2, #0x0]
+ mov r0, #0x40
+ bic r1, r0
+ strh r1, [r2, #0x0]
+ b _0201705A
+_02016EF6:
+ mov r0, #0x4
+ mov r1, #0x1
+ bl FUN_0201E74C
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x0
+ beq _02016F0C
+ cmp r0, #0x1
+ beq _02016F2E
+ cmp r0, #0x2
+ beq _02016F50
+_02016F0C:
+ ldrb r1, [r4, #0x12]
+ ldr r7, _02016FCC ; =0x0400100C
+ ldrb r2, [r4, #0x13]
+ lsl r3, r1, #0x8
+ ldrb r0, [r4, #0x11]
+ lsl r6, r2, #0x2
+ ldrh r1, [r7, #0x0]
+ lsl r2, r0, #0x7
+ mov r0, #0x43
+ and r0, r1
+ lsl r1, r5, #0xe
+ orr r0, r1
+ orr r0, r2
+ orr r0, r3
+ orr r0, r6
+ strh r0, [r7, #0x0]
+ b _02016F70
+_02016F2E:
+ ldrb r2, [r4, #0x13]
+ ldrb r1, [r4, #0x12]
+ ldrb r0, [r4, #0x16]
+ lsl r3, r2, #0x2
+ ldr r7, _02016FCC ; =0x0400100C
+ lsl r2, r1, #0x8
+ lsl r6, r0, #0xd
+ ldrh r1, [r7, #0x0]
+ mov r0, #0x43
+ and r0, r1
+ lsl r1, r5, #0xe
+ orr r0, r1
+ orr r0, r2
+ orr r0, r3
+ orr r0, r6
+ strh r0, [r7, #0x0]
+ b _02016F70
+_02016F50:
+ ldrb r1, [r4, #0x12]
+ ldr r7, _02016FCC ; =0x0400100C
+ ldrb r0, [r4, #0x16]
+ lsl r3, r1, #0x8
+ ldrb r2, [r4, #0x13]
+ lsl r6, r0, #0xd
+ ldrh r1, [r7, #0x0]
+ mov r0, #0x43
+ lsl r2, r2, #0x2
+ and r0, r1
+ lsl r1, r5, #0xe
+ orr r0, r1
+ orr r0, r2
+ orr r0, r3
+ orr r0, r6
+ strh r0, [r7, #0x0]
+_02016F70:
+ ldr r0, _02016FCC ; =0x0400100C
+ mov r1, #0x3
+ ldrh r2, [r0, #0x0]
+ bic r2, r1
+ ldrb r1, [r4, #0x15]
+ orr r1, r2
+ strh r1, [r0, #0x0]
+ ldr r1, [r4, #0x18]
+ cmp r1, #0x0
+ beq _02016F8E
+ ldrh r2, [r0, #0x0]
+ mov r1, #0x40
+ orr r1, r2
+ strh r1, [r0, #0x0]
+ b _0201705A
+_02016F8E:
+ ldrh r2, [r0, #0x0]
+ mov r1, #0x40
+ bic r2, r1
+ strh r2, [r0, #0x0]
+ b _0201705A
+_02016F98:
+ mov r0, #0x8
+ mov r1, #0x1
+ bl FUN_0201E74C
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x0
+ beq _02016FAE
+ cmp r0, #0x1
+ beq _02016FF2
+ cmp r0, #0x2
+ beq _02017014
+_02016FAE:
+ ldrb r1, [r4, #0x12]
+ ldr r7, _02016FD0 ; =0x0400100E
+ b _02016FD4
+ .balign 4
+_02016FB4: .word 0x04000008
+_02016FB8: .word 0x0400000A
+_02016FBC: .word 0x0400000C
+_02016FC0: .word 0x0400000E
+_02016FC4: .word 0x04001008
+_02016FC8: .word 0x0400100A
+_02016FCC: .word 0x0400100C
+_02016FD0: .word 0x0400100E
+_02016FD4:
+ ldrb r2, [r4, #0x13]
+ lsl r3, r1, #0x8
+ ldrb r0, [r4, #0x11]
+ lsl r6, r2, #0x2
+ ldrh r1, [r7, #0x0]
+ lsl r2, r0, #0x7
+ mov r0, #0x43
+ and r0, r1
+ lsl r1, r5, #0xe
+ orr r0, r1
+ orr r0, r2
+ orr r0, r3
+ orr r0, r6
+ strh r0, [r7, #0x0]
+ b _02017034
+_02016FF2:
+ ldrb r2, [r4, #0x13]
+ ldrb r1, [r4, #0x12]
+ ldrb r0, [r4, #0x16]
+ lsl r3, r2, #0x2
+ ldr r7, _020170F0 ; =0x0400100E
+ lsl r2, r1, #0x8
+ lsl r6, r0, #0xd
+ ldrh r1, [r7, #0x0]
+ mov r0, #0x43
+ and r0, r1
+ lsl r1, r5, #0xe
+ orr r0, r1
+ orr r0, r2
+ orr r0, r3
+ orr r0, r6
+ strh r0, [r7, #0x0]
+ b _02017034
+_02017014:
+ ldrb r1, [r4, #0x12]
+ ldr r7, _020170F0 ; =0x0400100E
+ ldrb r0, [r4, #0x16]
+ lsl r3, r1, #0x8
+ ldrb r2, [r4, #0x13]
+ lsl r6, r0, #0xd
+ ldrh r1, [r7, #0x0]
+ mov r0, #0x43
+ lsl r2, r2, #0x2
+ and r0, r1
+ lsl r1, r5, #0xe
+ orr r0, r1
+ orr r0, r2
+ orr r0, r3
+ orr r0, r6
+ strh r0, [r7, #0x0]
+_02017034:
+ ldr r0, _020170F0 ; =0x0400100E
+ mov r1, #0x3
+ ldrh r2, [r0, #0x0]
+ bic r2, r1
+ ldrb r1, [r4, #0x15]
+ orr r1, r2
+ strh r1, [r0, #0x0]
+ ldr r1, [r4, #0x18]
+ cmp r1, #0x0
+ beq _02017052
+ ldrh r2, [r0, #0x0]
+ mov r1, #0x40
+ orr r1, r2
+ strh r1, [r0, #0x0]
+ b _0201705A
+_02017052:
+ ldrh r2, [r0, #0x0]
+ mov r1, #0x40
+ bic r2, r1
+ strh r2, [r0, #0x0]
+_0201705A:
+ ldr r0, [sp, #0x4]
+ mov r1, #0x2c
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x0]
+ mul r5, r1
+ add r2, r0, r5
+ mov r3, #0x0
+ mov r0, #0x1
+ strh r3, [r2, #0x20]
+ lsl r0, r0, #0xc
+ str r0, [r2, #0x24]
+ str r0, [r2, #0x28]
+ str r3, [r2, #0x2c]
+ str r3, [r2, #0x30]
+ ldr r1, [r4, #0x8]
+ cmp r1, #0x0
+ beq _020170A2
+ ldr r0, [sp, #0x0]
+ ldr r6, [sp, #0x0]
+ ldr r0, [r0, #0x0]
+ add r6, #0x8
+ bl FUN_02016998
+ str r0, [r6, r5]
+ ldr r1, [r6, r5]
+ ldr r2, [r4, #0x8]
+ mov r0, #0x0
+ bl MIi_CpuClear16
+ ldr r0, [sp, #0x0]
+ ldr r2, [r4, #0x8]
+ add r1, r0, r5
+ str r2, [r1, #0xc]
+ ldr r0, [r4, #0xc]
+ str r0, [r1, #0x10]
+ b _020170A8
+_020170A2:
+ str r3, [r2, #0x8]
+ str r3, [r2, #0xc]
+ str r3, [r2, #0x10]
+_020170A8:
+ ldr r0, [sp, #0x0]
+ ldrb r1, [r4, #0x10]
+ add r0, r0, r5
+ strb r1, [r0, #0x1d]
+ ldr r1, [sp, #0x8]
+ strb r1, [r0, #0x1c]
+ ldrb r1, [r4, #0x11]
+ strb r1, [r0, #0x1e]
+ ldr r1, [sp, #0x8]
+ cmp r1, #0x0
+ bne _020170CA
+ ldrb r1, [r4, #0x11]
+ cmp r1, #0x0
+ bne _020170CA
+ mov r1, #0x20
+ strb r1, [r0, #0x1f]
+ b _020170D2
+_020170CA:
+ ldr r0, [sp, #0x0]
+ mov r1, #0x40
+ add r0, r0, r5
+ strb r1, [r0, #0x1f]
+_020170D2:
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ ldr r3, [r4, #0x0]
+ mov r2, #0x0
+ bl FUN_020179E0
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ ldr r3, [r4, #0x4]
+ mov r2, #0x3
+ bl FUN_020179E0
+ add sp, #0x18
+ pop {r3-r7, pc}
+ nop
+_020170F0: .word 0x0400100E
+
+ thumb_func_start FUN_020170F4
+FUN_020170F4: ; 0x020170F4
+ push {r3-r7, lr}
+ sub sp, #0x20
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r1, r2, #0x0
+ add r0, r3, #0x0
+ cmp r1, #0x0
+ bne _0201710C
+ mov r2, #0x2c
+ mul r2, r4
+ add r2, r5, r2
+ strb r0, [r2, #0x1e]
+_0201710C:
+ cmp r4, #0x7
+ bls _02017112
+ b _020177C4
+_02017112:
+ add r2, r4, r4
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0201711E: ; jump table (using 16-bit offset)
+ .short _0201712E - _0201711E - 2; case 0
+ .short _0201719A - _0201711E - 2; case 1
+ .short _02017206 - _0201711E - 2; case 2
+ .short _0201733A - _0201711E - 2; case 3
+ .short _0201746E - _0201711E - 2; case 4
+ .short _020174F4 - _0201711E - 2; case 5
+ .short _02017560 - _0201711E - 2; case 6
+ .short _02017694 - _0201711E - 2; case 7
+_0201712E:
+ ldr r2, _02017480 ; =0x04000008
+ cmp r1, #0x1
+ ldrh r3, [r2, #0x0]
+ add r2, sp, #0x0
+ strh r3, [r2, #0x1e]
+ bne _0201714A
+ ldrh r3, [r2, #0x1e]
+ ldr r1, _02017484 ; =0xFFFFE0FF
+ lsl r0, r0, #0x1b
+ and r1, r3
+ lsr r0, r0, #0x13
+ orr r0, r1
+ strh r0, [r2, #0x1e]
+ b _0201715C
+_0201714A:
+ cmp r1, #0x2
+ bne _0201715C
+ ldrh r3, [r2, #0x1e]
+ mov r1, #0x3c
+ lsl r0, r0, #0x1c
+ bic r3, r1
+ lsr r0, r0, #0x1a
+ orr r0, r3
+ strh r0, [r2, #0x1e]
+_0201715C:
+ add r0, sp, #0x0
+ ldrh r3, [r0, #0x1e]
+ add sp, #0x20
+ lsl r0, r3, #0x12
+ lsr r6, r0, #0x1f
+ lsl r0, r3, #0x1a
+ lsr r2, r0, #0x1c
+ lsl r0, r3, #0x13
+ lsr r1, r0, #0x1b
+ mov r0, #0x2c
+ mul r0, r4
+ add r0, r5, r0
+ lsl r3, r3, #0x10
+ lsr r5, r3, #0x1e
+ lsl r3, r2, #0x2
+ ldrb r0, [r0, #0x1e]
+ lsl r2, r1, #0x8
+ lsl r4, r6, #0xd
+ lsl r1, r0, #0x7
+ ldr r0, _02017480 ; =0x04000008
+ mov r6, #0x43
+ ldrh r7, [r0, #0x0]
+ lsl r5, r5, #0xe
+ and r6, r7
+ orr r5, r6
+ orr r1, r5
+ orr r1, r2
+ orr r1, r3
+ orr r1, r4
+ strh r1, [r0, #0x0]
+ pop {r3-r7, pc}
+_0201719A:
+ ldr r2, _02017488 ; =0x0400000A
+ cmp r1, #0x1
+ ldrh r3, [r2, #0x0]
+ add r2, sp, #0x0
+ strh r3, [r2, #0x1c]
+ bne _020171B6
+ ldrh r3, [r2, #0x1c]
+ ldr r1, _02017484 ; =0xFFFFE0FF
+ lsl r0, r0, #0x1b
+ and r1, r3
+ lsr r0, r0, #0x13
+ orr r0, r1
+ strh r0, [r2, #0x1c]
+ b _020171C8
+_020171B6:
+ cmp r1, #0x2
+ bne _020171C8
+ ldrh r3, [r2, #0x1c]
+ mov r1, #0x3c
+ lsl r0, r0, #0x1c
+ bic r3, r1
+ lsr r0, r0, #0x1a
+ orr r0, r3
+ strh r0, [r2, #0x1c]
+_020171C8:
+ add r0, sp, #0x0
+ ldrh r3, [r0, #0x1c]
+ add sp, #0x20
+ lsl r0, r3, #0x12
+ lsr r6, r0, #0x1f
+ lsl r0, r3, #0x1a
+ lsr r2, r0, #0x1c
+ lsl r0, r3, #0x13
+ lsr r1, r0, #0x1b
+ mov r0, #0x2c
+ mul r0, r4
+ add r0, r5, r0
+ lsl r3, r3, #0x10
+ lsr r5, r3, #0x1e
+ lsl r3, r2, #0x2
+ ldrb r0, [r0, #0x1e]
+ lsl r2, r1, #0x8
+ lsl r4, r6, #0xd
+ lsl r1, r0, #0x7
+ ldr r0, _02017488 ; =0x0400000A
+ mov r6, #0x43
+ ldrh r7, [r0, #0x0]
+ lsl r5, r5, #0xe
+ and r6, r7
+ orr r5, r6
+ orr r1, r5
+ orr r1, r2
+ orr r1, r3
+ orr r1, r4
+ strh r1, [r0, #0x0]
+ pop {r3-r7, pc}
+_02017206:
+ mov r2, #0x2c
+ mul r2, r4
+ add r3, r5, r2
+ ldrb r3, [r3, #0x1c]
+ cmp r3, #0x0
+ beq _0201721A
+ cmp r3, #0x1
+ beq _0201727A
+ cmp r3, #0x2
+ beq _020172DA
+_0201721A:
+ ldr r3, _0201748C ; =0x0400000C
+ cmp r1, #0x1
+ ldrh r4, [r3, #0x0]
+ add r3, sp, #0x0
+ strh r4, [r3, #0x1a]
+ bne _02017236
+ ldrh r4, [r3, #0x1a]
+ ldr r1, _02017484 ; =0xFFFFE0FF
+ lsl r0, r0, #0x1b
+ and r1, r4
+ lsr r0, r0, #0x13
+ orr r0, r1
+ strh r0, [r3, #0x1a]
+ b _02017248
+_02017236:
+ cmp r1, #0x2
+ bne _02017248
+ ldrh r4, [r3, #0x1a]
+ mov r1, #0x3c
+ lsl r0, r0, #0x1c
+ bic r4, r1
+ lsr r0, r0, #0x1a
+ orr r0, r4
+ strh r0, [r3, #0x1a]
+_02017248:
+ add r0, sp, #0x0
+ ldrh r3, [r0, #0x1a]
+ add r2, r5, r2
+ ldr r6, _0201748C ; =0x0400000C
+ lsl r0, r3, #0x1a
+ ldrb r4, [r2, #0x1e]
+ lsr r1, r0, #0x1c
+ lsl r0, r3, #0x13
+ lsl r2, r3, #0x10
+ lsr r3, r2, #0x1e
+ ldrh r5, [r6, #0x0]
+ lsr r0, r0, #0x1b
+ lsl r2, r1, #0x2
+ lsl r1, r0, #0x8
+ lsl r0, r4, #0x7
+ mov r4, #0x43
+ and r4, r5
+ lsl r3, r3, #0xe
+ orr r3, r4
+ orr r0, r3
+ orr r0, r1
+ orr r0, r2
+ add sp, #0x20
+ strh r0, [r6, #0x0]
+ pop {r3-r7, pc}
+_0201727A:
+ ldr r2, _0201748C ; =0x0400000C
+ cmp r1, #0x1
+ ldrh r3, [r2, #0x0]
+ add r2, sp, #0x0
+ strh r3, [r2, #0x18]
+ bne _02017296
+ ldrh r3, [r2, #0x18]
+ ldr r1, _02017484 ; =0xFFFFE0FF
+ lsl r0, r0, #0x1b
+ and r1, r3
+ lsr r0, r0, #0x13
+ orr r0, r1
+ strh r0, [r2, #0x18]
+ b _020172A8
+_02017296:
+ cmp r1, #0x2
+ bne _020172A8
+ ldrh r3, [r2, #0x18]
+ mov r1, #0x3c
+ lsl r0, r0, #0x1c
+ bic r3, r1
+ lsr r0, r0, #0x1a
+ orr r0, r3
+ strh r0, [r2, #0x18]
+_020172A8:
+ add r0, sp, #0x0
+ ldrh r3, [r0, #0x18]
+ ldr r6, _0201748C ; =0x0400000C
+ add sp, #0x20
+ lsl r1, r3, #0x13
+ lsl r0, r3, #0x1a
+ lsr r4, r1, #0x1b
+ lsl r1, r3, #0x12
+ lsr r2, r1, #0x1f
+ lsl r1, r3, #0x10
+ lsr r3, r1, #0x1e
+ lsr r0, r0, #0x1c
+ lsl r1, r0, #0x2
+ lsl r0, r4, #0x8
+ ldrh r5, [r6, #0x0]
+ mov r4, #0x43
+ lsl r3, r3, #0xe
+ and r4, r5
+ orr r3, r4
+ orr r0, r3
+ lsl r2, r2, #0xd
+ orr r0, r1
+ orr r0, r2
+ strh r0, [r6, #0x0]
+ pop {r3-r7, pc}
+_020172DA:
+ ldr r2, _0201748C ; =0x0400000C
+ cmp r1, #0x1
+ ldrh r3, [r2, #0x0]
+ add r2, sp, #0x0
+ strh r3, [r2, #0x16]
+ bne _020172F6
+ ldrh r3, [r2, #0x16]
+ ldr r1, _02017484 ; =0xFFFFE0FF
+ lsl r0, r0, #0x1b
+ and r1, r3
+ lsr r0, r0, #0x13
+ orr r0, r1
+ strh r0, [r2, #0x16]
+ b _02017308
+_020172F6:
+ cmp r1, #0x2
+ bne _02017308
+ ldrh r3, [r2, #0x16]
+ mov r1, #0x38
+ lsl r0, r0, #0x1d
+ bic r3, r1
+ lsr r0, r0, #0x1a
+ orr r0, r3
+ strh r0, [r2, #0x16]
+_02017308:
+ add r0, sp, #0x0
+ ldrh r3, [r0, #0x16]
+ ldr r6, _0201748C ; =0x0400000C
+ add sp, #0x20
+ lsl r1, r3, #0x13
+ lsr r4, r1, #0x1b
+ lsl r1, r3, #0x12
+ lsr r2, r1, #0x1f
+ lsl r0, r3, #0x1a
+ lsl r1, r3, #0x10
+ lsr r3, r1, #0x1e
+ lsl r1, r4, #0x8
+ lsr r0, r0, #0x1d
+ ldrh r5, [r6, #0x0]
+ mov r4, #0x43
+ lsl r3, r3, #0xe
+ and r4, r5
+ lsl r0, r0, #0x2
+ orr r3, r4
+ orr r0, r3
+ lsl r2, r2, #0xd
+ orr r0, r1
+ orr r0, r2
+ strh r0, [r6, #0x0]
+ pop {r3-r7, pc}
+_0201733A:
+ mov r2, #0x2c
+ mul r2, r4
+ add r3, r5, r2
+ ldrb r3, [r3, #0x1c]
+ cmp r3, #0x0
+ beq _0201734E
+ cmp r3, #0x1
+ beq _020173AE
+ cmp r3, #0x2
+ beq _0201740E
+_0201734E:
+ ldr r3, _02017490 ; =0x0400000E
+ cmp r1, #0x1
+ ldrh r4, [r3, #0x0]
+ add r3, sp, #0x0
+ strh r4, [r3, #0x14]
+ bne _0201736A
+ ldrh r4, [r3, #0x14]
+ ldr r1, _02017484 ; =0xFFFFE0FF
+ lsl r0, r0, #0x1b
+ and r1, r4
+ lsr r0, r0, #0x13
+ orr r0, r1
+ strh r0, [r3, #0x14]
+ b _0201737C
+_0201736A:
+ cmp r1, #0x2
+ bne _0201737C
+ ldrh r4, [r3, #0x14]
+ mov r1, #0x3c
+ lsl r0, r0, #0x1c
+ bic r4, r1
+ lsr r0, r0, #0x1a
+ orr r0, r4
+ strh r0, [r3, #0x14]
+_0201737C:
+ add r0, sp, #0x0
+ ldrh r3, [r0, #0x14]
+ add r2, r5, r2
+ ldr r6, _02017490 ; =0x0400000E
+ lsl r0, r3, #0x1a
+ ldrb r4, [r2, #0x1e]
+ lsr r1, r0, #0x1c
+ lsl r0, r3, #0x13
+ lsl r2, r3, #0x10
+ lsr r3, r2, #0x1e
+ ldrh r5, [r6, #0x0]
+ lsr r0, r0, #0x1b
+ lsl r2, r1, #0x2
+ lsl r1, r0, #0x8
+ lsl r0, r4, #0x7
+ mov r4, #0x43
+ and r4, r5
+ lsl r3, r3, #0xe
+ orr r3, r4
+ orr r0, r3
+ orr r0, r1
+ orr r0, r2
+ add sp, #0x20
+ strh r0, [r6, #0x0]
+ pop {r3-r7, pc}
+_020173AE:
+ ldr r2, _02017490 ; =0x0400000E
+ cmp r1, #0x1
+ ldrh r3, [r2, #0x0]
+ add r2, sp, #0x0
+ strh r3, [r2, #0x12]
+ bne _020173CA
+ ldrh r3, [r2, #0x12]
+ ldr r1, _02017484 ; =0xFFFFE0FF
+ lsl r0, r0, #0x1b
+ and r1, r3
+ lsr r0, r0, #0x13
+ orr r0, r1
+ strh r0, [r2, #0x12]
+ b _020173DC
+_020173CA:
+ cmp r1, #0x2
+ bne _020173DC
+ ldrh r3, [r2, #0x12]
+ mov r1, #0x3c
+ lsl r0, r0, #0x1c
+ bic r3, r1
+ lsr r0, r0, #0x1a
+ orr r0, r3
+ strh r0, [r2, #0x12]
+_020173DC:
+ add r0, sp, #0x0
+ ldrh r3, [r0, #0x12]
+ ldr r6, _02017490 ; =0x0400000E
+ add sp, #0x20
+ lsl r1, r3, #0x13
+ lsl r0, r3, #0x1a
+ lsr r4, r1, #0x1b
+ lsl r1, r3, #0x12
+ lsr r2, r1, #0x1f
+ lsl r1, r3, #0x10
+ lsr r3, r1, #0x1e
+ lsr r0, r0, #0x1c
+ lsl r1, r0, #0x2
+ lsl r0, r4, #0x8
+ ldrh r5, [r6, #0x0]
+ mov r4, #0x43
+ lsl r3, r3, #0xe
+ and r4, r5
+ orr r3, r4
+ orr r0, r3
+ lsl r2, r2, #0xd
+ orr r0, r1
+ orr r0, r2
+ strh r0, [r6, #0x0]
+ pop {r3-r7, pc}
+_0201740E:
+ ldr r2, _02017490 ; =0x0400000E
+ cmp r1, #0x1
+ ldrh r3, [r2, #0x0]
+ add r2, sp, #0x0
+ strh r3, [r2, #0x10]
+ bne _0201742A
+ ldrh r3, [r2, #0x10]
+ ldr r1, _02017484 ; =0xFFFFE0FF
+ lsl r0, r0, #0x1b
+ and r1, r3
+ lsr r0, r0, #0x13
+ orr r0, r1
+ strh r0, [r2, #0x10]
+ b _0201743C
+_0201742A:
+ cmp r1, #0x2
+ bne _0201743C
+ ldrh r3, [r2, #0x10]
+ mov r1, #0x38
+ lsl r0, r0, #0x1d
+ bic r3, r1
+ lsr r0, r0, #0x1a
+ orr r0, r3
+ strh r0, [r2, #0x10]
+_0201743C:
+ add r0, sp, #0x0
+ ldrh r3, [r0, #0x10]
+ ldr r6, _02017490 ; =0x0400000E
+ add sp, #0x20
+ lsl r1, r3, #0x13
+ lsr r4, r1, #0x1b
+ lsl r1, r3, #0x12
+ lsr r2, r1, #0x1f
+ lsl r0, r3, #0x1a
+ lsl r1, r3, #0x10
+ lsr r3, r1, #0x1e
+ lsl r1, r4, #0x8
+ lsr r0, r0, #0x1d
+ ldrh r5, [r6, #0x0]
+ mov r4, #0x43
+ lsl r3, r3, #0xe
+ and r4, r5
+ lsl r0, r0, #0x2
+ orr r3, r4
+ orr r0, r3
+ lsl r2, r2, #0xd
+ orr r0, r1
+ orr r0, r2
+ strh r0, [r6, #0x0]
+ pop {r3-r7, pc}
+_0201746E:
+ ldr r2, _02017494 ; =0x04001008
+ cmp r1, #0x1
+ ldrh r3, [r2, #0x0]
+ add r2, sp, #0x0
+ strh r3, [r2, #0xe]
+ bne _020174A4
+ ldrh r3, [r2, #0xe]
+ ldr r1, _02017484 ; =0xFFFFE0FF
+ b _02017498
+ .balign 4
+_02017480: .word 0x04000008
+_02017484: .word 0xFFFFE0FF
+_02017488: .word 0x0400000A
+_0201748C: .word 0x0400000C
+_02017490: .word 0x0400000E
+_02017494: .word 0x04001008
+_02017498:
+ lsl r0, r0, #0x1b
+ and r1, r3
+ lsr r0, r0, #0x13
+ orr r0, r1
+ strh r0, [r2, #0xe]
+ b _020174B6
+_020174A4:
+ cmp r1, #0x2
+ bne _020174B6
+ ldrh r3, [r2, #0xe]
+ mov r1, #0x3c
+ lsl r0, r0, #0x1c
+ bic r3, r1
+ lsr r0, r0, #0x1a
+ orr r0, r3
+ strh r0, [r2, #0xe]
+_020174B6:
+ add r0, sp, #0x0
+ ldrh r3, [r0, #0xe]
+ add sp, #0x20
+ lsl r0, r3, #0x12
+ lsr r6, r0, #0x1f
+ lsl r0, r3, #0x1a
+ lsr r2, r0, #0x1c
+ lsl r0, r3, #0x13
+ lsr r1, r0, #0x1b
+ mov r0, #0x2c
+ mul r0, r4
+ add r0, r5, r0
+ lsl r3, r3, #0x10
+ lsr r5, r3, #0x1e
+ lsl r3, r2, #0x2
+ ldrb r0, [r0, #0x1e]
+ lsl r2, r1, #0x8
+ lsl r4, r6, #0xd
+ lsl r1, r0, #0x7
+ ldr r0, _020177C8 ; =0x04001008
+ mov r6, #0x43
+ ldrh r7, [r0, #0x0]
+ lsl r5, r5, #0xe
+ and r6, r7
+ orr r5, r6
+ orr r1, r5
+ orr r1, r2
+ orr r1, r3
+ orr r1, r4
+ strh r1, [r0, #0x0]
+ pop {r3-r7, pc}
+_020174F4:
+ ldr r2, _020177CC ; =0x0400100A
+ cmp r1, #0x1
+ ldrh r3, [r2, #0x0]
+ add r2, sp, #0x0
+ strh r3, [r2, #0xc]
+ bne _02017510
+ ldrh r3, [r2, #0xc]
+ ldr r1, _020177D0 ; =0xFFFFE0FF
+ lsl r0, r0, #0x1b
+ and r1, r3
+ lsr r0, r0, #0x13
+ orr r0, r1
+ strh r0, [r2, #0xc]
+ b _02017522
+_02017510:
+ cmp r1, #0x2
+ bne _02017522
+ ldrh r3, [r2, #0xc]
+ mov r1, #0x3c
+ lsl r0, r0, #0x1c
+ bic r3, r1
+ lsr r0, r0, #0x1a
+ orr r0, r3
+ strh r0, [r2, #0xc]
+_02017522:
+ add r0, sp, #0x0
+ ldrh r3, [r0, #0xc]
+ add sp, #0x20
+ lsl r0, r3, #0x12
+ lsr r6, r0, #0x1f
+ lsl r0, r3, #0x1a
+ lsr r2, r0, #0x1c
+ lsl r0, r3, #0x13
+ lsr r1, r0, #0x1b
+ mov r0, #0x2c
+ mul r0, r4
+ add r0, r5, r0
+ lsl r3, r3, #0x10
+ lsr r5, r3, #0x1e
+ lsl r3, r2, #0x2
+ ldrb r0, [r0, #0x1e]
+ lsl r2, r1, #0x8
+ lsl r4, r6, #0xd
+ lsl r1, r0, #0x7
+ ldr r0, _020177CC ; =0x0400100A
+ mov r6, #0x43
+ ldrh r7, [r0, #0x0]
+ lsl r5, r5, #0xe
+ and r6, r7
+ orr r5, r6
+ orr r1, r5
+ orr r1, r2
+ orr r1, r3
+ orr r1, r4
+ strh r1, [r0, #0x0]
+ pop {r3-r7, pc}
+_02017560:
+ mov r2, #0x2c
+ mul r2, r4
+ add r3, r5, r2
+ ldrb r3, [r3, #0x1c]
+ cmp r3, #0x0
+ beq _02017574
+ cmp r3, #0x1
+ beq _020175D4
+ cmp r3, #0x2
+ beq _02017634
+_02017574:
+ ldr r3, _020177D4 ; =0x0400100C
+ cmp r1, #0x1
+ ldrh r4, [r3, #0x0]
+ add r3, sp, #0x0
+ strh r4, [r3, #0xa]
+ bne _02017590
+ ldrh r4, [r3, #0xa]
+ ldr r1, _020177D0 ; =0xFFFFE0FF
+ lsl r0, r0, #0x1b
+ and r1, r4
+ lsr r0, r0, #0x13
+ orr r0, r1
+ strh r0, [r3, #0xa]
+ b _020175A2
+_02017590:
+ cmp r1, #0x2
+ bne _020175A2
+ ldrh r4, [r3, #0xa]
+ mov r1, #0x3c
+ lsl r0, r0, #0x1c
+ bic r4, r1
+ lsr r0, r0, #0x1a
+ orr r0, r4
+ strh r0, [r3, #0xa]
+_020175A2:
+ add r0, sp, #0x0
+ ldrh r3, [r0, #0xa]
+ add r2, r5, r2
+ ldr r6, _020177D4 ; =0x0400100C
+ lsl r0, r3, #0x1a
+ ldrb r4, [r2, #0x1e]
+ lsr r1, r0, #0x1c
+ lsl r0, r3, #0x13
+ lsl r2, r3, #0x10
+ lsr r3, r2, #0x1e
+ ldrh r5, [r6, #0x0]
+ lsr r0, r0, #0x1b
+ lsl r2, r1, #0x2
+ lsl r1, r0, #0x8
+ lsl r0, r4, #0x7
+ mov r4, #0x43
+ and r4, r5
+ lsl r3, r3, #0xe
+ orr r3, r4
+ orr r0, r3
+ orr r0, r1
+ orr r0, r2
+ add sp, #0x20
+ strh r0, [r6, #0x0]
+ pop {r3-r7, pc}
+_020175D4:
+ ldr r2, _020177D4 ; =0x0400100C
+ cmp r1, #0x1
+ ldrh r3, [r2, #0x0]
+ add r2, sp, #0x0
+ strh r3, [r2, #0x8]
+ bne _020175F0
+ ldrh r3, [r2, #0x8]
+ ldr r1, _020177D0 ; =0xFFFFE0FF
+ lsl r0, r0, #0x1b
+ and r1, r3
+ lsr r0, r0, #0x13
+ orr r0, r1
+ strh r0, [r2, #0x8]
+ b _02017602
+_020175F0:
+ cmp r1, #0x2
+ bne _02017602
+ ldrh r3, [r2, #0x8]
+ mov r1, #0x3c
+ lsl r0, r0, #0x1c
+ bic r3, r1
+ lsr r0, r0, #0x1a
+ orr r0, r3
+ strh r0, [r2, #0x8]
+_02017602:
+ add r0, sp, #0x0
+ ldrh r3, [r0, #0x8]
+ ldr r6, _020177D4 ; =0x0400100C
+ add sp, #0x20
+ lsl r1, r3, #0x13
+ lsl r0, r3, #0x1a
+ lsr r4, r1, #0x1b
+ lsl r1, r3, #0x12
+ lsr r2, r1, #0x1f
+ lsl r1, r3, #0x10
+ lsr r3, r1, #0x1e
+ lsr r0, r0, #0x1c
+ lsl r1, r0, #0x2
+ lsl r0, r4, #0x8
+ ldrh r5, [r6, #0x0]
+ mov r4, #0x43
+ lsl r3, r3, #0xe
+ and r4, r5
+ orr r3, r4
+ orr r0, r3
+ lsl r2, r2, #0xd
+ orr r0, r1
+ orr r0, r2
+ strh r0, [r6, #0x0]
+ pop {r3-r7, pc}
+_02017634:
+ ldr r2, _020177D4 ; =0x0400100C
+ cmp r1, #0x1
+ ldrh r3, [r2, #0x0]
+ add r2, sp, #0x0
+ strh r3, [r2, #0x6]
+ bne _02017650
+ ldrh r3, [r2, #0x6]
+ ldr r1, _020177D0 ; =0xFFFFE0FF
+ lsl r0, r0, #0x1b
+ and r1, r3
+ lsr r0, r0, #0x13
+ orr r0, r1
+ strh r0, [r2, #0x6]
+ b _02017662
+_02017650:
+ cmp r1, #0x2
+ bne _02017662
+ ldrh r3, [r2, #0x6]
+ mov r1, #0x38
+ lsl r0, r0, #0x1d
+ bic r3, r1
+ lsr r0, r0, #0x1a
+ orr r0, r3
+ strh r0, [r2, #0x6]
+_02017662:
+ add r0, sp, #0x0
+ ldrh r3, [r0, #0x6]
+ ldr r6, _020177D4 ; =0x0400100C
+ add sp, #0x20
+ lsl r1, r3, #0x13
+ lsr r4, r1, #0x1b
+ lsl r1, r3, #0x12
+ lsr r2, r1, #0x1f
+ lsl r0, r3, #0x1a
+ lsl r1, r3, #0x10
+ lsr r3, r1, #0x1e
+ lsl r1, r4, #0x8
+ lsr r0, r0, #0x1d
+ ldrh r5, [r6, #0x0]
+ mov r4, #0x43
+ lsl r3, r3, #0xe
+ and r4, r5
+ lsl r0, r0, #0x2
+ orr r3, r4
+ orr r0, r3
+ lsl r2, r2, #0xd
+ orr r0, r1
+ orr r0, r2
+ strh r0, [r6, #0x0]
+ pop {r3-r7, pc}
+_02017694:
+ mov r2, #0x2c
+ mul r2, r4
+ add r3, r5, r2
+ ldrb r3, [r3, #0x1c]
+ cmp r3, #0x0
+ beq _020176A8
+ cmp r3, #0x1
+ beq _02017708
+ cmp r3, #0x2
+ beq _02017768
+_020176A8:
+ ldr r3, _020177D8 ; =0x0400100E
+ cmp r1, #0x1
+ ldrh r4, [r3, #0x0]
+ add r3, sp, #0x0
+ strh r4, [r3, #0x4]
+ bne _020176C4
+ ldrh r4, [r3, #0x4]
+ ldr r1, _020177D0 ; =0xFFFFE0FF
+ lsl r0, r0, #0x1b
+ and r1, r4
+ lsr r0, r0, #0x13
+ orr r0, r1
+ strh r0, [r3, #0x4]
+ b _020176D6
+_020176C4:
+ cmp r1, #0x2
+ bne _020176D6
+ ldrh r4, [r3, #0x4]
+ mov r1, #0x3c
+ lsl r0, r0, #0x1c
+ bic r4, r1
+ lsr r0, r0, #0x1a
+ orr r0, r4
+ strh r0, [r3, #0x4]
+_020176D6:
+ add r0, sp, #0x0
+ ldrh r3, [r0, #0x4]
+ add r2, r5, r2
+ ldr r6, _020177D8 ; =0x0400100E
+ lsl r0, r3, #0x1a
+ ldrb r4, [r2, #0x1e]
+ lsr r1, r0, #0x1c
+ lsl r0, r3, #0x13
+ lsl r2, r3, #0x10
+ lsr r3, r2, #0x1e
+ ldrh r5, [r6, #0x0]
+ lsr r0, r0, #0x1b
+ lsl r2, r1, #0x2
+ lsl r1, r0, #0x8
+ lsl r0, r4, #0x7
+ mov r4, #0x43
+ and r4, r5
+ lsl r3, r3, #0xe
+ orr r3, r4
+ orr r0, r3
+ orr r0, r1
+ orr r0, r2
+ add sp, #0x20
+ strh r0, [r6, #0x0]
+ pop {r3-r7, pc}
+_02017708:
+ ldr r2, _020177D8 ; =0x0400100E
+ cmp r1, #0x1
+ ldrh r3, [r2, #0x0]
+ add r2, sp, #0x0
+ strh r3, [r2, #0x2]
+ bne _02017724
+ ldrh r3, [r2, #0x2]
+ ldr r1, _020177D0 ; =0xFFFFE0FF
+ lsl r0, r0, #0x1b
+ and r1, r3
+ lsr r0, r0, #0x13
+ orr r0, r1
+ strh r0, [r2, #0x2]
+ b _02017736
+_02017724:
+ cmp r1, #0x2
+ bne _02017736
+ ldrh r3, [r2, #0x2]
+ mov r1, #0x3c
+ lsl r0, r0, #0x1c
+ bic r3, r1
+ lsr r0, r0, #0x1a
+ orr r0, r3
+ strh r0, [r2, #0x2]
+_02017736:
+ add r0, sp, #0x0
+ ldrh r3, [r0, #0x2]
+ ldr r6, _020177D8 ; =0x0400100E
+ add sp, #0x20
+ lsl r1, r3, #0x13
+ lsl r0, r3, #0x1a
+ lsr r4, r1, #0x1b
+ lsl r1, r3, #0x12
+ lsr r2, r1, #0x1f
+ lsl r1, r3, #0x10
+ lsr r3, r1, #0x1e
+ lsr r0, r0, #0x1c
+ lsl r1, r0, #0x2
+ lsl r0, r4, #0x8
+ ldrh r5, [r6, #0x0]
+ mov r4, #0x43
+ lsl r3, r3, #0xe
+ and r4, r5
+ orr r3, r4
+ orr r0, r3
+ lsl r2, r2, #0xd
+ orr r0, r1
+ orr r0, r2
+ strh r0, [r6, #0x0]
+ pop {r3-r7, pc}
+_02017768:
+ ldr r2, _020177D8 ; =0x0400100E
+ cmp r1, #0x1
+ ldrh r3, [r2, #0x0]
+ add r2, sp, #0x0
+ strh r3, [r2, #0x0]
+ bne _02017784
+ ldrh r3, [r2, #0x0]
+ ldr r1, _020177D0 ; =0xFFFFE0FF
+ lsl r0, r0, #0x1b
+ and r1, r3
+ lsr r0, r0, #0x13
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ b _02017796
+_02017784:
+ cmp r1, #0x2
+ bne _02017796
+ ldrh r3, [r2, #0x0]
+ mov r1, #0x38
+ lsl r0, r0, #0x1d
+ bic r3, r1
+ lsr r0, r0, #0x1a
+ orr r0, r3
+ strh r0, [r2, #0x0]
+_02017796:
+ add r0, sp, #0x0
+ ldrh r3, [r0, #0x0]
+ ldr r6, _020177D8 ; =0x0400100E
+ lsl r1, r3, #0x13
+ lsr r4, r1, #0x1b
+ lsl r1, r3, #0x12
+ lsr r2, r1, #0x1f
+ lsl r0, r3, #0x1a
+ lsl r1, r3, #0x10
+ lsr r3, r1, #0x1e
+ lsl r1, r4, #0x8
+ lsr r0, r0, #0x1d
+ ldrh r5, [r6, #0x0]
+ mov r4, #0x43
+ lsl r3, r3, #0xe
+ and r4, r5
+ lsl r0, r0, #0x2
+ orr r3, r4
+ orr r0, r3
+ lsl r2, r2, #0xd
+ orr r0, r1
+ orr r0, r2
+ strh r0, [r6, #0x0]
+_020177C4:
+ add sp, #0x20
+ pop {r3-r7, pc}
+ .balign 4
+_020177C8: .word 0x04001008
+_020177CC: .word 0x0400100A
+_020177D0: .word 0xFFFFE0FF
+_020177D4: .word 0x0400100C
+_020177D8: .word 0x0400100E
+
+ thumb_func_start FUN_020177DC
+FUN_020177DC: ; 0x020177DC
+ cmp r1, #0x0
+ beq _020177EA
+ cmp r1, #0x1
+ beq _0201780A
+ cmp r1, #0x2
+ beq _0201782A
+ b _0201784A
+_020177EA:
+ cmp r0, #0x1
+ bne _020177F2
+ mov r0, #0x0
+ bx lr
+_020177F2:
+ cmp r0, #0x2
+ bne _020177FA
+ mov r0, #0x2
+ bx lr
+_020177FA:
+ cmp r0, #0x3
+ bne _02017802
+ mov r0, #0x1
+ bx lr
+_02017802:
+ cmp r0, #0x4
+ bne _0201784A
+ mov r0, #0x3
+ bx lr
+_0201780A:
+ cmp r0, #0x0
+ bne _02017812
+ mov r0, #0x0
+ bx lr
+_02017812:
+ cmp r0, #0x1
+ bne _0201781A
+ mov r0, #0x1
+ bx lr
+_0201781A:
+ cmp r0, #0x4
+ bne _02017822
+ mov r0, #0x2
+ bx lr
+_02017822:
+ cmp r0, #0x5
+ bne _0201784A
+ mov r0, #0x3
+ bx lr
+_0201782A:
+ cmp r0, #0x0
+ bne _02017832
+ mov r0, #0x0
+ bx lr
+_02017832:
+ cmp r0, #0x1
+ bne _0201783A
+ mov r0, #0x1
+ bx lr
+_0201783A:
+ cmp r0, #0x4
+ bne _02017842
+ mov r0, #0x2
+ bx lr
+_02017842:
+ cmp r0, #0x5
+ bne _0201784A
+ mov r0, #0x3
+ bx lr
+_0201784A:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02017850
+FUN_02017850: ; 0x02017850
+ cmp r0, #0x5
+ bhi _0201789E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02017860: ; jump table (using 16-bit offset)
+ .short _0201786C - _02017860 - 2; case 0
+ .short _02017874 - _02017860 - 2; case 1
+ .short _0201787C - _02017860 - 2; case 2
+ .short _02017886 - _02017860 - 2; case 3
+ .short _02017890 - _02017860 - 2; case 4
+ .short _02017898 - _02017860 - 2; case 5
+_0201786C:
+ mov r0, #0x10
+ strb r0, [r1, #0x0]
+ strb r0, [r2, #0x0]
+ bx lr
+_02017874:
+ mov r0, #0x20
+ strb r0, [r1, #0x0]
+ strb r0, [r2, #0x0]
+ bx lr
+_0201787C:
+ mov r0, #0x20
+ strb r0, [r1, #0x0]
+ mov r0, #0x40
+ strb r0, [r2, #0x0]
+ bx lr
+_02017886:
+ mov r0, #0x40
+ strb r0, [r1, #0x0]
+ mov r0, #0x20
+ strb r0, [r2, #0x0]
+ bx lr
+_02017890:
+ mov r0, #0x40
+ strb r0, [r1, #0x0]
+ strb r0, [r2, #0x0]
+ bx lr
+_02017898:
+ mov r0, #0x80
+ strb r0, [r1, #0x0]
+ strb r0, [r2, #0x0]
+_0201789E:
+ bx lr
+
+ thumb_func_start FUN_020178A0
+FUN_020178A0: ; 0x020178A0
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ mov r2, #0x2c
+ add r5, r1, #0x0
+ mul r5, r2
+ add r4, #0x8
+ ldr r0, [r4, r5]
+ cmp r0, #0x0
+ beq _020178BA
+ bl FUN_02016A18
+ mov r0, #0x0
+ str r0, [r4, r5]
+_020178BA:
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020178BC
+FUN_020178BC: ; 0x020178BC
+ cmp r0, #0x7
+ bhi _0201795A
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020178CC: ; jump table (using 16-bit offset)
+ .short _020178DC - _020178CC - 2; case 0
+ .short _020178EC - _020178CC - 2; case 1
+ .short _020178FC - _020178CC - 2; case 2
+ .short _0201790C - _020178CC - 2; case 3
+ .short _0201791C - _020178CC - 2; case 4
+ .short _0201792C - _020178CC - 2; case 5
+ .short _0201793C - _020178CC - 2; case 6
+ .short _0201794C - _020178CC - 2; case 7
+_020178DC:
+ ldr r2, _0201795C ; =0x04000008
+ mov r0, #0x3
+ ldrh r3, [r2, #0x0]
+ bic r3, r0
+ add r0, r3, #0x0
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ bx lr
+_020178EC:
+ ldr r2, _02017960 ; =0x0400000A
+ mov r0, #0x3
+ ldrh r3, [r2, #0x0]
+ bic r3, r0
+ add r0, r3, #0x0
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ bx lr
+_020178FC:
+ ldr r2, _02017964 ; =0x0400000C
+ mov r0, #0x3
+ ldrh r3, [r2, #0x0]
+ bic r3, r0
+ add r0, r3, #0x0
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ bx lr
+_0201790C:
+ ldr r2, _02017968 ; =0x0400000E
+ mov r0, #0x3
+ ldrh r3, [r2, #0x0]
+ bic r3, r0
+ add r0, r3, #0x0
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ bx lr
+_0201791C:
+ ldr r2, _0201796C ; =0x04001008
+ mov r0, #0x3
+ ldrh r3, [r2, #0x0]
+ bic r3, r0
+ add r0, r3, #0x0
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ bx lr
+_0201792C:
+ ldr r2, _02017970 ; =0x0400100A
+ mov r0, #0x3
+ ldrh r3, [r2, #0x0]
+ bic r3, r0
+ add r0, r3, #0x0
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ bx lr
+_0201793C:
+ ldr r2, _02017974 ; =0x0400100C
+ mov r0, #0x3
+ ldrh r3, [r2, #0x0]
+ bic r3, r0
+ add r0, r3, #0x0
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ bx lr
+_0201794C:
+ ldr r2, _02017978 ; =0x0400100E
+ mov r0, #0x3
+ ldrh r3, [r2, #0x0]
+ bic r3, r0
+ add r0, r3, #0x0
+ orr r0, r1
+ strh r0, [r2, #0x0]
+_0201795A:
+ bx lr
+ .balign 4
+_0201795C: .word 0x04000008
+_02017960: .word 0x0400000A
+_02017964: .word 0x0400000C
+_02017968: .word 0x0400000E
+_0201796C: .word 0x04001008
+_02017970: .word 0x0400100A
+_02017974: .word 0x0400100C
+_02017978: .word 0x0400100E
+
+ thumb_func_start FUN_0201797C
+FUN_0201797C: ; 0x0201797C
+ push {r3, lr}
+ cmp r0, #0x7
+ bhi _020179DC
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0201798E: ; jump table (using 16-bit offset)
+ .short _0201799E - _0201798E - 2; case 0
+ .short _020179A6 - _0201798E - 2; case 1
+ .short _020179AE - _0201798E - 2; case 2
+ .short _020179B6 - _0201798E - 2; case 3
+ .short _020179BE - _0201798E - 2; case 4
+ .short _020179C6 - _0201798E - 2; case 5
+ .short _020179CE - _0201798E - 2; case 6
+ .short _020179D6 - _0201798E - 2; case 7
+_0201799E:
+ mov r0, #0x1
+ bl FUN_0201E6E4
+ pop {r3, pc}
+_020179A6:
+ mov r0, #0x2
+ bl FUN_0201E6E4
+ pop {r3, pc}
+_020179AE:
+ mov r0, #0x4
+ bl FUN_0201E6E4
+ pop {r3, pc}
+_020179B6:
+ mov r0, #0x8
+ bl FUN_0201E6E4
+ pop {r3, pc}
+_020179BE:
+ mov r0, #0x1
+ bl FUN_0201E74C
+ pop {r3, pc}
+_020179C6:
+ mov r0, #0x2
+ bl FUN_0201E74C
+ pop {r3, pc}
+_020179CE:
+ mov r0, #0x4
+ bl FUN_0201E74C
+ pop {r3, pc}
+_020179D6:
+ mov r0, #0x8
+ bl FUN_0201E74C
+_020179DC:
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020179E0
+FUN_020179E0: ; 0x020179E0
+ push {r4-r6, lr}
+ add r5, r1, #0x0
+ add r4, r0, #0x0
+ mov r0, #0x2c
+ add r6, r5, #0x0
+ mul r6, r0
+ add r0, r4, #0x0
+ add r0, #0x8
+ add r1, r2, #0x0
+ add r2, r3, #0x0
+ add r0, r0, r6
+ bl FUN_02017B8C
+ add r0, r4, r6
+ ldr r1, [r0, #0x14]
+ ldr r0, [r0, #0x18]
+ cmp r5, #0x7
+ bls _02017A06
+ b _02017B1C
+_02017A06:
+ add r2, r5, r5
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_02017A12: ; jump table (using 16-bit offset)
+ .short _02017A22 - _02017A12 - 2; case 0
+ .short _02017A38 - _02017A12 - 2; case 1
+ .short _02017A4E - _02017A12 - 2; case 2
+ .short _02017A78 - _02017A12 - 2; case 3
+ .short _02017AA2 - _02017A12 - 2; case 4
+ .short _02017AB8 - _02017A12 - 2; case 5
+ .short _02017ACE - _02017A12 - 2; case 6
+ .short _02017AF6 - _02017A12 - 2; case 7
+_02017A22:
+ ldr r2, _02017B20 ; =0x000001FF
+ add r3, r1, #0x0
+ lsl r1, r0, #0x10
+ lsl r0, r2, #0x10
+ and r3, r2
+ and r0, r1
+ add r1, r3, #0x0
+ orr r1, r0
+ ldr r0, _02017B24 ; =0x04000010
+ str r1, [r0, #0x0]
+ pop {r4-r6, pc}
+_02017A38:
+ ldr r2, _02017B20 ; =0x000001FF
+ add r3, r1, #0x0
+ lsl r1, r0, #0x10
+ lsl r0, r2, #0x10
+ and r3, r2
+ and r0, r1
+ add r1, r3, #0x0
+ orr r1, r0
+ ldr r0, _02017B28 ; =0x04000014
+ str r1, [r0, #0x0]
+ pop {r4-r6, pc}
+_02017A4E:
+ add r2, r4, #0x0
+ add r2, #0x74
+ ldrb r2, [r2, #0x0]
+ cmp r2, #0x0
+ bne _02017A6E
+ ldr r2, _02017B20 ; =0x000001FF
+ add r3, r1, #0x0
+ lsl r1, r0, #0x10
+ lsl r0, r2, #0x10
+ and r3, r2
+ and r0, r1
+ add r1, r3, #0x0
+ orr r1, r0
+ ldr r0, _02017B2C ; =0x04000018
+ str r1, [r0, #0x0]
+ pop {r4-r6, pc}
+_02017A6E:
+ add r0, r4, #0x0
+ mov r1, #0x2
+ bl FUN_02017C6C
+ pop {r4-r6, pc}
+_02017A78:
+ add r2, r4, #0x0
+ add r2, #0xa0
+ ldrb r2, [r2, #0x0]
+ cmp r2, #0x0
+ bne _02017A98
+ ldr r2, _02017B20 ; =0x000001FF
+ add r3, r1, #0x0
+ lsl r1, r0, #0x10
+ lsl r0, r2, #0x10
+ and r3, r2
+ and r0, r1
+ add r1, r3, #0x0
+ orr r1, r0
+ ldr r0, _02017B30 ; =0x0400001C
+ str r1, [r0, #0x0]
+ pop {r4-r6, pc}
+_02017A98:
+ add r0, r4, #0x0
+ mov r1, #0x3
+ bl FUN_02017C6C
+ pop {r4-r6, pc}
+_02017AA2:
+ ldr r2, _02017B20 ; =0x000001FF
+ add r3, r1, #0x0
+ lsl r1, r0, #0x10
+ lsl r0, r2, #0x10
+ and r3, r2
+ and r0, r1
+ add r1, r3, #0x0
+ orr r1, r0
+ ldr r0, _02017B34 ; =0x04001010
+ str r1, [r0, #0x0]
+ pop {r4-r6, pc}
+_02017AB8:
+ ldr r2, _02017B20 ; =0x000001FF
+ add r3, r1, #0x0
+ lsl r1, r0, #0x10
+ lsl r0, r2, #0x10
+ and r3, r2
+ and r0, r1
+ add r1, r3, #0x0
+ orr r1, r0
+ ldr r0, _02017B38 ; =0x04001014
+ str r1, [r0, #0x0]
+ pop {r4-r6, pc}
+_02017ACE:
+ mov r2, #0x49
+ lsl r2, r2, #0x2
+ ldrb r3, [r4, r2]
+ cmp r3, #0x0
+ bne _02017AEC
+ add r2, #0xdb
+ and r2, r1
+ lsl r1, r0, #0x10
+ ldr r0, _02017B3C ; =0x01FF0000
+ and r0, r1
+ add r1, r2, #0x0
+ orr r1, r0
+ ldr r0, _02017B40 ; =0x04001018
+ str r1, [r0, #0x0]
+ pop {r4-r6, pc}
+_02017AEC:
+ add r0, r4, #0x0
+ mov r1, #0x6
+ bl FUN_02017C6C
+ pop {r4-r6, pc}
+_02017AF6:
+ mov r2, #0x15
+ lsl r2, r2, #0x4
+ ldrb r3, [r4, r2]
+ cmp r3, #0x0
+ bne _02017B14
+ add r2, #0xaf
+ and r2, r1
+ lsl r1, r0, #0x10
+ ldr r0, _02017B3C ; =0x01FF0000
+ and r0, r1
+ add r1, r2, #0x0
+ orr r1, r0
+ ldr r0, _02017B44 ; =0x0400101C
+ str r1, [r0, #0x0]
+ pop {r4-r6, pc}
+_02017B14:
+ add r0, r4, #0x0
+ mov r1, #0x7
+ bl FUN_02017C6C
+_02017B1C:
+ pop {r4-r6, pc}
+ nop
+_02017B20: .word 0x000001FF
+_02017B24: .word 0x04000010
+_02017B28: .word 0x04000014
+_02017B2C: .word 0x04000018
+_02017B30: .word 0x0400001C
+_02017B34: .word 0x04001010
+_02017B38: .word 0x04001014
+_02017B3C: .word 0x01FF0000
+_02017B40: .word 0x04001018
+_02017B44: .word 0x0400101C
+
+ thumb_func_start FUN_02017B48
+FUN_02017B48: ; 0x02017B48
+ mov r2, #0x2c
+ mul r2, r1
+ add r0, r0, r2
+ ldr r0, [r0, #0x14]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02017B54
+FUN_02017B54: ; 0x02017B54
+ mov r2, #0x2c
+ mul r2, r1
+ add r0, r0, r2
+ ldr r0, [r0, #0x18]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02017B60
+FUN_02017B60: ; 0x02017B60
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r1, r5, #0x0
+ mov r0, #0x2c
+ add r1, #0x8
+ mul r0, r4
+ add r0, r1, r0
+ add r1, r2, #0x0
+ add r2, r3, #0x0
+ bl FUN_02017B8C
+ ldr r0, [sp, #0x18]
+ ldr r2, [sp, #0x10]
+ str r0, [sp, #0x0]
+ ldr r3, [sp, #0x14]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02017BD0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02017B8C
+FUN_02017B8C: ; 0x02017B8C
+ cmp r1, #0x5
+ bhi _02017BCE
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02017B9C: ; jump table (using 16-bit offset)
+ .short _02017BA8 - _02017B9C - 2; case 0
+ .short _02017BAC - _02017B9C - 2; case 1
+ .short _02017BB4 - _02017B9C - 2; case 2
+ .short _02017BBC - _02017B9C - 2; case 3
+ .short _02017BC0 - _02017B9C - 2; case 4
+ .short _02017BC8 - _02017B9C - 2; case 5
+_02017BA8:
+ str r2, [r0, #0xc]
+ bx lr
+_02017BAC:
+ ldr r1, [r0, #0xc]
+ add r1, r1, r2
+ str r1, [r0, #0xc]
+ bx lr
+_02017BB4:
+ ldr r1, [r0, #0xc]
+ sub r1, r1, r2
+ str r1, [r0, #0xc]
+ bx lr
+_02017BBC:
+ str r2, [r0, #0x10]
+ bx lr
+_02017BC0:
+ ldr r1, [r0, #0x10]
+ add r1, r1, r2
+ str r1, [r0, #0x10]
+ bx lr
+_02017BC8:
+ ldr r1, [r0, #0x10]
+ sub r1, r1, r2
+ str r1, [r0, #0x10]
+_02017BCE:
+ bx lr
+
+ thumb_func_start FUN_02017BD0
+FUN_02017BD0: ; 0x02017BD0
+ push {r3-r5, lr}
+ sub sp, #0x8
+ add r4, r1, #0x0
+ add r1, r2, #0x0
+ add r2, r3, #0x0
+ ldr r3, [sp, #0x18]
+ cmp r4, #0x7
+ bhi _02017C58
+ add r5, r4, r4
+ add r5, pc
+ ldrh r5, [r5, #0x6]
+ lsl r5, r5, #0x10
+ asr r5, r5, #0x10
+ add pc, r5
+_02017BEC: ; jump table (using 16-bit offset)
+ .short _02017C58 - _02017BEC - 2; case 0
+ .short _02017C58 - _02017BEC - 2; case 1
+ .short _02017BFC - _02017BEC - 2; case 2
+ .short _02017C14 - _02017BEC - 2; case 3
+ .short _02017C58 - _02017BEC - 2; case 4
+ .short _02017C58 - _02017BEC - 2; case 5
+ .short _02017C2C - _02017BEC - 2; case 6
+ .short _02017C44 - _02017BEC - 2; case 7
+_02017BFC:
+ mov r5, #0x2c
+ mul r5, r4
+ add r4, r0, r5
+ ldr r0, [r4, #0x14]
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x18]
+ str r0, [sp, #0x4]
+ ldr r0, _02017C5C ; =0x04000020
+ bl G2x_SetBGyAffine_
+ add sp, #0x8
+ pop {r3-r5, pc}
+_02017C14:
+ mov r5, #0x2c
+ mul r5, r4
+ add r4, r0, r5
+ ldr r0, [r4, #0x14]
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x18]
+ str r0, [sp, #0x4]
+ ldr r0, _02017C60 ; =0x04000030
+ bl G2x_SetBGyAffine_
+ add sp, #0x8
+ pop {r3-r5, pc}
+_02017C2C:
+ mov r5, #0x2c
+ mul r5, r4
+ add r4, r0, r5
+ ldr r0, [r4, #0x14]
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x18]
+ str r0, [sp, #0x4]
+ ldr r0, _02017C64 ; =0x04001020
+ bl G2x_SetBGyAffine_
+ add sp, #0x8
+ pop {r3-r5, pc}
+_02017C44:
+ mov r5, #0x2c
+ mul r5, r4
+ add r4, r0, r5
+ ldr r0, [r4, #0x14]
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x18]
+ str r0, [sp, #0x4]
+ ldr r0, _02017C68 ; =0x04001030
+ bl G2x_SetBGyAffine_
+_02017C58:
+ add sp, #0x8
+ pop {r3-r5, pc}
+ .balign 4
+_02017C5C: .word 0x04000020
+_02017C60: .word 0x04000030
+_02017C64: .word 0x04001020
+_02017C68: .word 0x04001030
+
+ thumb_func_start FUN_02017C6C
+FUN_02017C6C: ; 0x02017C6C
+ push {r4-r5, lr}
+ sub sp, #0x14
+ mov r2, #0x1
+ lsl r2, r2, #0xc
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ mov r1, #0x0
+ add r0, sp, #0x4
+ add r3, r2, #0x0
+ str r1, [sp, #0x0]
+ bl FUN_0201BB74
+ mov r3, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, sp, #0x4
+ str r3, [sp, #0x0]
+ bl FUN_02017BD0
+ add sp, #0x14
+ pop {r4-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02017C98
+FUN_02017C98: ; 0x02017C98
+ push {r3-r5, lr}
+ cmp r2, #0x0
+ bne _02017CA4
+ bl MI_UncompressLZ8
+ pop {r3-r5, pc}
+_02017CA4:
+ mov r4, #0x3
+ add r3, r0, #0x0
+ tst r3, r4
+ bne _02017CCA
+ add r3, r1, #0x0
+ tst r3, r4
+ bne _02017CCA
+ lsl r3, r2, #0x10
+ lsr r3, r3, #0x10
+ lsr r4, r3, #0x1f
+ lsl r5, r3, #0x1e
+ sub r5, r5, r4
+ mov r3, #0x1e
+ ror r5, r3
+ add r3, r4, r5
+ bne _02017CCA
+ bl MIi_CpuCopy32
+ pop {r3-r5, pc}
+_02017CCA:
+ bl MIi_CpuCopy16
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02017CD0
+FUN_02017CD0: ; 0x02017CD0
+ push {r3, lr}
+ mov r2, #0x2c
+ mul r2, r1
+ add r3, r0, r2
+ ldr r2, [r3, #0x10]
+ str r2, [sp, #0x0]
+ ldr r2, [r3, #0x8]
+ ldr r3, [r3, #0xc]
+ bl FUN_02017CE8
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02017CE8
+FUN_02017CE8: ; 0x02017CE8
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ str r3, [sp, #0x0]
+ cmp r3, #0x0
+ bne _02017D56
+ mov r0, #0x2c
+ add r7, r4, #0x0
+ mul r7, r0
+ add r0, r5, r7
+ ldr r0, [r0, #0x8]
+ str r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _02017D26
+ ldr r1, [sp, #0x4]
+ add r0, r6, #0x0
+ add r2, r3, #0x0
+ bl FUN_02017C98
+ add r3, r5, r7
+ ldr r2, [r3, #0x10]
+ ldr r1, [sp, #0x4]
+ ldr r3, [r3, #0xc]
+ add r0, r4, #0x0
+ lsl r2, r2, #0x1
+ bl FUN_02017D68
+ add sp, #0x8
+ pop {r3-r7, pc}
+_02017D26:
+ ldr r0, [r6, #0x0]
+ lsr r7, r0, #0x8
+ ldr r0, [r5, #0x0]
+ add r1, r7, #0x0
+ bl FUN_020169D8
+ add r5, r0, #0x0
+ ldr r2, [sp, #0x0]
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_02017C98
+ ldr r2, [sp, #0x20]
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ lsl r2, r2, #0x1
+ add r3, r7, #0x0
+ bl FUN_02017D68
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ add sp, #0x8
+ pop {r3-r7, pc}
+_02017D56:
+ ldr r2, [sp, #0x20]
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ lsl r2, r2, #0x1
+ bl FUN_02017D68
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02017D68
+FUN_02017D68: ; 0x02017D68
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ add r6, r3, #0x0
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ add r5, r2, #0x0
+ bl DC_FlushRange
+ cmp r7, #0x7
+ bhi _02017DF8
+ add r0, r7, r7
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02017D8A: ; jump table (using 16-bit offset)
+ .short _02017D9A - _02017D8A - 2; case 0
+ .short _02017DA6 - _02017D8A - 2; case 1
+ .short _02017DB2 - _02017D8A - 2; case 2
+ .short _02017DBE - _02017D8A - 2; case 3
+ .short _02017DCA - _02017D8A - 2; case 4
+ .short _02017DD6 - _02017D8A - 2; case 5
+ .short _02017DE2 - _02017D8A - 2; case 6
+ .short _02017DEE - _02017D8A - 2; case 7
+_02017D9A:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ bl GX_LoadBG0Scr
+ pop {r3-r7, pc}
+_02017DA6:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ bl GX_LoadBG1Scr
+ pop {r3-r7, pc}
+_02017DB2:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ bl GX_LoadBG2Scr
+ pop {r3-r7, pc}
+_02017DBE:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ bl GX_LoadBG3Scr
+ pop {r3-r7, pc}
+_02017DCA:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ bl GXS_LoadBG0Scr
+ pop {r3-r7, pc}
+_02017DD6:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ bl GXS_LoadBG1Scr
+ pop {r3-r7, pc}
+_02017DE2:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ bl GXS_LoadBG2Scr
+ pop {r3-r7, pc}
+_02017DEE:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ bl GXS_LoadBG3Scr
+_02017DF8:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02017DFC
+FUN_02017DFC: ; 0x02017DFC
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r2, #0x0
+ mov r2, #0x2c
+ mul r2, r1
+ add r1, r4, r2
+ ldr r1, [r1, #0x8]
+ add r2, r3, #0x0
+ bl FUN_02017C98
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02017E14
+FUN_02017E14: ; 0x02017E14
+ push {r3-r4, lr}
+ sub sp, #0x4
+ mov r4, #0x2c
+ mul r4, r1
+ add r4, r0, r4
+ ldrb r4, [r4, #0x1e]
+ cmp r4, #0x0
+ bne _02017E32
+ ldr r4, [sp, #0x10]
+ lsl r4, r4, #0x5
+ str r4, [sp, #0x0]
+ bl FUN_02017E40
+ add sp, #0x4
+ pop {r3-r4, pc}
+_02017E32:
+ ldr r4, [sp, #0x10]
+ lsl r4, r4, #0x6
+ str r4, [sp, #0x0]
+ bl FUN_02017E40
+ add sp, #0x4
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_02017E40
+FUN_02017E40: ; 0x02017E40
+ push {r3-r7, lr}
+ add r7, r1, #0x0
+ add r5, r2, #0x0
+ str r3, [sp, #0x0]
+ cmp r3, #0x0
+ bne _02017E78
+ ldr r1, [r5, #0x0]
+ ldr r0, [r0, #0x0]
+ lsr r4, r1, #0x8
+ add r1, r4, #0x0
+ bl FUN_020169D8
+ add r6, r0, #0x0
+ ldr r2, [sp, #0x0]
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02017C98
+ ldr r2, [sp, #0x18]
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ add r3, r4, #0x0
+ bl FUN_02017E84
+ add r0, r6, #0x0
+ bl FUN_02016A18
+ pop {r3-r7, pc}
+_02017E78:
+ ldr r2, [sp, #0x18]
+ add r0, r7, #0x0
+ add r1, r5, #0x0
+ bl FUN_02017E84
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02017E84
+FUN_02017E84: ; 0x02017E84
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ add r6, r3, #0x0
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ add r5, r2, #0x0
+ bl DC_FlushRange
+ cmp r7, #0x7
+ bhi _02017F14
+ add r0, r7, r7
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02017EA6: ; jump table (using 16-bit offset)
+ .short _02017EB6 - _02017EA6 - 2; case 0
+ .short _02017EC2 - _02017EA6 - 2; case 1
+ .short _02017ECE - _02017EA6 - 2; case 2
+ .short _02017EDA - _02017EA6 - 2; case 3
+ .short _02017EE6 - _02017EA6 - 2; case 4
+ .short _02017EF2 - _02017EA6 - 2; case 5
+ .short _02017EFE - _02017EA6 - 2; case 6
+ .short _02017F0A - _02017EA6 - 2; case 7
+_02017EB6:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ bl GX_LoadBG0Char
+ pop {r3-r7, pc}
+_02017EC2:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ bl GX_LoadBG1Char
+ pop {r3-r7, pc}
+_02017ECE:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ bl GX_LoadBG2Char
+ pop {r3-r7, pc}
+_02017EDA:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ bl GX_LoadBG3Char
+ pop {r3-r7, pc}
+_02017EE6:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ bl GXS_LoadBG0Char
+ pop {r3-r7, pc}
+_02017EF2:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ bl GXS_LoadBG1Char
+ pop {r3-r7, pc}
+_02017EFE:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ bl GXS_LoadBG2Char
+ pop {r3-r7, pc}
+_02017F0A:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ bl GXS_LoadBG3Char
+_02017F14:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02017F18
+FUN_02017F18: ; 0x02017F18
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ add r5, r1, #0x0
+ add r0, r3, #0x0
+ add r7, r2, #0x0
+ str r3, [sp, #0x0]
+ bl FUN_020169D8
+ add r4, r0, #0x0
+ mov r1, #0x0
+ add r2, r5, #0x0
+ bl memset
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ add r2, r7, #0x0
+ add r3, r5, #0x0
+ bl FUN_02017E84
+ ldr r0, [sp, #0x0]
+ add r1, r4, #0x0
+ bl FUN_02016A8C
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02017F48
+FUN_02017F48: ; 0x02017F48
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r7, r1, #0x0
+ add r4, r0, #0x0
+ mov r1, #0x2c
+ add r6, r7, #0x0
+ add r4, #0x1f
+ mul r6, r1
+ ldrb r1, [r4, r6]
+ ldr r0, [r0, #0x0]
+ add r5, r2, #0x0
+ mul r1, r3
+ str r1, [sp, #0x0]
+ bl FUN_020169D8
+ str r0, [sp, #0x4]
+ ldrb r0, [r4, r6]
+ cmp r0, #0x20
+ bne _02017F82
+ lsl r2, r5, #0xc
+ lsl r1, r5, #0x8
+ lsl r0, r5, #0x4
+ orr r1, r2
+ orr r0, r1
+ add r1, r5, #0x0
+ orr r1, r0
+ lsl r0, r1, #0x10
+ add r5, r1, #0x0
+ b _02017F8C
+_02017F82:
+ lsl r2, r5, #0x18
+ lsl r1, r5, #0x10
+ lsl r0, r5, #0x8
+ orr r1, r2
+ orr r0, r1
+_02017F8C:
+ orr r5, r0
+ ldr r1, [sp, #0x4]
+ ldr r2, [sp, #0x0]
+ add r0, r5, #0x0
+ bl MIi_CpuClearFast
+ lsl r0, r7, #0x18
+ ldrb r2, [r4, r6]
+ ldr r3, [sp, #0x20]
+ ldr r1, [sp, #0x4]
+ mul r2, r3
+ ldr r3, [sp, #0x0]
+ lsr r0, r0, #0x18
+ bl FUN_02017E84
+ ldr r0, [sp, #0x4]
+ bl FUN_02016A18
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02017FB4
+FUN_02017FB4: ; 0x02017FB4
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r7, r3, #0x0
+ bl DC_FlushRange
+ cmp r6, #0x4
+ bhs _02017FD6
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ add r2, r4, #0x0
+ bl GX_LoadBGPltt
+ pop {r3-r7, pc}
+_02017FD6:
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ add r2, r4, #0x0
+ bl GXS_LoadBGPltt
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02017FE4
+FUN_02017FE4: ; 0x02017FE4
+ push {r0-r3}
+ push {r3, lr}
+ add r1, sp, #0xc
+ mov r2, #0x2
+ mov r3, #0x0
+ bl FUN_02017FB4
+ pop {r3}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+ .balign 4
+
+ thumb_func_start FUN_02017FFC
+FUN_02017FFC: ; 0x02017FFC
+ cmp r2, #0x5
+ bhi _02018066
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0201800C: ; jump table (using 16-bit offset)
+ .short _02018018 - _0201800C - 2; case 0
+ .short _02018022 - _0201800C - 2; case 1
+ .short _02018022 - _0201800C - 2; case 2
+ .short _0201802C - _0201800C - 2; case 3
+ .short _02018042 - _0201800C - 2; case 4
+ .short _02018064 - _0201800C - 2; case 5
+_02018018:
+ lsl r1, r1, #0x4
+ add r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bx lr
+_02018022:
+ lsl r1, r1, #0x5
+ add r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bx lr
+_0201802C:
+ mov r2, #0x1f
+ add r3, r0, #0x0
+ and r3, r2
+ mov r2, #0x1f
+ bic r0, r2
+ add r0, r1, r0
+ lsl r0, r0, #0x5
+ add r0, r3, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bx lr
+_02018042:
+ asr r2, r1, #0x5
+ asr r3, r0, #0x5
+ lsl r2, r2, #0x1
+ add r2, r3, r2
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ lsl r2, r2, #0x1a
+ lsr r3, r2, #0x10
+ mov r2, #0x1f
+ and r2, r0
+ lsl r0, r1, #0x1b
+ lsr r0, r0, #0x16
+ add r0, r2, r0
+ add r0, r3, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bx lr
+_02018064:
+ mov r0, #0x0
+_02018066:
+ bx lr
+
+ thumb_func_start FUN_02018068
+FUN_02018068: ; 0x02018068
+ push {r3-r7}
+ sub sp, #0x4
+ str r3, [sp, #0x0]
+ add r6, r2, #0x0
+ ldr r5, [sp, #0x0]
+ add r4, r6, #0x0
+ sub r4, #0x20
+ sub r5, #0x20
+ mov r2, #0x0
+ lsl r4, r4, #0x10
+ lsl r5, r5, #0x10
+ add r3, r2, #0x0
+ asr r4, r4, #0x10
+ asr r7, r5, #0x10
+ lsr r5, r0, #0x5
+ beq _0201808E
+ add r2, r2, #0x1
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+_0201808E:
+ lsr r5, r1, #0x5
+ beq _02018098
+ add r2, r2, #0x2
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+_02018098:
+ cmp r2, #0x3
+ bhi _02018140
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_020180A8: ; jump table (using 16-bit offset)
+ .short _020180B0 - _020180A8 - 2; case 0
+ .short _020180CE - _020180A8 - 2; case 1
+ .short _020180F4 - _020180A8 - 2; case 2
+ .short _02018120 - _020180A8 - 2; case 3
+_020180B0:
+ cmp r4, #0x0
+ blt _020180C0
+ lsl r1, r1, #0x5
+ add r0, r0, r1
+ add r0, r3, r0
+ lsl r0, r0, #0x10
+ lsr r3, r0, #0x10
+ b _02018140
+_020180C0:
+ add r2, r1, #0x0
+ mul r2, r6
+ add r0, r0, r2
+ add r0, r3, r0
+ lsl r0, r0, #0x10
+ lsr r3, r0, #0x10
+ b _02018140
+_020180CE:
+ cmp r7, #0x0
+ blt _020180D8
+ mov r2, #0x1
+ lsl r2, r2, #0xa
+ b _020180DC
+_020180D8:
+ ldr r2, [sp, #0x0]
+ lsl r2, r2, #0x5
+_020180DC:
+ add r2, r3, r2
+ lsl r2, r2, #0x10
+ lsr r3, r2, #0x10
+ mov r2, #0x1f
+ and r2, r0
+ add r0, r1, #0x0
+ mul r0, r4
+ add r0, r2, r0
+ add r0, r3, r0
+ lsl r0, r0, #0x10
+ lsr r3, r0, #0x10
+ b _02018140
+_020180F4:
+ lsl r2, r6, #0x5
+ add r2, r3, r2
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ cmp r4, #0x0
+ blt _0201810E
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x16
+ add r0, r0, r1
+ add r0, r2, r0
+ lsl r0, r0, #0x10
+ lsr r3, r0, #0x10
+ b _02018140
+_0201810E:
+ mov r3, #0x1f
+ and r1, r3
+ add r3, r1, #0x0
+ mul r3, r6
+ add r0, r0, r3
+ add r0, r2, r0
+ lsl r0, r0, #0x10
+ lsr r3, r0, #0x10
+ b _02018140
+_02018120:
+ add r2, r6, r7
+ lsl r2, r2, #0x5
+ add r2, r3, r2
+ add r5, r0, #0x0
+ mov r3, #0x1f
+ add r0, r1, #0x0
+ and r0, r3
+ add r1, r0, #0x0
+ lsl r2, r2, #0x10
+ and r5, r3
+ mul r1, r4
+ lsr r2, r2, #0x10
+ add r0, r5, r1
+ add r0, r2, r0
+ lsl r0, r0, #0x10
+ lsr r3, r0, #0x10
+_02018140:
+ add r0, r3, #0x0
+ add sp, #0x4
+ pop {r3-r7}
+ bx lr
+
+ thumb_func_start FUN_02018148
+FUN_02018148: ; 0x02018148
+ push {r3-r6, lr}
+ sub sp, #0x1c
+ add r6, sp, #0x20
+ ldrb r5, [r6, #0x14]
+ str r5, [sp, #0x0]
+ ldrb r4, [r6, #0x18]
+ str r4, [sp, #0x4]
+ str r2, [sp, #0x8]
+ mov r2, #0x0
+ str r2, [sp, #0xc]
+ str r2, [sp, #0x10]
+ str r5, [sp, #0x14]
+ str r4, [sp, #0x18]
+ add r2, r3, #0x0
+ ldrb r3, [r6, #0x10]
+ bl FUN_02018170
+ add sp, #0x1c
+ pop {r3-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02018170
+FUN_02018170: ; 0x02018170
+ push {r4-r5, lr}
+ sub sp, #0x1c
+ add r4, r2, #0x0
+ add r2, r3, #0x0
+ mov r3, #0x2c
+ add r5, r1, #0x0
+ mul r5, r3
+ add r1, r0, r5
+ ldrb r1, [r1, #0x1c]
+ add r3, sp, #0x18
+ cmp r1, #0x1
+ beq _020181BA
+ ldrb r1, [r3, #0x14]
+ add r0, #0x8
+ add r0, r0, r5
+ str r1, [sp, #0x0]
+ ldr r1, [sp, #0x30]
+ str r1, [sp, #0x4]
+ ldrb r1, [r3, #0x1c]
+ str r1, [sp, #0x8]
+ add r1, sp, #0x38
+ ldrb r1, [r1, #0x0]
+ str r1, [sp, #0xc]
+ add r1, sp, #0x3c
+ ldrb r1, [r1, #0x0]
+ str r1, [sp, #0x10]
+ add r1, sp, #0x40
+ ldrb r1, [r1, #0x0]
+ str r1, [sp, #0x14]
+ mov r1, #0x0
+ str r1, [sp, #0x18]
+ ldrb r3, [r3, #0x10]
+ add r1, r4, #0x0
+ bl FUN_02018268
+ add sp, #0x1c
+ pop {r4-r5, pc}
+_020181BA:
+ ldrb r1, [r3, #0x14]
+ add r0, #0x8
+ add r0, r0, r5
+ str r1, [sp, #0x0]
+ ldr r1, [sp, #0x30]
+ str r1, [sp, #0x4]
+ ldrb r1, [r3, #0x1c]
+ str r1, [sp, #0x8]
+ add r1, sp, #0x38
+ ldrb r1, [r1, #0x0]
+ str r1, [sp, #0xc]
+ add r1, sp, #0x3c
+ ldrb r1, [r1, #0x0]
+ str r1, [sp, #0x10]
+ add r1, sp, #0x40
+ ldrb r1, [r1, #0x0]
+ str r1, [sp, #0x14]
+ mov r1, #0x0
+ str r1, [sp, #0x18]
+ ldrb r3, [r3, #0x10]
+ add r1, r4, #0x0
+ bl FUN_020183DC
+ add sp, #0x1c
+ pop {r4-r5, pc}
+
+ thumb_func_start FUN_020181EC
+FUN_020181EC: ; 0x020181EC
+ push {r4-r5, lr}
+ sub sp, #0x1c
+ add r4, r2, #0x0
+ add r2, r3, #0x0
+ mov r3, #0x2c
+ add r5, r1, #0x0
+ mul r5, r3
+ add r1, r0, r5
+ ldrb r1, [r1, #0x1c]
+ add r3, sp, #0x18
+ cmp r1, #0x1
+ beq _02018236
+ ldrb r1, [r3, #0x14]
+ add r0, #0x8
+ add r0, r0, r5
+ str r1, [sp, #0x0]
+ ldr r1, [sp, #0x30]
+ str r1, [sp, #0x4]
+ ldrb r1, [r3, #0x1c]
+ str r1, [sp, #0x8]
+ add r1, sp, #0x38
+ ldrb r1, [r1, #0x0]
+ str r1, [sp, #0xc]
+ add r1, sp, #0x3c
+ ldrb r1, [r1, #0x0]
+ str r1, [sp, #0x10]
+ add r1, sp, #0x40
+ ldrb r1, [r1, #0x0]
+ str r1, [sp, #0x14]
+ mov r1, #0x1
+ str r1, [sp, #0x18]
+ ldrb r3, [r3, #0x10]
+ add r1, r4, #0x0
+ bl FUN_02018268
+ add sp, #0x1c
+ pop {r4-r5, pc}
+_02018236:
+ ldrb r1, [r3, #0x14]
+ add r0, #0x8
+ add r0, r0, r5
+ str r1, [sp, #0x0]
+ ldr r1, [sp, #0x30]
+ str r1, [sp, #0x4]
+ ldrb r1, [r3, #0x1c]
+ str r1, [sp, #0x8]
+ add r1, sp, #0x38
+ ldrb r1, [r1, #0x0]
+ str r1, [sp, #0xc]
+ add r1, sp, #0x3c
+ ldrb r1, [r1, #0x0]
+ str r1, [sp, #0x10]
+ add r1, sp, #0x40
+ ldrb r1, [r1, #0x0]
+ str r1, [sp, #0x14]
+ mov r1, #0x1
+ str r1, [sp, #0x18]
+ ldrb r3, [r3, #0x10]
+ add r1, r4, #0x0
+ bl FUN_020183DC
+ add sp, #0x1c
+ pop {r4-r5, pc}
+
+ thumb_func_start FUN_02018268
+FUN_02018268: ; 0x02018268
+ push {r4-r7, lr}
+ sub sp, #0x44
+ str r1, [sp, #0x0]
+ str r2, [sp, #0x4]
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x58]
+ add r6, r3, #0x0
+ str r0, [sp, #0x58]
+ ldr r0, [sp, #0x5c]
+ ldr r4, [sp, #0x68]
+ str r0, [sp, #0x5c]
+ ldr r0, [sp, #0x6c]
+ str r0, [sp, #0x6c]
+ ldr r0, [r7, #0x0]
+ str r0, [sp, #0x2c]
+ cmp r0, #0x0
+ bne _0201828C
+ b _020183D6
+_0201828C:
+ ldrb r0, [r7, #0x15]
+ add r1, sp, #0x40
+ add r1, #0x1
+ add r2, sp, #0x40
+ bl FUN_02017850
+ add r0, sp, #0x70
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0201833A
+ mov r0, #0x0
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0x58]
+ cmp r0, #0x0
+ bls _020182CA
+ add r1, sp, #0x48
+ ldrb r0, [r1, #0x1c]
+ str r0, [sp, #0x1c]
+ ldrb r0, [r1, #0x18]
+ str r0, [sp, #0x18]
+ lsl r1, r0, #0x1
+ ldr r0, [sp, #0x5c]
+ add r0, r0, r1
+ str r0, [sp, #0x14]
+_020182BC:
+ ldr r1, [sp, #0x4]
+ ldr r0, [sp, #0x28]
+ add r0, r1, r0
+ add r1, sp, #0x40
+ ldrb r1, [r1, #0x0]
+ cmp r0, r1
+ blt _020182CC
+_020182CA:
+ b _020183D6
+_020182CC:
+ ldr r2, [sp, #0x1c]
+ ldr r1, [sp, #0x28]
+ add r2, r2, r1
+ ldr r1, [sp, #0x6c]
+ cmp r2, r1
+ bge _020183D6
+ mov r5, #0x0
+ cmp r6, #0x0
+ bls _02018326
+ add r1, r4, #0x0
+ mul r1, r2
+ lsl r2, r1, #0x1
+ ldr r1, [sp, #0x14]
+ lsl r0, r0, #0x18
+ add r1, r1, r2
+ lsr r0, r0, #0x18
+ str r1, [sp, #0x10]
+ str r0, [sp, #0x30]
+_020182F0:
+ add r1, sp, #0x40
+ ldr r0, [sp, #0x0]
+ ldrb r1, [r1, #0x1]
+ add r0, r0, r5
+ cmp r0, r1
+ bge _02018326
+ ldr r1, [sp, #0x18]
+ add r1, r1, r5
+ cmp r1, r4
+ bge _02018326
+ ldrb r2, [r7, #0x15]
+ lsl r0, r0, #0x18
+ ldr r1, [sp, #0x30]
+ lsr r0, r0, #0x18
+ bl FUN_02017FFC
+ ldr r1, [sp, #0x10]
+ lsl r2, r5, #0x1
+ ldrh r1, [r1, r2]
+ lsl r2, r0, #0x1
+ ldr r0, [sp, #0x2c]
+ strh r1, [r0, r2]
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, r6
+ blo _020182F0
+_02018326:
+ ldr r0, [sp, #0x28]
+ add r0, r0, #0x1
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ str r1, [sp, #0x28]
+ ldr r0, [sp, #0x58]
+ cmp r1, r0
+ blo _020182BC
+ add sp, #0x44
+ pop {r4-r7, pc}
+_0201833A:
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x58]
+ cmp r0, #0x0
+ bls _020183D6
+ add r1, sp, #0x48
+ ldrb r0, [r1, #0x1c]
+ str r0, [sp, #0x24]
+ ldrb r0, [r1, #0x18]
+ str r0, [sp, #0x20]
+_0201834E:
+ ldr r1, [sp, #0x4]
+ ldr r0, [sp, #0x8]
+ add r1, r1, r0
+ add r0, sp, #0x40
+ ldrb r0, [r0, #0x0]
+ cmp r1, r0
+ bge _020183D6
+ ldr r2, [sp, #0x24]
+ ldr r0, [sp, #0x8]
+ add r0, r2, r0
+ ldr r2, [sp, #0x6c]
+ cmp r0, r2
+ bge _020183D6
+ mov r5, #0x0
+ cmp r6, #0x0
+ bls _020183C6
+ lsl r1, r1, #0x18
+ lsl r0, r0, #0x18
+ lsr r1, r1, #0x18
+ lsr r0, r0, #0x18
+ str r1, [sp, #0x34]
+ str r0, [sp, #0x3c]
+_0201837A:
+ add r1, sp, #0x40
+ ldr r0, [sp, #0x0]
+ ldrb r1, [r1, #0x1]
+ add r0, r0, r5
+ cmp r0, r1
+ bge _020183C6
+ ldr r1, [sp, #0x20]
+ add r1, r1, r5
+ str r1, [sp, #0xc]
+ cmp r1, r4
+ bge _020183C6
+ ldrb r2, [r7, #0x15]
+ lsl r0, r0, #0x18
+ ldr r1, [sp, #0x34]
+ lsr r0, r0, #0x18
+ bl FUN_02017FFC
+ str r0, [sp, #0x38]
+ ldr r0, [sp, #0xc]
+ ldr r1, [sp, #0x3c]
+ lsl r0, r0, #0x18
+ ldr r3, [sp, #0x6c]
+ lsr r0, r0, #0x18
+ add r2, r4, #0x0
+ bl FUN_02018068
+ lsl r1, r0, #0x1
+ ldr r0, [sp, #0x5c]
+ ldrh r0, [r0, r1]
+ ldr r1, [sp, #0x38]
+ lsl r2, r1, #0x1
+ ldr r1, [sp, #0x2c]
+ strh r0, [r1, r2]
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, r6
+ blo _0201837A
+_020183C6:
+ ldr r0, [sp, #0x8]
+ add r0, r0, #0x1
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ str r1, [sp, #0x8]
+ ldr r0, [sp, #0x58]
+ cmp r1, r0
+ blo _0201834E
+_020183D6:
+ add sp, #0x44
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020183DC
+FUN_020183DC: ; 0x020183DC
+ push {r4-r7, lr}
+ sub sp, #0x44
+ str r1, [sp, #0x0]
+ str r2, [sp, #0x4]
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x58]
+ add r6, r3, #0x0
+ str r0, [sp, #0x58]
+ ldr r0, [sp, #0x5c]
+ ldr r4, [sp, #0x68]
+ str r0, [sp, #0x5c]
+ ldr r0, [sp, #0x6c]
+ str r0, [sp, #0x6c]
+ ldr r0, [r7, #0x0]
+ str r0, [sp, #0x2c]
+ cmp r0, #0x0
+ bne _02018400
+ b _0201853C
+_02018400:
+ ldrb r0, [r7, #0x15]
+ add r1, sp, #0x40
+ add r1, #0x1
+ add r2, sp, #0x40
+ bl FUN_02017850
+ add r0, sp, #0x70
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _020184A4
+ mov r0, #0x0
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0x58]
+ cmp r0, #0x0
+ bhi _02018420
+ b _0201853C
+_02018420:
+ add r1, sp, #0x48
+ ldrb r0, [r1, #0x1c]
+ str r0, [sp, #0x1c]
+ ldrb r0, [r1, #0x18]
+ ldr r1, [sp, #0x5c]
+ str r0, [sp, #0x18]
+ add r0, r1, r0
+ str r0, [sp, #0x14]
+_02018430:
+ ldr r1, [sp, #0x4]
+ ldr r0, [sp, #0x28]
+ add r0, r1, r0
+ add r1, sp, #0x40
+ ldrb r1, [r1, #0x0]
+ cmp r0, r1
+ bge _0201853C
+ ldr r2, [sp, #0x1c]
+ ldr r1, [sp, #0x28]
+ add r2, r2, r1
+ ldr r1, [sp, #0x6c]
+ cmp r2, r1
+ bge _0201853C
+ mov r5, #0x0
+ cmp r6, #0x0
+ bls _02018490
+ ldr r1, [sp, #0x14]
+ mul r2, r4
+ lsl r0, r0, #0x18
+ add r1, r1, r2
+ lsr r0, r0, #0x18
+ str r1, [sp, #0x10]
+ str r0, [sp, #0x30]
+_0201845E:
+ add r1, sp, #0x40
+ ldr r0, [sp, #0x0]
+ ldrb r1, [r1, #0x1]
+ add r0, r0, r5
+ cmp r0, r1
+ bge _02018490
+ ldr r1, [sp, #0x18]
+ add r1, r1, r5
+ cmp r1, r4
+ bge _02018490
+ ldrb r2, [r7, #0x15]
+ lsl r0, r0, #0x18
+ ldr r1, [sp, #0x30]
+ lsr r0, r0, #0x18
+ bl FUN_02017FFC
+ ldr r1, [sp, #0x10]
+ ldrb r2, [r1, r5]
+ ldr r1, [sp, #0x2c]
+ strb r2, [r1, r0]
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, r6
+ blo _0201845E
+_02018490:
+ ldr r0, [sp, #0x28]
+ add r0, r0, #0x1
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ str r1, [sp, #0x28]
+ ldr r0, [sp, #0x58]
+ cmp r1, r0
+ blo _02018430
+ add sp, #0x44
+ pop {r4-r7, pc}
+_020184A4:
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x58]
+ cmp r0, #0x0
+ bls _0201853C
+ add r1, sp, #0x48
+ ldrb r0, [r1, #0x1c]
+ str r0, [sp, #0x24]
+ ldrb r0, [r1, #0x18]
+ str r0, [sp, #0x20]
+_020184B8:
+ ldr r1, [sp, #0x4]
+ ldr r0, [sp, #0x8]
+ add r1, r1, r0
+ add r0, sp, #0x40
+ ldrb r0, [r0, #0x0]
+ cmp r1, r0
+ bge _0201853C
+ ldr r2, [sp, #0x24]
+ ldr r0, [sp, #0x8]
+ add r0, r2, r0
+ ldr r2, [sp, #0x6c]
+ cmp r0, r2
+ bge _0201853C
+ mov r5, #0x0
+ cmp r6, #0x0
+ bls _0201852C
+ lsl r1, r1, #0x18
+ lsl r0, r0, #0x18
+ lsr r1, r1, #0x18
+ lsr r0, r0, #0x18
+ str r1, [sp, #0x34]
+ str r0, [sp, #0x3c]
+_020184E4:
+ add r1, sp, #0x40
+ ldr r0, [sp, #0x0]
+ ldrb r1, [r1, #0x1]
+ add r0, r0, r5
+ cmp r0, r1
+ bge _0201852C
+ ldr r1, [sp, #0x20]
+ add r1, r1, r5
+ str r1, [sp, #0xc]
+ cmp r1, r4
+ bge _0201852C
+ ldrb r2, [r7, #0x15]
+ lsl r0, r0, #0x18
+ ldr r1, [sp, #0x34]
+ lsr r0, r0, #0x18
+ bl FUN_02017FFC
+ str r0, [sp, #0x38]
+ ldr r0, [sp, #0xc]
+ ldr r1, [sp, #0x3c]
+ lsl r0, r0, #0x18
+ ldr r3, [sp, #0x6c]
+ lsr r0, r0, #0x18
+ add r2, r4, #0x0
+ bl FUN_02018068
+ ldr r1, [sp, #0x5c]
+ ldrb r2, [r1, r0]
+ ldr r1, [sp, #0x2c]
+ ldr r0, [sp, #0x38]
+ strb r2, [r1, r0]
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, r6
+ blo _020184E4
+_0201852C:
+ ldr r0, [sp, #0x8]
+ add r0, r0, #0x1
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ str r1, [sp, #0x8]
+ ldr r0, [sp, #0x58]
+ cmp r1, r0
+ blo _020184B8
+_0201853C:
+ add sp, #0x44
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_02018540
+FUN_02018540: ; 0x02018540
+ push {r4-r5, lr}
+ sub sp, #0xc
+ add r4, r2, #0x0
+ add r2, r3, #0x0
+ mov r3, #0x2c
+ add r5, r1, #0x0
+ mul r5, r3
+ add r1, r0, r5
+ ldrb r1, [r1, #0x1c]
+ add r3, sp, #0x8
+ cmp r1, #0x1
+ beq _02018574
+ ldrb r1, [r3, #0x14]
+ add r0, #0x8
+ add r0, r0, r5
+ str r1, [sp, #0x0]
+ ldrb r1, [r3, #0x18]
+ str r1, [sp, #0x4]
+ ldrb r1, [r3, #0x1c]
+ str r1, [sp, #0x8]
+ ldrb r3, [r3, #0x10]
+ add r1, r4, #0x0
+ bl FUN_02018590
+ add sp, #0xc
+ pop {r4-r5, pc}
+_02018574:
+ ldrb r1, [r3, #0x14]
+ add r0, #0x8
+ add r0, r0, r5
+ str r1, [sp, #0x0]
+ ldrb r1, [r3, #0x18]
+ str r1, [sp, #0x4]
+ lsl r1, r4, #0x18
+ ldrb r3, [r3, #0x10]
+ lsr r1, r1, #0x18
+ bl FUN_02018640
+ add sp, #0xc
+ pop {r4-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02018590
+FUN_02018590: ; 0x02018590
+ push {r4-r7, lr}
+ sub sp, #0x1c
+ str r2, [sp, #0x4]
+ str r3, [sp, #0x8]
+ ldr r4, [r0, #0x0]
+ add r7, r1, #0x0
+ str r0, [sp, #0x0]
+ ldr r6, [sp, #0x38]
+ cmp r4, #0x0
+ beq _0201863A
+ ldrb r0, [r0, #0x15]
+ add r1, sp, #0x18
+ add r1, #0x1
+ add r2, sp, #0x18
+ bl FUN_02017850
+ add r0, sp, #0x20
+ ldrb r2, [r0, #0x14]
+ ldr r1, [sp, #0x8]
+ add r1, r1, r2
+ ldr r2, [sp, #0x8]
+ str r1, [sp, #0xc]
+ cmp r2, r1
+ bge _0201863A
+ ldrb r2, [r0, #0x10]
+ ldr r0, [sp, #0x4]
+ lsl r1, r6, #0xc
+ add r0, r0, r2
+ add r1, r1, r7
+ str r0, [sp, #0x10]
+ lsl r0, r1, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x14]
+_020185D2:
+ add r0, sp, #0x18
+ ldrb r1, [r0, #0x0]
+ ldr r0, [sp, #0x8]
+ cmp r0, r1
+ bhs _0201863A
+ ldr r5, [sp, #0x4]
+ ldr r0, [sp, #0x10]
+ add r1, r5, #0x0
+ cmp r1, r0
+ bge _0201862A
+_020185E6:
+ add r0, sp, #0x18
+ ldrb r0, [r0, #0x1]
+ cmp r5, r0
+ bhs _0201862A
+ ldr r2, [sp, #0x0]
+ ldr r1, [sp, #0x8]
+ ldrb r2, [r2, #0x15]
+ add r0, r5, #0x0
+ bl FUN_02017FFC
+ cmp r6, #0x11
+ bne _02018604
+ lsl r0, r0, #0x1
+ strh r7, [r4, r0]
+ b _0201861E
+_02018604:
+ cmp r6, #0x10
+ bne _02018618
+ lsl r0, r0, #0x1
+ ldrh r2, [r4, r0]
+ mov r1, #0xf
+ lsl r1, r1, #0xc
+ and r1, r2
+ add r1, r7, r1
+ strh r1, [r4, r0]
+ b _0201861E
+_02018618:
+ lsl r1, r0, #0x1
+ ldr r0, [sp, #0x14]
+ strh r0, [r4, r1]
+_0201861E:
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ ldr r0, [sp, #0x10]
+ cmp r5, r0
+ blt _020185E6
+_0201862A:
+ ldr r0, [sp, #0x8]
+ add r0, r0, #0x1
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ ldr r0, [sp, #0xc]
+ str r1, [sp, #0x8]
+ cmp r1, r0
+ blt _020185D2
+_0201863A:
+ add sp, #0x1c
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02018640
+FUN_02018640: ; 0x02018640
+ push {r4-r7, lr}
+ sub sp, #0x14
+ str r1, [sp, #0x0]
+ add r7, r0, #0x0
+ str r2, [sp, #0x4]
+ ldr r0, [r7, #0x0]
+ add r5, r3, #0x0
+ str r0, [sp, #0xc]
+ cmp r0, #0x0
+ beq _020186B0
+ ldrb r0, [r7, #0x15]
+ add r1, sp, #0x10
+ add r1, #0x1
+ add r2, sp, #0x10
+ bl FUN_02017850
+ add r1, sp, #0x18
+ ldrb r0, [r1, #0x14]
+ add r0, r5, r0
+ str r0, [sp, #0x8]
+ cmp r5, r0
+ bge _020186B0
+ ldrb r1, [r1, #0x10]
+ ldr r0, [sp, #0x4]
+ add r6, r0, r1
+_02018672:
+ add r0, sp, #0x10
+ ldrb r0, [r0, #0x0]
+ cmp r5, r0
+ bhs _020186B0
+ ldr r4, [sp, #0x4]
+ add r0, r4, #0x0
+ cmp r0, r6
+ bge _020186A4
+_02018682:
+ add r0, sp, #0x10
+ ldrb r0, [r0, #0x1]
+ cmp r4, r0
+ bhs _020186A4
+ ldrb r2, [r7, #0x15]
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_02017FFC
+ ldr r2, [sp, #0x0]
+ ldr r1, [sp, #0xc]
+ strb r2, [r1, r0]
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, r6
+ blt _02018682
+_020186A4:
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ ldr r0, [sp, #0x8]
+ cmp r5, r0
+ blt _02018672
+_020186B0:
+ add sp, #0x14
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_020186B4
+FUN_020186B4: ; 0x020186B4
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0x0
+ mov r0, #0x2c
+ add r7, r1, #0x0
+ mul r7, r0
+ str r2, [sp, #0x0]
+ add r0, r5, r7
+ ldr r4, [r0, #0x8]
+ add r6, r3, #0x0
+ cmp r4, #0x0
+ beq _0201873C
+ ldrb r0, [r0, #0x1d]
+ add r1, sp, #0x10
+ add r1, #0x1
+ add r2, sp, #0x10
+ bl FUN_02017850
+ add r0, sp, #0x18
+ ldrb r1, [r0, #0x14]
+ add r1, r6, r1
+ str r1, [sp, #0x4]
+ cmp r6, r1
+ bge _0201873C
+ add r1, r5, r7
+ str r1, [sp, #0xc]
+ ldrb r1, [r0, #0x18]
+ lsl r1, r1, #0xc
+ str r1, [sp, #0x8]
+ ldrb r1, [r0, #0x10]
+ ldr r0, [sp, #0x0]
+ add r7, r0, r1
+_020186F4:
+ add r0, sp, #0x10
+ ldrb r0, [r0, #0x0]
+ cmp r6, r0
+ bhs _0201873C
+ ldr r5, [sp, #0x0]
+ add r0, r5, #0x0
+ cmp r0, r7
+ bge _02018730
+_02018704:
+ add r0, sp, #0x10
+ ldrb r0, [r0, #0x1]
+ cmp r5, r0
+ bhs _02018730
+ ldr r2, [sp, #0xc]
+ add r0, r5, #0x0
+ ldrb r2, [r2, #0x1d]
+ add r1, r6, #0x0
+ bl FUN_02017FFC
+ lsl r0, r0, #0x1
+ ldrh r2, [r4, r0]
+ ldr r1, _02018740 ; =0x00000FFF
+ and r2, r1
+ ldr r1, [sp, #0x8]
+ orr r1, r2
+ strh r1, [r4, r0]
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, r7
+ blt _02018704
+_02018730:
+ add r0, r6, #0x1
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ ldr r0, [sp, #0x4]
+ cmp r6, r0
+ blt _020186F4
+_0201873C:
+ add sp, #0x14
+ pop {r4-r7, pc}
+ .balign 4
+_02018740: .word 0x00000FFF
+
+ thumb_func_start FUN_02018744
+FUN_02018744: ; 0x02018744
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ mov r0, #0x2c
+ mul r0, r4
+ add r2, r5, r0
+ ldr r1, [r2, #0x8]
+ cmp r1, #0x0
+ beq _02018766
+ ldr r2, [r2, #0xc]
+ mov r0, #0x0
+ bl MIi_CpuClear16
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02017CD0
+_02018766:
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02018768
+FUN_02018768: ; 0x02018768
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ mov r0, #0x2c
+ mul r0, r4
+ add r3, r5, r0
+ ldr r1, [r3, #0x8]
+ cmp r1, #0x0
+ beq _0201878A
+ add r0, r2, #0x0
+ ldr r2, [r3, #0xc]
+ bl MIi_CpuClear16
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02017CD0
+_0201878A:
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0201878C
+FUN_0201878C: ; 0x0201878C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ mov r0, #0x2c
+ mul r0, r4
+ add r3, r5, r0
+ ldr r1, [r3, #0x8]
+ cmp r1, #0x0
+ beq _020187AE
+ add r0, r2, #0x0
+ ldr r2, [r3, #0xc]
+ bl MIi_CpuClear16
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0201AC68
+_020187AE:
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020187B0
+FUN_020187B0: ; 0x020187B0
+ push {r3, lr}
+ cmp r0, #0x7
+ bhi _02018802
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020187C2: ; jump table (using 16-bit offset)
+ .short _020187D2 - _020187C2 - 2; case 0
+ .short _020187D8 - _020187C2 - 2; case 1
+ .short _020187DE - _020187C2 - 2; case 2
+ .short _020187E4 - _020187C2 - 2; case 3
+ .short _020187EA - _020187C2 - 2; case 4
+ .short _020187F0 - _020187C2 - 2; case 5
+ .short _020187F6 - _020187C2 - 2; case 6
+ .short _020187FC - _020187C2 - 2; case 7
+_020187D2:
+ bl G2_GetBG0CharPtr
+ pop {r3, pc}
+_020187D8:
+ bl G2_GetBG1CharPtr
+ pop {r3, pc}
+_020187DE:
+ bl G2_GetBG2CharPtr
+ pop {r3, pc}
+_020187E4:
+ bl G2_GetBG3CharPtr
+ pop {r3, pc}
+_020187EA:
+ bl G2S_GetBG0CharPtr
+ pop {r3, pc}
+_020187F0:
+ bl G2S_GetBG1CharPtr
+ pop {r3, pc}
+_020187F6:
+ bl G2S_GetBG2CharPtr
+ pop {r3, pc}
+_020187FC:
+ bl G2S_GetBG3CharPtr
+ pop {r3, pc}
+_02018802:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02018808
+FUN_02018808: ; 0x02018808
+ push {r4-r7}
+ lsl r3, r3, #0x1c
+ lsr r3, r3, #0x18
+ mov r4, #0x0
+ cmp r1, #0x0
+ bls _02018842
+ mov r5, #0xf
+ add r6, r5, #0x0
+_02018818:
+ ldrb r7, [r0, r4]
+ and r7, r6
+ strb r7, [r2, #0x0]
+ ldrb r7, [r2, #0x0]
+ cmp r7, #0x0
+ beq _02018828
+ add r7, r7, r3
+ strb r7, [r2, #0x0]
+_02018828:
+ ldrb r7, [r0, r4]
+ asr r7, r7, #0x4
+ and r7, r5
+ strb r7, [r2, #0x1]
+ ldrb r7, [r2, #0x1]
+ cmp r7, #0x0
+ beq _0201883A
+ add r7, r7, r3
+ strb r7, [r2, #0x1]
+_0201883A:
+ add r4, r4, #0x1
+ add r2, r2, #0x2
+ cmp r4, r1
+ blo _02018818
+_02018842:
+ pop {r4-r7}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02018848
+FUN_02018848: ; 0x02018848
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ add r6, r0, #0x0
+ add r0, r3, #0x0
+ lsl r1, r5, #0x1
+ add r7, r2, #0x0
+ bl FUN_02016998
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_02018808
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201886C
+FUN_0201886C: ; 0x0201886C
+ mov r2, #0x2c
+ mul r2, r1
+ add r0, r0, r2
+ ldr r0, [r0, #0x8]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02018878
+FUN_02018878: ; 0x02018878
+ mov r2, #0x2c
+ mul r2, r1
+ add r0, r0, r2
+ ldrh r0, [r0, #0x20]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02018884
+FUN_02018884: ; 0x02018884
+ sub sp, #0x20
+ cmp r1, #0x7
+ bls _0201888C
+ b _02018A38
+_0201888C:
+ add r2, r1, r1
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_02018898: ; jump table (using 16-bit offset)
+ .short _020188A8 - _02018898 - 2; case 0
+ .short _020188BC - _02018898 - 2; case 1
+ .short _020188D0 - _02018898 - 2; case 2
+ .short _02018920 - _02018898 - 2; case 3
+ .short _02018970 - _02018898 - 2; case 4
+ .short _02018984 - _02018898 - 2; case 5
+ .short _02018998 - _02018898 - 2; case 6
+ .short _020189E8 - _02018898 - 2; case 7
+_020188A8:
+ ldr r0, _02018A40 ; =0x04000008
+ ldrh r1, [r0, #0x0]
+ add r0, sp, #0x0
+ add sp, #0x20
+ strh r1, [r0, #0x1e]
+ lsl r0, r1, #0x1e
+ lsr r0, r0, #0x1e
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+_020188BC:
+ ldr r0, _02018A44 ; =0x0400000A
+ ldrh r1, [r0, #0x0]
+ add r0, sp, #0x0
+ add sp, #0x20
+ strh r1, [r0, #0x1c]
+ lsl r0, r1, #0x1e
+ lsr r0, r0, #0x1e
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+_020188D0:
+ mov r2, #0x2c
+ mul r2, r1
+ add r0, r0, r2
+ ldrb r0, [r0, #0x1c]
+ cmp r0, #0x0
+ beq _020188E4
+ cmp r0, #0x1
+ beq _020188F8
+ cmp r0, #0x2
+ beq _0201890C
+_020188E4:
+ ldr r0, _02018A48 ; =0x0400000C
+ ldrh r1, [r0, #0x0]
+ add r0, sp, #0x0
+ add sp, #0x20
+ strh r1, [r0, #0x1a]
+ lsl r0, r1, #0x1e
+ lsr r0, r0, #0x1e
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+_020188F8:
+ ldr r0, _02018A48 ; =0x0400000C
+ ldrh r1, [r0, #0x0]
+ add r0, sp, #0x0
+ add sp, #0x20
+ strh r1, [r0, #0x18]
+ lsl r0, r1, #0x1e
+ lsr r0, r0, #0x1e
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+_0201890C:
+ ldr r0, _02018A48 ; =0x0400000C
+ ldrh r1, [r0, #0x0]
+ add r0, sp, #0x0
+ add sp, #0x20
+ strh r1, [r0, #0x16]
+ lsl r0, r1, #0x1e
+ lsr r0, r0, #0x1e
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+_02018920:
+ mov r2, #0x2c
+ mul r2, r1
+ add r0, r0, r2
+ ldrb r0, [r0, #0x1c]
+ cmp r0, #0x0
+ beq _02018934
+ cmp r0, #0x1
+ beq _02018948
+ cmp r0, #0x2
+ beq _0201895C
+_02018934:
+ ldr r0, _02018A4C ; =0x0400000E
+ ldrh r1, [r0, #0x0]
+ add r0, sp, #0x0
+ add sp, #0x20
+ strh r1, [r0, #0x14]
+ lsl r0, r1, #0x1e
+ lsr r0, r0, #0x1e
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+_02018948:
+ ldr r0, _02018A4C ; =0x0400000E
+ ldrh r1, [r0, #0x0]
+ add r0, sp, #0x0
+ add sp, #0x20
+ strh r1, [r0, #0x12]
+ lsl r0, r1, #0x1e
+ lsr r0, r0, #0x1e
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+_0201895C:
+ ldr r0, _02018A4C ; =0x0400000E
+ ldrh r1, [r0, #0x0]
+ add r0, sp, #0x0
+ add sp, #0x20
+ strh r1, [r0, #0x10]
+ lsl r0, r1, #0x1e
+ lsr r0, r0, #0x1e
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+_02018970:
+ ldr r0, _02018A50 ; =0x04001008
+ ldrh r1, [r0, #0x0]
+ add r0, sp, #0x0
+ add sp, #0x20
+ strh r1, [r0, #0xe]
+ lsl r0, r1, #0x1e
+ lsr r0, r0, #0x1e
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+_02018984:
+ ldr r0, _02018A54 ; =0x0400100A
+ ldrh r1, [r0, #0x0]
+ add r0, sp, #0x0
+ add sp, #0x20
+ strh r1, [r0, #0xc]
+ lsl r0, r1, #0x1e
+ lsr r0, r0, #0x1e
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+_02018998:
+ mov r2, #0x2c
+ mul r2, r1
+ add r0, r0, r2
+ ldrb r0, [r0, #0x1c]
+ cmp r0, #0x0
+ beq _020189AC
+ cmp r0, #0x1
+ beq _020189C0
+ cmp r0, #0x2
+ beq _020189D4
+_020189AC:
+ ldr r0, _02018A58 ; =0x0400100C
+ ldrh r1, [r0, #0x0]
+ add r0, sp, #0x0
+ add sp, #0x20
+ strh r1, [r0, #0xa]
+ lsl r0, r1, #0x1e
+ lsr r0, r0, #0x1e
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+_020189C0:
+ ldr r0, _02018A58 ; =0x0400100C
+ ldrh r1, [r0, #0x0]
+ add r0, sp, #0x0
+ add sp, #0x20
+ strh r1, [r0, #0x8]
+ lsl r0, r1, #0x1e
+ lsr r0, r0, #0x1e
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+_020189D4:
+ ldr r0, _02018A58 ; =0x0400100C
+ ldrh r1, [r0, #0x0]
+ add r0, sp, #0x0
+ add sp, #0x20
+ strh r1, [r0, #0x6]
+ lsl r0, r1, #0x1e
+ lsr r0, r0, #0x1e
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+_020189E8:
+ mov r2, #0x2c
+ mul r2, r1
+ add r0, r0, r2
+ ldrb r0, [r0, #0x1c]
+ cmp r0, #0x0
+ beq _020189FC
+ cmp r0, #0x1
+ beq _02018A10
+ cmp r0, #0x2
+ beq _02018A24
+_020189FC:
+ ldr r0, _02018A5C ; =0x0400100E
+ ldrh r1, [r0, #0x0]
+ add r0, sp, #0x0
+ add sp, #0x20
+ strh r1, [r0, #0x4]
+ lsl r0, r1, #0x1e
+ lsr r0, r0, #0x1e
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+_02018A10:
+ ldr r0, _02018A5C ; =0x0400100E
+ ldrh r1, [r0, #0x0]
+ add r0, sp, #0x0
+ add sp, #0x20
+ strh r1, [r0, #0x2]
+ lsl r0, r1, #0x1e
+ lsr r0, r0, #0x1e
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+_02018A24:
+ ldr r0, _02018A5C ; =0x0400100E
+ ldrh r1, [r0, #0x0]
+ add r0, sp, #0x0
+ add sp, #0x20
+ strh r1, [r0, #0x0]
+ lsl r0, r1, #0x1e
+ lsr r0, r0, #0x1e
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+_02018A38:
+ mov r0, #0x0
+ add sp, #0x20
+ bx lr
+ nop
+_02018A40: .word 0x04000008
+_02018A44: .word 0x0400000A
+_02018A48: .word 0x0400000C
+_02018A4C: .word 0x0400000E
+_02018A50: .word 0x04001008
+_02018A54: .word 0x0400100A
+_02018A58: .word 0x0400100C
+_02018A5C: .word 0x0400100E
+
+ thumb_func_start FUN_02018A60
+FUN_02018A60: ; 0x02018A60
+ push {r3-r7, lr}
+ sub sp, #0x68
+ str r2, [sp, #0x8]
+ str r3, [sp, #0xc]
+ add r2, sp, #0x70
+ str r0, [sp, #0x0]
+ ldrh r0, [r2, #0x10]
+ str r1, [sp, #0x4]
+ ldrh r2, [r2, #0x18]
+ str r0, [sp, #0x10]
+ add r0, r1, #0x0
+ ldrh r1, [r0, #0x4]
+ ldr r0, [sp, #0x10]
+ sub r3, r1, r0
+ cmp r3, r2
+ bge _02018A88
+ ldr r0, [sp, #0x8]
+ add r0, r0, r3
+ str r0, [sp, #0x50]
+ b _02018A8E
+_02018A88:
+ ldr r0, [sp, #0x8]
+ add r0, r2, r0
+ str r0, [sp, #0x50]
+_02018A8E:
+ ldr r2, [sp, #0x4]
+ add r3, sp, #0x70
+ ldrh r0, [r3, #0x14]
+ ldrh r2, [r2, #0x6]
+ ldrh r3, [r3, #0x1c]
+ sub r4, r2, r0
+ cmp r4, r3
+ bge _02018AA6
+ ldr r2, [sp, #0xc]
+ add r2, r2, r4
+ str r2, [sp, #0x4c]
+ b _02018AAC
+_02018AA6:
+ ldr r2, [sp, #0xc]
+ add r2, r3, r2
+ str r2, [sp, #0x4c]
+_02018AAC:
+ ldr r2, [sp, #0x0]
+ mov r3, #0x7
+ ldrh r4, [r2, #0x4]
+ add r2, r4, #0x0
+ and r2, r3
+ add r2, r4, r2
+ asr r2, r2, #0x3
+ str r2, [sp, #0x48]
+ add r2, r1, #0x0
+ and r2, r3
+ add r1, r1, r2
+ asr r1, r1, #0x3
+ str r1, [sp, #0x44]
+ add r1, sp, #0x70
+ ldrh r1, [r1, #0x20]
+ ldr r2, _02018C98 ; =0x0000FFFF
+ str r1, [sp, #0x38]
+ cmp r1, r2
+ bne _02018BB4
+ ldr r2, [sp, #0xc]
+ ldr r1, [sp, #0x4c]
+ cmp r2, r1
+ bge _02018ADE
+ cmp r2, r1
+ blt _02018AE0
+_02018ADE:
+ b _02018C92
+_02018AE0:
+ add r1, r2, #0x0
+ lsl r1, r1, #0x2
+ lsl r0, r0, #0x2
+ str r1, [sp, #0x28]
+ str r0, [sp, #0x24]
+_02018AEA:
+ ldr r3, [sp, #0x8]
+ ldr r0, [sp, #0x50]
+ add r1, r3, #0x0
+ ldr r4, [sp, #0x10]
+ cmp r1, r0
+ bge _02018B96
+ cmp r1, r0
+ bge _02018B96
+ add r0, r3, #0x0
+ lsl r5, r0, #0x2
+ add r0, r4, #0x0
+ lsl r6, r0, #0x2
+ ldr r0, _02018C9C ; =0x00003FE0
+ ldr r1, [sp, #0x28]
+ ldr r2, [sp, #0x48]
+ and r1, r0
+ mul r2, r1
+ str r2, [sp, #0x20]
+ ldr r2, [sp, #0x28]
+ mov r1, #0x1c
+ and r2, r1
+ str r2, [sp, #0x1c]
+ ldr r2, [sp, #0x24]
+ and r0, r2
+ ldr r2, [sp, #0x44]
+ mul r2, r0
+ ldr r0, [sp, #0x24]
+ str r2, [sp, #0x18]
+ and r0, r1
+ str r0, [sp, #0x14]
+_02018B26:
+ ldr r0, [sp, #0x4]
+ asr r2, r4, #0x1
+ mov r1, #0x3
+ ldr r0, [r0, #0x0]
+ and r1, r2
+ add r1, r0, r1
+ ldr r0, _02018C9C ; =0x00003FE0
+ and r0, r6
+ add r1, r1, r0
+ ldr r0, [sp, #0x18]
+ add r6, r6, #0x4
+ add r0, r1, r0
+ str r0, [sp, #0x64]
+ lsl r0, r4, #0x1f
+ lsr r2, r0, #0x1d
+ ldr r0, [sp, #0x0]
+ asr r1, r3, #0x1
+ ldr r7, [r0, #0x0]
+ mov r0, #0x3
+ and r0, r1
+ ldr r1, _02018C9C ; =0x00003FE0
+ add r4, r4, #0x1
+ and r1, r5
+ str r1, [sp, #0x54]
+ add r1, r7, r0
+ ldr r0, [sp, #0x54]
+ add r5, r5, #0x4
+ add r1, r0, r1
+ ldr r0, [sp, #0x20]
+ add r1, r0, r1
+ ldr r0, [sp, #0x1c]
+ ldrb r1, [r0, r1]
+ lsl r0, r3, #0x1f
+ lsr r0, r0, #0x1d
+ asr r1, r0
+ mov r0, #0xf
+ and r0, r1
+ add r7, r0, #0x0
+ ldr r1, [sp, #0x14]
+ ldr r0, [sp, #0x64]
+ lsl r7, r2
+ ldrb r0, [r0, r1]
+ add r3, r3, #0x1
+ str r0, [sp, #0x58]
+ mov r0, #0xf0
+ asr r0, r2
+ ldr r1, [sp, #0x58]
+ add r2, r7, #0x0
+ and r0, r1
+ orr r2, r0
+ ldr r1, [sp, #0x14]
+ ldr r0, [sp, #0x64]
+ strb r2, [r0, r1]
+ ldr r0, [sp, #0x50]
+ cmp r3, r0
+ blt _02018B26
+_02018B96:
+ ldr r0, [sp, #0x28]
+ add r0, r0, #0x4
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0xc]
+ add r0, r0, #0x1
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x24]
+ ldr r1, [sp, #0xc]
+ add r0, r0, #0x4
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x4c]
+ cmp r1, r0
+ blt _02018AEA
+ add sp, #0x68
+ pop {r3-r7, pc}
+_02018BB4:
+ ldr r2, [sp, #0xc]
+ ldr r1, [sp, #0x4c]
+ cmp r2, r1
+ bge _02018C92
+ cmp r2, r1
+ bge _02018C92
+ add r1, r2, #0x0
+ lsl r1, r1, #0x2
+ lsl r0, r0, #0x2
+ str r1, [sp, #0x40]
+ str r0, [sp, #0x3c]
+_02018BCA:
+ ldr r3, [sp, #0x8]
+ ldr r0, [sp, #0x50]
+ add r1, r3, #0x0
+ ldr r4, [sp, #0x10]
+ cmp r1, r0
+ bge _02018C78
+ cmp r1, r0
+ bge _02018C78
+ add r0, r3, #0x0
+ lsl r1, r0, #0x2
+ add r0, r4, #0x0
+ lsl r2, r0, #0x2
+ ldr r0, _02018C9C ; =0x00003FE0
+ ldr r5, [sp, #0x40]
+ ldr r6, [sp, #0x48]
+ and r5, r0
+ mul r6, r5
+ str r6, [sp, #0x34]
+ ldr r6, [sp, #0x40]
+ mov r5, #0x1c
+ and r6, r5
+ str r6, [sp, #0x30]
+ ldr r6, [sp, #0x3c]
+ and r0, r6
+ ldr r6, [sp, #0x44]
+ mul r6, r0
+ ldr r0, [sp, #0x3c]
+ str r6, [sp, #0x2c]
+ and r0, r5
+ str r0, [sp, #0x60]
+_02018C06:
+ ldr r0, [sp, #0x4]
+ asr r6, r4, #0x1
+ mov r5, #0x3
+ and r5, r6
+ ldr r0, [r0, #0x0]
+ asr r6, r3, #0x1
+ add r5, r0, r5
+ ldr r0, _02018C9C ; =0x00003FE0
+ and r0, r2
+ add r5, r5, r0
+ ldr r0, [sp, #0x2c]
+ add r5, r5, r0
+ ldr r0, [sp, #0x0]
+ ldr r7, [r0, #0x0]
+ mov r0, #0x3
+ and r0, r6
+ ldr r6, _02018C9C ; =0x00003FE0
+ and r6, r1
+ str r6, [sp, #0x5c]
+ add r6, r7, r0
+ ldr r0, [sp, #0x5c]
+ add r6, r0, r6
+ ldr r0, [sp, #0x34]
+ add r6, r0, r6
+ ldr r0, [sp, #0x30]
+ ldrb r6, [r0, r6]
+ lsl r0, r3, #0x1f
+ lsr r0, r0, #0x1d
+ asr r6, r0
+ mov r0, #0xf
+ and r0, r6
+ ldr r6, [sp, #0x38]
+ cmp r0, r6
+ beq _02018C6A
+ lsl r6, r4, #0x1f
+ lsr r7, r6, #0x1d
+ lsl r0, r7
+ mov lr, r0
+ ldr r0, [sp, #0x60]
+ ldrb r0, [r5, r0]
+ mov r12, r0
+ mov r0, #0xf0
+ add r6, r0, #0x0
+ asr r6, r7
+ mov r0, r12
+ and r0, r6
+ mov r6, lr
+ orr r6, r0
+ ldr r0, [sp, #0x60]
+ strb r6, [r5, r0]
+_02018C6A:
+ ldr r0, [sp, #0x50]
+ add r3, r3, #0x1
+ add r1, r1, #0x4
+ add r2, r2, #0x4
+ add r4, r4, #0x1
+ cmp r3, r0
+ blt _02018C06
+_02018C78:
+ ldr r0, [sp, #0x40]
+ add r0, r0, #0x4
+ str r0, [sp, #0x40]
+ ldr r0, [sp, #0xc]
+ add r0, r0, #0x1
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x3c]
+ ldr r1, [sp, #0xc]
+ add r0, r0, #0x4
+ str r0, [sp, #0x3c]
+ ldr r0, [sp, #0x4c]
+ cmp r1, r0
+ blt _02018BCA
+_02018C92:
+ add sp, #0x68
+ pop {r3-r7, pc}
+ nop
+_02018C98: .word 0x0000FFFF
+_02018C9C: .word 0x00003FE0
+
+ thumb_func_start FUN_02018CA0
+FUN_02018CA0: ; 0x02018CA0
+ push {r3-r7, lr}
+ sub sp, #0x50
+ str r2, [sp, #0x8]
+ str r3, [sp, #0xc]
+ add r2, sp, #0x58
+ str r0, [sp, #0x0]
+ ldrh r0, [r2, #0x10]
+ str r1, [sp, #0x4]
+ ldrh r2, [r2, #0x18]
+ str r0, [sp, #0x10]
+ add r0, r1, #0x0
+ ldrh r1, [r0, #0x4]
+ ldr r0, [sp, #0x10]
+ sub r3, r1, r0
+ cmp r3, r2
+ bge _02018CC6
+ ldr r0, [sp, #0x8]
+ add r0, r0, r3
+ b _02018CCA
+_02018CC6:
+ ldr r0, [sp, #0x8]
+ add r0, r2, r0
+_02018CCA:
+ ldr r2, [sp, #0x4]
+ add r3, sp, #0x58
+ mov r12, r0
+ ldrh r0, [r3, #0x14]
+ ldrh r2, [r2, #0x6]
+ ldrh r3, [r3, #0x1c]
+ sub r4, r2, r0
+ cmp r4, r3
+ bge _02018CE2
+ ldr r2, [sp, #0xc]
+ add r2, r2, r4
+ b _02018CE6
+_02018CE2:
+ ldr r2, [sp, #0xc]
+ add r2, r3, r2
+_02018CE6:
+ mov lr, r2
+ ldr r2, [sp, #0x0]
+ mov r3, #0x7
+ ldrh r4, [r2, #0x4]
+ add r2, r4, #0x0
+ and r2, r3
+ add r2, r4, r2
+ asr r2, r2, #0x3
+ str r2, [sp, #0x4c]
+ add r2, r1, #0x0
+ and r2, r3
+ add r1, r1, r2
+ asr r1, r1, #0x3
+ str r1, [sp, #0x48]
+ add r1, sp, #0x58
+ ldrh r1, [r1, #0x20]
+ ldr r2, _02018E80 ; =0x0000FFFF
+ str r1, [sp, #0x3c]
+ cmp r1, r2
+ bne _02018DC6
+ ldr r2, [sp, #0xc]
+ mov r1, lr
+ cmp r2, r1
+ bge _02018D1C
+ mov r1, lr
+ cmp r2, r1
+ blt _02018D1E
+_02018D1C:
+ b _02018E7C
+_02018D1E:
+ add r1, r2, #0x0
+ lsl r1, r1, #0x3
+ lsl r0, r0, #0x3
+ str r1, [sp, #0x28]
+ str r0, [sp, #0x24]
+_02018D28:
+ ldr r1, [sp, #0x8]
+ mov r0, r12
+ add r2, r1, #0x0
+ ldr r7, [sp, #0x10]
+ cmp r2, r0
+ bge _02018DA8
+ mov r0, r12
+ cmp r2, r0
+ bge _02018DA8
+ add r0, r1, #0x0
+ lsl r2, r0, #0x3
+ add r0, r7, #0x0
+ lsl r3, r0, #0x3
+ ldr r6, _02018E84 ; =0x00007FC0
+ ldr r0, [sp, #0x28]
+ ldr r4, [sp, #0x4c]
+ and r0, r6
+ mul r4, r0
+ str r4, [sp, #0x20]
+ ldr r0, [sp, #0x28]
+ mov r5, #0x38
+ and r0, r5
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x24]
+ ldr r4, [sp, #0x48]
+ and r0, r6
+ mul r4, r0
+ ldr r0, [sp, #0x24]
+ str r4, [sp, #0x18]
+ and r0, r5
+ str r0, [sp, #0x14]
+_02018D66:
+ ldr r0, [sp, #0x0]
+ add r5, r1, #0x0
+ mov r4, #0x7
+ and r5, r4
+ ldr r0, [r0, #0x0]
+ ldr r4, _02018E84 ; =0x00007FC0
+ add r0, r0, r5
+ and r4, r2
+ add r4, r4, r0
+ ldr r0, [sp, #0x20]
+ add r5, r7, #0x0
+ add r4, r0, r4
+ ldr r0, [sp, #0x1c]
+ add r1, r1, #0x1
+ ldrb r6, [r0, r4]
+ ldr r0, [sp, #0x4]
+ mov r4, #0x7
+ and r5, r4
+ ldr r0, [r0, #0x0]
+ ldr r4, _02018E84 ; =0x00007FC0
+ add r0, r0, r5
+ and r4, r3
+ add r4, r4, r0
+ ldr r0, [sp, #0x18]
+ add r2, #0x8
+ add r4, r0, r4
+ ldr r0, [sp, #0x14]
+ add r3, #0x8
+ strb r6, [r0, r4]
+ mov r0, r12
+ add r7, r7, #0x1
+ cmp r1, r0
+ blt _02018D66
+_02018DA8:
+ ldr r0, [sp, #0x28]
+ add r0, #0x8
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0xc]
+ add r0, r0, #0x1
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x24]
+ ldr r1, [sp, #0xc]
+ add r0, #0x8
+ str r0, [sp, #0x24]
+ mov r0, lr
+ cmp r1, r0
+ blt _02018D28
+ add sp, #0x50
+ pop {r3-r7, pc}
+_02018DC6:
+ ldr r2, [sp, #0xc]
+ mov r1, lr
+ cmp r2, r1
+ bge _02018E7C
+ mov r1, lr
+ cmp r2, r1
+ bge _02018E7C
+ add r1, r2, #0x0
+ lsl r1, r1, #0x3
+ lsl r0, r0, #0x3
+ str r1, [sp, #0x44]
+ str r0, [sp, #0x40]
+_02018DDE:
+ ldr r2, [sp, #0x8]
+ mov r0, r12
+ add r1, r2, #0x0
+ ldr r3, [sp, #0x10]
+ cmp r1, r0
+ bge _02018E62
+ mov r0, r12
+ cmp r1, r0
+ bge _02018E62
+ add r0, r2, #0x0
+ lsl r6, r0, #0x3
+ add r0, r3, #0x0
+ lsl r1, r0, #0x3
+ ldr r7, _02018E84 ; =0x00007FC0
+ ldr r0, [sp, #0x44]
+ ldr r4, [sp, #0x4c]
+ and r0, r7
+ mul r4, r0
+ str r4, [sp, #0x38]
+ ldr r0, [sp, #0x44]
+ mov r5, #0x38
+ and r0, r5
+ str r0, [sp, #0x34]
+ ldr r0, [sp, #0x40]
+ ldr r4, [sp, #0x48]
+ and r0, r7
+ mul r4, r0
+ ldr r0, [sp, #0x40]
+ str r4, [sp, #0x30]
+ and r0, r5
+ str r0, [sp, #0x2c]
+_02018E1C:
+ ldr r0, [sp, #0x4]
+ mov r4, #0x7
+ ldr r0, [r0, #0x0]
+ and r4, r3
+ add r0, r0, r4
+ ldr r4, _02018E84 ; =0x00007FC0
+ add r5, r2, #0x0
+ and r4, r1
+ add r4, r0, r4
+ ldr r0, [sp, #0x30]
+ add r7, r4, r0
+ ldr r0, [sp, #0x0]
+ mov r4, #0x7
+ and r5, r4
+ ldr r0, [r0, #0x0]
+ ldr r4, _02018E84 ; =0x00007FC0
+ add r0, r0, r5
+ and r4, r6
+ add r4, r4, r0
+ ldr r0, [sp, #0x38]
+ add r4, r0, r4
+ ldr r0, [sp, #0x34]
+ ldrb r0, [r0, r4]
+ ldr r4, [sp, #0x3c]
+ cmp r0, r4
+ beq _02018E54
+ ldr r4, [sp, #0x2c]
+ strb r0, [r7, r4]
+_02018E54:
+ add r2, r2, #0x1
+ mov r0, r12
+ add r6, #0x8
+ add r1, #0x8
+ add r3, r3, #0x1
+ cmp r2, r0
+ blt _02018E1C
+_02018E62:
+ ldr r0, [sp, #0x44]
+ add r0, #0x8
+ str r0, [sp, #0x44]
+ ldr r0, [sp, #0xc]
+ add r0, r0, #0x1
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x40]
+ ldr r1, [sp, #0xc]
+ add r0, #0x8
+ str r0, [sp, #0x40]
+ mov r0, lr
+ cmp r1, r0
+ blt _02018DDE
+_02018E7C:
+ add sp, #0x50
+ pop {r3-r7, pc}
+ .balign 4
+_02018E80: .word 0x0000FFFF
+_02018E84: .word 0x00007FC0
+
+ thumb_func_start FUN_02018E88
+FUN_02018E88: ; 0x02018E88
+ push {r4-r7, lr}
+ sub sp, #0x14
+ str r1, [sp, #0x4]
+ str r2, [sp, #0x8]
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x2c]
+ str r0, [sp, #0x2c]
+ ldr r0, [sp, #0x4]
+ add r6, r0, r3
+ ldr r0, [sp, #0x0]
+ ldrh r0, [r0, #0x4]
+ cmp r6, r0
+ ble _02018EA4
+ add r6, r0, #0x0
+_02018EA4:
+ add r1, sp, #0x18
+ ldrh r2, [r1, #0x10]
+ ldr r1, [sp, #0x8]
+ add r1, r1, r2
+ mov r12, r1
+ ldr r1, [sp, #0x0]
+ ldrh r2, [r1, #0x6]
+ mov r1, r12
+ cmp r1, r2
+ ble _02018EBA
+ mov r12, r2
+_02018EBA:
+ mov r1, #0x7
+ and r1, r0
+ add r0, r0, r1
+ asr r0, r0, #0x3
+ mov lr, r0
+ ldr r1, [sp, #0x8]
+ mov r0, r12
+ cmp r1, r0
+ bge _02018F44
+ add r0, r1, #0x0
+ lsl r0, r0, #0x2
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x2c]
+ lsl r0, r0, #0x4
+ str r0, [sp, #0x10]
+_02018ED8:
+ ldr r1, [sp, #0x4]
+ add r0, r1, #0x0
+ cmp r0, r6
+ bge _02018F32
+ lsl r5, r0, #0x2
+ ldr r2, _02018F48 ; =0x00003FE0
+ ldr r0, [sp, #0xc]
+ and r0, r2
+ add r7, r0, #0x0
+ mov r2, lr
+ mul r7, r2
+ ldr r0, [sp, #0xc]
+ mov r2, #0x1c
+ and r2, r0
+_02018EF4:
+ ldr r0, [sp, #0x0]
+ asr r3, r1, #0x1
+ ldr r4, [r0, #0x0]
+ mov r0, #0x3
+ and r0, r3
+ ldr r3, _02018F48 ; =0x00003FE0
+ add r0, r4, r0
+ and r3, r5
+ add r0, r0, r3
+ add r0, r0, r7
+ mov r3, #0x1
+ tst r3, r1
+ ldrb r4, [r0, r2]
+ beq _02018F1C
+ mov r3, #0xf
+ and r3, r4
+ strb r3, [r0, r2]
+ ldrb r4, [r0, r2]
+ ldr r3, [sp, #0x10]
+ b _02018F26
+_02018F1C:
+ mov r3, #0xf0
+ and r3, r4
+ strb r3, [r0, r2]
+ ldrb r4, [r0, r2]
+ ldr r3, [sp, #0x2c]
+_02018F26:
+ orr r3, r4
+ add r1, r1, #0x1
+ strb r3, [r0, r2]
+ add r5, r5, #0x4
+ cmp r1, r6
+ blt _02018EF4
+_02018F32:
+ ldr r0, [sp, #0xc]
+ add r0, r0, #0x4
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x8]
+ add r1, r0, #0x1
+ mov r0, r12
+ str r1, [sp, #0x8]
+ cmp r1, r0
+ blt _02018ED8
+_02018F44:
+ add sp, #0x14
+ pop {r4-r7, pc}
+ .balign 4
+_02018F48: .word 0x00003FE0
+
+ thumb_func_start FUN_02018F4C
+FUN_02018F4C: ; 0x02018F4C
+ push {r4-r7, lr}
+ sub sp, #0x14
+ str r1, [sp, #0x4]
+ str r2, [sp, #0x8]
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x2c]
+ str r0, [sp, #0x2c]
+ ldr r0, [sp, #0x4]
+ add r5, r0, r3
+ ldr r0, [sp, #0x0]
+ ldrh r0, [r0, #0x4]
+ cmp r5, r0
+ ble _02018F68
+ add r5, r0, #0x0
+_02018F68:
+ add r1, sp, #0x18
+ ldrh r2, [r1, #0x10]
+ ldr r1, [sp, #0x8]
+ add r1, r1, r2
+ mov lr, r1
+ ldr r1, [sp, #0x0]
+ ldrh r2, [r1, #0x6]
+ mov r1, lr
+ cmp r1, r2
+ ble _02018F7E
+ mov lr, r2
+_02018F7E:
+ mov r1, #0x7
+ and r1, r0
+ add r0, r0, r1
+ asr r0, r0, #0x3
+ str r0, [sp, #0x10]
+ ldr r1, [sp, #0x8]
+ mov r0, lr
+ cmp r1, r0
+ bge _02018FEA
+ add r0, r1, #0x0
+ lsl r0, r0, #0x3
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x4]
+ lsl r0, r0, #0x3
+ mov r12, r0
+_02018F9C:
+ ldr r2, [sp, #0x4]
+ add r0, r2, #0x0
+ cmp r0, r5
+ bge _02018FD8
+ ldr r1, [sp, #0xc]
+ ldr r0, _02018FF0 ; =0x00007FC0
+ mov r3, r12
+ and r0, r1
+ add r7, r0, #0x0
+ ldr r1, [sp, #0x10]
+ mov r0, #0x38
+ mul r7, r1
+ ldr r1, [sp, #0xc]
+ add r6, r1, #0x0
+ and r6, r0
+_02018FBA:
+ ldr r0, [sp, #0x0]
+ ldr r4, _02018FF0 ; =0x00007FC0
+ ldr r1, [r0, #0x0]
+ mov r0, #0x7
+ and r0, r2
+ and r4, r3
+ add r0, r1, r0
+ add r0, r4, r0
+ add r1, r7, r0
+ ldr r0, [sp, #0x2c]
+ add r2, r2, #0x1
+ strb r0, [r6, r1]
+ add r3, #0x8
+ cmp r2, r5
+ blt _02018FBA
+_02018FD8:
+ ldr r0, [sp, #0xc]
+ add r0, #0x8
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x8]
+ add r1, r0, #0x1
+ mov r0, lr
+ str r1, [sp, #0x8]
+ cmp r1, r0
+ blt _02018F9C
+_02018FEA:
+ add sp, #0x14
+ pop {r4-r7, pc}
+ nop
+_02018FF0: .word 0x00007FC0
+
+ thumb_func_start FUN_02018FF4
+FUN_02018FF4: ; 0x02018FF4
+ push {r4-r6, lr}
+ add r5, r1, #0x0
+ lsl r1, r5, #0x4
+ bl FUN_02016998
+ add r6, r0, #0x0
+ mov r4, #0x0
+ cmp r5, #0x0
+ ble _02019018
+_02019006:
+ lsl r0, r4, #0x4
+ add r0, r6, r0
+ bl FUN_0201901C
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, r5
+ blt _02019006
+_02019018:
+ add r0, r6, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0201901C
+FUN_0201901C: ; 0x0201901C
+ mov r3, #0x0
+ str r3, [r0, #0x0]
+ mov r1, #0xff
+ strb r1, [r0, #0x4]
+ strb r3, [r0, #0x5]
+ strb r3, [r0, #0x6]
+ strb r3, [r0, #0x7]
+ strb r3, [r0, #0x8]
+ strb r3, [r0, #0x9]
+ ldrh r2, [r0, #0xa]
+ ldr r1, _02019044 ; =0xFFFF8000
+ and r2, r1
+ strh r2, [r0, #0xa]
+ str r3, [r0, #0xc]
+ ldrh r2, [r0, #0xa]
+ sub r1, r1, #0x1
+ and r1, r2
+ strh r1, [r0, #0xa]
+ bx lr
+ nop
+_02019044: .word 0xFFFF8000
+
+ thumb_func_start FUN_02019048
+FUN_02019048: ; 0x02019048
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _0201905A
+ ldrb r1, [r0, #0x4]
+ cmp r1, #0xff
+ beq _0201905A
+ ldr r0, [r0, #0xc]
+ cmp r0, #0x0
+ bne _0201905E
+_0201905A:
+ mov r0, #0x0
+ bx lr
+_0201905E:
+ mov r0, #0x1
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02019064
+FUN_02019064: ; 0x02019064
+ push {r3-r7, lr}
+ add r6, r2, #0x0
+ add r5, r0, #0x0
+ mov r0, #0x2c
+ add r7, r6, #0x0
+ mul r7, r0
+ add r4, r1, #0x0
+ str r3, [sp, #0x0]
+ add r1, r5, r7
+ ldr r0, [r1, #0x8]
+ cmp r0, #0x0
+ beq _020190E0
+ add r3, sp, #0x8
+ ldrb r2, [r1, #0x1f]
+ ldrb r1, [r3, #0x14]
+ ldrb r3, [r3, #0x18]
+ ldr r0, [r5, #0x0]
+ mul r3, r1
+ add r1, r2, #0x0
+ mul r1, r3
+ bl FUN_02016998
+ add r1, r0, #0x0
+ beq _020190E0
+ str r5, [r4, #0x0]
+ strb r6, [r4, #0x4]
+ ldr r0, [sp, #0x0]
+ add r3, sp, #0x8
+ strb r0, [r4, #0x5]
+ ldrb r0, [r3, #0x10]
+ ldr r2, _020190E4 ; =0xFFFF8000
+ strb r0, [r4, #0x6]
+ ldrb r0, [r3, #0x14]
+ strb r0, [r4, #0x7]
+ ldrb r0, [r3, #0x18]
+ strb r0, [r4, #0x8]
+ ldrb r0, [r3, #0x1c]
+ strb r0, [r4, #0x9]
+ ldrh r0, [r4, #0xa]
+ ldrh r3, [r3, #0x20]
+ and r0, r2
+ lsr r2, r2, #0x11
+ and r2, r3
+ orr r0, r2
+ strh r0, [r4, #0xa]
+ str r1, [r4, #0xc]
+ add r0, r5, r7
+ ldrb r0, [r0, #0x1e]
+ cmp r0, #0x0
+ bne _020190CC
+ mov r2, #0x0
+ b _020190CE
+_020190CC:
+ mov r2, #0x1
+_020190CE:
+ ldrh r1, [r4, #0xa]
+ ldr r0, _020190E8 ; =0xFFFF7FFF
+ and r1, r0
+ lsl r0, r2, #0x10
+ lsr r0, r0, #0x10
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x10
+ orr r0, r1
+ strh r0, [r4, #0xa]
+_020190E0:
+ pop {r3-r7, pc}
+ nop
+_020190E4: .word 0xFFFF8000
+_020190E8: .word 0xFFFF7FFF
+
+ thumb_func_start FUN_020190EC
+FUN_020190EC: ; 0x020190EC
+ push {r3-r7, lr}
+ sub sp, #0x8
+ str r3, [sp, #0x0]
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x24]
+ add r6, r2, #0x0
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x0]
+ add r4, r1, #0x0
+ mul r0, r6
+ lsl r0, r0, #0x5
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0x0]
+ ldr r1, [sp, #0x4]
+ bl FUN_02016998
+ ldr r1, [sp, #0x24]
+ add r7, r0, #0x0
+ lsl r2, r1, #0x4
+ orr r1, r2
+ lsl r1, r1, #0x18
+ ldr r2, [sp, #0x4]
+ lsr r1, r1, #0x18
+ bl memset
+ cmp r7, #0x0
+ beq _02019148
+ str r5, [r4, #0x0]
+ strb r6, [r4, #0x7]
+ ldr r0, [sp, #0x0]
+ strb r0, [r4, #0x8]
+ ldrh r1, [r4, #0xa]
+ ldr r0, _0201914C ; =0xFFFF8000
+ add r3, r1, #0x0
+ add r1, sp, #0x10
+ ldrh r2, [r1, #0x10]
+ lsr r1, r0, #0x11
+ and r3, r0
+ and r1, r2
+ orr r1, r3
+ strh r1, [r4, #0xa]
+ str r7, [r4, #0xc]
+ ldrh r1, [r4, #0xa]
+ sub r0, r0, #0x1
+ and r0, r1
+ strh r0, [r4, #0xa]
+_02019148:
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_0201914C: .word 0xFFFF8000
+
+ thumb_func_start FUN_02019150
+FUN_02019150: ; 0x02019150
+ push {lr}
+ sub sp, #0x14
+ add r3, r2, #0x0
+ ldrb r2, [r3, #0x2]
+ str r2, [sp, #0x0]
+ ldrb r2, [r3, #0x3]
+ str r2, [sp, #0x4]
+ ldrb r2, [r3, #0x4]
+ str r2, [sp, #0x8]
+ ldrb r2, [r3, #0x5]
+ str r2, [sp, #0xc]
+ ldrh r2, [r3, #0x6]
+ str r2, [sp, #0x10]
+ ldrb r2, [r3, #0x0]
+ ldrb r3, [r3, #0x1]
+ bl FUN_02019064
+ add sp, #0x14
+ pop {pc}
+ .balign 4
+
+ thumb_func_start FUN_02019178
+FUN_02019178: ; 0x02019178
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_02016A18
+ mov r2, #0x0
+ str r2, [r4, #0x0]
+ mov r0, #0xff
+ strb r0, [r4, #0x4]
+ strb r2, [r4, #0x5]
+ strb r2, [r4, #0x6]
+ strb r2, [r4, #0x7]
+ strb r2, [r4, #0x8]
+ strb r2, [r4, #0x9]
+ ldrh r1, [r4, #0xa]
+ ldr r0, _020191A0 ; =0xFFFF8000
+ and r0, r1
+ strh r0, [r4, #0xa]
+ str r2, [r4, #0xc]
+ pop {r4, pc}
+ .balign 4
+_020191A0: .word 0xFFFF8000
+
+ thumb_func_start FUN_020191A4
+FUN_020191A4: ; 0x020191A4
+ push {r4-r6, lr}
+ add r6, r1, #0x0
+ add r5, r0, #0x0
+ mov r4, #0x0
+ cmp r6, #0x0
+ ble _020191C8
+_020191B0:
+ lsl r0, r4, #0x4
+ add r0, r5, r0
+ ldr r0, [r0, #0xc]
+ cmp r0, #0x0
+ beq _020191BE
+ bl FUN_02016A18
+_020191BE:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, r6
+ blt _020191B0
+_020191C8:
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020191D0
+FUN_020191D0: ; 0x020191D0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _020191DA
+ bl ErrorHandling
+_020191DA:
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _020191E4
+ bl ErrorHandling
+_020191E4:
+ ldrb r0, [r4, #0x4]
+ cmp r0, #0x8
+ blo _020191EE
+ bl ErrorHandling
+_020191EE:
+ ldrb r1, [r4, #0x4]
+ mov r0, #0x2c
+ ldr r2, [r4, #0x0]
+ mul r0, r1
+ add r0, r2, r0
+ ldrb r0, [r0, #0x1c]
+ cmp r0, #0x3
+ blo _02019202
+ bl ErrorHandling
+_02019202:
+ ldrb r2, [r4, #0x4]
+ mov r1, #0x2c
+ ldr r3, [r4, #0x0]
+ mul r1, r2
+ add r1, r3, r1
+ ldrb r1, [r1, #0x1c]
+ add r0, r4, #0x0
+ lsl r2, r1, #0x2
+ ldr r1, _0201921C ; =0x020EDB68
+ ldr r1, [r1, r2]
+ blx r1
+ pop {r4, pc}
+ nop
+_0201921C: .word 0x020EDB68
+
+ thumb_func_start FUN_02019220
+FUN_02019220: ; 0x02019220
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _0201922A
+ bl ErrorHandling
+_0201922A:
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _02019234
+ bl ErrorHandling
+_02019234:
+ ldrb r0, [r4, #0x4]
+ cmp r0, #0x8
+ blo _0201923E
+ bl ErrorHandling
+_0201923E:
+ ldrb r1, [r4, #0x4]
+ mov r0, #0x2c
+ ldr r2, [r4, #0x0]
+ mul r0, r1
+ add r0, r2, r0
+ ldrb r0, [r0, #0x1c]
+ cmp r0, #0x3
+ blo _02019252
+ bl ErrorHandling
+_02019252:
+ ldrb r2, [r4, #0x4]
+ mov r1, #0x2c
+ ldr r3, [r4, #0x0]
+ mul r1, r2
+ add r1, r3, r1
+ ldrb r1, [r1, #0x1c]
+ add r0, r4, #0x0
+ lsl r2, r1, #0x2
+ ldr r1, _0201926C ; =0x020EDB5C
+ ldr r1, [r1, r2]
+ blx r1
+ pop {r4, pc}
+ nop
+_0201926C: .word 0x020EDB5C
+
+ thumb_func_start FUN_02019270
+FUN_02019270: ; 0x02019270
+ push {r3, lr}
+ ldrb r2, [r0, #0x4]
+ mov r1, #0x2c
+ ldr r3, [r0, #0x0]
+ mul r1, r2
+ add r1, r3, r1
+ ldrb r1, [r1, #0x1c]
+ lsl r2, r1, #0x2
+ ldr r1, _02019288 ; =0x020EDB38
+ ldr r1, [r1, r2]
+ blx r1
+ pop {r3, pc}
+ .balign 4
+_02019288: .word 0x020EDB38
+
+ thumb_func_start FUN_0201928C
+FUN_0201928C: ; 0x0201928C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldrb r6, [r5, #0x7]
+ ldrb r4, [r5, #0x8]
+ strb r1, [r5, #0x7]
+ strb r2, [r5, #0x8]
+ ldrb r3, [r5, #0x4]
+ mov r2, #0x2c
+ ldr r1, [r5, #0x0]
+ mul r2, r3
+ add r1, r1, r2
+ ldrb r1, [r1, #0x1c]
+ lsl r2, r1, #0x2
+ ldr r1, _020192B4 ; =0x020EDB38
+ ldr r1, [r1, r2]
+ blx r1
+ strb r6, [r5, #0x7]
+ strb r4, [r5, #0x8]
+ pop {r4-r6, pc}
+ nop
+_020192B4: .word 0x020EDB38
+
+ thumb_func_start FUN_020192B8
+FUN_020192B8: ; 0x020192B8
+ push {r3, lr}
+ ldrb r2, [r0, #0x4]
+ mov r1, #0x2c
+ ldr r3, [r0, #0x0]
+ mul r1, r2
+ add r1, r3, r1
+ ldrb r1, [r1, #0x1c]
+ lsl r2, r1, #0x2
+ ldr r1, _020192D0 ; =0x020EDB74
+ ldr r1, [r1, r2]
+ blx r1
+ pop {r3, pc}
+ .balign 4
+_020192D0: .word 0x020EDB74
+
+ thumb_func_start FUN_020192D4
+FUN_020192D4: ; 0x020192D4
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ ldrb r1, [r5, #0x4]
+ mov r0, #0x2c
+ ldr r2, [r5, #0x0]
+ mul r0, r1
+ add r0, r2, r0
+ ldr r0, [r0, #0x8]
+ str r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _02019354
+ ldrh r0, [r5, #0xa]
+ ldrb r1, [r5, #0x5]
+ lsl r0, r0, #0x11
+ lsr r3, r0, #0x11
+ ldrb r0, [r5, #0x7]
+ add r7, r1, r0
+ ldrb r0, [r5, #0x6]
+ ldrb r1, [r5, #0x8]
+ mov r12, r0
+ add r0, r0, r1
+ mov r1, r12
+ mov lr, r0
+ cmp r1, r0
+ bhs _02019354
+_02019308:
+ ldrb r2, [r5, #0x5]
+ cmp r2, r7
+ bhs _02019348
+ mov r0, r12
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x16
+ lsl r1, r0, #0x1
+ ldr r0, [sp, #0x4]
+ add r0, r0, r1
+ mov r1, r12
+ str r0, [sp, #0x0]
+ mov r0, #0x20
+ add r6, r1, #0x0
+ and r6, r0
+_02019324:
+ ldrb r0, [r5, #0x9]
+ mov r4, #0x20
+ add r1, r3, #0x0
+ lsl r0, r0, #0xc
+ and r4, r2
+ orr r1, r0
+ mov r0, #0x1f
+ add r4, r6, r4
+ and r0, r2
+ lsl r4, r4, #0x5
+ add r0, r0, r4
+ lsl r4, r0, #0x1
+ ldr r0, [sp, #0x0]
+ add r2, r2, #0x1
+ strh r1, [r0, r4]
+ add r3, r3, #0x1
+ cmp r2, r7
+ blo _02019324
+_02019348:
+ mov r0, r12
+ add r1, r0, #0x1
+ mov r0, lr
+ mov r12, r1
+ cmp r1, r0
+ blo _02019308
+_02019354:
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02019358
+FUN_02019358: ; 0x02019358
+ push {r4-r7}
+ ldrb r3, [r0, #0x4]
+ mov r1, #0x2c
+ add r2, r3, #0x0
+ mul r2, r1
+ ldr r1, [r0, #0x0]
+ add r1, r1, r2
+ ldr r3, [r1, #0x8]
+ cmp r3, #0x0
+ beq _020193AC
+ ldrb r2, [r1, #0x1d]
+ ldr r1, _020193B0 ; =0x020EDB30
+ ldrb r6, [r1, r2]
+ ldrb r1, [r0, #0x6]
+ add r2, r1, #0x0
+ mul r2, r6
+ add r2, r3, r2
+ ldrb r1, [r0, #0x5]
+ mov r3, #0x0
+ add r4, r2, r1
+ ldrh r1, [r0, #0xa]
+ lsl r1, r1, #0x11
+ lsr r5, r1, #0x11
+ ldrb r1, [r0, #0x8]
+ cmp r1, #0x0
+ ble _020193AC
+ add r1, r3, #0x0
+_0201938E:
+ ldrb r7, [r0, #0x7]
+ add r2, r1, #0x0
+ cmp r7, #0x0
+ ble _020193A2
+_02019396:
+ strb r5, [r4, r2]
+ ldrb r7, [r0, #0x7]
+ add r2, r2, #0x1
+ add r5, r5, #0x1
+ cmp r2, r7
+ blt _02019396
+_020193A2:
+ ldrb r2, [r0, #0x8]
+ add r3, r3, #0x1
+ add r4, r4, r6
+ cmp r3, r2
+ blt _0201938E
+_020193AC:
+ pop {r4-r7}
+ bx lr
+ .balign 4
+_020193B0: .word 0x020EDB30
+
+ thumb_func_start FUN_020193B4
+FUN_020193B4: ; 0x020193B4
+ push {r4-r7, lr}
+ sub sp, #0xc
+ ldrb r2, [r0, #0x4]
+ str r0, [sp, #0x0]
+ mov r0, #0x2c
+ add r1, r2, #0x0
+ mul r1, r0
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0x0]
+ add r1, r0, r1
+ ldr r0, [r1, #0x8]
+ str r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _0201943C
+ ldrb r1, [r1, #0x1d]
+ ldr r0, _02019440 ; =0x020EDB30
+ ldrb r0, [r0, r1]
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x0]
+ ldrb r1, [r0, #0x5]
+ ldrb r0, [r0, #0x7]
+ add r2, r1, r0
+ ldr r0, [sp, #0x0]
+ ldrb r0, [r0, #0x6]
+ mov r12, r0
+ ldr r0, [sp, #0x0]
+ ldrb r1, [r0, #0x8]
+ mov r0, r12
+ add r0, r0, r1
+ mov r1, r12
+ mov lr, r0
+ cmp r1, r0
+ bhs _0201943C
+ mov r6, #0x0
+ mov r7, #0x20
+_020193FA:
+ ldr r0, [sp, #0x0]
+ ldrb r1, [r0, #0x5]
+ cmp r1, r2
+ bhs _02019430
+ mov r3, r12
+ mov r0, #0x1f
+ and r3, r0
+ ldr r0, [sp, #0x8]
+ mul r0, r3
+ lsl r3, r0, #0x1
+ ldr r0, [sp, #0x4]
+ add r5, r0, r3
+ mov r3, r12
+ mov r0, #0x20
+ and r3, r0
+_02019418:
+ add r4, r1, #0x0
+ and r4, r7
+ mov r0, #0x1f
+ add r4, r3, r4
+ and r0, r1
+ lsl r4, r4, #0x5
+ add r0, r0, r4
+ lsl r0, r0, #0x1
+ add r1, r1, #0x1
+ strh r6, [r5, r0]
+ cmp r1, r2
+ blo _02019418
+_02019430:
+ mov r0, r12
+ add r1, r0, #0x1
+ mov r0, lr
+ mov r12, r1
+ cmp r1, r0
+ blo _020193FA
+_0201943C:
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_02019440: .word 0x020EDB30
+
+ thumb_func_start FUN_02019444
+FUN_02019444: ; 0x02019444
+ push {r4-r7}
+ ldrb r3, [r0, #0x4]
+ mov r1, #0x2c
+ add r2, r3, #0x0
+ mul r2, r1
+ ldr r1, [r0, #0x0]
+ add r1, r1, r2
+ ldr r3, [r1, #0x8]
+ cmp r3, #0x0
+ beq _02019492
+ ldrb r2, [r1, #0x1d]
+ ldr r1, _02019498 ; =0x020EDB30
+ mov r4, #0x0
+ ldrb r6, [r1, r2]
+ ldrb r1, [r0, #0x6]
+ add r2, r1, #0x0
+ mul r2, r6
+ ldrb r1, [r0, #0x5]
+ add r2, r3, r2
+ add r5, r2, r1
+ ldrb r1, [r0, #0x8]
+ cmp r1, #0x0
+ ble _02019492
+ add r1, r4, #0x0
+ add r2, r4, #0x0
+_02019476:
+ ldrb r7, [r0, #0x7]
+ add r3, r2, #0x0
+ cmp r7, #0x0
+ ble _02019488
+_0201947E:
+ strb r1, [r5, r3]
+ ldrb r7, [r0, #0x7]
+ add r3, r3, #0x1
+ cmp r3, r7
+ blt _0201947E
+_02019488:
+ ldrb r3, [r0, #0x8]
+ add r4, r4, #0x1
+ add r5, r5, r6
+ cmp r4, r3
+ blt _02019476
+_02019492:
+ pop {r4-r7}
+ bx lr
+ nop
+_02019498: .word 0x020EDB30
+
+ thumb_func_start FUN_0201949C
+FUN_0201949C: ; 0x0201949C
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ bl FUN_020192D4
+ add r0, r4, #0x0
+ bl FUN_02019548
+ ldrb r1, [r4, #0x4]
+ mov r0, #0x2c
+ add r2, r1, #0x0
+ mul r2, r0
+ ldr r0, [r4, #0x0]
+ add r3, r0, r2
+ ldr r2, [r3, #0x10]
+ str r2, [sp, #0x0]
+ ldr r2, [r3, #0x8]
+ ldr r3, [r3, #0xc]
+ bl FUN_02017CE8
+ add sp, #0x4
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_020194C8
+FUN_020194C8: ; 0x020194C8
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_020192D4
+ ldrb r1, [r4, #0x4]
+ ldr r0, [r4, #0x0]
+ bl FUN_0201AC68
+ add r0, r4, #0x0
+ bl FUN_02019548
+ pop {r4, pc}
+
+ thumb_func_start FUN_020194E0
+FUN_020194E0: ; 0x020194E0
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02019358
+ ldrb r1, [r4, #0x4]
+ mov r0, #0x2c
+ add r2, r1, #0x0
+ mul r2, r0
+ ldr r0, [r4, #0x0]
+ add r3, r0, r2
+ ldr r2, [r3, #0x10]
+ str r2, [sp, #0x0]
+ ldr r2, [r3, #0x8]
+ ldr r3, [r3, #0xc]
+ bl FUN_02017CE8
+ ldrh r0, [r4, #0xa]
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x11
+ str r0, [sp, #0x0]
+ ldrb r5, [r4, #0x7]
+ ldrb r3, [r4, #0x8]
+ ldrb r1, [r4, #0x4]
+ ldr r0, [r4, #0x0]
+ mul r3, r5
+ ldr r2, [r4, #0xc]
+ lsl r3, r3, #0x6
+ bl FUN_02017E14
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0201951C
+FUN_0201951C: ; 0x0201951C
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02019358
+ ldrb r1, [r4, #0x4]
+ ldr r0, [r4, #0x0]
+ bl FUN_0201AC68
+ ldrh r0, [r4, #0xa]
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x11
+ str r0, [sp, #0x0]
+ ldrb r5, [r4, #0x7]
+ ldrb r3, [r4, #0x8]
+ ldrb r1, [r4, #0x4]
+ ldr r0, [r4, #0x0]
+ mul r3, r5
+ ldr r2, [r4, #0xc]
+ lsl r3, r3, #0x6
+ bl FUN_02017E14
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02019548
+FUN_02019548: ; 0x02019548
+ push {r3-r5, lr}
+ add r3, r0, #0x0
+ ldrh r2, [r3, #0xa]
+ ldrb r1, [r3, #0x4]
+ mov r4, #0x2c
+ lsl r2, r2, #0x11
+ ldr r0, [r3, #0x0]
+ lsr r2, r2, #0x11
+ str r2, [sp, #0x0]
+ mul r4, r1
+ add r4, r0, r4
+ ldr r2, [r3, #0xc]
+ ldrb r5, [r3, #0x7]
+ ldrb r3, [r3, #0x8]
+ ldrb r4, [r4, #0x1f]
+ mul r3, r5
+ mul r3, r4
+ bl FUN_02017E14
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02019570
+FUN_02019570: ; 0x02019570
+ push {r3, lr}
+ ldrb r2, [r0, #0x4]
+ mov r1, #0x2c
+ ldr r3, [r0, #0x0]
+ mul r1, r2
+ add r1, r3, r1
+ ldrb r1, [r1, #0x1c]
+ lsl r2, r1, #0x2
+ ldr r1, _02019588 ; =0x020EDB50
+ ldr r1, [r1, r2]
+ blx r1
+ pop {r3, pc}
+ .balign 4
+_02019588: .word 0x020EDB50
+
+ thumb_func_start FUN_0201958C
+FUN_0201958C: ; 0x0201958C
+ push {r3, lr}
+ ldrb r2, [r0, #0x4]
+ mov r1, #0x2c
+ ldr r3, [r0, #0x0]
+ mul r1, r2
+ add r1, r3, r1
+ ldrb r1, [r1, #0x1c]
+ lsl r2, r1, #0x2
+ ldr r1, _020195A4 ; =0x020EDB44
+ ldr r1, [r1, r2]
+ blx r1
+ pop {r3, pc}
+ .balign 4
+_020195A4: .word 0x020EDB44
+
+ thumb_func_start FUN_020195A8
+FUN_020195A8: ; 0x020195A8
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ bl FUN_020193B4
+ ldrb r1, [r4, #0x4]
+ mov r0, #0x2c
+ add r2, r1, #0x0
+ mul r2, r0
+ ldr r0, [r4, #0x0]
+ add r3, r0, r2
+ ldr r2, [r3, #0x10]
+ str r2, [sp, #0x0]
+ ldr r2, [r3, #0x8]
+ ldr r3, [r3, #0xc]
+ bl FUN_02017CE8
+ add sp, #0x4
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020195D0
+FUN_020195D0: ; 0x020195D0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_020193B4
+ ldrb r1, [r4, #0x4]
+ ldr r0, [r4, #0x0]
+ bl FUN_0201AC68
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020195E4
+FUN_020195E4: ; 0x020195E4
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ bl FUN_02019444
+ ldrb r1, [r4, #0x4]
+ mov r0, #0x2c
+ add r2, r1, #0x0
+ mul r2, r0
+ ldr r0, [r4, #0x0]
+ add r3, r0, r2
+ ldr r2, [r3, #0x10]
+ str r2, [sp, #0x0]
+ ldr r2, [r3, #0x8]
+ ldr r3, [r3, #0xc]
+ bl FUN_02017CE8
+ add sp, #0x4
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201960C
+FUN_0201960C: ; 0x0201960C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02019444
+ ldrb r1, [r4, #0x4]
+ ldr r0, [r4, #0x0]
+ bl FUN_0201AC68
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02019620
+FUN_02019620: ; 0x02019620
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ ldrb r2, [r4, #0x4]
+ mov r0, #0x2c
+ ldr r3, [r4, #0x0]
+ mul r0, r2
+ add r0, r3, r0
+ ldrb r2, [r0, #0x1f]
+ cmp r2, #0x20
+ bne _0201963C
+ lsl r0, r1, #0x4
+ orr r0, r1
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+_0201963C:
+ lsl r3, r1, #0x18
+ lsl r0, r1, #0x10
+ orr r0, r3
+ lsl r5, r1, #0x8
+ orr r0, r5
+ orr r0, r1
+ ldr r1, [r4, #0xc]
+ ldrb r3, [r4, #0x8]
+ ldrb r4, [r4, #0x7]
+ mul r2, r4
+ mul r2, r3
+ bl MIi_CpuClearFast
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02019658
+FUN_02019658: ; 0x02019658
+ push {r4-r5, lr}
+ sub sp, #0x1c
+ add r4, sp, #0x18
+ ldrh r5, [r4, #0x10]
+ str r5, [sp, #0x0]
+ ldrh r5, [r4, #0x14]
+ str r5, [sp, #0x4]
+ ldrh r5, [r4, #0x18]
+ str r5, [sp, #0x8]
+ ldrh r5, [r4, #0x1c]
+ str r5, [sp, #0xc]
+ ldrh r5, [r4, #0x20]
+ str r5, [sp, #0x10]
+ ldrh r4, [r4, #0x24]
+ str r4, [sp, #0x14]
+ mov r4, #0x0
+ str r4, [sp, #0x18]
+ bl FUN_02019684
+ add sp, #0x1c
+ pop {r4-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02019684
+FUN_02019684: ; 0x02019684
+ push {r4-r5, lr}
+ sub sp, #0x24
+ str r1, [sp, #0x1c]
+ add r4, sp, #0x20
+ ldrh r5, [r4, #0x10]
+ add r1, sp, #0x14
+ strh r5, [r1, #0xc]
+ ldrh r5, [r4, #0x14]
+ strh r5, [r1, #0xe]
+ ldr r5, [r0, #0xc]
+ str r5, [sp, #0x14]
+ ldrb r5, [r0, #0x7]
+ lsl r5, r5, #0x3
+ strh r5, [r1, #0x4]
+ ldrb r5, [r0, #0x8]
+ lsl r5, r5, #0x3
+ strh r5, [r1, #0x6]
+ ldrb r5, [r0, #0x4]
+ ldr r1, [r0, #0x0]
+ mov r0, #0x2c
+ mul r0, r5
+ add r0, r1, r0
+ ldrb r0, [r0, #0x1e]
+ add r1, sp, #0x14
+ cmp r0, #0x0
+ ldrh r0, [r4, #0x18]
+ bne _020196D6
+ str r0, [sp, #0x0]
+ ldrh r0, [r4, #0x1c]
+ str r0, [sp, #0x4]
+ ldrh r0, [r4, #0x20]
+ str r0, [sp, #0x8]
+ ldrh r0, [r4, #0x24]
+ str r0, [sp, #0xc]
+ ldrh r0, [r4, #0x28]
+ str r0, [sp, #0x10]
+ add r0, sp, #0x1c
+ bl FUN_02018A60
+ add sp, #0x24
+ pop {r4-r5, pc}
+_020196D6:
+ str r0, [sp, #0x0]
+ ldrh r0, [r4, #0x1c]
+ str r0, [sp, #0x4]
+ ldrh r0, [r4, #0x20]
+ str r0, [sp, #0x8]
+ ldrh r0, [r4, #0x24]
+ str r0, [sp, #0xc]
+ ldrh r0, [r4, #0x28]
+ str r0, [sp, #0x10]
+ add r0, sp, #0x1c
+ bl FUN_02018CA0
+ add sp, #0x24
+ pop {r4-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020196F4
+FUN_020196F4: ; 0x020196F4
+ push {r3-r5, lr}
+ sub sp, #0x10
+ add r5, r1, #0x0
+ ldr r1, [r0, #0xc]
+ add r4, r2, #0x0
+ str r1, [sp, #0x8]
+ ldrb r1, [r0, #0x7]
+ add r2, r3, #0x0
+ lsl r3, r1, #0x3
+ add r1, sp, #0x8
+ strh r3, [r1, #0x4]
+ ldrb r3, [r0, #0x8]
+ lsl r3, r3, #0x3
+ strh r3, [r1, #0x6]
+ ldrb r3, [r0, #0x4]
+ ldr r1, [r0, #0x0]
+ mov r0, #0x2c
+ mul r0, r3
+ add r0, r1, r0
+ ldrb r0, [r0, #0x1e]
+ add r3, sp, #0x10
+ cmp r0, #0x0
+ bne _02019736
+ ldrh r0, [r3, #0x14]
+ add r1, r4, #0x0
+ str r0, [sp, #0x0]
+ str r5, [sp, #0x4]
+ ldrh r3, [r3, #0x10]
+ add r0, sp, #0x8
+ bl FUN_02018E88
+ add sp, #0x10
+ pop {r3-r5, pc}
+_02019736:
+ ldrh r0, [r3, #0x14]
+ add r1, r4, #0x0
+ str r0, [sp, #0x0]
+ str r5, [sp, #0x4]
+ ldrh r3, [r3, #0x10]
+ add r0, sp, #0x8
+ bl FUN_02018F4C
+ add sp, #0x10
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201974C
+FUN_0201974C: ; 0x0201974C
+ push {r4-r7, lr}
+ sub sp, #0x1fc
+ sub sp, #0x118
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x330]
+ str r1, [sp, #0x0]
+ str r0, [sp, #0x330]
+ add r1, sp, #0x318
+ ldrh r1, [r1, #0x10]
+ ldr r0, [r5, #0xc]
+ str r1, [sp, #0x5c]
+ ldrb r1, [r5, #0x7]
+ str r0, [sp, #0x278]
+ ldrb r0, [r5, #0x8]
+ lsl r1, r1, #0x13
+ lsr r4, r1, #0x10
+ ldr r1, [sp, #0x5c]
+ lsl r0, r0, #0x13
+ sub r1, r4, r1
+ lsr r0, r0, #0x10
+ str r4, [sp, #0x58]
+ str r1, [sp, #0x8]
+ cmp r1, r2
+ blt _0201977E
+ str r2, [sp, #0x8]
+_0201977E:
+ add r1, sp, #0x318
+ ldrh r1, [r1, #0x14]
+ sub r0, r0, r1
+ str r1, [sp, #0x48]
+ str r0, [sp, #0x4]
+ cmp r0, r3
+ blt _0201978E
+ str r3, [sp, #0x4]
+_0201978E:
+ ldr r0, [sp, #0x8]
+ mov r4, #0x0
+ cmp r0, #0x8
+ ble _0201979E
+ mov r0, #0x1
+ orr r0, r4
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+_0201979E:
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x8
+ ble _020197AC
+ mov r0, #0x2
+ orr r0, r4
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+_020197AC:
+ ldrh r0, [r5, #0xa]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x1f
+ beq _020197B8
+ bl FUN_0201A12C
+_020197B8:
+ cmp r4, #0x3
+ bls _020197C0
+ bl FUN_0201A8BC
+_020197C0:
+ add r0, r4, r4
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020197CC: ; jump table (using 16-bit offset)
+ .short _020197D4 - _020197CC - 2; case 0
+ .short _020198D6 - _020197CC - 2; case 1
+ .short _02019AE6 - _020197CC - 2; case 2
+ .short _02019D06 - _020197CC - 2; case 3
+_020197D4:
+ ldr r0, [sp, #0x330]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x70]
+ mov r0, #0x0
+ str r0, [sp, #0x274]
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ bgt _020197EA
+ bl FUN_0201A8BC
+_020197EA:
+ ldr r0, [sp, #0x58]
+ mov r1, #0x7
+ and r1, r0
+ add r0, r0, r1
+ asr r0, r0, #0x3
+ str r0, [sp, #0x6c]
+_020197F6:
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x70]
+ ldr r0, [r0, #0x0]
+ ldr r2, [sp, #0x5c]
+ str r0, [sp, #0x26c]
+ ldr r0, [sp, #0x274]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x270]
+ ldr r0, [sp, #0x8]
+ mov r1, #0x0
+ cmp r0, #0x0
+ ble _020198AA
+ ble _020198AA
+ add r0, r2, #0x0
+ lsl r3, r0, #0x2
+ ldr r0, [sp, #0x48]
+ ldr r6, [sp, #0x6c]
+ lsl r5, r0, #0x2
+ ldr r0, _02019B68 ; =0x00003FE0
+ add r7, r5, #0x0
+ and r0, r5
+ mul r6, r0
+ mov r0, #0x1c
+ and r7, r0
+ ldr r0, [sp, #0x48]
+ str r6, [sp, #0x68]
+ add r0, r0, #0x1
+ lsl r6, r0, #0x2
+ ldr r0, _02019B68 ; =0x00003FE0
+ ldr r5, [sp, #0x6c]
+ and r0, r6
+ mul r5, r0
+ mov r0, #0x1c
+ and r0, r6
+ add r4, r1, #0x0
+ str r5, [sp, #0x64]
+ str r0, [sp, #0x60]
+_02019848:
+ asr r5, r2, #0x1
+ mov r0, #0x3
+ and r5, r0
+ ldr r0, [sp, #0x278]
+ add r0, r0, r5
+ ldr r5, _02019B68 ; =0x00003FE0
+ and r5, r3
+ add r5, r0, r5
+ ldr r0, [sp, #0x68]
+ str r5, [sp, #0x27c]
+ add r0, r5, r0
+ ldr r5, [sp, #0x26c]
+ add r6, r5, #0x0
+ lsr r6, r4
+ mov r5, #0xf
+ and r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ beq _0201989C
+ lsl r6, r2, #0x1f
+ lsr r6, r6, #0x1d
+ lsl r5, r6
+ str r5, [sp, #0x280]
+ ldrb r5, [r0, r7]
+ str r5, [sp, #0x284]
+ mov r5, #0xf0
+ asr r5, r6
+ ldr r6, [sp, #0x284]
+ and r6, r5
+ ldr r5, [sp, #0x280]
+ orr r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ strb r5, [r0, r7]
+ ldr r0, [sp, #0x270]
+ cmp r0, #0x0
+ beq _0201989C
+ ldr r6, [sp, #0x27c]
+ ldr r0, [sp, #0x64]
+ add r6, r6, r0
+ ldr r0, [sp, #0x60]
+ strb r5, [r0, r6]
+_0201989C:
+ ldr r0, [sp, #0x8]
+ add r1, r1, #0x1
+ add r4, r4, #0x4
+ add r3, r3, #0x4
+ add r2, r2, #0x1
+ cmp r1, r0
+ blt _02019848
+_020198AA:
+ ldr r0, [sp, #0x270]
+ cmp r0, #0x0
+ beq _020198B8
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x2
+ str r0, [sp, #0x48]
+ b _020198BE
+_020198B8:
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x1
+ str r0, [sp, #0x48]
+_020198BE:
+ ldr r0, [sp, #0x0]
+ add r0, r0, #0x4
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x274]
+ add r1, r0, #0x1
+ ldr r0, [sp, #0x4]
+ str r1, [sp, #0x274]
+ cmp r1, r0
+ blt _020197F6
+ add sp, #0x1fc
+ add sp, #0x118
+ pop {r4-r7, pc}
+_020198D6:
+ ldr r0, [sp, #0x0]
+ str r0, [sp, #0x25c]
+ ldr r0, [sp, #0x48]
+ str r0, [sp, #0x264]
+ ldr r0, [sp, #0x330]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x54]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x84]
+ mov r0, #0x0
+ str r0, [sp, #0x268]
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ ble _020199D2
+ ldr r0, [sp, #0x58]
+ mov r1, #0x7
+ and r1, r0
+ add r0, r0, r1
+ asr r0, r0, #0x3
+ str r0, [sp, #0x80]
+_02019902:
+ ldr r0, [sp, #0x25c]
+ ldr r1, [sp, #0x84]
+ ldr r0, [r0, #0x0]
+ ldr r2, [sp, #0x5c]
+ str r0, [sp, #0x258]
+ ldr r0, [sp, #0x268]
+ ldr r6, [sp, #0x80]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x260]
+ add r0, r2, #0x0
+ lsl r3, r0, #0x2
+ ldr r0, [sp, #0x264]
+ mov r1, #0x0
+ lsl r5, r0, #0x2
+ ldr r0, _02019B68 ; =0x00003FE0
+ add r7, r5, #0x0
+ and r0, r5
+ mul r6, r0
+ mov r0, #0x1c
+ and r7, r0
+ ldr r0, [sp, #0x264]
+ str r6, [sp, #0x7c]
+ add r0, r0, #0x1
+ lsl r6, r0, #0x2
+ ldr r0, _02019B68 ; =0x00003FE0
+ ldr r5, [sp, #0x80]
+ and r0, r6
+ mul r5, r0
+ mov r0, #0x1c
+ and r0, r6
+ add r4, r1, #0x0
+ str r5, [sp, #0x78]
+ str r0, [sp, #0x74]
+_0201994C:
+ asr r5, r2, #0x1
+ mov r0, #0x3
+ and r5, r0
+ ldr r0, [sp, #0x278]
+ add r0, r0, r5
+ ldr r5, _02019B68 ; =0x00003FE0
+ and r5, r3
+ add r5, r0, r5
+ ldr r0, [sp, #0x7c]
+ str r5, [sp, #0x288]
+ add r0, r5, r0
+ ldr r5, [sp, #0x258]
+ add r6, r5, #0x0
+ lsr r6, r4
+ mov r5, #0xf
+ and r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ beq _020199A0
+ lsl r6, r2, #0x1f
+ lsr r6, r6, #0x1d
+ lsl r5, r6
+ str r5, [sp, #0x28c]
+ ldrb r5, [r0, r7]
+ str r5, [sp, #0x290]
+ mov r5, #0xf0
+ asr r5, r6
+ ldr r6, [sp, #0x290]
+ and r6, r5
+ ldr r5, [sp, #0x28c]
+ orr r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ strb r5, [r0, r7]
+ ldr r0, [sp, #0x260]
+ cmp r0, #0x0
+ beq _020199A0
+ ldr r6, [sp, #0x288]
+ ldr r0, [sp, #0x78]
+ add r6, r6, r0
+ ldr r0, [sp, #0x74]
+ strb r5, [r0, r6]
+_020199A0:
+ add r1, r1, #0x1
+ add r4, r4, #0x4
+ add r3, r3, #0x4
+ add r2, r2, #0x1
+ cmp r1, #0x8
+ blt _0201994C
+ ldr r0, [sp, #0x260]
+ cmp r0, #0x0
+ beq _020199BA
+ ldr r0, [sp, #0x264]
+ add r0, r0, #0x2
+ str r0, [sp, #0x264]
+ b _020199C0
+_020199BA:
+ ldr r0, [sp, #0x264]
+ add r0, r0, #0x1
+ str r0, [sp, #0x264]
+_020199C0:
+ ldr r0, [sp, #0x25c]
+ add r0, r0, #0x4
+ str r0, [sp, #0x25c]
+ ldr r0, [sp, #0x268]
+ add r1, r0, #0x1
+ ldr r0, [sp, #0x4]
+ str r1, [sp, #0x268]
+ cmp r1, r0
+ blt _02019902
+_020199D2:
+ ldr r0, [sp, #0x0]
+ add r0, #0x20
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x54]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x98]
+ mov r0, #0x0
+ str r0, [sp, #0x254]
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ bgt _020199EE
+ bl FUN_0201A8BC
+_020199EE:
+ ldr r0, [sp, #0x5c]
+ mov r1, #0x7
+ add r0, #0x8
+ str r0, [sp, #0x5c]
+ ldr r0, [sp, #0x58]
+ and r1, r0
+ add r0, r0, r1
+ asr r0, r0, #0x3
+ str r0, [sp, #0x94]
+_02019A00:
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x98]
+ ldr r0, [r0, #0x0]
+ ldr r2, [sp, #0x5c]
+ str r0, [sp, #0x24c]
+ ldr r0, [sp, #0x254]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x250]
+ ldr r0, [sp, #0x8]
+ mov r1, #0x0
+ str r0, [sp, #0x294]
+ sub r0, #0x8
+ str r0, [sp, #0x294]
+ cmp r0, #0x0
+ ble _02019ABA
+ ble _02019ABA
+ add r0, r2, #0x0
+ lsl r3, r0, #0x2
+ ldr r0, [sp, #0x48]
+ ldr r6, [sp, #0x94]
+ lsl r5, r0, #0x2
+ ldr r0, _02019B68 ; =0x00003FE0
+ add r7, r5, #0x0
+ and r0, r5
+ mul r6, r0
+ mov r0, #0x1c
+ and r7, r0
+ ldr r0, [sp, #0x48]
+ str r6, [sp, #0x90]
+ add r0, r0, #0x1
+ lsl r6, r0, #0x2
+ ldr r0, _02019B68 ; =0x00003FE0
+ ldr r5, [sp, #0x94]
+ and r0, r6
+ mul r5, r0
+ mov r0, #0x1c
+ and r0, r6
+ add r4, r1, #0x0
+ str r5, [sp, #0x8c]
+ str r0, [sp, #0x88]
+_02019A58:
+ asr r5, r2, #0x1
+ mov r0, #0x3
+ and r5, r0
+ ldr r0, [sp, #0x278]
+ add r0, r0, r5
+ ldr r5, _02019B68 ; =0x00003FE0
+ and r5, r3
+ add r5, r0, r5
+ ldr r0, [sp, #0x90]
+ str r5, [sp, #0x298]
+ add r0, r5, r0
+ ldr r5, [sp, #0x24c]
+ add r6, r5, #0x0
+ lsr r6, r4
+ mov r5, #0xf
+ and r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ beq _02019AAC
+ lsl r6, r2, #0x1f
+ lsr r6, r6, #0x1d
+ lsl r5, r6
+ str r5, [sp, #0x29c]
+ ldrb r5, [r0, r7]
+ str r5, [sp, #0x2a0]
+ mov r5, #0xf0
+ asr r5, r6
+ ldr r6, [sp, #0x2a0]
+ and r6, r5
+ ldr r5, [sp, #0x29c]
+ orr r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ strb r5, [r0, r7]
+ ldr r0, [sp, #0x250]
+ cmp r0, #0x0
+ beq _02019AAC
+ ldr r6, [sp, #0x298]
+ ldr r0, [sp, #0x8c]
+ add r6, r6, r0
+ ldr r0, [sp, #0x88]
+ strb r5, [r0, r6]
+_02019AAC:
+ ldr r0, [sp, #0x294]
+ add r1, r1, #0x1
+ add r4, r4, #0x4
+ add r3, r3, #0x4
+ add r2, r2, #0x1
+ cmp r1, r0
+ blt _02019A58
+_02019ABA:
+ ldr r0, [sp, #0x250]
+ cmp r0, #0x0
+ beq _02019AC8
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x2
+ str r0, [sp, #0x48]
+ b _02019ACE
+_02019AC8:
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x1
+ str r0, [sp, #0x48]
+_02019ACE:
+ ldr r0, [sp, #0x0]
+ add r0, r0, #0x4
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x254]
+ add r1, r0, #0x1
+ ldr r0, [sp, #0x4]
+ str r1, [sp, #0x254]
+ cmp r1, r0
+ blt _02019A00
+ add sp, #0x1fc
+ add sp, #0x118
+ pop {r4-r7, pc}
+_02019AE6:
+ ldr r0, [sp, #0x0]
+ mov r1, #0x7
+ str r0, [sp, #0x23c]
+ ldr r0, [sp, #0x48]
+ str r0, [sp, #0x244]
+ mov r0, #0x0
+ str r0, [sp, #0x248]
+ ldr r0, [sp, #0x330]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xa8]
+ ldr r0, [sp, #0x58]
+ and r1, r0
+ add r0, r0, r1
+ asr r0, r0, #0x3
+ str r0, [sp, #0x40]
+_02019B06:
+ ldr r0, [sp, #0x23c]
+ ldr r1, [sp, #0xa8]
+ ldr r0, [r0, #0x0]
+ ldr r2, [sp, #0x5c]
+ str r0, [sp, #0x238]
+ ldr r0, [sp, #0x248]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x240]
+ ldr r0, [sp, #0x8]
+ mov r1, #0x0
+ cmp r0, #0x0
+ ble _02019BC2
+ ble _02019BC2
+ add r0, r2, #0x0
+ lsl r3, r0, #0x2
+ ldr r0, [sp, #0x244]
+ ldr r6, [sp, #0x40]
+ lsl r5, r0, #0x2
+ ldr r0, _02019B68 ; =0x00003FE0
+ add r7, r5, #0x0
+ and r0, r5
+ mul r6, r0
+ mov r0, #0x1c
+ and r7, r0
+ ldr r0, [sp, #0x244]
+ str r6, [sp, #0xa4]
+ add r0, r0, #0x1
+ lsl r6, r0, #0x2
+ ldr r0, _02019B68 ; =0x00003FE0
+ ldr r5, [sp, #0x40]
+ and r0, r6
+ mul r5, r0
+ mov r0, #0x1c
+ and r0, r6
+ add r4, r1, #0x0
+ str r5, [sp, #0xa0]
+ str r0, [sp, #0x9c]
+_02019B58:
+ asr r5, r2, #0x1
+ mov r0, #0x3
+ and r5, r0
+ ldr r0, [sp, #0x278]
+ add r0, r0, r5
+ ldr r5, _02019B68 ; =0x00003FE0
+ b _02019B6C
+ nop
+_02019B68: .word 0x00003FE0
+_02019B6C:
+ and r5, r3
+ add r5, r0, r5
+ ldr r0, [sp, #0xa4]
+ str r5, [sp, #0x2a4]
+ add r0, r5, r0
+ ldr r5, [sp, #0x238]
+ add r6, r5, #0x0
+ lsr r6, r4
+ mov r5, #0xf
+ and r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ beq _02019BB4
+ lsl r6, r2, #0x1f
+ lsr r6, r6, #0x1d
+ lsl r5, r6
+ str r5, [sp, #0x2a8]
+ ldrb r5, [r0, r7]
+ str r5, [sp, #0x2ac]
+ mov r5, #0xf0
+ asr r5, r6
+ ldr r6, [sp, #0x2ac]
+ and r6, r5
+ ldr r5, [sp, #0x2a8]
+ orr r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ strb r5, [r0, r7]
+ ldr r0, [sp, #0x240]
+ cmp r0, #0x0
+ beq _02019BB4
+ ldr r6, [sp, #0x2a4]
+ ldr r0, [sp, #0xa0]
+ add r6, r6, r0
+ ldr r0, [sp, #0x9c]
+ strb r5, [r0, r6]
+_02019BB4:
+ ldr r0, [sp, #0x8]
+ add r1, r1, #0x1
+ add r4, r4, #0x4
+ add r3, r3, #0x4
+ add r2, r2, #0x1
+ cmp r1, r0
+ blt _02019B58
+_02019BC2:
+ ldr r0, [sp, #0x240]
+ cmp r0, #0x0
+ beq _02019BD0
+ ldr r0, [sp, #0x244]
+ add r0, r0, #0x2
+ str r0, [sp, #0x244]
+ b _02019BD6
+_02019BD0:
+ ldr r0, [sp, #0x244]
+ add r0, r0, #0x1
+ str r0, [sp, #0x244]
+_02019BD6:
+ ldr r0, [sp, #0x23c]
+ add r0, r0, #0x4
+ str r0, [sp, #0x23c]
+ ldr r0, [sp, #0x248]
+ add r0, r0, #0x1
+ str r0, [sp, #0x248]
+ cmp r0, #0x8
+ blt _02019B06
+ ldr r0, [sp, #0x0]
+ mov r2, #0x0
+ add r0, #0x40
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x48]
+ mov r1, #0x1
+ add r0, #0x8
+ str r0, [sp, #0x48]
+_02019BF6:
+ ldr r0, [sp, #0x330]
+ asr r0, r2
+ tst r0, r1
+ beq _02019C04
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x1
+ str r0, [sp, #0x48]
+_02019C04:
+ add r2, r2, #0x1
+ cmp r2, #0x8
+ blt _02019BF6
+ ldr r0, [sp, #0x330]
+ asr r0, r0, #0x8
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xb8]
+ mov r0, #0x0
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x4]
+ sub r0, #0x8
+ cmp r0, #0x0
+ bgt _02019C24
+ bl FUN_0201A8BC
+_02019C24:
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0xb8]
+ ldr r0, [r0, #0x0]
+ ldr r2, [sp, #0x5c]
+ str r0, [sp, #0x230]
+ ldr r0, [sp, #0x20]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x234]
+ ldr r0, [sp, #0x8]
+ mov r1, #0x0
+ cmp r0, #0x0
+ ble _02019CD8
+ ble _02019CD8
+ add r0, r2, #0x0
+ lsl r3, r0, #0x2
+ ldr r0, [sp, #0x48]
+ ldr r6, [sp, #0x40]
+ lsl r5, r0, #0x2
+ ldr r0, _02019F88 ; =0x00003FE0
+ add r7, r5, #0x0
+ and r0, r5
+ mul r6, r0
+ mov r0, #0x1c
+ and r7, r0
+ ldr r0, [sp, #0x48]
+ str r6, [sp, #0xb4]
+ add r0, r0, #0x1
+ lsl r6, r0, #0x2
+ ldr r0, _02019F88 ; =0x00003FE0
+ ldr r5, [sp, #0x40]
+ and r0, r6
+ mul r5, r0
+ mov r0, #0x1c
+ and r0, r6
+ add r4, r1, #0x0
+ str r5, [sp, #0xb0]
+ str r0, [sp, #0xac]
+_02019C76:
+ asr r5, r2, #0x1
+ mov r0, #0x3
+ and r5, r0
+ ldr r0, [sp, #0x278]
+ add r0, r0, r5
+ ldr r5, _02019F88 ; =0x00003FE0
+ and r5, r3
+ add r5, r0, r5
+ ldr r0, [sp, #0xb4]
+ str r5, [sp, #0x2b0]
+ add r0, r5, r0
+ ldr r5, [sp, #0x230]
+ add r6, r5, #0x0
+ lsr r6, r4
+ mov r5, #0xf
+ and r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ beq _02019CCA
+ lsl r6, r2, #0x1f
+ lsr r6, r6, #0x1d
+ lsl r5, r6
+ str r5, [sp, #0x2b4]
+ ldrb r5, [r0, r7]
+ str r5, [sp, #0x2b8]
+ mov r5, #0xf0
+ asr r5, r6
+ ldr r6, [sp, #0x2b8]
+ and r6, r5
+ ldr r5, [sp, #0x2b4]
+ orr r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ strb r5, [r0, r7]
+ ldr r0, [sp, #0x234]
+ cmp r0, #0x0
+ beq _02019CCA
+ ldr r6, [sp, #0x2b0]
+ ldr r0, [sp, #0xb0]
+ add r6, r6, r0
+ ldr r0, [sp, #0xac]
+ strb r5, [r0, r6]
+_02019CCA:
+ ldr r0, [sp, #0x8]
+ add r1, r1, #0x1
+ add r4, r4, #0x4
+ add r3, r3, #0x4
+ add r2, r2, #0x1
+ cmp r1, r0
+ blt _02019C76
+_02019CD8:
+ ldr r0, [sp, #0x234]
+ cmp r0, #0x0
+ beq _02019CE6
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x2
+ str r0, [sp, #0x48]
+ b _02019CEC
+_02019CE6:
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x1
+ str r0, [sp, #0x48]
+_02019CEC:
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ add r0, r0, #0x4
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x20]
+ sub r1, #0x8
+ add r0, r0, #0x1
+ str r0, [sp, #0x20]
+ cmp r0, r1
+ blt _02019C24
+ add sp, #0x1fc
+ add sp, #0x118
+ pop {r4-r7, pc}
+_02019D06:
+ ldr r0, [sp, #0x0]
+ str r0, [sp, #0x220]
+ ldr r0, [sp, #0x48]
+ str r0, [sp, #0x228]
+ ldr r0, [sp, #0x330]
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ mov r0, #0x0
+ str r0, [sp, #0x22c]
+ lsl r0, r1, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x3c]
+ ldr r0, [sp, #0x58]
+ mov r1, #0x7
+ and r1, r0
+ add r0, r0, r1
+ asr r0, r0, #0x3
+ str r0, [sp, #0x38]
+_02019D2A:
+ ldr r0, [sp, #0x220]
+ ldr r1, [sp, #0x3c]
+ ldr r0, [r0, #0x0]
+ ldr r2, [sp, #0x5c]
+ str r0, [sp, #0x21c]
+ ldr r0, [sp, #0x22c]
+ ldr r6, [sp, #0x38]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x224]
+ add r0, r2, #0x0
+ lsl r3, r0, #0x2
+ ldr r0, [sp, #0x228]
+ mov r1, #0x0
+ lsl r5, r0, #0x2
+ ldr r0, _02019F88 ; =0x00003FE0
+ add r7, r5, #0x0
+ and r0, r5
+ mul r6, r0
+ mov r0, #0x1c
+ and r7, r0
+ ldr r0, [sp, #0x228]
+ str r6, [sp, #0xc4]
+ add r0, r0, #0x1
+ lsl r6, r0, #0x2
+ ldr r0, _02019F88 ; =0x00003FE0
+ ldr r5, [sp, #0x38]
+ and r0, r6
+ mul r5, r0
+ mov r0, #0x1c
+ and r0, r6
+ str r3, [sp, #0x34]
+ add r4, r1, #0x0
+ str r5, [sp, #0xc0]
+ str r0, [sp, #0xbc]
+_02019D76:
+ asr r5, r2, #0x1
+ mov r0, #0x3
+ and r5, r0
+ ldr r0, [sp, #0x278]
+ add r0, r0, r5
+ ldr r5, _02019F88 ; =0x00003FE0
+ and r5, r3
+ add r5, r0, r5
+ ldr r0, [sp, #0xc4]
+ str r5, [sp, #0x2bc]
+ add r0, r5, r0
+ ldr r5, [sp, #0x21c]
+ add r6, r5, #0x0
+ lsr r6, r4
+ mov r5, #0xf
+ and r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ beq _02019DCA
+ lsl r6, r2, #0x1f
+ lsr r6, r6, #0x1d
+ lsl r5, r6
+ str r5, [sp, #0x2c0]
+ ldrb r5, [r0, r7]
+ str r5, [sp, #0x2c4]
+ mov r5, #0xf0
+ asr r5, r6
+ ldr r6, [sp, #0x2c4]
+ and r6, r5
+ ldr r5, [sp, #0x2c0]
+ orr r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ strb r5, [r0, r7]
+ ldr r0, [sp, #0x224]
+ cmp r0, #0x0
+ beq _02019DCA
+ ldr r6, [sp, #0x2bc]
+ ldr r0, [sp, #0xc0]
+ add r6, r6, r0
+ ldr r0, [sp, #0xbc]
+ strb r5, [r0, r6]
+_02019DCA:
+ add r1, r1, #0x1
+ add r4, r4, #0x4
+ add r3, r3, #0x4
+ add r2, r2, #0x1
+ cmp r1, #0x8
+ blt _02019D76
+ ldr r0, [sp, #0x224]
+ cmp r0, #0x0
+ beq _02019DE4
+ ldr r0, [sp, #0x228]
+ add r0, r0, #0x2
+ str r0, [sp, #0x228]
+ b _02019DEA
+_02019DE4:
+ ldr r0, [sp, #0x228]
+ add r0, r0, #0x1
+ str r0, [sp, #0x228]
+_02019DEA:
+ ldr r0, [sp, #0x220]
+ add r0, r0, #0x4
+ str r0, [sp, #0x220]
+ ldr r0, [sp, #0x22c]
+ add r0, r0, #0x1
+ str r0, [sp, #0x22c]
+ cmp r0, #0x8
+ blt _02019D2A
+ ldr r0, [sp, #0x0]
+ str r0, [sp, #0x20c]
+ add r0, #0x20
+ str r0, [sp, #0x20c]
+ ldr r0, [sp, #0x48]
+ str r0, [sp, #0x214]
+ mov r0, #0x0
+ str r0, [sp, #0x218]
+ ldr r0, [sp, #0x5c]
+ str r0, [sp, #0xd4]
+ add r0, #0x8
+ str r0, [sp, #0xd4]
+_02019E12:
+ ldr r0, [sp, #0x20c]
+ ldr r1, [sp, #0x3c]
+ ldr r0, [r0, #0x0]
+ ldr r2, [sp, #0xd4]
+ str r0, [sp, #0x208]
+ ldr r0, [sp, #0x218]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x210]
+ ldr r0, [sp, #0x8]
+ mov r1, #0x0
+ str r0, [sp, #0x2c8]
+ sub r0, #0x8
+ str r0, [sp, #0x2c8]
+ cmp r0, #0x0
+ ble _02019ECC
+ ble _02019ECC
+ add r0, r2, #0x0
+ lsl r3, r0, #0x2
+ ldr r0, [sp, #0x214]
+ ldr r6, [sp, #0x38]
+ lsl r5, r0, #0x2
+ ldr r0, _02019F88 ; =0x00003FE0
+ add r7, r5, #0x0
+ and r0, r5
+ mul r6, r0
+ mov r0, #0x1c
+ and r7, r0
+ ldr r0, [sp, #0x214]
+ str r6, [sp, #0xd0]
+ add r0, r0, #0x1
+ lsl r6, r0, #0x2
+ ldr r0, _02019F88 ; =0x00003FE0
+ ldr r5, [sp, #0x38]
+ and r0, r6
+ mul r5, r0
+ mov r0, #0x1c
+ and r0, r6
+ add r4, r1, #0x0
+ str r5, [sp, #0xcc]
+ str r0, [sp, #0xc8]
+_02019E6A:
+ asr r5, r2, #0x1
+ mov r0, #0x3
+ and r5, r0
+ ldr r0, [sp, #0x278]
+ add r0, r0, r5
+ ldr r5, _02019F88 ; =0x00003FE0
+ and r5, r3
+ add r5, r0, r5
+ ldr r0, [sp, #0xd0]
+ str r5, [sp, #0x2cc]
+ add r0, r5, r0
+ ldr r5, [sp, #0x208]
+ add r6, r5, #0x0
+ lsr r6, r4
+ mov r5, #0xf
+ and r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ beq _02019EBE
+ lsl r6, r2, #0x1f
+ lsr r6, r6, #0x1d
+ lsl r5, r6
+ str r5, [sp, #0x2d0]
+ ldrb r5, [r0, r7]
+ str r5, [sp, #0x2d4]
+ mov r5, #0xf0
+ asr r5, r6
+ ldr r6, [sp, #0x2d4]
+ and r6, r5
+ ldr r5, [sp, #0x2d0]
+ orr r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ strb r5, [r0, r7]
+ ldr r0, [sp, #0x210]
+ cmp r0, #0x0
+ beq _02019EBE
+ ldr r6, [sp, #0x2cc]
+ ldr r0, [sp, #0xcc]
+ add r6, r6, r0
+ ldr r0, [sp, #0xc8]
+ strb r5, [r0, r6]
+_02019EBE:
+ ldr r0, [sp, #0x2c8]
+ add r1, r1, #0x1
+ add r4, r4, #0x4
+ add r3, r3, #0x4
+ add r2, r2, #0x1
+ cmp r1, r0
+ blt _02019E6A
+_02019ECC:
+ ldr r0, [sp, #0x210]
+ cmp r0, #0x0
+ beq _02019EDA
+ ldr r0, [sp, #0x214]
+ add r0, r0, #0x2
+ str r0, [sp, #0x214]
+ b _02019EE0
+_02019EDA:
+ ldr r0, [sp, #0x214]
+ add r0, r0, #0x1
+ str r0, [sp, #0x214]
+_02019EE0:
+ ldr r0, [sp, #0x20c]
+ add r0, r0, #0x4
+ str r0, [sp, #0x20c]
+ ldr r0, [sp, #0x218]
+ add r0, r0, #0x1
+ str r0, [sp, #0x218]
+ cmp r0, #0x8
+ blt _02019E12
+ ldr r0, [sp, #0x0]
+ mov r2, #0x0
+ str r0, [sp, #0x1fc]
+ add r0, #0x40
+ str r0, [sp, #0x1fc]
+ ldr r0, [sp, #0x48]
+ mov r1, #0x1
+ add r0, #0x8
+ str r0, [sp, #0x48]
+ str r0, [sp, #0x204]
+_02019F04:
+ ldr r0, [sp, #0x330]
+ asr r0, r2
+ tst r0, r1
+ beq _02019F12
+ ldr r0, [sp, #0x204]
+ add r0, r0, #0x1
+ str r0, [sp, #0x204]
+_02019F12:
+ add r2, r2, #0x1
+ cmp r2, #0x8
+ blt _02019F04
+ ldr r0, [sp, #0x330]
+ asr r0, r0, #0x8
+ str r0, [sp, #0x50]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xe4]
+ mov r0, #0x0
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x4]
+ sub r0, #0x8
+ cmp r0, #0x0
+ ble _0201A008
+_02019F30:
+ ldr r0, [sp, #0x1fc]
+ ldr r1, [sp, #0xe4]
+ ldr r0, [r0, #0x0]
+ ldr r6, [sp, #0x38]
+ str r0, [sp, #0x1f8]
+ ldr r0, [sp, #0x1c]
+ ldr r2, [sp, #0x5c]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x200]
+ ldr r0, [sp, #0x204]
+ mov r1, #0x0
+ lsl r5, r0, #0x2
+ ldr r0, _02019F88 ; =0x00003FE0
+ add r7, r5, #0x0
+ and r0, r5
+ mul r6, r0
+ mov r0, #0x1c
+ and r7, r0
+ ldr r0, [sp, #0x204]
+ str r6, [sp, #0xe0]
+ add r0, r0, #0x1
+ lsl r6, r0, #0x2
+ ldr r0, _02019F88 ; =0x00003FE0
+ ldr r5, [sp, #0x38]
+ and r0, r6
+ mul r5, r0
+ mov r0, #0x1c
+ and r0, r6
+ ldr r3, [sp, #0x34]
+ add r4, r1, #0x0
+ str r5, [sp, #0xdc]
+ str r0, [sp, #0xd8]
+_02019F78:
+ asr r5, r2, #0x1
+ mov r0, #0x3
+ and r5, r0
+ ldr r0, [sp, #0x278]
+ add r0, r0, r5
+ ldr r5, _02019F88 ; =0x00003FE0
+ b _02019F8C
+ nop
+_02019F88: .word 0x00003FE0
+_02019F8C:
+ and r5, r3
+ add r5, r0, r5
+ ldr r0, [sp, #0xe0]
+ str r5, [sp, #0x2d8]
+ add r0, r5, r0
+ ldr r5, [sp, #0x1f8]
+ add r6, r5, #0x0
+ lsr r6, r4
+ mov r5, #0xf
+ and r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ beq _02019FD4
+ lsl r6, r2, #0x1f
+ lsr r6, r6, #0x1d
+ lsl r5, r6
+ str r5, [sp, #0x2dc]
+ ldrb r5, [r0, r7]
+ str r5, [sp, #0x2e0]
+ mov r5, #0xf0
+ asr r5, r6
+ ldr r6, [sp, #0x2e0]
+ and r6, r5
+ ldr r5, [sp, #0x2dc]
+ orr r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ strb r5, [r0, r7]
+ ldr r0, [sp, #0x200]
+ cmp r0, #0x0
+ beq _02019FD4
+ ldr r6, [sp, #0x2d8]
+ ldr r0, [sp, #0xdc]
+ add r6, r6, r0
+ ldr r0, [sp, #0xd8]
+ strb r5, [r0, r6]
+_02019FD4:
+ add r1, r1, #0x1
+ add r4, r4, #0x4
+ add r3, r3, #0x4
+ add r2, r2, #0x1
+ cmp r1, #0x8
+ blt _02019F78
+ ldr r0, [sp, #0x200]
+ cmp r0, #0x0
+ beq _02019FEE
+ ldr r0, [sp, #0x204]
+ add r0, r0, #0x2
+ str r0, [sp, #0x204]
+ b _02019FF4
+_02019FEE:
+ ldr r0, [sp, #0x204]
+ add r0, r0, #0x1
+ str r0, [sp, #0x204]
+_02019FF4:
+ ldr r0, [sp, #0x1fc]
+ ldr r1, [sp, #0x4]
+ add r0, r0, #0x4
+ str r0, [sp, #0x1fc]
+ ldr r0, [sp, #0x1c]
+ sub r1, #0x8
+ add r0, r0, #0x1
+ str r0, [sp, #0x1c]
+ cmp r0, r1
+ blt _02019F30
+_0201A008:
+ ldr r0, [sp, #0x0]
+ mov r2, #0x0
+ add r0, #0x60
+ str r0, [sp, #0x0]
+ mov r1, #0x1
+_0201A012:
+ ldr r0, [sp, #0x330]
+ asr r0, r2
+ tst r0, r1
+ beq _0201A020
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x1
+ str r0, [sp, #0x48]
+_0201A020:
+ add r2, r2, #0x1
+ cmp r2, #0x8
+ blt _0201A012
+ ldr r0, [sp, #0x50]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xf4]
+ mov r0, #0x0
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x4]
+ sub r0, #0x8
+ cmp r0, #0x0
+ bgt _0201A03E
+ bl FUN_0201A8BC
+_0201A03E:
+ ldr r0, [sp, #0x5c]
+ add r0, #0x8
+ str r0, [sp, #0x5c]
+_0201A044:
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0xf4]
+ ldr r0, [r0, #0x0]
+ ldr r2, [sp, #0x5c]
+ str r0, [sp, #0x1f0]
+ ldr r0, [sp, #0x18]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x1f4]
+ ldr r0, [sp, #0x8]
+ mov r1, #0x0
+ str r0, [sp, #0x2e4]
+ sub r0, #0x8
+ str r0, [sp, #0x2e4]
+ cmp r0, #0x0
+ ble _0201A0FE
+ ble _0201A0FE
+ add r0, r2, #0x0
+ lsl r3, r0, #0x2
+ ldr r0, [sp, #0x48]
+ ldr r6, [sp, #0x38]
+ lsl r5, r0, #0x2
+ ldr r0, _0201A3A8 ; =0x00003FE0
+ add r7, r5, #0x0
+ and r0, r5
+ mul r6, r0
+ mov r0, #0x1c
+ and r7, r0
+ ldr r0, [sp, #0x48]
+ str r6, [sp, #0xf0]
+ add r0, r0, #0x1
+ lsl r6, r0, #0x2
+ ldr r0, _0201A3A8 ; =0x00003FE0
+ ldr r5, [sp, #0x38]
+ and r0, r6
+ mul r5, r0
+ mov r0, #0x1c
+ and r0, r6
+ add r4, r1, #0x0
+ str r5, [sp, #0xec]
+ str r0, [sp, #0xe8]
+_0201A09C:
+ asr r5, r2, #0x1
+ mov r0, #0x3
+ and r5, r0
+ ldr r0, [sp, #0x278]
+ add r0, r0, r5
+ ldr r5, _0201A3A8 ; =0x00003FE0
+ and r5, r3
+ add r5, r0, r5
+ ldr r0, [sp, #0xf0]
+ str r5, [sp, #0x2e8]
+ add r0, r5, r0
+ ldr r5, [sp, #0x1f0]
+ add r6, r5, #0x0
+ lsr r6, r4
+ mov r5, #0xf
+ and r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ beq _0201A0F0
+ lsl r6, r2, #0x1f
+ lsr r6, r6, #0x1d
+ lsl r5, r6
+ str r5, [sp, #0x2ec]
+ ldrb r5, [r0, r7]
+ mov r12, r5
+ mov r5, #0xf0
+ asr r5, r6
+ mov r6, r12
+ and r6, r5
+ ldr r5, [sp, #0x2ec]
+ orr r5, r6
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ strb r5, [r0, r7]
+ ldr r0, [sp, #0x1f4]
+ cmp r0, #0x0
+ beq _0201A0F0
+ ldr r6, [sp, #0x2e8]
+ ldr r0, [sp, #0xec]
+ add r6, r6, r0
+ ldr r0, [sp, #0xe8]
+ strb r5, [r0, r6]
+_0201A0F0:
+ ldr r0, [sp, #0x2e4]
+ add r1, r1, #0x1
+ add r4, r4, #0x4
+ add r3, r3, #0x4
+ add r2, r2, #0x1
+ cmp r1, r0
+ blt _0201A09C
+_0201A0FE:
+ ldr r0, [sp, #0x1f4]
+ cmp r0, #0x0
+ beq _0201A10C
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x2
+ str r0, [sp, #0x48]
+ b _0201A112
+_0201A10C:
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x1
+ str r0, [sp, #0x48]
+_0201A112:
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ add r0, r0, #0x4
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x18]
+ sub r1, #0x8
+ add r0, r0, #0x1
+ str r0, [sp, #0x18]
+ cmp r0, r1
+ blt _0201A044
+ add sp, #0x1fc
+ add sp, #0x118
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0201A12C
+FUN_0201A12C: ; 0x0201A12C
+ lsl r1, r2, #0x2
+ mul r1, r3
+ ldr r3, [r5, #0x0]
+ ldrb r2, [r5, #0x9]
+ ldr r0, [sp, #0x0]
+ ldr r3, [r3, #0x0]
+ lsl r1, r1, #0x3
+ bl FUN_02018848
+ str r0, [sp, #0x1ec]
+ cmp r4, #0x3
+ bhi _0201A21E
+ add r0, r4, r4
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0201A150: ; jump table (using 16-bit offset)
+ .short _0201A158 - _0201A150 - 2; case 0
+ .short _0201A220 - _0201A150 - 2; case 1
+ .short _0201A3CA - _0201A150 - 2; case 2
+ .short _0201A56E - _0201A150 - 2; case 3
+_0201A158:
+ ldr r0, [sp, #0x330]
+ ldr r7, [sp, #0x1ec]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x10c]
+ mov r0, #0x0
+ str r0, [sp, #0x1e8]
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ ble _0201A21E
+ ldr r0, [sp, #0x58]
+ mov r1, #0x7
+ and r1, r0
+ add r0, r0, r1
+ asr r0, r0, #0x3
+ str r0, [sp, #0x108]
+_0201A178:
+ ldr r1, [sp, #0x10c]
+ ldr r0, [sp, #0x1e8]
+ mov r4, #0x0
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x310]
+ ldr r0, [sp, #0x8]
+ ldr r5, [sp, #0x5c]
+ cmp r0, #0x0
+ ble _0201A1FC
+ ble _0201A1FC
+ add r0, r5, #0x0
+ lsl r6, r0, #0x3
+ ldr r0, [sp, #0x48]
+ ldr r2, [sp, #0x108]
+ lsl r1, r0, #0x3
+ ldr r0, _0201A3AC ; =0x00007FC0
+ mov r3, #0x38
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r0, [sp, #0x100]
+ ldr r0, [sp, #0x48]
+ str r2, [sp, #0x104]
+ add r0, r0, #0x1
+ lsl r1, r0, #0x3
+ ldr r0, _0201A3AC ; =0x00007FC0
+ ldr r2, [sp, #0x108]
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r2, [sp, #0xfc]
+ str r0, [sp, #0xf8]
+_0201A1C4:
+ mov r0, #0x7
+ add r1, r5, #0x0
+ and r1, r0
+ ldr r0, [sp, #0x278]
+ add r1, r0, r1
+ ldr r0, _0201A3AC ; =0x00007FC0
+ and r0, r6
+ add r3, r1, r0
+ ldr r0, [sp, #0x104]
+ ldrb r1, [r7, r4]
+ add r2, r3, r0
+ cmp r1, #0x0
+ beq _0201A1F0
+ ldr r0, [sp, #0x100]
+ strb r1, [r2, r0]
+ ldr r0, [sp, #0x310]
+ cmp r0, #0x0
+ beq _0201A1F0
+ ldr r0, [sp, #0xfc]
+ add r2, r3, r0
+ ldr r0, [sp, #0xf8]
+ strb r1, [r0, r2]
+_0201A1F0:
+ ldr r0, [sp, #0x8]
+ add r4, r4, #0x1
+ add r6, #0x8
+ add r5, r5, #0x1
+ cmp r4, r0
+ blt _0201A1C4
+_0201A1FC:
+ ldr r0, [sp, #0x310]
+ cmp r0, #0x0
+ beq _0201A20A
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x2
+ str r0, [sp, #0x48]
+ b _0201A210
+_0201A20A:
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x1
+ str r0, [sp, #0x48]
+_0201A210:
+ ldr r0, [sp, #0x1e8]
+ add r7, #0x8
+ add r1, r0, #0x1
+ ldr r0, [sp, #0x4]
+ str r1, [sp, #0x1e8]
+ cmp r1, r0
+ blt _0201A178
+_0201A21E:
+ b _0201A8B6
+_0201A220:
+ ldr r0, [sp, #0x48]
+ ldr r7, [sp, #0x1ec]
+ str r0, [sp, #0x1e0]
+ ldr r0, [sp, #0x330]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x4c]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x124]
+ mov r0, #0x0
+ str r0, [sp, #0x1e4]
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ ble _0201A2E6
+ ldr r0, [sp, #0x58]
+ mov r1, #0x7
+ and r1, r0
+ add r0, r0, r1
+ asr r0, r0, #0x3
+ str r0, [sp, #0x120]
+_0201A24A:
+ ldr r1, [sp, #0x124]
+ ldr r0, [sp, #0x1e4]
+ ldr r5, [sp, #0x5c]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x30c]
+ add r0, r5, #0x0
+ lsl r6, r0, #0x3
+ ldr r0, [sp, #0x1e0]
+ ldr r2, [sp, #0x120]
+ lsl r1, r0, #0x3
+ ldr r0, _0201A3AC ; =0x00007FC0
+ mov r3, #0x38
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r0, [sp, #0x118]
+ ldr r0, [sp, #0x1e0]
+ str r2, [sp, #0x11c]
+ add r0, r0, #0x1
+ lsl r1, r0, #0x3
+ ldr r0, _0201A3AC ; =0x00007FC0
+ ldr r2, [sp, #0x120]
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ mov r4, #0x0
+ str r2, [sp, #0x114]
+ str r0, [sp, #0x110]
+_0201A28E:
+ mov r0, #0x7
+ add r1, r5, #0x0
+ and r1, r0
+ ldr r0, [sp, #0x278]
+ add r1, r0, r1
+ ldr r0, _0201A3AC ; =0x00007FC0
+ and r0, r6
+ add r3, r1, r0
+ ldr r0, [sp, #0x11c]
+ ldrb r1, [r7, r4]
+ add r2, r3, r0
+ cmp r1, #0x0
+ beq _0201A2BA
+ ldr r0, [sp, #0x118]
+ strb r1, [r2, r0]
+ ldr r0, [sp, #0x30c]
+ cmp r0, #0x0
+ beq _0201A2BA
+ ldr r0, [sp, #0x114]
+ add r2, r3, r0
+ ldr r0, [sp, #0x110]
+ strb r1, [r0, r2]
+_0201A2BA:
+ add r4, r4, #0x1
+ add r6, #0x8
+ add r5, r5, #0x1
+ cmp r4, #0x8
+ blt _0201A28E
+ ldr r0, [sp, #0x30c]
+ cmp r0, #0x0
+ beq _0201A2D2
+ ldr r0, [sp, #0x1e0]
+ add r0, r0, #0x2
+ str r0, [sp, #0x1e0]
+ b _0201A2D8
+_0201A2D2:
+ ldr r0, [sp, #0x1e0]
+ add r0, r0, #0x1
+ str r0, [sp, #0x1e0]
+_0201A2D8:
+ ldr r0, [sp, #0x1e4]
+ add r7, #0x8
+ add r1, r0, #0x1
+ ldr r0, [sp, #0x4]
+ str r1, [sp, #0x1e4]
+ cmp r1, r0
+ blt _0201A24A
+_0201A2E6:
+ ldr r0, [sp, #0x1ec]
+ str r0, [sp, #0x308]
+ add r0, #0x40
+ str r0, [sp, #0x308]
+ ldr r0, [sp, #0x4c]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x13c]
+ mov r0, #0x0
+ str r0, [sp, #0x1dc]
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ ble _0201A3C8
+ ldr r0, [sp, #0x5c]
+ mov r1, #0x7
+ add r0, #0x8
+ str r0, [sp, #0x5c]
+ ldr r0, [sp, #0x58]
+ and r1, r0
+ add r0, r0, r1
+ asr r0, r0, #0x3
+ str r0, [sp, #0x138]
+_0201A312:
+ ldr r1, [sp, #0x13c]
+ ldr r0, [sp, #0x1dc]
+ ldr r7, [sp, #0x8]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ sub r7, #0x8
+ mov r4, #0x0
+ str r0, [sp, #0x1d8]
+ ldr r5, [sp, #0x5c]
+ cmp r7, #0x0
+ ble _0201A398
+ ble _0201A398
+ add r0, r5, #0x0
+ lsl r6, r0, #0x3
+ ldr r0, [sp, #0x48]
+ ldr r2, [sp, #0x138]
+ lsl r1, r0, #0x3
+ ldr r0, _0201A3AC ; =0x00007FC0
+ mov r3, #0x38
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r0, [sp, #0x130]
+ ldr r0, [sp, #0x48]
+ str r2, [sp, #0x134]
+ add r0, r0, #0x1
+ lsl r1, r0, #0x3
+ ldr r0, _0201A3AC ; =0x00007FC0
+ ldr r2, [sp, #0x138]
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r2, [sp, #0x12c]
+ str r0, [sp, #0x128]
+_0201A360:
+ mov r0, #0x7
+ add r1, r5, #0x0
+ and r1, r0
+ ldr r0, [sp, #0x278]
+ add r1, r0, r1
+ ldr r0, _0201A3AC ; =0x00007FC0
+ and r0, r6
+ add r3, r1, r0
+ ldr r0, [sp, #0x134]
+ add r2, r3, r0
+ ldr r0, [sp, #0x308]
+ ldrb r1, [r0, r4]
+ cmp r1, #0x0
+ beq _0201A38E
+ ldr r0, [sp, #0x130]
+ strb r1, [r2, r0]
+ ldr r0, [sp, #0x1d8]
+ cmp r0, #0x0
+ beq _0201A38E
+ ldr r0, [sp, #0x12c]
+ add r2, r3, r0
+ ldr r0, [sp, #0x128]
+ strb r1, [r0, r2]
+_0201A38E:
+ add r4, r4, #0x1
+ add r6, #0x8
+ add r5, r5, #0x1
+ cmp r4, r7
+ blt _0201A360
+_0201A398:
+ ldr r0, [sp, #0x1d8]
+ cmp r0, #0x0
+ beq _0201A3B0
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x2
+ str r0, [sp, #0x48]
+ b _0201A3B6
+ nop
+_0201A3A8: .word 0x00003FE0
+_0201A3AC: .word 0x00007FC0
+_0201A3B0:
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x1
+ str r0, [sp, #0x48]
+_0201A3B6:
+ ldr r0, [sp, #0x308]
+ add r0, #0x8
+ str r0, [sp, #0x308]
+ ldr r0, [sp, #0x1dc]
+ add r1, r0, #0x1
+ ldr r0, [sp, #0x4]
+ str r1, [sp, #0x1dc]
+ cmp r1, r0
+ blt _0201A312
+_0201A3C8:
+ b _0201A8B6
+_0201A3CA:
+ ldr r0, [sp, #0x48]
+ mov r1, #0x7
+ str r0, [sp, #0x1d0]
+ mov r0, #0x0
+ str r0, [sp, #0x1d4]
+ ldr r0, [sp, #0x330]
+ ldr r7, [sp, #0x1ec]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x150]
+ ldr r0, [sp, #0x58]
+ and r1, r0
+ add r0, r0, r1
+ asr r0, r0, #0x3
+ str r0, [sp, #0x30]
+_0201A3E8:
+ ldr r1, [sp, #0x150]
+ ldr r0, [sp, #0x1d4]
+ mov r4, #0x0
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x304]
+ ldr r0, [sp, #0x8]
+ ldr r5, [sp, #0x5c]
+ cmp r0, #0x0
+ ble _0201A46C
+ ble _0201A46C
+ add r0, r5, #0x0
+ lsl r6, r0, #0x3
+ ldr r0, [sp, #0x1d0]
+ ldr r2, [sp, #0x30]
+ lsl r1, r0, #0x3
+ ldr r0, _0201A748 ; =0x00007FC0
+ mov r3, #0x38
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r0, [sp, #0x148]
+ ldr r0, [sp, #0x1d0]
+ str r2, [sp, #0x14c]
+ add r0, r0, #0x1
+ lsl r1, r0, #0x3
+ ldr r0, _0201A748 ; =0x00007FC0
+ ldr r2, [sp, #0x30]
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r2, [sp, #0x144]
+ str r0, [sp, #0x140]
+_0201A434:
+ mov r0, #0x7
+ add r1, r5, #0x0
+ and r1, r0
+ ldr r0, [sp, #0x278]
+ add r1, r0, r1
+ ldr r0, _0201A748 ; =0x00007FC0
+ and r0, r6
+ add r3, r1, r0
+ ldr r0, [sp, #0x14c]
+ ldrb r1, [r7, r4]
+ add r2, r3, r0
+ cmp r1, #0x0
+ beq _0201A460
+ ldr r0, [sp, #0x148]
+ strb r1, [r2, r0]
+ ldr r0, [sp, #0x304]
+ cmp r0, #0x0
+ beq _0201A460
+ ldr r0, [sp, #0x144]
+ add r2, r3, r0
+ ldr r0, [sp, #0x140]
+ strb r1, [r0, r2]
+_0201A460:
+ ldr r0, [sp, #0x8]
+ add r4, r4, #0x1
+ add r6, #0x8
+ add r5, r5, #0x1
+ cmp r4, r0
+ blt _0201A434
+_0201A46C:
+ ldr r0, [sp, #0x304]
+ cmp r0, #0x0
+ beq _0201A47A
+ ldr r0, [sp, #0x1d0]
+ add r0, r0, #0x2
+ str r0, [sp, #0x1d0]
+ b _0201A480
+_0201A47A:
+ ldr r0, [sp, #0x1d0]
+ add r0, r0, #0x1
+ str r0, [sp, #0x1d0]
+_0201A480:
+ ldr r0, [sp, #0x1d4]
+ add r7, #0x8
+ add r0, r0, #0x1
+ str r0, [sp, #0x1d4]
+ cmp r0, #0x8
+ blt _0201A3E8
+ ldr r0, [sp, #0x48]
+ ldr r7, [sp, #0x1ec]
+ add r0, #0x8
+ str r0, [sp, #0x48]
+ add r7, #0x80
+ mov r0, #0x0
+ mov r2, #0x1
+_0201A49A:
+ ldr r1, [sp, #0x330]
+ asr r1, r0
+ tst r1, r2
+ beq _0201A4A8
+ ldr r1, [sp, #0x48]
+ add r1, r1, #0x1
+ str r1, [sp, #0x48]
+_0201A4A8:
+ add r0, r0, #0x1
+ cmp r0, #0x8
+ blt _0201A49A
+ ldr r0, [sp, #0x330]
+ asr r0, r0, #0x8
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x164]
+ mov r0, #0x0
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x4]
+ sub r0, #0x8
+ cmp r0, #0x0
+ ble _0201A56C
+_0201A4C4:
+ ldr r1, [sp, #0x164]
+ ldr r0, [sp, #0x14]
+ mov r4, #0x0
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x300]
+ ldr r0, [sp, #0x8]
+ ldr r5, [sp, #0x5c]
+ cmp r0, #0x0
+ ble _0201A548
+ ble _0201A548
+ add r0, r5, #0x0
+ lsl r6, r0, #0x3
+ ldr r0, [sp, #0x48]
+ ldr r2, [sp, #0x30]
+ lsl r1, r0, #0x3
+ ldr r0, _0201A748 ; =0x00007FC0
+ mov r3, #0x38
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r0, [sp, #0x15c]
+ ldr r0, [sp, #0x48]
+ str r2, [sp, #0x160]
+ add r0, r0, #0x1
+ lsl r1, r0, #0x3
+ ldr r0, _0201A748 ; =0x00007FC0
+ ldr r2, [sp, #0x30]
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r2, [sp, #0x158]
+ str r0, [sp, #0x154]
+_0201A510:
+ mov r0, #0x7
+ add r1, r5, #0x0
+ and r1, r0
+ ldr r0, [sp, #0x278]
+ add r1, r0, r1
+ ldr r0, _0201A748 ; =0x00007FC0
+ and r0, r6
+ add r3, r1, r0
+ ldr r0, [sp, #0x160]
+ ldrb r1, [r7, r4]
+ add r2, r3, r0
+ cmp r1, #0x0
+ beq _0201A53C
+ ldr r0, [sp, #0x15c]
+ strb r1, [r2, r0]
+ ldr r0, [sp, #0x300]
+ cmp r0, #0x0
+ beq _0201A53C
+ ldr r0, [sp, #0x158]
+ add r2, r3, r0
+ ldr r0, [sp, #0x154]
+ strb r1, [r0, r2]
+_0201A53C:
+ ldr r0, [sp, #0x8]
+ add r4, r4, #0x1
+ add r6, #0x8
+ add r5, r5, #0x1
+ cmp r4, r0
+ blt _0201A510
+_0201A548:
+ ldr r0, [sp, #0x300]
+ cmp r0, #0x0
+ beq _0201A556
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x2
+ str r0, [sp, #0x48]
+ b _0201A55C
+_0201A556:
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x1
+ str r0, [sp, #0x48]
+_0201A55C:
+ ldr r0, [sp, #0x14]
+ ldr r1, [sp, #0x4]
+ add r0, r0, #0x1
+ sub r1, #0x8
+ add r7, #0x8
+ str r0, [sp, #0x14]
+ cmp r0, r1
+ blt _0201A4C4
+_0201A56C:
+ b _0201A8B6
+_0201A56E:
+ ldr r0, [sp, #0x48]
+ ldr r7, [sp, #0x1ec]
+ str r0, [sp, #0x1c8]
+ ldr r0, [sp, #0x330]
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ mov r0, #0x0
+ str r0, [sp, #0x1cc]
+ lsl r0, r1, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x2c]
+ ldr r0, [sp, #0x58]
+ mov r1, #0x7
+ and r1, r0
+ add r0, r0, r1
+ asr r0, r0, #0x3
+ str r0, [sp, #0x28]
+_0201A590:
+ ldr r1, [sp, #0x2c]
+ ldr r0, [sp, #0x1cc]
+ ldr r5, [sp, #0x5c]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x2fc]
+ add r0, r5, #0x0
+ lsl r6, r0, #0x3
+ ldr r0, [sp, #0x1c8]
+ ldr r2, [sp, #0x28]
+ lsl r1, r0, #0x3
+ ldr r0, _0201A748 ; =0x00007FC0
+ mov r3, #0x38
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r0, [sp, #0x170]
+ ldr r0, [sp, #0x1c8]
+ str r2, [sp, #0x174]
+ add r0, r0, #0x1
+ lsl r1, r0, #0x3
+ ldr r0, _0201A748 ; =0x00007FC0
+ ldr r2, [sp, #0x28]
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ mov r4, #0x0
+ str r6, [sp, #0x24]
+ str r2, [sp, #0x16c]
+ str r0, [sp, #0x168]
+_0201A5D6:
+ mov r0, #0x7
+ add r1, r5, #0x0
+ and r1, r0
+ ldr r0, [sp, #0x278]
+ add r1, r0, r1
+ ldr r0, _0201A748 ; =0x00007FC0
+ and r0, r6
+ add r3, r1, r0
+ ldr r0, [sp, #0x174]
+ ldrb r1, [r7, r4]
+ add r2, r3, r0
+ cmp r1, #0x0
+ beq _0201A602
+ ldr r0, [sp, #0x170]
+ strb r1, [r2, r0]
+ ldr r0, [sp, #0x2fc]
+ cmp r0, #0x0
+ beq _0201A602
+ ldr r0, [sp, #0x16c]
+ add r2, r3, r0
+ ldr r0, [sp, #0x168]
+ strb r1, [r0, r2]
+_0201A602:
+ add r4, r4, #0x1
+ add r6, #0x8
+ add r5, r5, #0x1
+ cmp r4, #0x8
+ blt _0201A5D6
+ ldr r0, [sp, #0x2fc]
+ cmp r0, #0x0
+ beq _0201A61A
+ ldr r0, [sp, #0x1c8]
+ add r0, r0, #0x2
+ str r0, [sp, #0x1c8]
+ b _0201A620
+_0201A61A:
+ ldr r0, [sp, #0x1c8]
+ add r0, r0, #0x1
+ str r0, [sp, #0x1c8]
+_0201A620:
+ ldr r0, [sp, #0x1cc]
+ add r7, #0x8
+ add r0, r0, #0x1
+ str r0, [sp, #0x1cc]
+ cmp r0, #0x8
+ blt _0201A590
+ ldr r0, [sp, #0x1ec]
+ str r0, [sp, #0x2f8]
+ add r0, #0x40
+ str r0, [sp, #0x2f8]
+ ldr r0, [sp, #0x48]
+ str r0, [sp, #0x1c0]
+ mov r0, #0x0
+ str r0, [sp, #0x1c4]
+ ldr r0, [sp, #0x5c]
+ str r0, [sp, #0x188]
+ add r0, #0x8
+ str r0, [sp, #0x188]
+_0201A644:
+ ldr r1, [sp, #0x2c]
+ ldr r0, [sp, #0x1c4]
+ ldr r7, [sp, #0x8]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ sub r7, #0x8
+ mov r4, #0x0
+ str r0, [sp, #0x1bc]
+ ldr r5, [sp, #0x188]
+ cmp r7, #0x0
+ ble _0201A6CA
+ ble _0201A6CA
+ add r0, r5, #0x0
+ lsl r6, r0, #0x3
+ ldr r0, [sp, #0x1c0]
+ ldr r2, [sp, #0x28]
+ lsl r1, r0, #0x3
+ ldr r0, _0201A748 ; =0x00007FC0
+ mov r3, #0x38
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r0, [sp, #0x180]
+ ldr r0, [sp, #0x1c0]
+ str r2, [sp, #0x184]
+ add r0, r0, #0x1
+ lsl r1, r0, #0x3
+ ldr r0, _0201A748 ; =0x00007FC0
+ ldr r2, [sp, #0x28]
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r2, [sp, #0x17c]
+ str r0, [sp, #0x178]
+_0201A692:
+ mov r0, #0x7
+ add r1, r5, #0x0
+ and r1, r0
+ ldr r0, [sp, #0x278]
+ add r1, r0, r1
+ ldr r0, _0201A748 ; =0x00007FC0
+ and r0, r6
+ add r3, r1, r0
+ ldr r0, [sp, #0x184]
+ add r2, r3, r0
+ ldr r0, [sp, #0x2f8]
+ ldrb r1, [r0, r4]
+ cmp r1, #0x0
+ beq _0201A6C0
+ ldr r0, [sp, #0x180]
+ strb r1, [r2, r0]
+ ldr r0, [sp, #0x1bc]
+ cmp r0, #0x0
+ beq _0201A6C0
+ ldr r0, [sp, #0x17c]
+ add r2, r3, r0
+ ldr r0, [sp, #0x178]
+ strb r1, [r0, r2]
+_0201A6C0:
+ add r4, r4, #0x1
+ add r6, #0x8
+ add r5, r5, #0x1
+ cmp r4, r7
+ blt _0201A692
+_0201A6CA:
+ ldr r0, [sp, #0x1bc]
+ cmp r0, #0x0
+ beq _0201A6D8
+ ldr r0, [sp, #0x1c0]
+ add r0, r0, #0x2
+ str r0, [sp, #0x1c0]
+ b _0201A6DE
+_0201A6D8:
+ ldr r0, [sp, #0x1c0]
+ add r0, r0, #0x1
+ str r0, [sp, #0x1c0]
+_0201A6DE:
+ ldr r0, [sp, #0x2f8]
+ add r0, #0x8
+ str r0, [sp, #0x2f8]
+ ldr r0, [sp, #0x1c4]
+ add r0, r0, #0x1
+ str r0, [sp, #0x1c4]
+ cmp r0, #0x8
+ blt _0201A644
+ ldr r0, [sp, #0x48]
+ ldr r7, [sp, #0x1ec]
+ add r0, #0x8
+ add r7, #0x80
+ str r0, [sp, #0x48]
+ str r0, [sp, #0x1b8]
+ mov r0, #0x0
+ mov r2, #0x1
+_0201A6FE:
+ ldr r1, [sp, #0x330]
+ asr r1, r0
+ tst r1, r2
+ beq _0201A70C
+ ldr r1, [sp, #0x1b8]
+ add r1, r1, #0x1
+ str r1, [sp, #0x1b8]
+_0201A70C:
+ add r0, r0, #0x1
+ cmp r0, #0x8
+ blt _0201A6FE
+ ldr r0, [sp, #0x330]
+ asr r0, r0, #0x8
+ str r0, [sp, #0x44]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x19c]
+ mov r0, #0x0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x4]
+ sub r0, #0x8
+ cmp r0, #0x0
+ ble _0201A7CE
+_0201A72A:
+ ldr r1, [sp, #0x19c]
+ ldr r0, [sp, #0x10]
+ ldr r2, [sp, #0x28]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x2f4]
+ ldr r0, [sp, #0x1b8]
+ mov r3, #0x38
+ lsl r1, r0, #0x3
+ ldr r0, _0201A748 ; =0x00007FC0
+ b _0201A74C
+ nop
+_0201A748: .word 0x00007FC0
+_0201A74C:
+ ldr r5, [sp, #0x5c]
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r0, [sp, #0x194]
+ ldr r0, [sp, #0x1b8]
+ str r2, [sp, #0x198]
+ add r0, r0, #0x1
+ lsl r1, r0, #0x3
+ ldr r0, _0201A8C4 ; =0x00007FC0
+ ldr r2, [sp, #0x28]
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ ldr r6, [sp, #0x24]
+ mov r4, #0x0
+ str r2, [sp, #0x190]
+ str r0, [sp, #0x18c]
+_0201A774:
+ mov r0, #0x7
+ add r1, r5, #0x0
+ and r1, r0
+ ldr r0, [sp, #0x278]
+ add r1, r0, r1
+ ldr r0, _0201A8C4 ; =0x00007FC0
+ and r0, r6
+ add r3, r1, r0
+ ldr r0, [sp, #0x198]
+ ldrb r1, [r7, r4]
+ add r2, r3, r0
+ cmp r1, #0x0
+ beq _0201A7A0
+ ldr r0, [sp, #0x194]
+ strb r1, [r2, r0]
+ ldr r0, [sp, #0x2f4]
+ cmp r0, #0x0
+ beq _0201A7A0
+ ldr r0, [sp, #0x190]
+ add r2, r3, r0
+ ldr r0, [sp, #0x18c]
+ strb r1, [r0, r2]
+_0201A7A0:
+ add r4, r4, #0x1
+ add r6, #0x8
+ add r5, r5, #0x1
+ cmp r4, #0x8
+ blt _0201A774
+ ldr r0, [sp, #0x2f4]
+ cmp r0, #0x0
+ beq _0201A7B8
+ ldr r0, [sp, #0x1b8]
+ add r0, r0, #0x2
+ str r0, [sp, #0x1b8]
+ b _0201A7BE
+_0201A7B8:
+ ldr r0, [sp, #0x1b8]
+ add r0, r0, #0x1
+ str r0, [sp, #0x1b8]
+_0201A7BE:
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x4]
+ add r0, r0, #0x1
+ sub r1, #0x8
+ add r7, #0x8
+ str r0, [sp, #0x10]
+ cmp r0, r1
+ blt _0201A72A
+_0201A7CE:
+ ldr r0, [sp, #0x1ec]
+ mov r2, #0x0
+ str r0, [sp, #0x2f0]
+ add r0, #0xc0
+ str r0, [sp, #0x2f0]
+ mov r1, #0x1
+_0201A7DA:
+ ldr r0, [sp, #0x330]
+ asr r0, r2
+ tst r0, r1
+ beq _0201A7E8
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x1
+ str r0, [sp, #0x48]
+_0201A7E8:
+ add r2, r2, #0x1
+ cmp r2, #0x8
+ blt _0201A7DA
+ ldr r0, [sp, #0x44]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x1b0]
+ mov r0, #0x0
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x4]
+ sub r0, #0x8
+ cmp r0, #0x0
+ ble _0201A8B6
+ ldr r0, [sp, #0x5c]
+ add r0, #0x8
+ str r0, [sp, #0x5c]
+_0201A808:
+ ldr r1, [sp, #0x1b0]
+ ldr r0, [sp, #0xc]
+ ldr r7, [sp, #0x8]
+ asr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ sub r7, #0x8
+ mov r4, #0x0
+ str r0, [sp, #0x1b4]
+ ldr r5, [sp, #0x5c]
+ cmp r7, #0x0
+ ble _0201A88E
+ ble _0201A88E
+ add r0, r5, #0x0
+ lsl r6, r0, #0x3
+ ldr r0, [sp, #0x48]
+ ldr r2, [sp, #0x28]
+ lsl r1, r0, #0x3
+ ldr r0, _0201A8C4 ; =0x00007FC0
+ mov r3, #0x38
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r0, [sp, #0x1a8]
+ ldr r0, [sp, #0x48]
+ str r2, [sp, #0x1ac]
+ add r0, r0, #0x1
+ lsl r1, r0, #0x3
+ ldr r0, _0201A8C4 ; =0x00007FC0
+ ldr r2, [sp, #0x28]
+ and r0, r1
+ mul r2, r0
+ add r0, r1, #0x0
+ and r0, r3
+ str r2, [sp, #0x1a4]
+ str r0, [sp, #0x1a0]
+_0201A856:
+ mov r0, #0x7
+ add r1, r5, #0x0
+ and r1, r0
+ ldr r0, [sp, #0x278]
+ add r1, r0, r1
+ ldr r0, _0201A8C4 ; =0x00007FC0
+ and r0, r6
+ add r3, r1, r0
+ ldr r0, [sp, #0x1ac]
+ add r2, r3, r0
+ ldr r0, [sp, #0x2f0]
+ ldrb r1, [r0, r4]
+ cmp r1, #0x0
+ beq _0201A884
+ ldr r0, [sp, #0x1a8]
+ strb r1, [r2, r0]
+ ldr r0, [sp, #0x1b4]
+ cmp r0, #0x0
+ beq _0201A884
+ ldr r0, [sp, #0x1a4]
+ add r2, r3, r0
+ ldr r0, [sp, #0x1a0]
+ strb r1, [r0, r2]
+_0201A884:
+ add r4, r4, #0x1
+ add r6, #0x8
+ add r5, r5, #0x1
+ cmp r4, r7
+ blt _0201A856
+_0201A88E:
+ ldr r0, [sp, #0x1b4]
+ cmp r0, #0x0
+ beq _0201A89C
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x2
+ str r0, [sp, #0x48]
+ b _0201A8A2
+_0201A89C:
+ ldr r0, [sp, #0x48]
+ add r0, r0, #0x1
+ str r0, [sp, #0x48]
+_0201A8A2:
+ ldr r0, [sp, #0x2f0]
+ ldr r1, [sp, #0x4]
+ add r0, #0x8
+ str r0, [sp, #0x2f0]
+ ldr r0, [sp, #0xc]
+ sub r1, #0x8
+ add r0, r0, #0x1
+ str r0, [sp, #0xc]
+ cmp r0, r1
+ blt _0201A808
+_0201A8B6:
+ ldr r0, [sp, #0x1ec]
+ bl FUN_02016A18
+
+ thumb_func_start FUN_0201A8BC
+FUN_0201A8BC: ; 0x0201A8BC
+ add sp, #0x1fc
+ add sp, #0x118
+ pop {r4-r7, pc}
+ nop
+_0201A8C4: .word 0x00007FC0
+
+ thumb_func_start FUN_0201A8C8
+FUN_0201A8C8: ; 0x0201A8C8
+ push {r4-r6, lr}
+ ldrb r6, [r0, #0x4]
+ mov r5, #0x2c
+ ldr r4, [r0, #0x0]
+ mul r5, r6
+ add r4, r4, r5
+ ldrb r4, [r4, #0x1e]
+ cmp r4, #0x0
+ bne _0201A8E0
+ bl FUN_0201A8E8
+ pop {r4-r6, pc}
+_0201A8E0:
+ bl FUN_0201A9D4
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201A8E8
+FUN_0201A8E8: ; 0x0201A8E8
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r6, r3, #0x0
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ lsl r3, r6, #0x18
+ lsl r1, r6, #0x10
+ str r2, [sp, #0x0]
+ orr r1, r3
+ lsl r5, r6, #0x8
+ orr r1, r5
+ orr r1, r6
+ str r1, [sp, #0x4]
+ ldrb r1, [r4, #0x7]
+ ldrb r3, [r4, #0x8]
+ ldr r2, [r4, #0xc]
+ str r1, [sp, #0x8]
+ mul r1, r3
+ lsl r1, r1, #0x5
+ str r1, [sp, #0xc]
+ cmp r0, #0x3
+ bhi _0201A9CE
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0201A920: ; jump table (using 16-bit offset)
+ .short _0201A928 - _0201A920 - 2; case 0
+ .short _0201A976 - _0201A920 - 2; case 1
+ .short _0201A9CE - _0201A920 - 2; case 2
+ .short _0201A9CE - _0201A920 - 2; case 3
+_0201A928:
+ add r0, r1, #0x0
+ mov r7, #0x0
+ cmp r0, #0x0
+ ble _0201A9CE
+ mov r0, #0x7
+ mov lr, r0
+_0201A934:
+ ldr r3, [sp, #0x0]
+ mov r4, #0x0
+ add r5, r7, #0x0
+_0201A93A:
+ mov r0, #0x7
+ add r6, r3, #0x0
+ and r6, r0
+ add r1, r3, #0x0
+ mov r0, lr
+ bic r1, r0
+ ldr r0, [sp, #0x8]
+ mul r1, r0
+ add r0, r6, #0x0
+ orr r0, r1
+ lsl r0, r0, #0x2
+ add r1, r7, r0
+ ldr r0, [sp, #0xc]
+ cmp r1, r0
+ bge _0201A95C
+ ldr r0, [r2, r1]
+ b _0201A95E
+_0201A95C:
+ ldr r0, [sp, #0x4]
+_0201A95E:
+ add r4, r4, #0x1
+ str r0, [r2, r5]
+ add r3, r3, #0x1
+ add r5, r5, #0x4
+ cmp r4, #0x8
+ blt _0201A93A
+ ldr r0, [sp, #0xc]
+ add r7, #0x20
+ cmp r7, r0
+ blt _0201A934
+ add sp, #0x10
+ pop {r3-r7, pc}
+_0201A976:
+ add r0, r1, #0x0
+ sub r0, r0, #0x4
+ add r2, r2, r0
+ add r0, r1, #0x0
+ mov r7, #0x0
+ cmp r0, #0x0
+ ble _0201A9CE
+ mov r0, #0x7
+ mov r12, r0
+_0201A988:
+ ldr r4, [sp, #0x0]
+ mov r5, #0x0
+ add r3, r7, #0x0
+_0201A98E:
+ mov r0, #0x7
+ add r6, r4, #0x0
+ and r6, r0
+ add r1, r4, #0x0
+ mov r0, r12
+ bic r1, r0
+ ldr r0, [sp, #0x8]
+ mul r1, r0
+ add r0, r6, #0x0
+ orr r0, r1
+ lsl r0, r0, #0x2
+ add r1, r7, r0
+ ldr r0, [sp, #0xc]
+ cmp r1, r0
+ bge _0201A9B6
+ sub r0, r2, r1
+ ldr r1, [r0, #0x0]
+ sub r0, r2, r3
+ str r1, [r0, #0x0]
+ b _0201A9BC
+_0201A9B6:
+ ldr r0, [sp, #0x4]
+ sub r1, r2, r3
+ str r0, [r1, #0x0]
+_0201A9BC:
+ add r5, r5, #0x1
+ add r4, r4, #0x1
+ add r3, r3, #0x4
+ cmp r5, #0x8
+ blt _0201A98E
+ ldr r0, [sp, #0xc]
+ add r7, #0x20
+ cmp r7, r0
+ blt _0201A988
+_0201A9CE:
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201A9D4
+FUN_0201A9D4: ; 0x0201A9D4
+ push {r3-r7, lr}
+ sub sp, #0x20
+ add r6, r3, #0x0
+ add r4, r0, #0x0
+ str r2, [sp, #0x0]
+ lsl r2, r6, #0x18
+ lsl r0, r6, #0x10
+ orr r0, r2
+ ldrb r2, [r4, #0x7]
+ ldr r3, [r4, #0xc]
+ lsl r5, r6, #0x8
+ orr r0, r5
+ ldrb r4, [r4, #0x8]
+ str r2, [sp, #0x10]
+ orr r0, r6
+ mul r2, r4
+ lsl r2, r2, #0x6
+ str r2, [sp, #0x1c]
+ cmp r1, #0x3
+ bls _0201A9FE
+ b _0201AB04
+_0201A9FE:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0201AA0A: ; jump table (using 16-bit offset)
+ .short _0201AA12 - _0201AA0A - 2; case 0
+ .short _0201AA80 - _0201AA0A - 2; case 1
+ .short _0201AB04 - _0201AA0A - 2; case 2
+ .short _0201AB04 - _0201AA0A - 2; case 3
+_0201AA12:
+ mov r1, #0x0
+ str r1, [sp, #0xc]
+ add r1, r2, #0x0
+ cmp r1, #0x0
+ ble _0201AB04
+ add r1, r1, #0x4
+ str r1, [sp, #0x14]
+ mov r1, #0x7
+ mov lr, r1
+_0201AA24:
+ ldr r4, [sp, #0x0]
+ ldr r5, [sp, #0xc]
+ mov r7, #0x0
+_0201AA2A:
+ mov r1, #0x7
+ add r6, r4, #0x0
+ and r6, r1
+ add r2, r4, #0x0
+ mov r1, lr
+ bic r2, r1
+ ldr r1, [sp, #0x10]
+ mul r2, r1
+ add r1, r6, #0x0
+ orr r1, r2
+ lsl r2, r1, #0x3
+ ldr r1, [sp, #0xc]
+ add r1, r1, r2
+ ldr r2, [sp, #0x1c]
+ cmp r1, r2
+ bge _0201AA50
+ ldr r2, [r3, r1]
+ str r2, [r3, r5]
+ b _0201AA52
+_0201AA50:
+ str r0, [r3, r5]
+_0201AA52:
+ add r2, r1, #0x4
+ ldr r1, [sp, #0x14]
+ cmp r2, r1
+ bge _0201AA62
+ ldr r2, [r3, r2]
+ add r1, r5, #0x4
+ str r2, [r3, r1]
+ b _0201AA66
+_0201AA62:
+ add r1, r5, #0x4
+ str r0, [r3, r1]
+_0201AA66:
+ add r7, r7, #0x1
+ add r4, r4, #0x1
+ add r5, #0x8
+ cmp r7, #0x8
+ blt _0201AA2A
+ ldr r2, [sp, #0xc]
+ ldr r1, [sp, #0x1c]
+ add r2, #0x40
+ str r2, [sp, #0xc]
+ cmp r2, r1
+ blt _0201AA24
+ add sp, #0x20
+ pop {r3-r7, pc}
+_0201AA80:
+ add r1, r2, #0x0
+ sub r1, #0x8
+ add r3, r3, r1
+ mov r1, #0x0
+ str r1, [sp, #0x8]
+ add r1, r2, #0x0
+ cmp r1, #0x0
+ ble _0201AB04
+_0201AA90:
+ mov r1, #0x0
+ str r1, [sp, #0x4]
+ ldr r1, [sp, #0x1c]
+ ldr r5, [sp, #0x0]
+ sub r1, r1, #0x4
+ str r1, [sp, #0x18]
+ mov r1, #0x7
+ ldr r4, [sp, #0x8]
+ mov r12, r1
+_0201AAA2:
+ mov r1, #0x7
+ add r6, r5, #0x0
+ and r6, r1
+ add r2, r5, #0x0
+ mov r1, r12
+ bic r2, r1
+ ldr r1, [sp, #0x10]
+ mul r2, r1
+ add r1, r6, #0x0
+ orr r1, r2
+ lsl r2, r1, #0x3
+ ldr r1, [sp, #0x8]
+ add r6, r1, r2
+ ldr r1, [sp, #0x1c]
+ cmp r6, r1
+ bge _0201AACC
+ sub r1, r3, r6
+ ldr r2, [r1, #0x0]
+ sub r1, r3, r4
+ str r2, [r1, #0x0]
+ b _0201AAD0
+_0201AACC:
+ sub r1, r3, r4
+ str r0, [r1, #0x0]
+_0201AAD0:
+ ldr r1, [sp, #0x18]
+ sub r2, r6, #0x4
+ cmp r2, r1
+ bge _0201AAE4
+ sub r1, r3, r2
+ sub r2, r4, #0x4
+ ldr r1, [r1, #0x0]
+ sub r2, r3, r2
+ str r1, [r2, #0x0]
+ b _0201AAEA
+_0201AAE4:
+ sub r1, r4, #0x4
+ sub r1, r3, r1
+ str r0, [r1, #0x0]
+_0201AAEA:
+ ldr r1, [sp, #0x4]
+ add r5, r5, #0x1
+ add r1, r1, #0x1
+ add r4, #0x8
+ str r1, [sp, #0x4]
+ cmp r1, #0x8
+ blt _0201AAA2
+ ldr r2, [sp, #0x8]
+ ldr r1, [sp, #0x1c]
+ add r2, #0x40
+ str r2, [sp, #0x8]
+ cmp r2, r1
+ blt _0201AA90
+_0201AB04:
+ add sp, #0x20
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0201AB08
+FUN_0201AB08: ; 0x0201AB08
+ ldrb r0, [r0, #0x4]
+ bx lr
+
+ thumb_func_start FUN_0201AB0C
+FUN_0201AB0C: ; 0x0201AB0C
+ ldrb r0, [r0, #0x7]
+ bx lr
+
+ thumb_func_start FUN_0201AB10
+FUN_0201AB10: ; 0x0201AB10
+ ldrb r0, [r0, #0x8]
+ bx lr
+
+ thumb_func_start FUN_0201AB14
+FUN_0201AB14: ; 0x0201AB14
+ ldrb r0, [r0, #0x5]
+ bx lr
+
+ thumb_func_start FUN_0201AB18
+FUN_0201AB18: ; 0x0201AB18
+ ldrb r0, [r0, #0x6]
+ bx lr
+
+ thumb_func_start FUN_0201AB1C
+FUN_0201AB1C: ; 0x0201AB1C
+ strb r1, [r0, #0x5]
+ bx lr
+
+ thumb_func_start FUN_0201AB20
+FUN_0201AB20: ; 0x0201AB20
+ strb r1, [r0, #0x6]
+ bx lr
+
+ thumb_func_start FUN_0201AB24
+FUN_0201AB24: ; 0x0201AB24
+ strb r1, [r0, #0x9]
+ bx lr
+
+ thumb_func_start FUN_0201AB28
+FUN_0201AB28: ; 0x0201AB28
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ add r1, r2, #0x0
+ bl FUN_020161A4
+ add r1, sp, #0x0
+ str r0, [r4, #0x0]
+ bl FUN_020B0030
+ ldr r0, [sp, #0x0]
+ add sp, #0x4
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_0201AB44
+FUN_0201AB44: ; 0x0201AB44
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ add r1, r2, #0x0
+ bl FUN_020161A4
+ add r1, sp, #0x0
+ str r0, [r4, #0x0]
+ bl FUN_020B0138
+ ldr r0, [sp, #0x0]
+ add sp, #0x4
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_0201AB60
+FUN_0201AB60: ; 0x0201AB60
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_0201AC78
+ add r0, r4, #0x0
+ bl FUN_0201AB78
+ mov r0, #0x0
+ strh r0, [r4, #0x4]
+ strh r0, [r4, #0x6]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201AB78
+FUN_0201AB78: ; 0x0201AB78
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldrh r1, [r4, #0x6]
+ mov r0, #0x1
+ tst r0, r1
+ beq _0201AB92
+ ldr r2, [r4, #0x10]
+ ldr r1, [r4, #0x8]
+ ldr r3, [r4, #0xc]
+ mov r0, #0x0
+ lsl r2, r2, #0x1
+ bl FUN_02017D68
+_0201AB92:
+ ldrh r1, [r4, #0x6]
+ mov r0, #0x2
+ tst r0, r1
+ beq _0201ABA8
+ ldr r2, [r4, #0x3c]
+ ldr r1, [r4, #0x34]
+ ldr r3, [r4, #0x38]
+ mov r0, #0x1
+ lsl r2, r2, #0x1
+ bl FUN_02017D68
+_0201ABA8:
+ ldrh r1, [r4, #0x6]
+ mov r0, #0x4
+ tst r0, r1
+ beq _0201ABBE
+ ldr r2, [r4, #0x68]
+ ldr r1, [r4, #0x60]
+ ldr r3, [r4, #0x64]
+ mov r0, #0x2
+ lsl r2, r2, #0x1
+ bl FUN_02017D68
+_0201ABBE:
+ ldrh r1, [r4, #0x6]
+ mov r0, #0x8
+ tst r0, r1
+ beq _0201ABE0
+ add r2, r4, #0x0
+ add r1, r4, #0x0
+ add r2, #0x94
+ add r3, r4, #0x0
+ add r1, #0x8c
+ ldr r2, [r2, #0x0]
+ add r3, #0x90
+ ldr r1, [r1, #0x0]
+ ldr r3, [r3, #0x0]
+ mov r0, #0x3
+ lsl r2, r2, #0x1
+ bl FUN_02017D68
+_0201ABE0:
+ ldrh r1, [r4, #0x6]
+ mov r0, #0x10
+ tst r0, r1
+ beq _0201AC02
+ add r2, r4, #0x0
+ add r1, r4, #0x0
+ add r2, #0xc0
+ add r3, r4, #0x0
+ add r1, #0xb8
+ ldr r2, [r2, #0x0]
+ add r3, #0xbc
+ ldr r1, [r1, #0x0]
+ ldr r3, [r3, #0x0]
+ mov r0, #0x4
+ lsl r2, r2, #0x1
+ bl FUN_02017D68
+_0201AC02:
+ ldrh r1, [r4, #0x6]
+ mov r0, #0x20
+ tst r0, r1
+ beq _0201AC24
+ add r2, r4, #0x0
+ add r1, r4, #0x0
+ add r2, #0xec
+ add r3, r4, #0x0
+ add r1, #0xe4
+ ldr r2, [r2, #0x0]
+ add r3, #0xe8
+ ldr r1, [r1, #0x0]
+ ldr r3, [r3, #0x0]
+ mov r0, #0x5
+ lsl r2, r2, #0x1
+ bl FUN_02017D68
+_0201AC24:
+ ldrh r0, [r4, #0x6]
+ mov r3, #0x40
+ tst r0, r3
+ beq _0201AC44
+ add r2, r3, #0x0
+ add r1, r3, #0x0
+ add r2, #0xd8
+ add r1, #0xd0
+ ldr r2, [r4, r2]
+ add r3, #0xd4
+ ldr r1, [r4, r1]
+ ldr r3, [r4, r3]
+ mov r0, #0x6
+ lsl r2, r2, #0x1
+ bl FUN_02017D68
+_0201AC44:
+ ldrh r0, [r4, #0x6]
+ mov r3, #0x80
+ tst r0, r3
+ beq _0201AC64
+ add r2, r3, #0x0
+ add r1, r3, #0x0
+ add r2, #0xc4
+ add r1, #0xbc
+ ldr r2, [r4, r2]
+ add r3, #0xc0
+ ldr r1, [r4, r1]
+ ldr r3, [r4, r3]
+ mov r0, #0x7
+ lsl r2, r2, #0x1
+ bl FUN_02017D68
+_0201AC64:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201AC68
+FUN_0201AC68: ; 0x0201AC68
+ ldrh r3, [r0, #0x6]
+ mov r2, #0x1
+ lsl r2, r1
+ add r1, r3, #0x0
+ orr r1, r2
+ strh r1, [r0, #0x6]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201AC78
+FUN_0201AC78: ; 0x0201AC78
+ push {r4, lr}
+ sub sp, #0x48
+ add r4, r0, #0x0
+ ldrh r1, [r4, #0x4]
+ mov r0, #0x1
+ tst r0, r1
+ beq _0201AC9E
+ ldr r1, [r4, #0x14]
+ ldr r0, _0201AEB0 ; =0x000001FF
+ add r2, r1, #0x0
+ ldr r1, [r4, #0x18]
+ and r2, r0
+ lsl r1, r1, #0x10
+ lsl r0, r0, #0x10
+ and r0, r1
+ add r1, r2, #0x0
+ orr r1, r0
+ ldr r0, _0201AEB4 ; =0x04000010
+ str r1, [r0, #0x0]
+_0201AC9E:
+ ldrh r1, [r4, #0x4]
+ mov r0, #0x2
+ tst r0, r1
+ beq _0201ACBE
+ ldr r1, [r4, #0x40]
+ ldr r0, _0201AEB0 ; =0x000001FF
+ add r2, r1, #0x0
+ ldr r1, [r4, #0x44]
+ and r2, r0
+ lsl r1, r1, #0x10
+ lsl r0, r0, #0x10
+ and r0, r1
+ add r1, r2, #0x0
+ orr r1, r0
+ ldr r0, _0201AEB8 ; =0x04000014
+ str r1, [r0, #0x0]
+_0201ACBE:
+ ldrh r1, [r4, #0x4]
+ mov r0, #0x4
+ tst r0, r1
+ beq _0201AD1E
+ add r0, r4, #0x0
+ add r0, #0x74
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0201ACEA
+ ldr r1, [r4, #0x6c]
+ ldr r0, _0201AEB0 ; =0x000001FF
+ add r2, r1, #0x0
+ ldr r1, [r4, #0x70]
+ and r2, r0
+ lsl r1, r1, #0x10
+ lsl r0, r0, #0x10
+ and r0, r1
+ add r1, r2, #0x0
+ orr r1, r0
+ ldr r0, _0201AEBC ; =0x04000018
+ str r1, [r0, #0x0]
+ b _0201AD1E
+_0201ACEA:
+ mov r0, #0x2
+ str r0, [sp, #0x0]
+ add r1, r4, #0x0
+ add r1, #0x78
+ add r3, r4, #0x0
+ add r3, #0x80
+ ldrh r1, [r1, #0x0]
+ ldr r2, [r4, #0x7c]
+ ldr r3, [r3, #0x0]
+ add r0, sp, #0x38
+ bl FUN_0201BB74
+ ldr r0, [r4, #0x6c]
+ add r2, r4, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x70]
+ add r3, r4, #0x0
+ str r0, [sp, #0x4]
+ add r2, #0x84
+ add r3, #0x88
+ ldr r0, _0201AEC0 ; =0x04000020
+ ldr r2, [r2, #0x0]
+ ldr r3, [r3, #0x0]
+ add r1, sp, #0x38
+ bl G2x_SetBGyAffine_
+_0201AD1E:
+ ldrh r1, [r4, #0x4]
+ mov r0, #0x8
+ tst r0, r1
+ beq _0201AD8E
+ add r0, r4, #0x0
+ add r0, #0xa0
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0201AD4E
+ add r0, r4, #0x0
+ add r2, r4, #0x0
+ add r0, #0x98
+ add r2, #0x9c
+ ldr r2, [r2, #0x0]
+ ldr r0, [r0, #0x0]
+ ldr r1, _0201AEB0 ; =0x000001FF
+ lsl r2, r2, #0x10
+ and r0, r1
+ lsl r1, r1, #0x10
+ and r1, r2
+ orr r1, r0
+ ldr r0, _0201AEC4 ; =0x0400001C
+ str r1, [r0, #0x0]
+ b _0201AD8E
+_0201AD4E:
+ mov r0, #0x2
+ add r1, r4, #0x0
+ str r0, [sp, #0x0]
+ add r1, #0xa4
+ add r2, r4, #0x0
+ add r3, r4, #0x0
+ add r2, #0xa8
+ add r3, #0xac
+ ldrh r1, [r1, #0x0]
+ ldr r2, [r2, #0x0]
+ ldr r3, [r3, #0x0]
+ add r0, sp, #0x28
+ bl FUN_0201BB74
+ add r0, r4, #0x0
+ add r0, #0x98
+ ldr r0, [r0, #0x0]
+ add r2, r4, #0x0
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x9c
+ ldr r0, [r0, #0x0]
+ add r3, r4, #0x0
+ str r0, [sp, #0x4]
+ add r2, #0xb0
+ add r3, #0xb4
+ ldr r0, _0201AEC8 ; =0x04000030
+ ldr r2, [r2, #0x0]
+ ldr r3, [r3, #0x0]
+ add r1, sp, #0x28
+ bl G2x_SetBGyAffine_
+_0201AD8E:
+ ldrh r1, [r4, #0x4]
+ mov r0, #0x10
+ tst r0, r1
+ beq _0201ADB2
+ add r0, r4, #0x0
+ add r2, r4, #0x0
+ add r0, #0xc4
+ add r2, #0xc8
+ ldr r2, [r2, #0x0]
+ ldr r0, [r0, #0x0]
+ ldr r1, _0201AEB0 ; =0x000001FF
+ lsl r2, r2, #0x10
+ and r0, r1
+ lsl r1, r1, #0x10
+ and r1, r2
+ orr r1, r0
+ ldr r0, _0201AECC ; =0x04001010
+ str r1, [r0, #0x0]
+_0201ADB2:
+ ldrh r1, [r4, #0x4]
+ mov r0, #0x20
+ tst r0, r1
+ beq _0201ADD6
+ add r0, r4, #0x0
+ add r2, r4, #0x0
+ add r0, #0xf0
+ add r2, #0xf4
+ ldr r2, [r2, #0x0]
+ ldr r0, [r0, #0x0]
+ ldr r1, _0201AEB0 ; =0x000001FF
+ lsl r2, r2, #0x10
+ and r0, r1
+ lsl r1, r1, #0x10
+ and r1, r2
+ orr r1, r0
+ ldr r0, _0201AED0 ; =0x04001014
+ str r1, [r0, #0x0]
+_0201ADD6:
+ ldrh r0, [r4, #0x4]
+ mov r3, #0x40
+ tst r0, r3
+ beq _0201AE3E
+ add r0, r3, #0x0
+ add r0, #0xe4
+ ldrb r0, [r4, r0]
+ cmp r0, #0x0
+ bne _0201AE04
+ ldr r1, _0201AEB0 ; =0x000001FF
+ add r3, #0xdc
+ add r2, r1, #0x0
+ sub r2, #0xdf
+ ldr r0, [r4, r3]
+ ldr r2, [r4, r2]
+ and r0, r1
+ lsl r2, r2, #0x10
+ lsl r1, r1, #0x10
+ and r1, r2
+ orr r1, r0
+ ldr r0, _0201AED4 ; =0x04001018
+ str r1, [r0, #0x0]
+ b _0201AE3E
+_0201AE04:
+ mov r0, #0x2
+ add r1, r3, #0x0
+ add r2, r3, #0x0
+ str r0, [sp, #0x0]
+ add r1, #0xe8
+ add r2, #0xec
+ add r3, #0xf0
+ ldrh r1, [r4, r1]
+ ldr r2, [r4, r2]
+ ldr r3, [r4, r3]
+ add r0, sp, #0x18
+ bl FUN_0201BB74
+ mov r3, #0x47
+ lsl r3, r3, #0x2
+ ldr r0, [r4, r3]
+ add r2, r3, #0x0
+ str r0, [sp, #0x0]
+ add r0, r3, #0x4
+ ldr r0, [r4, r0]
+ add r2, #0x18
+ str r0, [sp, #0x4]
+ add r3, #0x1c
+ ldr r0, _0201AED8 ; =0x04001020
+ ldr r2, [r4, r2]
+ ldr r3, [r4, r3]
+ add r1, sp, #0x18
+ bl G2x_SetBGyAffine_
+_0201AE3E:
+ ldrh r0, [r4, #0x4]
+ mov r3, #0x80
+ tst r0, r3
+ beq _0201AEAC
+ add r0, r3, #0x0
+ add r0, #0xd0
+ ldrb r0, [r4, r0]
+ cmp r0, #0x0
+ bne _0201AE72
+ add r3, #0xc8
+ ldr r1, [r4, r3]
+ ldr r0, _0201AEB0 ; =0x000001FF
+ add r2, r1, #0x0
+ add r1, r0, #0x0
+ sub r1, #0xb3
+ ldr r1, [r4, r1]
+ and r2, r0
+ lsl r1, r1, #0x10
+ lsl r0, r0, #0x10
+ and r0, r1
+ add r1, r2, #0x0
+ orr r1, r0
+ ldr r0, _0201AEDC ; =0x0400101C
+ add sp, #0x48
+ str r1, [r0, #0x0]
+ pop {r4, pc}
+_0201AE72:
+ mov r0, #0x2
+ add r1, r3, #0x0
+ add r2, r3, #0x0
+ str r0, [sp, #0x0]
+ add r1, #0xd4
+ add r2, #0xd8
+ add r3, #0xdc
+ ldrh r1, [r4, r1]
+ ldr r2, [r4, r2]
+ ldr r3, [r4, r3]
+ add r0, sp, #0x8
+ bl FUN_0201BB74
+ mov r3, #0x52
+ lsl r3, r3, #0x2
+ ldr r0, [r4, r3]
+ add r2, r3, #0x0
+ str r0, [sp, #0x0]
+ add r0, r3, #0x4
+ ldr r0, [r4, r0]
+ add r2, #0x18
+ str r0, [sp, #0x4]
+ add r3, #0x1c
+ ldr r0, _0201AEE0 ; =0x04001030
+ ldr r2, [r4, r2]
+ ldr r3, [r4, r3]
+ add r1, sp, #0x8
+ bl G2x_SetBGyAffine_
+_0201AEAC:
+ add sp, #0x48
+ pop {r4, pc}
+ .balign 4
+_0201AEB0: .word 0x000001FF
+_0201AEB4: .word 0x04000010
+_0201AEB8: .word 0x04000014
+_0201AEBC: .word 0x04000018
+_0201AEC0: .word 0x04000020
+_0201AEC4: .word 0x0400001C
+_0201AEC8: .word 0x04000030
+_0201AECC: .word 0x04001010
+_0201AED0: .word 0x04001014
+_0201AED4: .word 0x04001018
+_0201AED8: .word 0x04001020
+_0201AEDC: .word 0x0400101C
+_0201AEE0: .word 0x04001030
+
+ thumb_func_start FUN_0201AEE4
+FUN_0201AEE4: ; 0x0201AEE4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r1, r5, #0x0
+ mov r0, #0x2c
+ add r1, #0x8
+ mul r0, r4
+ add r0, r1, r0
+ add r1, r2, #0x0
+ add r2, r3, #0x0
+ bl FUN_02017B8C
+ mov r0, #0x1
+ ldrh r1, [r5, #0x4]
+ lsl r0, r4
+ orr r0, r1
+ strh r0, [r5, #0x4]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0201AF08
+FUN_0201AF08: ; 0x0201AF08
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r1, r5, #0x0
+ mov r0, #0x2c
+ add r1, #0x8
+ mul r0, r4
+ add r0, r1, r0
+ add r1, r2, #0x0
+ add r2, r3, #0x0
+ bl FUN_0201AF2C
+ mov r0, #0x1
+ ldrh r1, [r5, #0x4]
+ lsl r0, r4
+ orr r0, r1
+ strh r0, [r5, #0x4]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0201AF2C
+FUN_0201AF2C: ; 0x0201AF2C
+ cmp r1, #0x0
+ beq _0201AF3A
+ cmp r1, #0x1
+ beq _0201AF3E
+ cmp r1, #0x2
+ beq _0201AF46
+ bx lr
+_0201AF3A:
+ strh r2, [r0, #0x18]
+ bx lr
+_0201AF3E:
+ ldrh r1, [r0, #0x18]
+ add r1, r1, r2
+ strh r1, [r0, #0x18]
+ bx lr
+_0201AF46:
+ ldrh r1, [r0, #0x18]
+ sub r1, r1, r2
+ strh r1, [r0, #0x18]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201AF50
+FUN_0201AF50: ; 0x0201AF50
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r1, r5, #0x0
+ mov r0, #0x2c
+ add r1, #0x8
+ mul r0, r4
+ add r0, r1, r0
+ add r1, r2, #0x0
+ add r2, r3, #0x0
+ bl FUN_0201AF74
+ mov r0, #0x1
+ ldrh r1, [r5, #0x4]
+ lsl r0, r4
+ orr r0, r1
+ strh r0, [r5, #0x4]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0201AF74
+FUN_0201AF74: ; 0x0201AF74
+ sub r1, #0x9
+ cmp r1, #0x5
+ bhi _0201AFB8
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0201AF86: ; jump table (using 16-bit offset)
+ .short _0201AF92 - _0201AF86 - 2; case 0
+ .short _0201AF96 - _0201AF86 - 2; case 1
+ .short _0201AF9E - _0201AF86 - 2; case 2
+ .short _0201AFA6 - _0201AF86 - 2; case 3
+ .short _0201AFAA - _0201AF86 - 2; case 4
+ .short _0201AFB2 - _0201AF86 - 2; case 5
+_0201AF92:
+ str r2, [r0, #0x24]
+ bx lr
+_0201AF96:
+ ldr r1, [r0, #0x24]
+ add r1, r1, r2
+ str r1, [r0, #0x24]
+ bx lr
+_0201AF9E:
+ ldr r1, [r0, #0x24]
+ sub r1, r1, r2
+ str r1, [r0, #0x24]
+ bx lr
+_0201AFA6:
+ str r2, [r0, #0x28]
+ bx lr
+_0201AFAA:
+ ldr r1, [r0, #0x28]
+ add r1, r1, r2
+ str r1, [r0, #0x28]
+ bx lr
+_0201AFB2:
+ ldr r1, [r0, #0x28]
+ sub r1, r1, r2
+ str r1, [r0, #0x28]
+_0201AFB8:
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201AFBC
+FUN_0201AFBC: ; 0x0201AFBC
+ push {r4-r7, lr}
+ sub sp, #0x1c
+ str r1, [sp, #0x0]
+ add r7, r0, #0x0
+ str r2, [sp, #0x4]
+ ldr r0, [sp, #0x30]
+ str r3, [sp, #0x8]
+ str r0, [sp, #0x30]
+ ldr r0, [sp, #0x0]
+ add r4, r7, #0x0
+ mov r1, #0x2c
+ add r5, r0, #0x0
+ mul r5, r1
+ add r4, #0x8
+ ldr r0, [r4, r5]
+ cmp r0, #0x0
+ bne _0201AFE4
+ add sp, #0x1c
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_0201AFE4:
+ ldr r0, [sp, #0x4]
+ ldr r1, [sp, #0x8]
+ add r2, r7, r5
+ lsl r0, r0, #0x15
+ lsl r1, r1, #0x15
+ ldrb r2, [r2, #0x1d]
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_02017FFC
+ add r6, r0, #0x0
+ ldr r0, [sp, #0x0]
+ bl FUN_020187B0
+ str r0, [sp, #0x18]
+ ldr r1, [sp, #0x4]
+ mov r0, #0x7
+ and r1, r0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp, #0x14]
+ ldr r1, [sp, #0x8]
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ add r1, r7, r5
+ str r0, [sp, #0x10]
+ ldrb r0, [r1, #0x1e]
+ cmp r0, #0x0
+ bne _0201B096
+ ldr r0, [r4, r5]
+ mov r1, #0x40
+ str r0, [sp, #0xc]
+ ldr r0, [r7, #0x0]
+ bl FUN_020169D8
+ add r4, r0, #0x0
+ lsl r0, r6, #0x1
+ ldr r1, [sp, #0xc]
+ mov r12, r0
+ ldrh r0, [r1, r0]
+ mov r3, #0x0
+ mov r6, #0xf
+ lsl r0, r0, #0x16
+ lsr r1, r0, #0x11
+ ldr r0, [sp, #0x18]
+ add r2, r0, r1
+_0201B042:
+ ldrb r5, [r2, r3]
+ lsl r0, r3, #0x1
+ add r1, r4, r0
+ and r5, r6
+ strb r5, [r4, r0]
+ ldrb r0, [r2, r3]
+ asr r0, r0, #0x4
+ strb r0, [r1, #0x1]
+ add r0, r3, #0x1
+ lsl r0, r0, #0x18
+ lsr r3, r0, #0x18
+ cmp r3, #0x20
+ blo _0201B042
+ ldr r2, [sp, #0xc]
+ mov r1, r12
+ ldrh r1, [r2, r1]
+ add r0, r7, #0x0
+ asr r2, r1, #0xa
+ mov r1, #0x3
+ and r1, r2
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ add r2, r4, #0x0
+ bl FUN_0201B118
+ ldr r0, [sp, #0x10]
+ lsl r1, r0, #0x3
+ ldr r0, [sp, #0x14]
+ add r0, r0, r1
+ ldrb r5, [r4, r0]
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ ldr r0, [sp, #0x30]
+ ldrh r2, [r0, #0x0]
+ mov r0, #0x1
+ add r1, r0, #0x0
+ lsl r1, r5
+ tst r1, r2
+ beq _0201B10C
+ add sp, #0x1c
+ pop {r4-r7, pc}
+_0201B096:
+ ldrb r0, [r1, #0x1c]
+ cmp r0, #0x1
+ beq _0201B0E0
+ ldr r0, [r7, #0x0]
+ ldr r4, [r4, r5]
+ mov r1, #0x40
+ bl FUN_020169D8
+ lsl r6, r6, #0x1
+ ldrh r1, [r4, r6]
+ add r5, r0, #0x0
+ lsl r1, r1, #0x16
+ lsr r2, r1, #0x10
+ ldr r1, [sp, #0x18]
+ add r1, r1, r2
+ mov r2, #0x40
+ bl memcpy
+ ldrh r1, [r4, r6]
+ add r0, r7, #0x0
+ asr r2, r1, #0xa
+ mov r1, #0x3
+ and r1, r2
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ add r2, r5, #0x0
+ bl FUN_0201B118
+ ldr r0, [sp, #0x10]
+ lsl r1, r0, #0x3
+ ldr r0, [sp, #0x14]
+ add r0, r0, r1
+ ldrb r4, [r5, r0]
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ b _0201B0F4
+_0201B0E0:
+ ldr r1, [r4, r5]
+ ldr r0, [sp, #0x10]
+ ldrb r1, [r1, r6]
+ lsl r0, r0, #0x3
+ lsl r2, r1, #0x6
+ ldr r1, [sp, #0x14]
+ add r1, r1, r2
+ add r1, r0, r1
+ ldr r0, [sp, #0x18]
+ ldrb r4, [r0, r1]
+_0201B0F4:
+ ldr r0, [sp, #0x30]
+ ldrh r2, [r0, #0x0]
+ lsl r0, r2, #0x18
+ lsr r1, r0, #0x18
+ ldr r0, _0201B114 ; =0x0000FFFF
+_0201B0FE:
+ cmp r2, r0
+ beq _0201B10C
+ cmp r4, r1
+ bne _0201B0FE
+ add sp, #0x1c
+ mov r0, #0x1
+ pop {r4-r7, pc}
+_0201B10C:
+ mov r0, #0x0
+ add sp, #0x1c
+ pop {r4-r7, pc}
+ nop
+_0201B114: .word 0x0000FFFF
+
+ thumb_func_start FUN_0201B118
+FUN_0201B118: ; 0x0201B118
+ push {r3-r7, lr}
+ str r1, [sp, #0x0]
+ ldr r1, [sp, #0x0]
+ add r7, r2, #0x0
+ cmp r1, #0x0
+ beq _0201B1A4
+ ldr r0, [r0, #0x0]
+ mov r1, #0x40
+ bl FUN_020169D8
+ add r4, r0, #0x0
+ ldr r0, [sp, #0x0]
+ mov r1, #0x1
+ tst r0, r1
+ beq _0201B166
+ mov r0, #0x0
+ mov r5, #0x7
+_0201B13A:
+ lsl r3, r0, #0x3
+ add r2, r7, r3
+ mov r1, #0x0
+ add r3, r4, r3
+_0201B142:
+ sub r6, r5, r1
+ ldrb r6, [r2, r6]
+ strb r6, [r3, r1]
+ add r1, r1, #0x1
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ cmp r1, #0x8
+ blo _0201B142
+ add r0, r0, #0x1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x8
+ blo _0201B13A
+ add r0, r7, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x40
+ bl memcpy
+_0201B166:
+ ldr r0, [sp, #0x0]
+ mov r1, #0x2
+ tst r0, r1
+ beq _0201B19E
+ mov r5, #0x0
+ mov r6, #0x7
+_0201B172:
+ lsl r0, r5, #0x3
+ add r3, r4, r0
+ sub r0, r6, r5
+ lsl r0, r0, #0x3
+ add r2, r7, r0
+ mov r1, #0x8
+_0201B17E:
+ ldrb r0, [r2, #0x0]
+ add r2, r2, #0x1
+ strb r0, [r3, #0x0]
+ add r3, r3, #0x1
+ sub r1, r1, #0x1
+ bne _0201B17E
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, #0x8
+ blo _0201B172
+ add r0, r7, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x40
+ bl memcpy
+_0201B19E:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+_0201B1A4:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201B1A8
+FUN_0201B1A8: ; 0x0201B1A8
+ push {r3-r5, lr}
+ add r5, r3, #0x0
+ add r4, r2, #0x0
+ bl FUN_020161A4
+ str r0, [r5, #0x0]
+ bl FUN_020BC0FC
+ cmp r0, #0x0
+ beq _0201B1D2
+ bl FUN_0201B254
+ cmp r0, #0x0
+ bne _0201B1D2
+ ldr r0, [r5, #0x0]
+ ldr r1, [r0, #0x8]
+ bl DC_FlushRange
+ ldr r0, [r5, #0x0]
+ bl FUN_020BB59C
+_0201B1D2:
+ ldr r0, [r5, #0x0]
+ bl FUN_020BC13C
+ ldrh r1, [r0, #0xe]
+ add r1, r0, r1
+ ldr r1, [r1, #0xc]
+ add r0, r0, r1
+ str r0, [r4, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0201B1E4
+FUN_0201B1E4: ; 0x0201B1E4
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_020BC0FC
+ cmp r0, #0x0
+ beq _0201B20A
+ bl FUN_0201B254
+ cmp r0, #0x0
+ bne _0201B20A
+ ldr r0, [r5, #0x0]
+ ldr r1, [r0, #0x8]
+ bl DC_FlushRange
+ ldr r0, [r5, #0x0]
+ bl FUN_020BB59C
+_0201B20A:
+ ldr r0, [r5, #0x0]
+ bl FUN_020BC13C
+ ldrh r1, [r0, #0xe]
+ add r1, r0, r1
+ ldr r1, [r1, #0xc]
+ add r0, r0, r1
+ str r0, [r4, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0201B21C
+FUN_0201B21C: ; 0x0201B21C
+ push {r3-r5, lr}
+ add r4, r3, #0x0
+ add r5, r2, #0x0
+ ldr r3, [sp, #0x10]
+ add r2, r4, #0x0
+ bl FUN_0201B1A8
+ ldr r1, [r4, #0x0]
+ add r0, r5, #0x0
+ bl FUN_020B80B4
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0201B234
+FUN_0201B234: ; 0x0201B234
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r2, #0x0
+ bl FUN_0201B1E4
+ cmp r4, #0x0
+ bne _0201B24A
+ bl ErrorHandling
+_0201B24A:
+ ldr r1, [r4, #0x0]
+ add r0, r5, #0x0
+ bl FUN_020B80B4
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0201B254
+FUN_0201B254: ; 0x0201B254
+ ldrh r2, [r0, #0x10]
+ mov r1, #0x1
+ tst r2, r1
+ bne _0201B262
+ ldrh r0, [r0, #0x20]
+ tst r0, r1
+ beq _0201B266
+_0201B262:
+ mov r0, #0x1
+ bx lr
+_0201B266:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201B26C
+FUN_0201B26C: ; 0x0201B26C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ add r4, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_020B8474
+ ldr r1, _0201B2A0 ; =0x021CEDD4
+ add r0, r4, #0x0
+ bl MI_Copy36B
+ ldr r1, _0201B2A4 ; =0x021CED98
+ mov r0, #0xa4
+ ldr r2, [r1, #0x7c]
+ bic r2, r0
+ add r0, r6, #0x0
+ str r2, [r1, #0x7c]
+ bl FUN_020B844C
+ bl FUN_020B849C
+ add r0, r5, #0x0
+ bl FUN_020BAC98
+ pop {r4-r6, pc}
+ nop
+_0201B2A0: .word 0x021CEDD4
+_0201B2A4: .word 0x021CED98
+
+ thumb_func_start FUN_0201B2A8
+FUN_0201B2A8: ; 0x0201B2A8
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ add r4, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_020B8474
+ ldr r1, _0201B2E4 ; =0x021CEDD4
+ add r0, r4, #0x0
+ bl MI_Copy36B
+ ldr r1, _0201B2E8 ; =0x021CED98
+ mov r0, #0xa4
+ ldr r2, [r1, #0x7c]
+ bic r2, r0
+ str r2, [r1, #0x7c]
+ add r0, r6, #0x0
+ bl FUN_020B844C
+ bl FUN_020B849C
+ mov r1, #0x0
+ ldr r0, [r5, #0x4]
+ add r2, r1, #0x0
+ mov r3, #0x1
+ bl FUN_020BAFB8
+ bl FUN_020BB394
+ pop {r4-r6, pc}
+ .balign 4
+_0201B2E4: .word 0x021CEDD4
+_0201B2E8: .word 0x021CED98
+
+ thumb_func_start FUN_0201B2EC
+FUN_0201B2EC: ; 0x0201B2EC
+ push {r3, lr}
+ sub sp, #0x8
+ mov r1, #0x4
+ str r1, [sp, #0x0]
+ ldr r1, _0201B30C ; =FUN_0201B314
+ mov r2, #0x2
+ str r1, [sp, #0x4]
+ mov r1, #0x0
+ add r3, r1, #0x0
+ bl FUN_02022318
+ ldr r1, _0201B310 ; =0x021C4D44
+ str r0, [r1, #0x0]
+ add sp, #0x8
+ pop {r3, pc}
+ nop
+_0201B30C: .word FUN_0201B314
+_0201B310: .word 0x021C4D44
+
+ thumb_func_start FUN_0201B314
+FUN_0201B314: ; 0x0201B314
+ push {r3, lr}
+ mov r0, #0x1
+ add r1, r0, #0x0
+ bl FUN_0201E6E4
+ ldr r0, _0201B380 ; =0x04000008
+ mov r1, #0x3
+ ldrh r2, [r0, #0x0]
+ bic r2, r1
+ mov r1, #0x1
+ orr r1, r2
+ strh r1, [r0, #0x0]
+ add r0, #0x58
+ ldrh r2, [r0, #0x0]
+ ldr r1, _0201B384 ; =0xFFFFCFFD
+ and r2, r1
+ strh r2, [r0, #0x0]
+ add r2, r1, #0x2
+ ldrh r3, [r0, #0x0]
+ add r1, r1, #0x2
+ and r3, r2
+ mov r2, #0x10
+ orr r2, r3
+ strh r2, [r0, #0x0]
+ ldrh r3, [r0, #0x0]
+ ldr r2, _0201B388 ; =0x0000CFFB
+ and r3, r2
+ strh r3, [r0, #0x0]
+ ldrh r3, [r0, #0x0]
+ sub r2, #0x1c
+ and r3, r1
+ mov r1, #0x8
+ orr r1, r3
+ strh r1, [r0, #0x0]
+ ldrh r1, [r0, #0x0]
+ and r1, r2
+ strh r1, [r0, #0x0]
+ mov r0, #0x0
+ add r1, r0, #0x0
+ add r2, r0, #0x0
+ add r3, r0, #0x0
+ bl G3X_SetFog
+ mov r0, #0x0
+ ldr r2, _0201B38C ; =0x00007FFF
+ add r1, r0, #0x0
+ mov r3, #0x3f
+ str r0, [sp, #0x0]
+ bl G3X_SetClearColor
+ ldr r1, _0201B390 ; =0xBFFF0000
+ ldr r0, _0201B394 ; =0x04000580
+ str r1, [r0, #0x0]
+ pop {r3, pc}
+ .balign 4
+_0201B380: .word 0x04000008
+_0201B384: .word 0xFFFFCFFD
+_0201B388: .word 0x0000CFFB
+_0201B38C: .word 0x00007FFF
+_0201B390: .word 0xBFFF0000
+_0201B394: .word 0x04000580
+
+ thumb_func_start FUN_0201B398
+FUN_0201B398: ; 0x0201B398
+ ldr r0, _0201B3A0 ; =0x021C4D44
+ ldr r3, _0201B3A4 ; =FUN_020223BC
+ ldr r0, [r0, #0x0]
+ bx r3
+ .balign 4
+_0201B3A0: .word 0x021C4D44
+_0201B3A4: .word FUN_020223BC
+
+ thumb_func_start FUN_0201B3A8
+FUN_0201B3A8: ; 0x0201B3A8
+ push {r4, lr}
+ add r4, r1, #0x0
+ bl FUN_020BC13C
+ cmp r4, #0x0
+ beq _0201B3BE
+ add r1, r4, #0x0
+ bl FUN_020B7790
+ mov r0, #0x1
+ pop {r4, pc}
+_0201B3BE:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201B3C4
+FUN_0201B3C4: ; 0x0201B3C4
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ bne _0201B3D2
+ add sp, #0x10
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0201B3D2:
+ mov r1, #0x0
+ str r1, [r5, #0x8]
+ mov r1, #0x1
+ str r1, [sp, #0x8]
+ str r1, [sp, #0x4]
+ str r1, [sp, #0x0]
+ cmp r5, #0x0
+ beq _0201B4D0
+ bl FUN_020B7E1C
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020B7E10
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020B7CE4
+ str r0, [sp, #0xc]
+ cmp r6, #0x0
+ beq _0201B412
+ ldr r3, _0201B4D8 ; =0x021064B8
+ mov r1, #0x0
+ ldr r3, [r3, #0x0]
+ add r0, r6, #0x0
+ add r2, r1, #0x0
+ blx r3
+ add r7, r0, #0x0
+ bne _0201B414
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ b _0201B414
+_0201B412:
+ mov r7, #0x0
+_0201B414:
+ cmp r4, #0x0
+ beq _0201B42E
+ ldr r3, _0201B4D8 ; =0x021064B8
+ add r0, r4, #0x0
+ ldr r3, [r3, #0x0]
+ mov r1, #0x1
+ mov r2, #0x0
+ blx r3
+ add r6, r0, #0x0
+ bne _0201B430
+ mov r0, #0x0
+ str r0, [sp, #0x4]
+ b _0201B430
+_0201B42E:
+ mov r6, #0x0
+_0201B430:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0x0
+ beq _0201B450
+ ldr r3, _0201B4DC ; =0x021064C0
+ mov r1, #0x2
+ ldrh r2, [r5, #0x20]
+ lsl r1, r1, #0xe
+ ldr r3, [r3, #0x0]
+ and r1, r2
+ mov r2, #0x0
+ blx r3
+ add r4, r0, #0x0
+ bne _0201B452
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ b _0201B452
+_0201B450:
+ mov r4, #0x0
+_0201B452:
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x0
+ bne _0201B46E
+ ldr r1, _0201B4E0 ; =0x021064BC
+ add r0, r7, #0x0
+ ldr r1, [r1, #0x0]
+ blx r1
+ cmp r0, #0x0
+ beq _0201B468
+ bl ErrorHandling
+_0201B468:
+ add sp, #0x10
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0201B46E:
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ bne _0201B48A
+ ldr r1, _0201B4E0 ; =0x021064BC
+ add r0, r6, #0x0
+ ldr r1, [r1, #0x0]
+ blx r1
+ cmp r0, #0x0
+ beq _0201B484
+ bl ErrorHandling
+_0201B484:
+ add sp, #0x10
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0201B48A:
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x0
+ bne _0201B4A6
+ ldr r1, _0201B4E4 ; =0x021064C4
+ add r0, r4, #0x0
+ ldr r1, [r1, #0x0]
+ blx r1
+ cmp r0, #0x0
+ beq _0201B4A0
+ bl ErrorHandling
+_0201B4A0:
+ add sp, #0x10
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0201B4A6:
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ add r2, r6, #0x0
+ bl FUN_020B7DFC
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020B7CDC
+ ldr r1, [r5, #0x4]
+ add r0, r5, #0x0
+ bl DC_FlushRange
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_020B7D28
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_020B7C78
+_0201B4D0:
+ mov r0, #0x1
+ add sp, #0x10
+ pop {r3-r7, pc}
+ nop
+_0201B4D8: .word 0x021064B8
+_0201B4DC: .word 0x021064C0
+_0201B4E0: .word 0x021064BC
+_0201B4E4: .word 0x021064C4
+
+ thumb_func_start FUN_0201B4E8
+FUN_0201B4E8: ; 0x0201B4E8
+ str r0, [r1, #0x0]
+ add r0, r0, #0x4
+ str r0, [r1, #0x8]
+ str r0, [r1, #0x4]
+ mov r0, #0x0
+ str r0, [r1, #0xc]
+ str r0, [r1, #0x10]
+ str r0, [r1, #0x14]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201B4FC
+FUN_0201B4FC: ; 0x0201B4FC
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldrh r0, [r5, #0x0]
+ mov r7, #0x0
+ cmp r0, #0x0
+ ble _0201B52A
+ add r4, r7, #0x0
+ add r6, r7, #0x0
+_0201B50C:
+ ldr r1, [r5, #0x24]
+ add r0, r5, #0x0
+ add r1, r1, r4
+ bl FUN_0201B4E8
+ ldr r0, [r5, #0x24]
+ add r7, r7, #0x1
+ add r1, r0, r4
+ ldr r0, [r5, #0x20]
+ add r4, #0x1c
+ str r1, [r0, r6]
+ ldrh r0, [r5, #0x0]
+ add r6, r6, #0x4
+ cmp r7, r0
+ blt _0201B50C
+_0201B52A:
+ mov r0, #0x0
+ strh r0, [r5, #0x2]
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0201B530
+FUN_0201B530: ; 0x0201B530
+ ldrh r3, [r0, #0x2]
+ ldrh r1, [r0, #0x0]
+ cmp r3, r1
+ bne _0201B53C
+ mov r0, #0x0
+ bx lr
+_0201B53C:
+ ldr r2, [r0, #0x20]
+ lsl r1, r3, #0x2
+ ldr r2, [r2, r1]
+ add r1, r3, #0x1
+ strh r1, [r0, #0x2]
+ add r0, r2, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201B54C
+FUN_0201B54C: ; 0x0201B54C
+ ldrh r2, [r0, #0x2]
+ cmp r2, #0x0
+ bne _0201B556
+ mov r0, #0x0
+ bx lr
+_0201B556:
+ str r0, [r1, #0x0]
+ add r2, r0, #0x4
+ str r2, [r1, #0x8]
+ str r2, [r1, #0x4]
+ mov r2, #0x0
+ str r2, [r1, #0xc]
+ str r2, [r1, #0x10]
+ str r2, [r1, #0x14]
+ ldrh r2, [r0, #0x2]
+ sub r2, r2, #0x1
+ strh r2, [r0, #0x2]
+ ldr r2, [r0, #0x20]
+ ldrh r0, [r0, #0x2]
+ lsl r0, r0, #0x2
+ str r1, [r2, r0]
+ mov r0, #0x1
+ bx lr
+
+ thumb_func_start FUN_0201B578
+FUN_0201B578: ; 0x0201B578
+ lsl r0, r0, #0x5
+ add r0, #0x34
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201B580
+FUN_0201B580: ; 0x0201B580
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bne _0201B58C
+ bl ErrorHandling
+_0201B58C:
+ add r1, r4, #0x0
+ add r1, #0x34
+ lsl r0, r5, #0x2
+ str r1, [r4, #0x20]
+ add r0, r1, r0
+ str r0, [r4, #0x24]
+ strh r5, [r4, #0x0]
+ mov r0, #0x0
+ strh r0, [r4, #0x2]
+ str r0, [r4, #0x28]
+ add r0, r4, #0x0
+ bl FUN_0201B5AC
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201B5AC
+FUN_0201B5AC: ; 0x0201B5AC
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_0201B4FC
+ str r4, [r4, #0x4]
+ add r0, r4, #0x4
+ str r0, [r4, #0xc]
+ str r0, [r4, #0x8]
+ mov r0, #0x0
+ str r0, [r4, #0x10]
+ str r0, [r4, #0x14]
+ str r0, [r4, #0x18]
+ ldr r0, [r4, #0xc]
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201B5CC
+FUN_0201B5CC: ; 0x0201B5CC
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x28]
+ cmp r0, #0x0
+ bne _0201B608
+ ldr r1, [r5, #0xc]
+ add r4, r5, #0x4
+ str r1, [r5, #0x2c]
+ cmp r1, r4
+ beq _0201B604
+ mov r6, #0x0
+_0201B5E2:
+ ldr r0, [r1, #0x8]
+ str r0, [r5, #0x30]
+ ldr r0, [r5, #0x2c]
+ ldr r1, [r0, #0x18]
+ cmp r1, #0x0
+ bne _0201B5FA
+ ldr r2, [r0, #0x14]
+ cmp r2, #0x0
+ beq _0201B5FC
+ ldr r1, [r0, #0x10]
+ blx r2
+ b _0201B5FC
+_0201B5FA:
+ str r6, [r0, #0x18]
+_0201B5FC:
+ ldr r1, [r5, #0x30]
+ str r1, [r5, #0x2c]
+ cmp r1, r4
+ bne _0201B5E2
+_0201B604:
+ mov r0, #0x0
+ str r0, [r1, #0x14]
+_0201B608:
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201B60C
+FUN_0201B60C: ; 0x0201B60C
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ mov r5, #0x1
+ str r5, [r4, #0x28]
+ bl FUN_0201B620
+ mov r1, #0x0
+ str r1, [r4, #0x28]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201B620
+FUN_0201B620: ; 0x0201B620
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ add r4, r3, #0x0
+ bl FUN_0201B530
+ cmp r0, #0x0
+ bne _0201B636
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0201B636:
+ str r4, [r0, #0xc]
+ str r7, [r0, #0x10]
+ str r6, [r0, #0x14]
+ ldr r2, [r5, #0x2c]
+ ldr r1, [r2, #0x14]
+ cmp r1, #0x0
+ beq _0201B656
+ ldr r1, [r2, #0xc]
+ cmp r1, r4
+ bhi _0201B650
+ mov r1, #0x1
+ str r1, [r0, #0x18]
+ b _0201B65A
+_0201B650:
+ mov r1, #0x0
+ str r1, [r0, #0x18]
+ b _0201B65A
+_0201B656:
+ mov r1, #0x0
+ str r1, [r0, #0x18]
+_0201B65A:
+ ldr r3, [r5, #0xc]
+ add r2, r5, #0x4
+ cmp r3, r2
+ beq _0201B686
+ ldr r4, [r0, #0xc]
+_0201B664:
+ ldr r1, [r3, #0xc]
+ cmp r1, r4
+ bls _0201B680
+ ldr r1, [r3, #0x4]
+ str r1, [r0, #0x4]
+ str r3, [r0, #0x8]
+ ldr r1, [r3, #0x4]
+ str r0, [r1, #0x8]
+ str r0, [r3, #0x4]
+ ldr r1, [r5, #0x30]
+ cmp r3, r1
+ bne _0201B69E
+ str r0, [r5, #0x30]
+ pop {r3-r7, pc}
+_0201B680:
+ ldr r3, [r3, #0x8]
+ cmp r3, r2
+ bne _0201B664
+_0201B686:
+ ldr r2, [r5, #0x30]
+ add r1, r5, #0x4
+ cmp r2, r1
+ bne _0201B690
+ str r0, [r5, #0x30]
+_0201B690:
+ ldr r1, [r5, #0x8]
+ str r1, [r0, #0x4]
+ add r1, r5, #0x4
+ str r1, [r0, #0x8]
+ ldr r1, [r5, #0x8]
+ str r0, [r1, #0x8]
+ str r0, [r5, #0x8]
+_0201B69E:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0201B6A0
+FUN_0201B6A0: ; 0x0201B6A0
+ add r1, r0, #0x0
+ ldr r2, [r1, #0x0]
+ ldr r0, [r2, #0x30]
+ cmp r0, r1
+ bne _0201B6AE
+ ldr r0, [r1, #0x8]
+ str r0, [r2, #0x30]
+_0201B6AE:
+ ldr r2, [r1, #0x8]
+ ldr r0, [r1, #0x4]
+ ldr r3, _0201B6C0 ; =0x0201B54D
+ str r2, [r0, #0x8]
+ ldr r2, [r1, #0x4]
+ ldr r0, [r1, #0x8]
+ str r2, [r0, #0x4]
+ ldr r0, [r1, #0x0]
+ bx r3
+ .balign 4
+_0201B6C0: .word 0x0201B54D
+
+ thumb_func_start FUN_0201B6C4
+FUN_0201B6C4: ; 0x0201B6C4
+ str r1, [r0, #0x14]
+ bx lr
+
+ thumb_func_start FUN_0201B6C8
+FUN_0201B6C8: ; 0x0201B6C8
+ ldr r0, [r0, #0x10]
+ bx lr
+
+ thumb_func_start FUN_0201B6CC
+FUN_0201B6CC: ; 0x0201B6CC
+ ldr r0, [r0, #0xc]
+ bx lr
+
+ thumb_func_start FUN_0201B6D0
+FUN_0201B6D0: ; 0x0201B6D0
+ push {r4-r7, lr}
+ sub sp, #0x34
+ add r6, r1, #0x0
+ add r4, r0, #0x0
+ add r5, r2, #0x0
+ ldmia r6!, {r0-r1}
+ add r2, sp, #0x1c
+ stmia r2!, {r0-r1}
+ ldr r0, [r6, #0x0]
+ add r4, #0x14
+ str r0, [r2, #0x0]
+ mov r0, #0x20
+ ldrsh r0, [r4, r0]
+ add r7, r3, #0x0
+ mov r1, #0x1a
+ str r0, [sp, #0x0]
+ mov r0, #0x22
+ ldrsh r0, [r4, r0]
+ mov r2, #0x1c
+ mov r3, #0x1e
+ str r0, [sp, #0x4]
+ add r0, sp, #0x28
+ str r0, [sp, #0x8]
+ mov r0, #0x18
+ ldrsh r0, [r4, r0]
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ bl FUN_0201B808
+ add r0, sp, #0x1c
+ bl FUN_020B8474
+ ldr r1, _0201B764 ; =0x021CEDD4
+ add r0, r5, #0x0
+ bl MI_Copy36B
+ ldr r1, _0201B768 ; =0x021CED98
+ mov r0, #0xa4
+ ldr r2, [r1, #0x7c]
+ bic r2, r0
+ add r0, r7, #0x0
+ str r2, [r1, #0x7c]
+ bl FUN_020B844C
+ bl FUN_020B849C
+ mov r1, #0x0
+ mov r0, #0x11
+ add r2, r1, #0x0
+ bl FUN_020BB1C0
+ ldr r0, [r4, #0x24]
+ add r1, sp, #0x10
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ str r0, [sp, #0x18]
+ mov r0, #0x1b
+ mov r2, #0x3
+ bl FUN_020BB1C0
+ add r0, sp, #0x28
+ bl FUN_0201B82C
+ add r4, r0, #0x0
+ mov r2, #0x1
+ mov r0, #0x12
+ add r1, sp, #0xc
+ str r2, [sp, #0xc]
+ bl FUN_020BB1C0
+ add r0, r4, #0x0
+ add sp, #0x34
+ pop {r4-r7, pc}
+ .balign 4
+_0201B764: .word 0x021CEDD4
+_0201B768: .word 0x021CED98
+
+ thumb_func_start FUN_0201B76C
+FUN_0201B76C: ; 0x0201B76C
+ push {r3-r5, lr}
+ sub sp, #0x28
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ mov r0, #0x2
+ ldrsh r0, [r4, r0]
+ str r0, [sp, #0x0]
+ mov r0, #0x4
+ ldrsh r0, [r4, r0]
+ str r0, [sp, #0x4]
+ add r0, sp, #0x1c
+ str r0, [sp, #0x8]
+ mov r0, #0x0
+ ldrsh r3, [r4, r0]
+ add r1, r0, #0x0
+ add r2, r0, #0x0
+ bl FUN_0201B808
+ add r0, r5, #0x0
+ bl FUN_020B8474
+ bl FUN_020B849C
+ mov r1, #0x0
+ mov r0, #0x11
+ add r2, r1, #0x0
+ bl FUN_020BB1C0
+ ldr r0, [r4, #0x10]
+ lsl r2, r0, #0xc
+ ldr r0, [r4, #0xc]
+ lsl r1, r0, #0xc
+ ldr r0, [r4, #0x8]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x10]
+ str r1, [sp, #0x14]
+ str r2, [sp, #0x18]
+ mov r0, #0x1b
+ add r1, sp, #0x10
+ mov r2, #0x3
+ bl FUN_020BB1C0
+ add r0, sp, #0x1c
+ bl FUN_0201B82C
+ add r4, r0, #0x0
+ mov r2, #0x1
+ mov r0, #0x12
+ add r1, sp, #0xc
+ str r2, [sp, #0xc]
+ bl FUN_020BB1C0
+ add r0, r4, #0x0
+ add sp, #0x28
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201B7DC
+FUN_0201B7DC: ; 0x0201B7DC
+ push {r4-r6, lr}
+ add r6, r3, #0x0
+ add r4, r2, #0x0
+ add r2, r6, #0x0
+ add r5, r1, #0x0
+ add r1, r6, #0x0
+ add r2, #0x8
+ bl FUN_0201B880
+ add r2, r6, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x2
+ add r2, #0xc
+ bl FUN_0201B880
+ add r1, r6, #0x4
+ add r6, #0x10
+ add r0, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_0201B880
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0201B808
+FUN_0201B808: ; 0x0201B808
+ push {r3-r4}
+ ldr r4, [sp, #0x10]
+ strh r0, [r4, #0x0]
+ strh r1, [r4, #0x2]
+ ldr r1, _0201B828 ; =0xFFFFFFF8
+ strh r2, [r4, #0x4]
+ strh r3, [r4, #0x6]
+ add r1, sp
+ mov r0, #0x10
+ ldrsh r0, [r1, r0]
+ strh r0, [r4, #0x8]
+ mov r0, #0x14
+ ldrsh r0, [r1, r0]
+ strh r0, [r4, #0xa]
+ pop {r3-r4}
+ bx lr
+ .balign 4
+_0201B828: .word 0xFFFFFFF8
+
+ thumb_func_start FUN_0201B82C
+FUN_0201B82C: ; 0x0201B82C
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0x0
+ ldr r0, _0201B87C ; =0x000030C1
+ mov r2, #0x1
+ str r0, [sp, #0x4]
+ mov r0, #0x29
+ add r1, sp, #0x4
+ str r2, [sp, #0x8]
+ bl FUN_020BB1C0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ mov r0, #0x40
+ add r1, sp, #0x0
+ mov r2, #0x1
+ bl FUN_020BB1C0
+ mov r1, #0x0
+ mov r0, #0x41
+ add r2, r1, #0x0
+ bl FUN_020BB1C0
+ mov r0, #0x70
+ add r1, r4, #0x0
+ mov r2, #0x3
+ bl FUN_020BB1C0
+ bl FUN_020BB394
+ add r4, sp, #0x8
+_0201B86A:
+ add r0, r4, #0x0
+ bl G3X_GetBoxTestResult
+ cmp r0, #0x0
+ bne _0201B86A
+ ldr r0, [sp, #0x8]
+ add sp, #0xc
+ pop {r3-r4, pc}
+ nop
+_0201B87C: .word 0x000030C1
+
+ thumb_func_start FUN_0201B880
+FUN_0201B880: ; 0x0201B880
+ push {r3-r4}
+ ldr r4, _0201B8B4 ; =0x00007FFF
+ mov r3, #0x0
+ cmp r0, r4
+ blo _0201B896
+_0201B88A:
+ add r3, r3, #0x1
+ lsl r3, r3, #0x18
+ lsr r0, r0, #0x1
+ lsr r3, r3, #0x18
+ cmp r0, r4
+ bhs _0201B88A
+_0201B896:
+ strh r0, [r1, #0x0]
+ mov r0, #0x1
+ mov r1, #0x0
+ str r0, [r2, #0x0]
+ cmp r3, #0x0
+ ble _0201B8AE
+_0201B8A2:
+ ldr r0, [r2, #0x0]
+ add r1, r1, #0x1
+ lsl r0, r0, #0x1
+ str r0, [r2, #0x0]
+ cmp r1, r3
+ blt _0201B8A2
+_0201B8AE:
+ pop {r3-r4}
+ bx lr
+ nop
+_0201B8B4: .word 0x00007FFF
+
+ thumb_func_start FUN_0201B8B8
+FUN_0201B8B8: ; 0x0201B8B8
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldrh r1, [r4, #0x0]
+ ldr r0, _0201B8DC ; =0x0000FFFE
+ cmp r1, r0
+ beq _0201B8C8
+ bl ErrorHandling
+_0201B8C8:
+ ldrh r1, [r4, #0x0]
+ ldr r0, _0201B8DC ; =0x0000FFFE
+ cmp r1, r0
+ bne _0201B8D8
+ ldrh r0, [r4, #0x4]
+ add r1, r4, #0x6
+ lsl r0, r0, #0x1
+ add r4, r1, r0
+_0201B8D8:
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+_0201B8DC: .word 0x0000FFFE
+
+ thumb_func_start FUN_0201B8E0
+FUN_0201B8E0: ; 0x0201B8E0
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldrh r1, [r4, #0x0]
+ ldr r0, _0201B8F4 ; =0x0000FFFE
+ cmp r1, r0
+ beq _0201B8F0
+ bl ErrorHandling
+_0201B8F0:
+ ldrh r0, [r4, #0x2]
+ pop {r4, pc}
+ .balign 4
+_0201B8F4: .word 0x0000FFFE
+
+ thumb_func_start FUN_0201B8F8
+FUN_0201B8F8: ; 0x0201B8F8
+ push {r3, lr}
+ bl FUN_0201B8E0
+ mov r1, #0xff
+ lsl r1, r1, #0x8
+ and r1, r0
+ mov r0, #0x1
+ lsl r0, r0, #0x8
+ cmp r1, r0
+ bne _0201B910
+ mov r0, #0x1
+ pop {r3, pc}
+_0201B910:
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_0201B914
+FUN_0201B914: ; 0x0201B914
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldrh r1, [r5, #0x0]
+ ldr r0, _0201B938 ; =0x0000FFFE
+ cmp r1, r0
+ beq _0201B926
+ bl ErrorHandling
+_0201B926:
+ ldrh r0, [r5, #0x4]
+ cmp r4, r0
+ blo _0201B930
+ bl ErrorHandling
+_0201B930:
+ lsl r0, r4, #0x1
+ add r0, r5, r0
+ ldrh r0, [r0, #0x6]
+ pop {r3-r5, pc}
+ .balign 4
+_0201B938: .word 0x0000FFFE
+
+; trig.c
+
+ thumb_func_start FUN_0201B93C
+FUN_0201B93C: ; 0x0201B93C
+ mov r1, #0x5a
+ lsl r1, r1, #0x2
+ cmp r0, r1
+ blo _0201B948
+ mov r0, #0x0
+ bx lr
+_0201B948:
+ lsl r1, r0, #0x2
+ ldr r0, _0201B950 ; =0x020EDF50
+ ldr r0, [r0, r1]
+ bx lr
+ .balign 4
+_0201B950: .word 0x020EDF50
+
+ thumb_func_start FUN_0201B954
+FUN_0201B954: ; 0x0201B954
+ mov r1, #0x5a
+ lsl r1, r1, #0x2
+ cmp r0, r1
+ blo _0201B960
+ mov r0, #0x0
+ bx lr
+_0201B960:
+ add r0, #0x5a
+ lsl r1, r0, #0x2
+ ldr r0, _0201B96C ; =0x020EDF50
+ ldr r0, [r0, r1]
+ bx lr
+ nop
+_0201B96C: .word 0x020EDF50
+
+ thumb_func_start FUN_0201B970
+FUN_0201B970: ; 0x0201B970
+ ; gSineTable[x % 360]
+ push {r3, lr}
+ mov r1, #0x5a
+ lsl r1, r1, #0x2
+ bl _s32_div_f
+ ldr r0, _0201B984 ; =0x020EDF50
+ lsl r1, r1, #0x2
+ ldr r0, [r0, r1]
+ pop {r3, pc}
+ nop
+_0201B984: .word 0x020EDF50
+
+ thumb_func_start FUN_0201B988
+FUN_0201B988: ; 0x0201B988
+ ; gSineTable[(x % 360) + 90]
+ push {r3, lr}
+ mov r1, #0x5a
+ lsl r1, r1, #0x2
+ bl _s32_div_f
+ add r1, #0x5a
+ ldr r0, _0201B99C ; =0x020EDF50
+ lsl r1, r1, #0x2
+ ldr r0, [r0, r1]
+ pop {r3, pc}
+ .balign 4
+_0201B99C: .word 0x020EDF50
+
+ thumb_func_start FUN_0201B9A0
+FUN_0201B9A0: ; 0x0201B9A0
+ ; UNK_020EDC7E[x % 360]
+ push {r3, lr}
+ mov r1, #0x5a
+ lsl r1, r1, #0x2
+ bl _s32_div_f
+ ldr r0, _0201B9B4 ; =0x020EDC7E
+ lsl r1, r1, #0x1
+ ldrh r0, [r0, r1]
+ pop {r3, pc}
+ nop
+_0201B9B4: .word 0x020EDC7E
+
+ thumb_func_start FUN_0201B9B8
+FUN_0201B9B8: ; 0x0201B9B8
+ ; gSineTable[((x << 4) >> 16) % 360]
+ push {r3, lr}
+ lsl r0, r0, #0x4
+ mov r1, #0x5a
+ lsr r0, r0, #0x10
+ lsl r1, r1, #0x2
+ bl _s32_div_f
+ ldr r0, _0201B9D0 ; =0x020EDF50
+ lsl r1, r1, #0x2
+ ldr r0, [r0, r1]
+ pop {r3, pc}
+ nop
+_0201B9D0: .word 0x020EDF50
+
+; random.c
+
+ thumb_func_start getseed_LC
+getseed_LC: ; 0x0201B9D4
+ ldr r0, _0201B9DC ; =0x021C4D48
+ ldr r0, [r0, #0x0]
+ bx lr
+ nop
+_0201B9DC: .word 0x021C4D48
+
+ thumb_func_start seedr_LC
+seedr_LC: ; 0x0201B9E0
+ ldr r1, _0201B9E8 ; =0x021C4D48
+ str r0, [r1, #0x0]
+ bx lr
+ nop
+_0201B9E8: .word 0x021C4D48
+
+ thumb_func_start rand_LC
+rand_LC: ; 0x0201B9EC
+ ldr r1, _0201BA04 ; =0x021C4D48
+ ldr r0, _0201BA08 ; =0x41C64E6D
+ ldr r2, [r1, #0x0]
+ add r3, r2, #0x0
+ mul r3, r0
+ ldr r0, _0201BA0C ; =0x00006073
+ add r0, r3, r0
+ str r0, [r1, #0x0]
+ lsr r0, r0, #0x10
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bx lr
+ .balign 4
+_0201BA04: .word 0x021C4D48
+_0201BA08: .word 0x41C64E6D
+_0201BA0C: .word 0x00006073
+
+ thumb_func_start rand_ALT
+rand_ALT: ; 0x0201BA10
+ ldr r1, _0201BA18 ; =0x6C078965
+ mul r1, r0
+ add r0, r1, #0x1
+ bx lr
+ .balign 4
+_0201BA18: .word 0x6C078965
+
+ thumb_func_start seedr_MT
+seedr_MT: ; 0x0201BA1C
+ push {r4-r5}
+ ldr r1, _0201BA50 ; =0x021C4D48
+ mov r4, #0x27
+ str r0, [r1, #0x4]
+ ldr r1, _0201BA54 ; =0x02105BA8
+ mov r0, #0x1
+ str r0, [r1, #0x0]
+ ldr r1, _0201BA58 ; =0x021C4D50
+ ldr r3, _0201BA5C ; =0x6C078965
+ lsl r4, r4, #0x4
+_0201BA30:
+ sub r2, r1, #0x4
+ ldr r5, [r2, #0x0]
+ lsr r2, r5, #0x1e
+ eor r2, r5
+ add r5, r2, #0x0
+ mul r5, r3
+ add r2, r0, r5
+ add r0, r0, #0x1
+ stmia r1!, {r2}
+ cmp r0, r4
+ blt _0201BA30
+ ldr r1, _0201BA54 ; =0x02105BA8
+ str r0, [r1, #0x0]
+ pop {r4-r5}
+ bx lr
+ nop
+_0201BA50: .word 0x021C4D48
+_0201BA54: .word 0x02105BA8
+_0201BA58: .word 0x021C4D50
+_0201BA5C: .word 0x6C078965
+
+ thumb_func_start rand_MT
+rand_MT: ; 0x0201BA60
+ push {r3-r7, lr}
+ ldr r0, _0201BB44 ; =0x02105BA8
+ ldr r1, [r0, #0x0]
+ mov r0, #0x27
+ lsl r0, r0, #0x4
+ cmp r1, r0
+ blt _0201BB18
+ add r0, r0, #0x1
+ cmp r1, r0
+ bne _0201BA7A
+ ldr r0, _0201BB48 ; =0x00001571
+ bl seedr_MT
+_0201BA7A:
+ ldr r4, _0201BB4C ; =0x021C4D4C
+ ldr r1, _0201BB50 ; =0x02105BAC
+ ldr r5, _0201BB54 ; =0x7FFFFFFF
+ ldr r6, _0201BB58 ; =0x00000634
+ mov r0, #0x0
+_0201BA84:
+ mov r2, #0x2
+ ldr r3, [r4, #0x0]
+ lsl r2, r2, #0x1e
+ and r3, r2
+ ldr r2, [r4, #0x4]
+ add r0, r0, #0x1
+ and r2, r5
+ orr r3, r2
+ lsr r7, r3, #0x1
+ lsl r3, r3, #0x1f
+ ldr r2, [r4, r6]
+ lsr r3, r3, #0x1d
+ ldr r3, [r1, r3]
+ eor r2, r7
+ eor r2, r3
+ stmia r4!, {r2}
+ cmp r0, #0xe3
+ blt _0201BA84
+ ldr r1, _0201BB5C ; =0x0000026F
+ cmp r0, r1
+ bge _0201BAE4
+ ldr r2, _0201BB4C ; =0x021C4D4C
+ lsl r1, r0, #0x2
+ add r1, r2, r1
+ mov r2, #0xe3
+ ldr r4, _0201BB50 ; =0x02105BAC
+ ldr r3, _0201BB5C ; =0x0000026F
+ lsl r2, r2, #0x2
+_0201BABC:
+ mov r5, #0x2
+ ldr r6, [r1, #0x0]
+ lsl r5, r5, #0x1e
+ and r5, r6
+ ldr r7, [r1, #0x4]
+ ldr r6, _0201BB54 ; =0x7FFFFFFF
+ add r0, r0, #0x1
+ and r6, r7
+ orr r6, r5
+ lsr r5, r6, #0x1
+ sub r7, r1, r2
+ lsl r6, r6, #0x1f
+ ldr r7, [r7, #0x0]
+ lsr r6, r6, #0x1d
+ ldr r6, [r4, r6]
+ eor r5, r7
+ eor r5, r6
+ stmia r1!, {r5}
+ cmp r0, r3
+ blt _0201BABC
+_0201BAE4:
+ ldr r2, _0201BB60 ; =0x021C56C8
+ mov r0, #0x2
+ ldr r1, [r2, #0x40]
+ lsl r0, r0, #0x1e
+ add r3, r1, #0x0
+ ldr r1, _0201BB64 ; =0x021C4D48
+ and r3, r0
+ ldr r1, [r1, #0x4]
+ sub r0, r0, #0x1
+ and r0, r1
+ add r4, r3, #0x0
+ orr r4, r0
+ ldr r0, _0201BB68 ; =0x021C5348
+ ldr r1, [r0, #0x34]
+ lsr r0, r4, #0x1
+ add r3, r1, #0x0
+ eor r3, r0
+ lsl r0, r4, #0x1f
+ lsr r1, r0, #0x1d
+ ldr r0, _0201BB50 ; =0x02105BAC
+ ldr r0, [r0, r1]
+ mov r1, #0x0
+ eor r0, r3
+ str r0, [r2, #0x40]
+ ldr r0, _0201BB44 ; =0x02105BA8
+ str r1, [r0, #0x0]
+_0201BB18:
+ ldr r0, _0201BB44 ; =0x02105BA8
+ ldr r2, [r0, #0x0]
+ add r1, r2, #0x1
+ str r1, [r0, #0x0]
+ ldr r0, _0201BB4C ; =0x021C4D4C
+ lsl r1, r2, #0x2
+ ldr r1, [r0, r1]
+ lsr r0, r1, #0xb
+ add r2, r1, #0x0
+ eor r2, r0
+ ldr r0, _0201BB6C ; =0x9D2C5680
+ lsl r1, r2, #0x7
+ and r0, r1
+ eor r2, r0
+ ldr r0, _0201BB70 ; =0xEFC60000
+ lsl r1, r2, #0xf
+ and r0, r1
+ add r1, r2, #0x0
+ eor r1, r0
+ lsr r0, r1, #0x12
+ eor r0, r1
+ pop {r3-r7, pc}
+ .balign 4
+_0201BB44: .word 0x02105BA8
+_0201BB48: .word 0x00001571
+_0201BB4C: .word 0x021C4D4C
+_0201BB50: .word 0x02105BAC
+_0201BB54: .word 0x7FFFFFFF
+_0201BB58: .word 0x00000634
+_0201BB5C: .word 0x0000026F
+_0201BB60: .word 0x021C56C8
+_0201BB64: .word 0x021C4D48
+_0201BB68: .word 0x021C5348
+_0201BB6C: .word 0x9D2C5680
+_0201BB70: .word 0xEFC60000
+
+ thumb_func_start FUN_0201BB74
+FUN_0201BB74: ; 0x0201BB74
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x10]
+ add r4, r2, #0x0
+ add r6, r3, #0x0
+ cmp r0, #0x1
+ bne _0201BB8E
+ ldr r0, _0201BBC8 ; =0x0000FFFF
+ mul r0, r1
+ lsl r0, r0, #0x8
+ lsr r1, r0, #0x10
+ b _0201BBA2
+_0201BB8E:
+ cmp r0, #0x2
+ bne _0201BBA2
+ ldr r0, _0201BBC8 ; =0x0000FFFF
+ mul r0, r1
+ mov r1, #0x5a
+ lsl r1, r1, #0x2
+ bl _u32_div_f
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+_0201BBA2:
+ asr r0, r1, #0x4
+ lsl r3, r0, #0x1
+ lsl r1, r3, #0x1
+ ldr r2, _0201BBCC ; =0x020FFA38
+ add r3, r3, #0x1
+ lsl r3, r3, #0x1
+ ldrsh r1, [r2, r1]
+ ldrsh r2, [r2, r3]
+ add r0, r5, #0x0
+ bl MTX_Rot22_
+ add r0, r5, #0x0
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ add r3, r6, #0x0
+ bl MTX_ScaleApply22
+ pop {r4-r6, pc}
+ nop
+_0201BBC8: .word 0x0000FFFF
+_0201BBCC: .word 0x020FFA38
+
+ thumb_func_start FUN_0201BBD0
+FUN_0201BBD0: ; 0x0201BBD0
+ push {r3-r7, lr}
+ sub sp, #0x38
+ lsl r5, r0, #0xc
+ lsl r4, r1, #0xc
+ mov r1, #0x0
+ lsl r0, r2, #0xc
+ lsl r6, r3, #0xc
+ str r1, [sp, #0x34]
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x20]
+ str r1, [sp, #0x28]
+ str r1, [sp, #0x8]
+ str r1, [sp, #0xc]
+ asr r1, r5, #0x1f
+ add r0, r5, #0x0
+ asr r3, r6, #0x1f
+ add r2, r6, #0x0
+ str r5, [sp, #0x2c]
+ str r4, [sp, #0x30]
+ str r6, [sp, #0x24]
+ bl _ll_mul
+ str r0, [sp, #0x4]
+ add r2, r4, #0x0
+ ldr r0, [sp, #0x20]
+ add r7, r1, #0x0
+ asr r1, r0, #0x1f
+ asr r3, r2, #0x1f
+ bl _ll_mul
+ mov r2, #0x2
+ ldr r3, [sp, #0x4]
+ lsl r2, r2, #0xa
+ add r3, r3, r2
+ ldr r2, _0201BC80 ; =0x00000000
+ str r4, [sp, #0x2c]
+ adc r7, r2
+ lsl r2, r7, #0x14
+ lsr r3, r3, #0xc
+ orr r3, r2
+ mov r2, #0x2
+ lsl r2, r2, #0xa
+ add r0, r0, r2
+ ldr r2, _0201BC80 ; =0x00000000
+ str r5, [sp, #0x30]
+ adc r1, r2
+ lsl r1, r1, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r1
+ sub r2, r3, r0
+ ldr r1, [sp, #0x8]
+ ldr r0, [sp, #0xc]
+ str r2, [sp, #0x10]
+ add r0, r1, r0
+ add r7, r2, r0
+ mov r0, #0x0
+ str r0, [sp, #0x34]
+ add r0, sp, #0x2c
+ add r1, sp, #0x14
+ bl VEC_Normalize
+ mov r1, #0x0
+ ldr r0, [sp, #0x0]
+ str r1, [sp, #0x34]
+ str r0, [sp, #0x20]
+ str r1, [sp, #0x28]
+ add r0, sp, #0x20
+ add r1, sp, #0x2c
+ add r2, sp, #0x8
+ str r5, [sp, #0x2c]
+ str r4, [sp, #0x30]
+ str r6, [sp, #0x24]
+ bl VEC_Subtract
+ add r0, sp, #0x14
+ add r1, sp, #0x8
+ bl VEC_DotProduct
+ asr r0, r0, #0xc
+ bpl _0201BC72
+ neg r0, r0
+_0201BC72:
+ cmp r7, #0x0
+ bgt _0201BC7C
+ mov r1, #0x0
+ mvn r1, r1
+ mul r0, r1
+_0201BC7C:
+ add sp, #0x38
+ pop {r3-r7, pc}
+ .balign 4
+_0201BC80: .word 0x00000000
+
+ thumb_func_start FUN_0201BC84
+FUN_0201BC84: ; 0x0201BC84
+ push {r3-r5, lr}
+ lsl r0, r0, #0xd
+ add r4, r1, #0x0
+ ldr r2, _0201BCB4 ; =0x0000323D
+ asr r1, r0, #0x1f
+ mov r3, #0x0
+ bl _ll_mul
+ add r5, r0, #0x0
+ ldr r0, _0201BCB8 ; =0x0000FFFF
+ mov r2, #0x2
+ mov r3, #0x0
+ lsl r2, r2, #0xa
+ mul r0, r4
+ add r2, r5, r2
+ adc r1, r3
+ lsl r1, r1, #0x14
+ lsr r2, r2, #0xc
+ orr r2, r1
+ asr r1, r2, #0xc
+ bl _s32_div_f
+ pop {r3-r5, pc}
+ nop
+_0201BCB4: .word 0x0000323D
+_0201BCB8: .word 0x0000FFFF
+
+ thumb_func_start FUN_0201BCBC
+FUN_0201BCBC: ; 0x0201BCBC
+ ldr r1, _0201BCC4 ; =0x02105BB4
+ str r0, [r1, #0x0]
+ bx lr
+ nop
+_0201BCC4: .word 0x02105BB4
+
+ thumb_func_start FUN_0201BCC8
+FUN_0201BCC8: ; 0x0201BCC8
+ push {r4-r6, lr}
+ ldr r4, _0201BCF8 ; =0x021C5714
+ mov r5, #0x0
+_0201BCCE:
+ ldr r3, [r4, #0x0]
+ cmp r3, #0x0
+ bne _0201BCE8
+ ldr r6, _0201BCF8 ; =0x021C5714
+ lsl r4, r5, #0x2
+ bl FUN_0200CA7C
+ str r0, [r6, r4]
+ ldr r0, [r6, r4]
+ cmp r0, #0x0
+ bne _0201BCF0
+ mov r5, #0x8
+ b _0201BCF0
+_0201BCE8:
+ add r5, r5, #0x1
+ add r4, r4, #0x4
+ cmp r5, #0x8
+ blt _0201BCCE
+_0201BCF0:
+ lsl r0, r5, #0x18
+ lsr r0, r0, #0x18
+ pop {r4-r6, pc}
+ nop
+_0201BCF8: .word 0x021C5714
+
+ thumb_func_start FUN_0201BCFC
+FUN_0201BCFC: ; 0x0201BCFC
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ cmp r5, #0x8
+ blo _0201BD08
+ bl ErrorHandling
+_0201BD08:
+ ldr r6, _0201BD40 ; =0x021C5714
+ lsl r4, r5, #0x2
+ ldr r0, [r6, r4]
+ cmp r0, #0x0
+ bne _0201BD16
+ bl ErrorHandling
+_0201BD16:
+ cmp r5, #0x8
+ bhs _0201BD3C
+ ldr r0, [r6, r4]
+ cmp r0, #0x0
+ beq _0201BD3C
+ bl FUN_0201B6C8
+ add r5, r0, #0x0
+ beq _0201BD32
+ bl FUN_0201C238
+ add r0, r5, #0x0
+ bl FUN_02016A18
+_0201BD32:
+ ldr r0, [r6, r4]
+ bl FUN_0200CAB4
+ mov r0, #0x0
+ str r0, [r6, r4]
+_0201BD3C:
+ pop {r4-r6, pc}
+ nop
+_0201BD40: .word 0x021C5714
+
+ thumb_func_start FUN_0201BD44
+FUN_0201BD44: ; 0x0201BD44
+ lsl r1, r0, #0x2
+ ldr r0, _0201BD58 ; =0x021C5714
+ ldr r0, [r0, r1]
+ cmp r0, #0x0
+ beq _0201BD52
+ mov r0, #0x1
+ bx lr
+_0201BD52:
+ mov r0, #0x0
+ bx lr
+ nop
+_0201BD58: .word 0x021C5714
+
+ thumb_func_start FUN_0201BD5C
+FUN_0201BD5C: ; 0x0201BD5C
+ mov r1, #0x0
+ ldr r2, _0201BD6C ; =0x021C5714
+ add r0, r1, #0x0
+_0201BD62:
+ add r1, r1, #0x1
+ stmia r2!, {r0}
+ cmp r1, #0x8
+ blt _0201BD62
+ bx lr
+ .balign 4
+_0201BD6C: .word 0x021C5714
+
+ thumb_func_start FUN_0201BD70
+FUN_0201BD70: ; 0x0201BD70
+ push {r3, lr}
+ bl FUN_0201BD44
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ pop {r3, pc}
+
+ thumb_func_start FUN_0201BD7C
+FUN_0201BD7C: ; 0x0201BD7C
+ ldr r3, _0201BD80 ; =FUN_0201BCFC
+ bx r3
+ .balign 4
+_0201BD80: .word FUN_0201BCFC
+
+ thumb_func_start FUN_0201BD84
+FUN_0201BD84: ; 0x0201BD84
+ push {r3, lr}
+ sub sp, #0x18
+ str r0, [sp, #0x4]
+ lsl r0, r3, #0x18
+ lsr r3, r0, #0x18
+ ldr r0, [sp, #0x20]
+ str r2, [sp, #0x0]
+ add r2, sp, #0x0
+ strb r1, [r2, #0x9]
+ lsl r0, r0, #0x18
+ strb r3, [r2, #0xa]
+ lsr r0, r0, #0x18
+ strb r0, [r2, #0xb]
+ strb r3, [r2, #0xc]
+ strb r0, [r2, #0xd]
+ ldr r0, _0201BDDC ; =0x02105BB4
+ lsl r1, r1, #0x3
+ ldr r0, [r0, #0x0]
+ add r1, r0, r1
+ ldrb r0, [r1, #0x2]
+ strb r0, [r2, #0xe]
+ ldrb r0, [r1, #0x3]
+ strb r0, [r2, #0xf]
+ ldrb r0, [r1, #0x4]
+ strb r0, [r2, #0x10]
+ ldrb r0, [r1, #0x5]
+ strb r0, [r2, #0x11]
+ ldrb r0, [r1, #0x6]
+ strb r0, [r2, #0x12]
+ ldrb r0, [r1, #0x7]
+ ldr r1, [sp, #0x24]
+ strb r0, [r2, #0x13]
+ mov r0, #0x0
+ strh r0, [r2, #0x14]
+ strb r0, [r2, #0x16]
+ mov r0, #0xff
+ strb r0, [r2, #0x17]
+ ldr r2, [sp, #0x28]
+ add r0, sp, #0x0
+ bl FUN_0201BE98
+ add sp, #0x18
+ pop {r3, pc}
+ nop
+_0201BDDC: .word 0x02105BB4
+
+ thumb_func_start FUN_0201BDE0
+FUN_0201BDE0: ; 0x0201BDE0
+ push {r3, lr}
+ sub sp, #0x18
+ str r0, [sp, #0x4]
+ lsl r0, r3, #0x18
+ lsr r3, r0, #0x18
+ ldr r0, [sp, #0x20]
+ str r2, [sp, #0x0]
+ add r2, sp, #0x0
+ strb r1, [r2, #0x9]
+ lsl r0, r0, #0x18
+ strb r3, [r2, #0xa]
+ lsr r0, r0, #0x18
+ strb r0, [r2, #0xb]
+ strb r3, [r2, #0xc]
+ strb r0, [r2, #0xd]
+ ldr r0, _0201BE38 ; =0x02105BB4
+ lsl r1, r1, #0x3
+ ldr r0, [r0, #0x0]
+ add r1, r0, r1
+ ldrb r0, [r1, #0x2]
+ strb r0, [r2, #0xe]
+ ldrb r0, [r1, #0x3]
+ strb r0, [r2, #0xf]
+ ldrb r0, [r1, #0x4]
+ ldr r1, [sp, #0x28]
+ strb r0, [r2, #0x10]
+ lsr r0, r1, #0x10
+ strb r0, [r2, #0x11]
+ lsr r0, r1, #0x8
+ strb r0, [r2, #0x13]
+ strb r1, [r2, #0x12]
+ mov r0, #0x0
+ strh r0, [r2, #0x14]
+ strb r0, [r2, #0x16]
+ mov r0, #0xff
+ strb r0, [r2, #0x17]
+ ldr r1, [sp, #0x24]
+ ldr r2, [sp, #0x2c]
+ add r0, sp, #0x0
+ bl FUN_0201BE98
+ add sp, #0x18
+ pop {r3, pc}
+ nop
+_0201BE38: .word 0x02105BB4
+
+ thumb_func_start FUN_0201BE3C
+FUN_0201BE3C: ; 0x0201BE3C
+ push {r3, lr}
+ sub sp, #0x18
+ str r0, [sp, #0x4]
+ lsl r0, r3, #0x18
+ lsr r3, r0, #0x18
+ ldr r0, [sp, #0x20]
+ str r2, [sp, #0x0]
+ add r2, sp, #0x0
+ strb r1, [r2, #0x9]
+ lsl r0, r0, #0x18
+ strb r3, [r2, #0xa]
+ lsr r0, r0, #0x18
+ strb r0, [r2, #0xb]
+ strb r3, [r2, #0xc]
+ strb r0, [r2, #0xd]
+ ldr r0, [sp, #0x2c]
+ strb r0, [r2, #0xe]
+ ldr r0, [sp, #0x30]
+ strb r0, [r2, #0xf]
+ ldr r0, _0201BE94 ; =0x02105BB4
+ ldr r3, [r0, #0x0]
+ lsl r0, r1, #0x3
+ add r0, r3, r0
+ ldrb r0, [r0, #0x4]
+ ldr r1, [sp, #0x28]
+ strb r0, [r2, #0x10]
+ lsr r0, r1, #0x10
+ strb r0, [r2, #0x11]
+ lsr r0, r1, #0x8
+ strb r0, [r2, #0x13]
+ strb r1, [r2, #0x12]
+ mov r0, #0x0
+ strh r0, [r2, #0x14]
+ strb r0, [r2, #0x16]
+ mov r0, #0xff
+ strb r0, [r2, #0x17]
+ ldr r1, [sp, #0x24]
+ ldr r2, [sp, #0x34]
+ add r0, sp, #0x0
+ bl FUN_0201BE98
+ add sp, #0x18
+ pop {r3, pc}
+ nop
+_0201BE94: .word 0x02105BB4
+
+ thumb_func_start FUN_0201BE98
+FUN_0201BE98: ; 0x0201BE98
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ ldr r0, _0201BFD0 ; =0x02105BB4
+ add r6, r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r5, r2, #0x0
+ cmp r0, #0x0
+ bne _0201BEAC
+ mov r0, #0xff
+ pop {r3-r7, pc}
+_0201BEAC:
+ mov r0, #0x0
+ mov r1, #0x30
+ bl FUN_02016998
+ add r4, r0, #0x0
+ mov r1, #0x1
+ add r0, #0x23
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ mov r3, #0x0
+ add r0, #0x24
+ strb r3, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x25
+ ldrb r2, [r0, #0x0]
+ mov r0, #0x7f
+ bic r2, r0
+ lsl r0, r6, #0x18
+ lsr r1, r0, #0x18
+ mov r0, #0x7f
+ and r0, r1
+ add r1, r2, #0x0
+ orr r1, r0
+ add r0, r4, #0x0
+ add r0, #0x25
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x26
+ strb r3, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x27
+ strb r3, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x29
+ strb r3, [r0, #0x0]
+ add r1, r3, #0x0
+_0201BEF4:
+ add r0, r4, r3
+ add r3, r3, #0x1
+ strb r1, [r0, #0x1c]
+ cmp r3, #0x7
+ blt _0201BEF4
+ add r3, r7, #0x0
+ add r2, r4, #0x0
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldr r0, [r4, #0x0]
+ bl FUN_02021F2C
+ str r0, [r4, #0x0]
+ ldr r0, _0201BFD4 ; =0x021C570C
+ str r5, [r4, #0x18]
+ mov r1, #0x0
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ bl FUN_0201C1A8
+ cmp r6, #0xff
+ beq _0201BF74
+ cmp r6, #0x0
+ beq _0201BF74
+ add r0, r4, #0x0
+ add r0, #0x25
+ ldrb r2, [r0, #0x0]
+ mov r1, #0x7f
+ add r0, r2, #0x0
+ bic r0, r1
+ lsl r1, r2, #0x19
+ lsr r1, r1, #0x19
+ add r1, #0xff
+ lsl r1, r1, #0x18
+ lsr r2, r1, #0x18
+ mov r1, #0x7f
+ and r1, r2
+ orr r1, r0
+ add r0, r4, #0x0
+ add r0, #0x25
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x25
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x80
+ mov r2, #0x1
+ orr r1, r0
+ add r0, r4, #0x0
+ add r0, #0x25
+ strb r1, [r0, #0x0]
+ ldr r0, _0201BFD8 ; =FUN_0201BFDC
+ add r1, r4, #0x0
+ bl FUN_0201BCC8
+ add r1, r4, #0x0
+ add r1, #0x28
+ strb r0, [r1, #0x0]
+ add r4, #0x28
+ ldrb r0, [r4, #0x0]
+ pop {r3-r7, pc}
+_0201BF74:
+ add r0, r4, #0x0
+ add r0, #0x25
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x7f
+ mov r5, #0x0
+ bic r1, r0
+ add r0, r4, #0x0
+ add r0, #0x25
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x25
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x80
+ bic r1, r0
+ add r0, r4, #0x0
+ add r0, #0x25
+ strb r1, [r0, #0x0]
+ ldrb r0, [r7, #0x11]
+ ldrb r1, [r7, #0x12]
+ ldrb r2, [r7, #0x13]
+ bl FUN_0201C05C
+ mov r7, #0x1
+ lsl r7, r7, #0xa
+_0201BFA4:
+ add r0, r4, #0x0
+ bl FUN_0201C048
+ cmp r0, #0x1
+ beq _0201BFB4
+ add r5, r5, #0x1
+ cmp r5, r7
+ blo _0201BFA4
+_0201BFB4:
+ cmp r6, #0xff
+ beq _0201BFBE
+ ldr r0, [r4, #0x4]
+ bl FUN_020191D0
+_0201BFBE:
+ add r0, r4, #0x0
+ bl FUN_0201C238
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x8
+ pop {r3-r7, pc}
+ nop
+_0201BFD0: .word 0x02105BB4
+_0201BFD4: .word 0x021C570C
+_0201BFD8: .word FUN_0201BFDC
+
+ thumb_func_start FUN_0201BFDC
+FUN_0201BFDC: ; 0x0201BFDC
+ push {r4, lr}
+ ldr r0, _0201C044 ; =0x021C570C
+ add r4, r1, #0x0
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0201C042
+ add r0, r4, #0x0
+ add r0, #0x29
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0201C036
+ mov r0, #0x0
+ strh r0, [r4, #0x2a]
+ ldrb r0, [r4, #0x11]
+ ldrb r1, [r4, #0x12]
+ ldrb r2, [r4, #0x13]
+ bl FUN_0201C05C
+ add r0, r4, #0x0
+ bl FUN_0201C048
+ cmp r0, #0x0
+ beq _0201C014
+ cmp r0, #0x1
+ beq _0201C02C
+ cmp r0, #0x3
+ beq _0201C01A
+ pop {r4, pc}
+_0201C014:
+ ldr r0, [r4, #0x4]
+ bl FUN_020191D0
+_0201C01A:
+ ldr r2, [r4, #0x18]
+ cmp r2, #0x0
+ beq _0201C042
+ ldrh r1, [r4, #0x2a]
+ add r0, r4, #0x0
+ blx r2
+ add r4, #0x29
+ strb r0, [r4, #0x0]
+ pop {r4, pc}
+_0201C02C:
+ add r4, #0x28
+ ldrb r0, [r4, #0x0]
+ bl FUN_0201BCFC
+ pop {r4, pc}
+_0201C036:
+ ldrh r1, [r4, #0x2a]
+ ldr r2, [r4, #0x18]
+ add r0, r4, #0x0
+ blx r2
+ add r4, #0x29
+ strb r0, [r4, #0x0]
+_0201C042:
+ pop {r4, pc}
+ .balign 4
+_0201C044: .word 0x021C570C
+
+ thumb_func_start FUN_0201C048
+FUN_0201C048: ; 0x0201C048
+ push {r4, lr}
+ add r4, r0, #0x0
+_0201C04C:
+ ldrb r0, [r4, #0x9]
+ add r1, r4, #0x0
+ bl FUN_02002DB0
+ cmp r0, #0x2
+ beq _0201C04C
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201C05C
+FUN_0201C05C: ; 0x0201C05C
+ push {r3-r7, lr}
+ sub sp, #0x30
+ ldr r3, _0201C0F8 ; =0x021C570C
+ mov r5, #0x0
+ str r5, [sp, #0x20]
+ str r0, [sp, #0x24]
+ str r2, [sp, #0x28]
+ str r1, [sp, #0x2c]
+ strh r1, [r3, #0x6]
+ strh r0, [r3, #0x2]
+ add r0, sp, #0x20
+ strh r2, [r3, #0x4]
+ str r5, [sp, #0x14]
+ str r0, [sp, #0x8]
+ mov r12, r0
+ mov lr, r0
+ str r0, [sp, #0x18]
+_0201C07E:
+ mov r0, #0x0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x18]
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x8]
+ ldr r0, [r0, #0x0]
+ str r0, [sp, #0x1c]
+_0201C08C:
+ mov r0, #0x0
+ str r0, [sp, #0xc]
+ mov r0, lr
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x4]
+ ldr r0, [r0, #0x0]
+ lsl r7, r0, #0x4
+_0201C09A:
+ ldr r0, [sp, #0x0]
+ mov r3, #0x0
+ ldr r0, [r0, #0x0]
+ mov r4, r12
+ lsl r6, r0, #0x8
+_0201C0A4:
+ ldr r0, [r4, #0x0]
+ add r1, r7, #0x0
+ lsl r0, r0, #0xc
+ orr r0, r6
+ orr r1, r0
+ ldr r0, [sp, #0x1c]
+ add r3, r3, #0x1
+ add r2, r0, #0x0
+ orr r2, r1
+ lsl r1, r5, #0x1
+ ldr r0, _0201C0FC ; =0x021C5734
+ add r5, r5, #0x1
+ add r4, r4, #0x4
+ strh r2, [r0, r1]
+ cmp r3, #0x4
+ blt _0201C0A4
+ ldr r0, [sp, #0x0]
+ add r0, r0, #0x4
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0xc]
+ add r0, r0, #0x1
+ str r0, [sp, #0xc]
+ cmp r0, #0x4
+ blt _0201C09A
+ ldr r0, [sp, #0x4]
+ add r0, r0, #0x4
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x10]
+ add r0, r0, #0x1
+ str r0, [sp, #0x10]
+ cmp r0, #0x4
+ blt _0201C08C
+ ldr r0, [sp, #0x8]
+ add r0, r0, #0x4
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x14]
+ add r0, r0, #0x1
+ str r0, [sp, #0x14]
+ cmp r0, #0x4
+ blt _0201C07E
+ add sp, #0x30
+ pop {r3-r7, pc}
+ .balign 4
+_0201C0F8: .word 0x021C570C
+_0201C0FC: .word 0x021C5734
+
+ thumb_func_start FUN_0201C100
+FUN_0201C100: ; 0x0201C100
+ ldrh r2, [r0, #0x0]
+ lsr r2, r2, #0x8
+ lsl r3, r2, #0x1
+ ldr r2, _0201C1A4 ; =0x021C5734
+ ldrh r3, [r2, r3]
+ strh r3, [r1, #0x0]
+ ldrh r3, [r0, #0x0]
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x17
+ ldrh r3, [r2, r3]
+ strh r3, [r1, #0x2]
+ ldrh r3, [r0, #0x2]
+ lsr r3, r3, #0x8
+ lsl r3, r3, #0x1
+ ldrh r3, [r2, r3]
+ strh r3, [r1, #0x4]
+ ldrh r3, [r0, #0x2]
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x17
+ ldrh r3, [r2, r3]
+ strh r3, [r1, #0x6]
+ ldrh r3, [r0, #0x4]
+ lsr r3, r3, #0x8
+ lsl r3, r3, #0x1
+ ldrh r3, [r2, r3]
+ strh r3, [r1, #0x8]
+ ldrh r3, [r0, #0x4]
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x17
+ ldrh r3, [r2, r3]
+ strh r3, [r1, #0xa]
+ ldrh r3, [r0, #0x6]
+ lsr r3, r3, #0x8
+ lsl r3, r3, #0x1
+ ldrh r3, [r2, r3]
+ strh r3, [r1, #0xc]
+ ldrh r3, [r0, #0x6]
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x17
+ ldrh r3, [r2, r3]
+ strh r3, [r1, #0xe]
+ ldrh r3, [r0, #0x8]
+ lsr r3, r3, #0x8
+ lsl r3, r3, #0x1
+ ldrh r3, [r2, r3]
+ strh r3, [r1, #0x10]
+ ldrh r3, [r0, #0x8]
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x17
+ ldrh r3, [r2, r3]
+ strh r3, [r1, #0x12]
+ ldrh r3, [r0, #0xa]
+ lsr r3, r3, #0x8
+ lsl r3, r3, #0x1
+ ldrh r3, [r2, r3]
+ strh r3, [r1, #0x14]
+ ldrh r3, [r0, #0xa]
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x17
+ ldrh r3, [r2, r3]
+ strh r3, [r1, #0x16]
+ ldrh r3, [r0, #0xc]
+ lsr r3, r3, #0x8
+ lsl r3, r3, #0x1
+ ldrh r3, [r2, r3]
+ strh r3, [r1, #0x18]
+ ldrh r3, [r0, #0xc]
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x17
+ ldrh r3, [r2, r3]
+ strh r3, [r1, #0x1a]
+ ldrh r3, [r0, #0xe]
+ lsr r3, r3, #0x8
+ lsl r3, r3, #0x1
+ ldrh r3, [r2, r3]
+ strh r3, [r1, #0x1c]
+ ldrh r0, [r0, #0xe]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x17
+ ldrh r0, [r2, r0]
+ strh r0, [r1, #0x1e]
+ bx lr
+ .balign 4
+_0201C1A4: .word 0x021C5734
+
+ thumb_func_start FUN_0201C1A8
+FUN_0201C1A8: ; 0x0201C1A8
+ mov r1, #0x0
+ str r1, [r0, #0x2c]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201C1B0
+FUN_0201C1B0: ; 0x0201C1B0
+ push {r3-r5, lr}
+ sub sp, #0x8
+ mov r1, #0x6
+ mov r0, #0x0
+ lsl r1, r1, #0x8
+ bl FUN_02016998
+ mov r2, #0x0
+ add r5, r0, #0x0
+ str r2, [sp, #0x0]
+ mov r0, #0xe
+ mov r1, #0x5
+ add r3, sp, #0x4
+ bl FUN_02006BB0
+ add r4, r0, #0x0
+ ldr r0, [sp, #0x4]
+ mov r2, #0x6
+ ldr r0, [r0, #0x14]
+ add r1, r5, #0x0
+ lsl r2, r2, #0x8
+ bl MIi_CpuCopy32
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add r0, r5, #0x0
+ add sp, #0x8
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201C1EC
+FUN_0201C1EC: ; 0x0201C1EC
+ push {r3-r7, lr}
+ sub sp, #0x18
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x2c]
+ add r7, r3, #0x0
+ ldr r5, [r4, #0x4]
+ cmp r0, #0x0
+ bne _0201C202
+ bl FUN_0201C1B0
+ str r0, [r4, #0x2c]
+_0201C202:
+ mov r0, #0x6
+ lsl r0, r0, #0x6
+ add r6, r7, #0x0
+ mul r6, r0
+ add r0, r5, #0x0
+ ldr r4, [r4, #0x2c]
+ bl FUN_0201AB0C
+ sub r0, r0, #0x3
+ lsl r0, r0, #0x13
+ mov r1, #0x18
+ lsr r2, r0, #0x10
+ str r1, [sp, #0x0]
+ mov r0, #0x20
+ str r0, [sp, #0x4]
+ str r2, [sp, #0x8]
+ mov r2, #0x0
+ str r2, [sp, #0xc]
+ str r1, [sp, #0x10]
+ str r0, [sp, #0x14]
+ add r0, r5, #0x0
+ add r1, r4, r6
+ add r3, r2, #0x0
+ bl FUN_02019658
+ add sp, #0x18
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0201C238
+FUN_0201C238: ; 0x0201C238
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x2c]
+ cmp r0, #0x0
+ beq _0201C24A
+ bl FUN_02016A18
+ mov r0, #0x0
+ str r0, [r4, #0x2c]
+_0201C24A:
+ pop {r4, pc}
+
+ thumb_func_start FUN_0201C24C
+FUN_0201C24C: ; 0x0201C24C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _0201C298 ; =0x021C5934
+ add r4, r1, #0x0
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0201C25E
+ bl ErrorHandling
+_0201C25E:
+ add r0, r4, #0x0
+ mov r1, #0xc
+ bl FUN_02016998
+ ldr r1, _0201C298 ; =0x021C5934
+ cmp r0, #0x0
+ str r0, [r1, #0x0]
+ bne _0201C272
+ bl ErrorHandling
+_0201C272:
+ add r0, r4, #0x0
+ lsl r1, r5, #0x4
+ bl FUN_02016998
+ ldr r1, _0201C298 ; =0x021C5934
+ ldr r2, [r1, #0x0]
+ str r0, [r2, #0x8]
+ ldr r0, [r1, #0x0]
+ mov r2, #0x0
+ str r5, [r0, #0x0]
+ ldr r0, [r1, #0x0]
+ str r2, [r0, #0x4]
+ ldr r1, [r1, #0x0]
+ ldr r0, [r1, #0x8]
+ ldr r1, [r1, #0x0]
+ bl FUN_020AEF1C
+ pop {r3-r5, pc}
+ nop
+_0201C298: .word 0x021C5934
+
+ thumb_func_start FUN_0201C29C
+FUN_0201C29C: ; 0x0201C29C
+ push {r3, lr}
+ ldr r0, _0201C2C4 ; =0x021C5934
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0201C2AA
+ bl ErrorHandling
+_0201C2AA:
+ ldr r0, _0201C2C4 ; =0x021C5934
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x8]
+ bl FUN_02016A18
+ ldr r0, _0201C2C4 ; =0x021C5934
+ ldr r0, [r0, #0x0]
+ bl FUN_02016A18
+ ldr r0, _0201C2C4 ; =0x021C5934
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ pop {r3, pc}
+ .balign 4
+_0201C2C4: .word 0x021C5934
+
+ thumb_func_start FUN_0201C2C8
+FUN_0201C2C8: ; 0x0201C2C8
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, _0201C308 ; =0x021C5934
+ add r4, r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ cmp r0, #0x0
+ bne _0201C2DE
+ bl ErrorHandling
+_0201C2DE:
+ ldr r1, _0201C308 ; =0x021C5934
+ ldr r0, [r1, #0x0]
+ ldr r2, [r0, #0x4]
+ add r2, r2, #0x1
+ str r2, [r0, #0x4]
+ ldr r0, [r1, #0x0]
+ ldr r1, [r0, #0x4]
+ ldr r0, [r0, #0x0]
+ cmp r1, r0
+ blo _0201C2FA
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0201C2FA:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ add r3, r7, #0x0
+ bl FUN_020AEE40
+ pop {r3-r7, pc}
+ .balign 4
+_0201C308: .word 0x021C5934
+
+ thumb_func_start FUN_0201C30C
+FUN_0201C30C: ; 0x0201C30C
+ push {r3, lr}
+ ldr r0, _0201C324 ; =0x021C5934
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0201C322
+ bl FUN_020AEEB8
+ ldr r0, _0201C324 ; =0x021C5934
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ str r1, [r0, #0x4]
+_0201C322:
+ pop {r3, pc}
+ .balign 4
+_0201C324: .word 0x021C5934
+
+ thumb_func_start FUN_0201C328
+FUN_0201C328: ; 0x0201C328
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ mov r1, #0x30
+ mul r1, r4
+ bl FUN_02016998
+ ldr r2, _0201C344 ; =FUN_0201C358
+ add r1, r4, #0x0
+ add r5, r0, #0x0
+ bl FUN_020B4568
+ add r0, r5, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_0201C344: .word FUN_0201C358
+
+ thumb_func_start FUN_0201C348
+FUN_0201C348: ; 0x0201C348
+ ldr r3, _0201C34C ; =FUN_020B442C
+ bx r3
+ .balign 4
+_0201C34C: .word FUN_020B442C
+
+ thumb_func_start FUN_0201C350
+FUN_0201C350: ; 0x0201C350
+ ldr r3, _0201C354 ; =FUN_02016A18
+ bx r3
+ .balign 4
+_0201C354: .word FUN_02016A18
+
+ thumb_func_start FUN_0201C358
+FUN_0201C358: ; 0x0201C358
+ push {r3, lr}
+ bl FUN_0201C2C8
+ pop {r3, pc}
+
+ thumb_func_start FUN_0201C360
+FUN_0201C360: ; 0x0201C360
+ push {r4-r6, lr}
+ add r6, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ mov r1, #0x8
+ bl FUN_02016998
+ mov r1, #0x14
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ mul r1, r5
+ bl FUN_02016998
+ str r0, [r4, #0x0]
+ mov r6, #0x0
+ str r5, [r4, #0x4]
+ cmp r5, #0x0
+ ble _0201C398
+ add r5, r6, #0x0
+_0201C386:
+ ldr r0, [r4, #0x0]
+ add r0, r0, r5
+ bl FUN_0201C444
+ ldr r0, [r4, #0x4]
+ add r6, r6, #0x1
+ add r5, #0x14
+ cmp r6, r0
+ blt _0201C386
+_0201C398:
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0201C39C
+FUN_0201C39C: ; 0x0201C39C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_0201C414
+ ldr r0, [r4, #0x0]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201C3B4
+FUN_0201C3B4: ; 0x0201C3B4
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x4]
+ mov r4, #0x0
+ add r7, r2, #0x0
+ mov r12, r1
+ add r6, r3, #0x0
+ add r2, r4, #0x0
+ cmp r0, #0x0
+ ble _0201C3E2
+ ldr r5, [r5, #0x0]
+ add r3, r5, #0x0
+_0201C3CC:
+ ldr r1, [r3, #0x0]
+ cmp r1, #0x0
+ bne _0201C3DA
+ mov r0, #0x14
+ mul r0, r2
+ add r4, r5, r0
+ b _0201C3E2
+_0201C3DA:
+ add r2, r2, #0x1
+ add r3, #0x14
+ cmp r2, r0
+ blt _0201C3CC
+_0201C3E2:
+ cmp r4, #0x0
+ bne _0201C3EA
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0201C3EA:
+ mov r0, r12
+ str r0, [r4, #0x0]
+ str r7, [r4, #0x4]
+ ldr r1, [sp, #0x1c]
+ ldr r0, [sp, #0x18]
+ str r6, [r4, #0x8]
+ str r0, [r4, #0xc]
+ mov r0, #0xff
+ strb r0, [r4, #0x10]
+ lsl r1, r1, #0x4
+ strb r0, [r4, #0x11]
+ add r0, r4, #0x0
+ lsr r1, r1, #0x10
+ bl FUN_0201C454
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0201C40C
+FUN_0201C40C: ; 0x0201C40C
+ ldr r3, _0201C410 ; =FUN_0201C444
+ bx r3
+ .balign 4
+_0201C410: .word FUN_0201C444
+
+ thumb_func_start FUN_0201C414
+FUN_0201C414: ; 0x0201C414
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x4]
+ mov r6, #0x0
+ cmp r0, #0x0
+ ble _0201C434
+ add r4, r6, #0x0
+_0201C422:
+ ldr r0, [r5, #0x0]
+ add r0, r0, r4
+ bl FUN_0201C444
+ ldr r0, [r5, #0x4]
+ add r6, r6, #0x1
+ add r4, #0x14
+ cmp r6, r0
+ blt _0201C422
+_0201C434:
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201C438
+FUN_0201C438: ; 0x0201C438
+ ldr r3, _0201C440 ; =FUN_0201C454
+ lsl r1, r1, #0x4
+ lsr r1, r1, #0x10
+ bx r3
+ .balign 4
+_0201C440: .word FUN_0201C454
+
+ thumb_func_start FUN_0201C444
+FUN_0201C444: ; 0x0201C444
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ str r1, [r0, #0x4]
+ str r1, [r0, #0x8]
+ str r1, [r0, #0xc]
+ strb r1, [r0, #0x10]
+ strb r1, [r0, #0x11]
+ bx lr
+
+ thumb_func_start FUN_0201C454
+FUN_0201C454: ; 0x0201C454
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ bl FUN_02022244
+ add r2, sp, #0x0
+ strb r0, [r2, #0x0]
+ lsr r0, r0, #0x8
+ strb r0, [r2, #0x1]
+ ldrb r0, [r2, #0x0]
+ add r1, sp, #0x0
+ add r1, #0x2
+ strb r0, [r2, #0x2]
+ ldrb r0, [r2, #0x1]
+ strb r0, [r2, #0x3]
+ ldrb r3, [r4, #0x10]
+ ldrb r0, [r2, #0x2]
+ cmp r3, r0
+ beq _0201C482
+ add r0, r4, #0x0
+ bl FUN_0201C49C
+_0201C482:
+ add r0, sp, #0x0
+ ldrb r1, [r4, #0x11]
+ ldrb r0, [r0, #0x3]
+ cmp r1, r0
+ beq _0201C496
+ add r1, sp, #0x0
+ add r0, r4, #0x0
+ add r1, #0x2
+ bl FUN_0201C4C8
+_0201C496:
+ add sp, #0x4
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201C49C
+FUN_0201C49C: ; 0x0201C49C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_0201C4F4
+ ldr r3, [r5, #0x8]
+ add r2, r0, #0x0
+ lsl r1, r3, #0x10
+ ldr r6, _0201C4C4 ; =0x7FFF0000
+ mov r0, #0x0
+ and r3, r6
+ lsr r3, r3, #0x10
+ lsr r1, r1, #0xd
+ lsl r3, r3, #0x4
+ bl FUN_0201C2C8
+ ldrb r0, [r4, #0x0]
+ strb r0, [r5, #0x10]
+ pop {r4-r6, pc}
+ nop
+_0201C4C4: .word 0x7FFF0000
+
+ thumb_func_start FUN_0201C4C8
+FUN_0201C4C8: ; 0x0201C4C8
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_0201C500
+ ldr r3, [r5, #0xc]
+ add r2, r0, #0x0
+ lsl r1, r3, #0x10
+ ldr r6, _0201C4F0 ; =0xFFFF0000
+ mov r0, #0x1
+ and r3, r6
+ lsr r3, r3, #0x10
+ lsr r1, r1, #0xd
+ lsl r3, r3, #0x3
+ bl FUN_0201C2C8
+ ldrb r0, [r4, #0x1]
+ strb r0, [r5, #0x11]
+ pop {r4-r6, pc}
+ nop
+_0201C4F0: .word 0xFFFF0000
+
+ thumb_func_start FUN_0201C4F4
+FUN_0201C4F4: ; 0x0201C4F4
+ ldr r3, _0201C4FC ; =FUN_0201C50C
+ ldr r0, [r0, #0x4]
+ ldrb r1, [r1, #0x0]
+ bx r3
+ .balign 4
+_0201C4FC: .word FUN_0201C50C
+
+ thumb_func_start FUN_0201C500
+FUN_0201C500: ; 0x0201C500
+ ldr r3, _0201C508 ; =FUN_0201C540
+ ldr r0, [r0, #0x4]
+ ldrb r1, [r1, #0x1]
+ bx r3
+ .balign 4
+_0201C508: .word FUN_0201C540
+
+ thumb_func_start FUN_0201C50C
+FUN_0201C50C: ; 0x0201C50C
+ push {r3-r4}
+ add r2, r0, #0x0
+ add r2, #0x42
+ ldrh r2, [r2, #0x0]
+ add r4, r0, #0x0
+ add r4, #0x3c
+ add r3, r4, r2
+ ldrh r2, [r4, r2]
+ add r3, r3, #0x4
+ mul r1, r2
+ add r3, r3, r1
+ bne _0201C52A
+ mov r0, #0x0
+ pop {r3-r4}
+ bx lr
+_0201C52A:
+ ldr r1, [r0, #0x14]
+ add r2, r0, r1
+ ldr r1, [r3, #0x0]
+ ldr r0, [r0, #0x8]
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ add r0, r1, r0
+ lsl r0, r0, #0x3
+ add r0, r2, r0
+ pop {r3-r4}
+ bx lr
+
+ thumb_func_start FUN_0201C540
+FUN_0201C540: ; 0x0201C540
+ push {r3-r4}
+ ldrh r2, [r0, #0x34]
+ add r4, r0, r2
+ ldrh r2, [r4, #0x6]
+ add r3, r4, r2
+ ldrh r2, [r4, r2]
+ add r3, r3, #0x4
+ mul r1, r2
+ add r2, r3, r1
+ bne _0201C55A
+ mov r0, #0x0
+ pop {r3-r4}
+ bx lr
+_0201C55A:
+ ldr r1, [r0, #0x38]
+ add r1, r0, r1
+ ldrh r0, [r2, #0x0]
+ lsl r0, r0, #0x3
+ add r0, r1, r0
+ pop {r3-r4}
+ bx lr
+
+ thumb_func_start FUN_0201C568
+FUN_0201C568: ; 0x0201C568
+ ldr r1, [r1, #0x0]
+ ldr r0, [r0, #0x8]
+ lsl r1, r1, #0x10
+ lsl r0, r0, #0x10
+ lsr r1, r1, #0xd
+ lsr r0, r0, #0xd
+ add r0, r1, r0
+ bx lr
+
+ thumb_func_start FUN_0201C578
+FUN_0201C578: ; 0x0201C578
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0x0
+ add r0, sp, #0x0
+ bl FUN_0201C750
+ add r0, r4, #0x0
+ add r0, #0x3c
+ add r1, sp, #0x0
+ bl FUN_020BC2A0
+ add r1, r0, #0x0
+ bne _0201C598
+ add sp, #0x10
+ mov r0, #0x0
+ pop {r4, pc}
+_0201C598:
+ add r0, r4, #0x0
+ bl FUN_0201C568
+ add sp, #0x10
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201C5A4
+FUN_0201C5A4: ; 0x0201C5A4
+ push {r3, lr}
+ ldr r0, [r1, #0x0]
+ mov r1, #0x7
+ lsl r1, r1, #0x1a
+ and r1, r0
+ lsr r1, r1, #0x1a
+ cmp r1, #0x4
+ bhi _0201C5DA
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0201C5C0: ; jump table (using 16-bit offset)
+ .short _0201C5DA - _0201C5C0 - 2; case 0
+ .short _0201C5D6 - _0201C5C0 - 2; case 1
+ .short _0201C5CA - _0201C5C0 - 2; case 2
+ .short _0201C5CE - _0201C5C0 - 2; case 3
+ .short _0201C5D2 - _0201C5C0 - 2; case 4
+_0201C5CA:
+ mov r1, #0x4
+ b _0201C5DE
+_0201C5CE:
+ mov r1, #0x2
+ b _0201C5DE
+_0201C5D2:
+ mov r1, #0x1
+ b _0201C5DE
+_0201C5D6:
+ mov r1, #0x1
+ b _0201C5DE
+_0201C5DA:
+ mov r0, #0x0
+ pop {r3, pc}
+_0201C5DE:
+ mov r3, #0x7
+ lsl r3, r3, #0x14
+ add r2, r0, #0x0
+ and r2, r3
+ lsl r3, r3, #0x3
+ and r0, r3
+ lsr r2, r2, #0x14
+ lsr r0, r0, #0x17
+ lsl r2, r2, #0x4
+ lsl r0, r0, #0x4
+ mul r0, r2
+ bl _u32_div_f
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201C5FC
+FUN_0201C5FC: ; 0x0201C5FC
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0x0
+ add r0, sp, #0x0
+ bl FUN_0201C750
+ add r0, r4, #0x0
+ add r0, #0x3c
+ add r1, sp, #0x0
+ bl FUN_020BC2A0
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0201C5A4
+ add sp, #0x10
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201C620
+FUN_0201C620: ; 0x0201C620
+ ldrb r3, [r0, #0x0]
+ strb r3, [r1, #0x0]
+ ldrb r0, [r0, #0x1]
+ strb r0, [r2, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201C62C
+FUN_0201C62C: ; 0x0201C62C
+ ldrb r3, [r0, #0x2]
+ strb r3, [r1, #0x0]
+ ldrb r0, [r0, #0x3]
+ strb r0, [r2, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201C638
+FUN_0201C638: ; 0x0201C638
+ push {r4-r5}
+ ldr r5, _0201C6B0 ; =0xFFFFFFF8
+ ldr r4, [sp, #0xc]
+ add r5, sp
+ ldrb r5, [r5, #0x18]
+ cmp r5, #0x3
+ bhi _0201C678
+ add r5, r5, r5
+ add r5, pc
+ ldrh r5, [r5, #0x6]
+ lsl r5, r5, #0x10
+ asr r5, r5, #0x10
+ add pc, r5
+_0201C652: ; jump table (using 16-bit offset)
+ .short _0201C65A - _0201C652 - 2; case 0
+ .short _0201C662 - _0201C652 - 2; case 1
+ .short _0201C66A - _0201C652 - 2; case 2
+ .short _0201C672 - _0201C652 - 2; case 3
+_0201C65A:
+ lsl r4, r4, #0x3
+ add r4, r0, r4
+ ldrb r4, [r4, #0x4]
+ b _0201C678
+_0201C662:
+ lsl r4, r4, #0x3
+ add r4, r0, r4
+ ldrb r4, [r4, #0x5]
+ b _0201C678
+_0201C66A:
+ lsl r4, r4, #0x3
+ add r4, r0, r4
+ ldrb r4, [r4, #0x6]
+ b _0201C678
+_0201C672:
+ lsl r4, r4, #0x3
+ add r4, r0, r4
+ ldrb r4, [r4, #0x7]
+_0201C678:
+ cmp r1, #0x0
+ beq _0201C682
+ lsl r5, r4, #0x3
+ ldrb r5, [r0, r5]
+ strb r5, [r1, #0x0]
+_0201C682:
+ cmp r2, #0x0
+ beq _0201C68E
+ lsl r1, r4, #0x3
+ add r1, r0, r1
+ ldrb r1, [r1, #0x1]
+ strb r1, [r2, #0x0]
+_0201C68E:
+ cmp r3, #0x0
+ beq _0201C69A
+ lsl r1, r4, #0x3
+ add r1, r0, r1
+ ldrb r1, [r1, #0x2]
+ strb r1, [r3, #0x0]
+_0201C69A:
+ ldr r2, [sp, #0x8]
+ cmp r2, #0x0
+ beq _0201C6A8
+ lsl r1, r4, #0x3
+ add r0, r0, r1
+ ldrb r0, [r0, #0x3]
+ strb r0, [r2, #0x0]
+_0201C6A8:
+ add r0, r4, #0x0
+ pop {r4-r5}
+ bx lr
+ nop
+_0201C6B0: .word 0xFFFFFFF8
+
+ thumb_func_start FUN_0201C6B4
+FUN_0201C6B4: ; 0x0201C6B4
+ mov r2, #0x0
+ ldrsb r1, [r0, r2]
+ cmp r1, #0x0
+ beq _0201C6C4
+_0201C6BC:
+ add r2, r2, #0x1
+ ldrsb r1, [r0, r2]
+ cmp r1, #0x0
+ bne _0201C6BC
+_0201C6C4:
+ add r0, r2, #0x0
+ bx lr
+
+ thumb_func_start FUN_0201C6C8
+FUN_0201C6C8: ; 0x0201C6C8
+ push {r4-r5}
+ mov r4, #0x1
+ mov r3, #0x0
+ lsl r4, r4, #0x8
+_0201C6D0:
+ ldrsb r5, [r0, r3]
+ strb r5, [r1, r3]
+ ldrsb r5, [r0, r3]
+ cmp r2, r5
+ beq _0201C6DE
+ cmp r5, #0x0
+ bne _0201C6FE
+_0201C6DE:
+ mov r4, #0x0
+ strb r4, [r1, r3]
+ cmp r2, #0xd
+ bne _0201C6F6
+ add r1, r3, #0x1
+ ldrsb r1, [r0, r1]
+ cmp r1, #0xa
+ bne _0201C6F6
+ add r1, r3, #0x2
+ add r0, r0, r1
+ pop {r4-r5}
+ bx lr
+_0201C6F6:
+ add r1, r3, #0x1
+ add r0, r0, r1
+ pop {r4-r5}
+ bx lr
+_0201C6FE:
+ add r3, r3, #0x1
+ cmp r3, r4
+ blt _0201C6D0
+ mov r0, #0x0
+ pop {r4-r5}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201C70C
+FUN_0201C70C: ; 0x0201C70C
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ bl FUN_0201C6B4
+ mov r5, #0x1
+ mov r6, #0x0
+ sub r3, r0, #0x1
+ bmi _0201C74A
+ sub r1, r6, #0x1
+ mov r0, #0xa
+_0201C720:
+ ldrsb r2, [r4, r3]
+ cmp r2, #0x30
+ blt _0201C732
+ cmp r2, #0x39
+ bgt _0201C732
+ sub r2, #0x30
+ mul r2, r5
+ add r6, r6, r2
+ b _0201C744
+_0201C732:
+ cmp r3, #0x0
+ bne _0201C73E
+ cmp r2, #0x2d
+ bne _0201C744
+ mul r6, r1
+ b _0201C744
+_0201C73E:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r4-r6, pc}
+_0201C744:
+ mul r5, r0
+ sub r3, r3, #0x1
+ bpl _0201C720
+_0201C74A:
+ add r0, r6, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201C750
+FUN_0201C750: ; 0x0201C750
+ push {r3-r5, lr}
+ mov r2, #0x0
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r1, r2, #0x0
+_0201C75A:
+ lsl r0, r2, #0x2
+ str r1, [r5, r0]
+ add r0, r2, #0x1
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ cmp r2, #0x4
+ blo _0201C75A
+ add r0, r4, #0x0
+ bl FUN_0201C6B4
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ ldr r2, _0201C788 ; =0x00000000
+ beq _0201C784
+_0201C776:
+ ldrsb r0, [r4, r2]
+ strb r0, [r5, r2]
+ add r0, r2, #0x1
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ cmp r2, r1
+ blo _0201C776
+_0201C784:
+ pop {r3-r5, pc}
+ nop
+_0201C788: .word 0x00000000
+
+ thumb_func_start FUN_0201C78C
+FUN_0201C78C: ; 0x0201C78C
+ ldr r1, _0201C79C ; =0x00000121
+ cmp r0, r1
+ bhs _0201C796
+ mov r0, #0x1
+ bx lr
+_0201C796:
+ mov r0, #0x0
+ bx lr
+ nop
+_0201C79C: .word 0x00000121
+
+ thumb_func_start FUN_0201C7A0
+FUN_0201C7A0: ; 0x0201C7A0
+ cmp r0, r1
+ blt _0201C7A6
+ add r0, r1, #0x0
+_0201C7A6:
+ bx lr
+
+ thumb_func_start FUN_0201C7A8
+FUN_0201C7A8: ; 0x0201C7A8
+ cmp r0, r1
+ bgt _0201C7AE
+ add r0, r1, #0x0
+_0201C7AE:
+ bx lr
+
+ thumb_func_start FUN_0201C7B0
+FUN_0201C7B0: ; 0x0201C7B0
+ push {r3-r7, lr}
+ sub sp, #0x30
+ add r4, r1, #0x0
+ add r1, sp, #0x24
+ bl VEC_Normalize
+ add r0, r4, #0x0
+ add r1, sp, #0x18
+ bl VEC_Normalize
+ ldr r0, [sp, #0x24]
+ ldr r4, [sp, #0x18]
+ str r0, [sp, #0x0]
+ asr r0, r0, #0x1f
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x20]
+ asr r6, r4, #0x1f
+ str r0, [sp, #0x8]
+ asr r0, r0, #0x1f
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x2c]
+ ldr r2, [sp, #0x8]
+ asr r7, r0, #0x1f
+ ldr r3, [sp, #0xc]
+ add r1, r7, #0x0
+ str r0, [sp, #0x10]
+ bl _ll_mul
+ str r0, [sp, #0x14]
+ add r5, r1, #0x0
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ add r2, r4, #0x0
+ add r3, r6, #0x0
+ bl _ll_mul
+ mov r2, #0x2
+ ldr r3, [sp, #0x14]
+ lsl r2, r2, #0xa
+ add r3, r3, r2
+ ldr r2, _0201C874 ; =0x00000000
+ adc r5, r2
+ lsl r2, r5, #0x14
+ lsr r3, r3, #0xc
+ orr r3, r2
+ mov r2, #0x2
+ lsl r2, r2, #0xa
+ add r0, r0, r2
+ ldr r2, _0201C874 ; =0x00000000
+ adc r1, r2
+ lsl r1, r1, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r1
+ add r5, r3, r0
+ ldr r0, [sp, #0x10]
+ add r1, r7, #0x0
+ add r2, r4, #0x0
+ add r3, r6, #0x0
+ bl _ll_mul
+ add r6, r0, #0x0
+ add r4, r1, #0x0
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ ldr r2, [sp, #0x8]
+ ldr r3, [sp, #0xc]
+ bl _ll_mul
+ mov r2, #0x2
+ mov r3, #0x0
+ lsl r2, r2, #0xa
+ add r6, r6, r2
+ adc r4, r3
+ lsl r4, r4, #0x14
+ lsr r6, r6, #0xc
+ orr r6, r4
+ add r4, r0, r2
+ adc r1, r3
+ lsl r0, r1, #0x14
+ lsr r1, r4, #0xc
+ orr r1, r0
+ sub r0, r6, r1
+ cmp r5, #0x0
+ bne _0201C86A
+ cmp r0, #0x0
+ ble _0201C862
+ add sp, #0x30
+ lsl r0, r2, #0x3
+ pop {r3-r7, pc}
+_0201C862:
+ mov r0, #0x3
+ add sp, #0x30
+ lsl r0, r0, #0xe
+ pop {r3-r7, pc}
+_0201C86A:
+ add r1, r5, #0x0
+ bl FX_Atan2
+ add sp, #0x30
+ pop {r3-r7, pc}
+ .balign 4
+_0201C874: .word 0x00000000
+
+ thumb_func_start FUN_0201C878
+FUN_0201C878: ; 0x0201C878
+ push {r0-r3}
+ push {r4-r7, lr}
+ sub sp, #0x54
+ ldr r0, [sp, #0x7c]
+ ldr r2, [sp, #0x80]
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x94]
+ ldr r1, [sp, #0x8c]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x88]
+ ldr r4, [sp, #0x70]
+ str r0, [sp, #0x10]
+ sub r0, r2, r1
+ str r0, [sp, #0x14]
+ asr r0, r0, #0x1f
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x8]
+ asr r0, r0, #0x1f
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x74]
+ sub r3, r0, r2
+ sub r0, r1, r0
+ str r3, [sp, #0x20]
+ asr r3, r3, #0x1f
+ str r3, [sp, #0x24]
+ ldr r3, [sp, #0xc]
+ str r0, [sp, #0x2c]
+ asr r0, r0, #0x1f
+ str r0, [sp, #0x30]
+ ldr r0, [sp, #0x10]
+ asr r3, r3, #0x1f
+ str r3, [sp, #0x28]
+ asr r0, r0, #0x1f
+ ldr r3, [sp, #0x68]
+ str r0, [sp, #0x34]
+ asr r0, r4, #0x1f
+ str r0, [sp, #0x38]
+ sub r2, r2, r3
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0x1c]
+ asr r3, r2, #0x1f
+ bl _ll_mul
+ add r7, r0, #0x0
+ add r6, r1, #0x0
+ ldr r3, [sp, #0x68]
+ ldr r2, [sp, #0x74]
+ ldr r0, [sp, #0x10]
+ sub r2, r3, r2
+ ldr r1, [sp, #0x34]
+ asr r3, r2, #0x1f
+ bl _ll_mul
+ add r5, r1, #0x0
+ str r0, [sp, #0x3c]
+ ldr r1, [sp, #0x38]
+ ldr r2, [sp, #0x20]
+ ldr r3, [sp, #0x24]
+ add r0, r4, #0x0
+ bl _ll_mul
+ mov r2, #0x2
+ str r0, [sp, #0x4c]
+ add r0, r1, #0x0
+ mov r1, #0x0
+ lsl r2, r2, #0xa
+ add r3, r7, r2
+ adc r6, r1
+ lsl r2, r6, #0x14
+ lsr r3, r3, #0xc
+ orr r3, r2
+ mov r2, #0x2
+ ldr r6, [sp, #0x3c]
+ lsl r2, r2, #0xa
+ add r2, r6, r2
+ adc r5, r1
+ mov r6, #0x2
+ lsl r5, r5, #0x14
+ lsr r2, r2, #0xc
+ orr r2, r5
+ ldr r5, [sp, #0x4c]
+ lsl r6, r6, #0xa
+ add r5, r5, r6
+ adc r0, r1
+ lsl r0, r0, #0x14
+ lsr r1, r5, #0xc
+ orr r1, r0
+ add r0, r2, r1
+ add r0, r3, r0
+ str r0, [sp, #0x4]
+ ldr r3, [sp, #0x8c]
+ ldr r2, [sp, #0x68]
+ ldr r0, [sp, #0x10]
+ sub r2, r3, r2
+ ldr r1, [sp, #0x34]
+ asr r3, r2, #0x1f
+ bl _ll_mul
+ add r7, r0, #0x0
+ add r6, r1, #0x0
+ ldr r3, [sp, #0x68]
+ ldr r2, [sp, #0x80]
+ ldr r0, [sp, #0xc]
+ sub r2, r3, r2
+ ldr r1, [sp, #0x28]
+ asr r3, r2, #0x1f
+ bl _ll_mul
+ str r0, [sp, #0x40]
+ add r5, r1, #0x0
+ ldr r1, [sp, #0x38]
+ ldr r2, [sp, #0x14]
+ ldr r3, [sp, #0x18]
+ add r0, r4, #0x0
+ bl _ll_mul
+ mov r2, #0x2
+ str r0, [sp, #0x50]
+ add r0, r1, #0x0
+ mov r1, #0x0
+ lsl r2, r2, #0xa
+ add r3, r7, r2
+ adc r6, r1
+ lsl r2, r6, #0x14
+ lsr r3, r3, #0xc
+ orr r3, r2
+ mov r2, #0x2
+ ldr r6, [sp, #0x40]
+ lsl r2, r2, #0xa
+ add r2, r6, r2
+ adc r5, r1
+ mov r6, #0x2
+ lsl r5, r5, #0x14
+ lsr r2, r2, #0xc
+ orr r2, r5
+ ldr r5, [sp, #0x50]
+ lsl r6, r6, #0xa
+ add r5, r5, r6
+ adc r0, r1
+ lsl r0, r0, #0x14
+ lsr r1, r5, #0xc
+ orr r1, r0
+ add r0, r2, r1
+ add r0, r3, r0
+ str r0, [sp, #0x0]
+ ldr r3, [sp, #0x74]
+ ldr r2, [sp, #0x68]
+ ldr r0, [sp, #0xc]
+ sub r2, r3, r2
+ ldr r1, [sp, #0x28]
+ asr r3, r2, #0x1f
+ bl _ll_mul
+ add r7, r0, #0x0
+ add r6, r1, #0x0
+ ldr r3, [sp, #0x68]
+ ldr r2, [sp, #0x8c]
+ ldr r0, [sp, #0x8]
+ sub r2, r3, r2
+ ldr r1, [sp, #0x1c]
+ asr r3, r2, #0x1f
+ bl _ll_mul
+ add r5, r1, #0x0
+ str r0, [sp, #0x44]
+ ldr r1, [sp, #0x38]
+ ldr r2, [sp, #0x2c]
+ ldr r3, [sp, #0x30]
+ add r0, r4, #0x0
+ bl _ll_mul
+ mov r3, #0x2
+ mov r2, #0x0
+ lsl r3, r3, #0xa
+ add r4, r7, r3
+ adc r6, r2
+ lsl r3, r6, #0x14
+ lsr r4, r4, #0xc
+ orr r4, r3
+ mov r3, #0x2
+ ldr r6, [sp, #0x44]
+ lsl r3, r3, #0xa
+ add r3, r6, r3
+ adc r5, r2
+ lsl r5, r5, #0x14
+ lsr r3, r3, #0xc
+ orr r3, r5
+ mov r5, #0x2
+ lsl r5, r5, #0xa
+ add r5, r0, r5
+ adc r1, r2
+ lsl r0, r1, #0x14
+ lsr r1, r5, #0xc
+ orr r1, r0
+ add r0, r3, r1
+ add r6, r4, r0
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x34]
+ ldr r2, [sp, #0x2c]
+ ldr r3, [sp, #0x30]
+ bl _ll_mul
+ add r7, r0, #0x0
+ add r5, r1, #0x0
+ ldr r0, [sp, #0xc]
+ ldr r1, [sp, #0x28]
+ ldr r2, [sp, #0x20]
+ ldr r3, [sp, #0x24]
+ bl _ll_mul
+ str r0, [sp, #0x48]
+ add r4, r1, #0x0
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0x1c]
+ ldr r2, [sp, #0x14]
+ ldr r3, [sp, #0x18]
+ bl _ll_mul
+ mov r12, r0
+ mov r0, #0x2
+ add r2, r1, #0x0
+ mov r1, #0x0
+ lsl r0, r0, #0xa
+ add r0, r7, r0
+ adc r5, r1
+ lsl r3, r5, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r3
+ mov r3, #0x2
+ ldr r5, [sp, #0x48]
+ lsl r3, r3, #0xa
+ add r3, r5, r3
+ adc r4, r1
+ lsl r4, r4, #0x14
+ lsr r3, r3, #0xc
+ orr r3, r4
+ mov r4, #0x2
+ lsl r4, r4, #0xa
+ mov r5, r12
+ add r4, r5, r4
+ adc r2, r1
+ lsl r2, r2, #0x14
+ lsr r4, r4, #0xc
+ orr r4, r2
+ add r2, r3, r4
+ add r0, r0, r2
+ bpl _0201CA72
+ add sp, #0x54
+ add r0, r1, #0x0
+ pop {r4-r7}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+_0201CA72:
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ bge _0201CA84
+ add sp, #0x54
+ add r0, r1, #0x0
+ pop {r4-r7}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+_0201CA84:
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x0
+ bge _0201CA96
+ add sp, #0x54
+ add r0, r1, #0x0
+ pop {r4-r7}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+_0201CA96:
+ cmp r6, #0x0
+ blt _0201CA9C
+ mov r1, #0x1
+_0201CA9C:
+ add r0, r1, #0x0
+ add sp, #0x54
+ pop {r4-r7}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+
+ thumb_func_start FUN_0201CAA8
+FUN_0201CAA8: ; 0x0201CAA8
+ push {r4-r5, lr}
+ sub sp, #0x24
+ add r4, r1, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r3, _0201CB1C ; =0x020FFA38
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ asr r1, r1, #0x4
+ lsl r2, r1, #0x1
+ lsl r1, r2, #0x1
+ add r2, r2, #0x1
+ lsl r2, r2, #0x1
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ add r5, r0, #0x0
+ bl MTX_RotX33_
+ ldr r0, [r4, #0x4]
+ ldr r3, _0201CB1C ; =0x020FFA38
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ asr r0, r0, #0x4
+ lsl r2, r0, #0x1
+ lsl r1, r2, #0x1
+ add r2, r2, #0x1
+ lsl r2, r2, #0x1
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ add r0, sp, #0x0
+ bl MTX_RotY33_
+ add r0, r5, #0x0
+ add r1, sp, #0x0
+ add r2, r5, #0x0
+ bl MTX_Concat33
+ ldr r0, [r4, #0x8]
+ ldr r3, _0201CB1C ; =0x020FFA38
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ asr r0, r0, #0x4
+ lsl r2, r0, #0x1
+ lsl r1, r2, #0x1
+ add r2, r2, #0x1
+ lsl r2, r2, #0x1
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ add r0, sp, #0x0
+ bl MTX_RotZ33_
+ add r0, r5, #0x0
+ add r1, sp, #0x0
+ add r2, r5, #0x0
+ bl MTX_Concat33
+ add sp, #0x24
+ pop {r4-r5, pc}
+ nop
+_0201CB1C: .word 0x020FFA38
+
+ thumb_func_start FUN_0201CB20
+FUN_0201CB20: ; 0x0201CB20
+ push {r4-r7, lr}
+ sub sp, #0x24
+ add r6, r1, #0x0
+ add r5, r2, #0x0
+ lsl r1, r6, #0x2
+ ldr r2, _0201CB78 ; =0x020EDF50
+ add r6, #0x5a
+ add r4, r3, #0x0
+ lsl r3, r6, #0x2
+ ldr r1, [r2, r1]
+ ldr r2, [r2, r3]
+ add r7, r0, #0x0
+ bl MTX_RotX33_
+ lsl r1, r5, #0x2
+ ldr r3, _0201CB78 ; =0x020EDF50
+ add r5, #0x5a
+ lsl r2, r5, #0x2
+ ldr r1, [r3, r1]
+ ldr r2, [r3, r2]
+ add r0, sp, #0x0
+ bl MTX_RotY33_
+ add r0, r7, #0x0
+ add r1, sp, #0x0
+ add r2, r7, #0x0
+ bl MTX_Concat33
+ lsl r1, r4, #0x2
+ ldr r3, _0201CB78 ; =0x020EDF50
+ add r4, #0x5a
+ lsl r2, r4, #0x2
+ ldr r1, [r3, r1]
+ ldr r2, [r3, r2]
+ add r0, sp, #0x0
+ bl MTX_RotZ33_
+ add r0, r7, #0x0
+ add r1, sp, #0x0
+ add r2, r7, #0x0
+ bl MTX_Concat33
+ add sp, #0x24
+ pop {r4-r7, pc}
+ .balign 4
+_0201CB78: .word 0x020EDF50
+
+ thumb_func_start FUN_0201CB7C
+FUN_0201CB7C: ; 0x0201CB7C
+ push {r3-r7, lr}
+ asr r0, r0, #0x4
+ add r7, r2, #0x0
+ lsl r2, r0, #0x1
+ add r6, r1, #0x0
+ lsl r0, r2, #0x1
+ ldr r1, _0201CBE8 ; =0x020FFA38
+ add r2, r2, #0x1
+ lsl r2, r2, #0x1
+ ldrsh r0, [r1, r0]
+ ldrsh r1, [r1, r2]
+ add r5, r3, #0x0
+ ldr r4, [sp, #0x18]
+ bl FX_Div
+ add r2, r0, #0x0
+ asr r1, r6, #0x1f
+ add r0, r6, #0x0
+ asr r3, r2, #0x1f
+ bl _ll_mul
+ mov r6, #0x2
+ mov r2, #0x0
+ lsl r6, r6, #0xa
+ add r0, r0, r6
+ adc r1, r2
+ lsl r1, r1, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r1
+ asr r3, r0, #0x1f
+ lsr r1, r0, #0x13
+ lsl r3, r3, #0xd
+ orr r3, r1
+ lsl r0, r0, #0xd
+ add r0, r0, r6
+ adc r3, r2
+ lsl r1, r3, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r1
+ asr r1, r0, #0x1f
+ asr r3, r7, #0x1f
+ add r2, r7, #0x0
+ str r0, [r4, #0x0]
+ bl _ll_mul
+ mov r3, #0x0
+ add r2, r6, #0x0
+ add r2, r0, r2
+ adc r1, r3
+ lsl r0, r1, #0x14
+ lsr r1, r2, #0xc
+ orr r1, r0
+ str r1, [r5, #0x0]
+ pop {r3-r7, pc}
+ .balign 4
+_0201CBE8: .word 0x020FFA38
+
+ thumb_func_start FUN_0201CBEC
+FUN_0201CBEC: ; 0x0201CBEC
+ push {r3, lr}
+ sub r0, r0, r2
+ sub r2, r1, r3
+ add r1, r0, #0x0
+ mul r1, r0
+ add r0, r2, #0x0
+ mul r0, r2
+ add r0, r1, r0
+ lsl r0, r0, #0xc
+ bl FX_Sqrt
+ asr r0, r0, #0xc
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201CC08
+FUN_0201CC08: ; 0x0201CC08
+ push {r3, lr}
+ ldr r0, _0201CC20 ; =0x021C5978
+ ldrh r0, [r0, #0x1a]
+ cmp r0, #0x0
+ beq _0201CC16
+ bl ErrorHandling
+_0201CC16:
+ ldr r0, _0201CC20 ; =0x021C5978
+ mov r1, #0x0
+ strh r1, [r0, #0x18]
+ strh r1, [r0, #0x1a]
+ pop {r3, pc}
+ .balign 4
+_0201CC20: .word 0x021C5978
+
+ thumb_func_start FUN_0201CC24
+FUN_0201CC24: ; 0x0201CC24
+ push {r4, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ ldr r0, _0201CC74 ; =0x021C5978
+ ldrh r0, [r0, #0x1a]
+ cmp r0, #0x0
+ beq _0201CC36
+ bl ErrorHandling
+_0201CC36:
+ cmp r4, #0x5
+ bhs _0201CC3E
+ cmp r4, #0x0
+ bne _0201CC44
+_0201CC3E:
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r4, pc}
+_0201CC44:
+ ldr r0, _0201CC74 ; =0x021C5978
+ ldrh r0, [r0, #0x18]
+ cmp r0, #0x0
+ beq _0201CC52
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r4, pc}
+_0201CC52:
+ add r0, r4, #0x0
+ bl FUN_0201CE2C
+ cmp r0, #0x1
+ bne _0201CC70
+ mov r2, #0x0
+ str r2, [sp, #0x0]
+ lsl r0, r4, #0x1
+ str r0, [sp, #0x4]
+ mov r0, #0x2
+ mov r1, #0x1
+ add r3, r2, #0x0
+ bl FUN_0201CC78
+ mov r0, #0x1
+_0201CC70:
+ add sp, #0x8
+ pop {r4, pc}
+ .balign 4
+_0201CC74: .word 0x021C5978
+
+ thumb_func_start FUN_0201CC78
+FUN_0201CC78: ; 0x0201CC78
+ push {r4, lr}
+ ldr r4, _0201CC9C ; =0x021C5978
+ strh r0, [r4, #0x18]
+ ldr r0, _0201CCA0 ; =0x021C4918
+ strb r1, [r0, #0x4]
+ ldr r0, _0201CCA4 ; =0x021C5938
+ ldr r1, [sp, #0xc]
+ str r2, [r0, #0x0]
+ str r3, [r0, #0x4]
+ str r1, [r0, #0x8]
+ ldr r1, [sp, #0x8]
+ str r1, [r0, #0x54]
+ ldr r0, _0201CCA8 ; =0x021C5944
+ mov r1, #0x9
+ bl FUN_0201CCAC
+ pop {r4, pc}
+ nop
+_0201CC9C: .word 0x021C5978
+_0201CCA0: .word 0x021C4918
+_0201CCA4: .word 0x021C5938
+_0201CCA8: .word 0x021C5944
+
+ thumb_func_start FUN_0201CCAC
+FUN_0201CCAC: ; 0x0201CCAC
+ mov r3, #0x0
+ cmp r1, #0x0
+ ble _0201CCBE
+ add r2, r3, #0x0
+_0201CCB4:
+ add r3, r3, #0x1
+ strh r2, [r0, #0x4]
+ add r0, #0x8
+ cmp r3, r1
+ blt _0201CCB4
+_0201CCBE:
+ bx lr
+
+ thumb_func_start FUN_0201CCC0
+FUN_0201CCC0: ; 0x0201CCC0
+ push {r4-r6, lr}
+ ldr r0, _0201CD00 ; =0x021C5978
+ mov r5, #0x0
+ ldrh r0, [r0, #0x18]
+ cmp r0, #0x0
+ bne _0201CCD0
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_0201CCD0:
+ mov r4, #0x4
+ add r6, r4, #0x0
+_0201CCD4:
+ bl TP_RequestAutoSamplingStopAsync
+ add r0, r4, #0x0
+ bl TP_WaitBusy
+ add r0, r6, #0x0
+ bl TP_CheckError
+ cmp r0, #0x0
+ beq _0201CCEA
+ add r5, r5, #0x1
+_0201CCEA:
+ cmp r0, #0x0
+ beq _0201CCF2
+ cmp r5, #0x5
+ bls _0201CCD4
+_0201CCF2:
+ cmp r5, #0x5
+ bls _0201CCFA
+ mov r0, #0x2
+ pop {r4-r6, pc}
+_0201CCFA:
+ mov r0, #0x1
+ pop {r4-r6, pc}
+ nop
+_0201CD00: .word 0x021C5978
+
+ thumb_func_start FUN_0201CD04
+FUN_0201CD04: ; 0x0201CD04
+ push {r4, lr}
+ sub sp, #0x8
+ ldr r0, _0201CD34 ; =0x021C5978
+ ldrh r0, [r0, #0x1a]
+ cmp r0, #0x0
+ beq _0201CD14
+ bl ErrorHandling
+_0201CD14:
+ bl FUN_0201CCC0
+ add r4, r0, #0x0
+ cmp r4, #0x1
+ bne _0201CD2E
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ add r1, r0, #0x0
+ add r2, r0, #0x0
+ add r3, r0, #0x0
+ str r0, [sp, #0x4]
+ bl FUN_0201CC78
+_0201CD2E:
+ add r0, r4, #0x0
+ add sp, #0x8
+ pop {r4, pc}
+ .balign 4
+_0201CD34: .word 0x021C5978
+
+ thumb_func_start FUN_0201CD38
+FUN_0201CD38: ; 0x0201CD38
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ ldr r0, _0201CD8C ; =0x021C5978
+ add r6, r1, #0x0
+ ldrh r0, [r0, #0x1a]
+ add r7, r2, #0x0
+ mov r5, #0x3
+ cmp r0, #0x0
+ beq _0201CD4E
+ bl ErrorHandling
+_0201CD4E:
+ ldr r0, _0201CD8C ; =0x021C5978
+ ldrh r0, [r0, #0x18]
+ cmp r0, #0x0
+ beq _0201CD88
+ bl TP_GetLatestIndexInAuto
+ add r5, r0, #0x0
+ ldr r0, _0201CD90 ; =0x021C5944
+ mov r1, #0x9
+ bl FUN_0201CD94
+ cmp r4, #0x0
+ beq _0201CD70
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_0201CFD0
+_0201CD70:
+ ldr r0, _0201CD8C ; =0x021C5978
+ ldrh r0, [r0, #0x18]
+ cmp r0, #0x1
+ bne _0201CD86
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ add r2, r7, #0x0
+ bl FUN_0201CE70
+ add r5, r0, #0x0
+ b _0201CD88
+_0201CD86:
+ mov r5, #0x1
+_0201CD88:
+ add r0, r5, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_0201CD8C: .word 0x021C5978
+_0201CD90: .word 0x021C5944
+
+ thumb_func_start FUN_0201CD94
+FUN_0201CD94: ; 0x0201CD94
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ mov r7, #0x0
+ str r1, [sp, #0x0]
+ add r0, r1, #0x0
+ beq _0201CDCA
+ add r4, r5, #0x0
+ add r6, sp, #0x4
+_0201CDA6:
+ add r0, sp, #0x4
+ add r1, r5, #0x0
+ bl TP_GetCalibratedPoint
+ ldrh r0, [r6, #0x0]
+ add r7, r7, #0x1
+ add r5, #0x8
+ strh r0, [r4, #0x0]
+ ldrh r0, [r6, #0x2]
+ strh r0, [r4, #0x2]
+ ldrh r0, [r6, #0x4]
+ strh r0, [r4, #0x4]
+ ldrh r0, [r6, #0x6]
+ strh r0, [r4, #0x6]
+ ldr r0, [sp, #0x0]
+ add r4, #0x8
+ cmp r7, r0
+ blo _0201CDA6
+_0201CDCA:
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201CDD0
+FUN_0201CDD0: ; 0x0201CDD0
+ push {r3, lr}
+ ldr r0, _0201CDFC ; =0x021C5978
+ ldrh r1, [r0, #0x1a]
+ cmp r1, #0x0
+ beq _0201CDF8
+ ldrh r0, [r0, #0x18]
+ cmp r0, #0x0
+ beq _0201CDF8
+ ldr r0, _0201CE00 ; =0x021C5938
+ ldr r0, [r0, #0x8]
+ lsr r0, r0, #0x1
+ bl FUN_0201CE2C
+ cmp r0, #0x1
+ beq _0201CDF2
+ bl ErrorHandling
+_0201CDF2:
+ ldr r0, _0201CDFC ; =0x021C5978
+ mov r1, #0x0
+ strh r1, [r0, #0x1a]
+_0201CDF8:
+ pop {r3, pc}
+ nop
+_0201CDFC: .word 0x021C5978
+_0201CE00: .word 0x021C5938
+
+ thumb_func_start FUN_0201CE04
+FUN_0201CE04: ; 0x0201CE04
+ push {r3, lr}
+ ldr r0, _0201CE28 ; =0x021C5978
+ ldrh r1, [r0, #0x1a]
+ cmp r1, #0x1
+ beq _0201CE26
+ ldrh r0, [r0, #0x18]
+ cmp r0, #0x0
+ beq _0201CE26
+ bl FUN_0201CCC0
+ cmp r0, #0x1
+ beq _0201CE20
+ bl ErrorHandling
+_0201CE20:
+ ldr r0, _0201CE28 ; =0x021C5978
+ mov r1, #0x1
+ strh r1, [r0, #0x1a]
+_0201CE26:
+ pop {r3, pc}
+ .balign 4
+_0201CE28: .word 0x021C5978
+
+ thumb_func_start FUN_0201CE2C
+FUN_0201CE2C: ; 0x0201CE2C
+ push {r3-r7, lr}
+ mov r5, #0x0
+ lsl r0, r0, #0x10
+ ldr r7, _0201CE6C ; =0x021C5944
+ add r6, r5, #0x0
+ lsr r4, r0, #0x10
+_0201CE38:
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ add r2, r7, #0x0
+ mov r3, #0x9
+ bl TP_RequestAutoSamplingStartAsync
+ mov r0, #0x2
+ bl TP_WaitBusy
+ mov r0, #0x2
+ bl TP_CheckError
+ cmp r0, #0x0
+ beq _0201CE56
+ add r5, r5, #0x1
+_0201CE56:
+ cmp r0, #0x0
+ beq _0201CE5E
+ cmp r5, #0x5
+ ble _0201CE38
+_0201CE5E:
+ cmp r5, #0x5
+ ble _0201CE66
+ mov r0, #0x2
+ pop {r3-r7, pc}
+_0201CE66:
+ mov r0, #0x1
+ pop {r3-r7, pc}
+ nop
+_0201CE6C: .word 0x021C5944
+
+ thumb_func_start FUN_0201CE70
+FUN_0201CE70: ; 0x0201CE70
+ push {r3, lr}
+ cmp r0, #0x5
+ bhi _0201CE9A
+ add r3, r0, r0
+ add r3, pc
+ ldrh r3, [r3, #0x6]
+ lsl r3, r3, #0x10
+ asr r3, r3, #0x10
+ add pc, r3
+_0201CE82: ; jump table (using 16-bit offset)
+ .short _0201CE9A - _0201CE82 - 2; case 0
+ .short _0201CE8E - _0201CE82 - 2; case 1
+ .short _0201CE9A - _0201CE82 - 2; case 2
+ .short _0201CE8E - _0201CE82 - 2; case 3
+ .short _0201CE94 - _0201CE82 - 2; case 4
+ .short _0201CE94 - _0201CE82 - 2; case 5
+_0201CE8E:
+ bl FUN_0201CEA0
+ pop {r3, pc}
+_0201CE94:
+ bl FUN_0201CF58
+ pop {r3, pc}
+_0201CE9A:
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201CEA0
+FUN_0201CEA0: ; 0x0201CEA0
+ push {r3-r7, lr}
+ sub sp, #0x8
+ ldr r5, _0201CF50 ; =0x021C5938
+ str r1, [sp, #0x4]
+ ldr r1, [r5, #0x8]
+ str r0, [sp, #0x0]
+ add r7, r2, #0x0
+ mov r4, #0x0
+ cmp r1, #0x0
+ bls _0201CF46
+_0201CEB4:
+ ldr r0, [sp, #0x4]
+ sub r0, r0, r1
+ add r0, r4, r0
+ add r0, r0, #0x1
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ bpl _0201CEC8
+ add r0, #0x9
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+_0201CEC8:
+ lsl r1, r0, #0x3
+ ldr r0, _0201CF54 ; =0x021C5938
+ add r1, r0, r1
+ ldrh r0, [r1, #0x10]
+ cmp r0, #0x1
+ bne _0201CF3E
+ ldrh r0, [r1, #0x12]
+ cmp r0, #0x0
+ bne _0201CF3E
+ ldr r2, [r5, #0x54]
+ ldr r0, [r5, #0x0]
+ lsl r2, r2, #0x3
+ add r2, r0, r2
+ add r0, r2, #0x0
+ sub r0, #0x8
+ ldrh r3, [r1, #0xc]
+ ldrh r0, [r0, #0x0]
+ cmp r0, r3
+ blt _0201CEF2
+ sub r3, r0, r3
+ b _0201CEF4
+_0201CEF2:
+ sub r3, r3, r0
+_0201CEF4:
+ sub r6, r2, #0x6
+ ldrh r0, [r1, #0xe]
+ ldrh r6, [r6, #0x0]
+ cmp r6, r0
+ blt _0201CF02
+ sub r0, r6, r0
+ b _0201CF04
+_0201CF02:
+ sub r0, r0, r6
+_0201CF04:
+ cmp r3, r7
+ bhs _0201CF0C
+ cmp r0, r7
+ blo _0201CF3E
+_0201CF0C:
+ ldrh r0, [r1, #0xc]
+ strh r0, [r2, #0x0]
+ ldrh r0, [r1, #0xe]
+ strh r0, [r2, #0x2]
+ ldrh r0, [r1, #0x10]
+ strh r0, [r2, #0x4]
+ ldrh r0, [r1, #0x12]
+ strh r0, [r2, #0x6]
+ ldr r0, [r5, #0x54]
+ add r0, r0, #0x1
+ str r0, [r5, #0x54]
+ ldr r1, [r5, #0x4]
+ cmp r0, r1
+ blo _0201CF3E
+ ldr r2, [sp, #0x0]
+ cmp r2, #0x1
+ bne _0201CF36
+ bl _u32_div_f
+ str r1, [r5, #0x54]
+ b _0201CF3E
+_0201CF36:
+ mov r0, #0x0
+ add sp, #0x8
+ mvn r0, r0
+ pop {r3-r7, pc}
+_0201CF3E:
+ ldr r1, [r5, #0x8]
+ add r4, r4, #0x1
+ cmp r4, r1
+ blo _0201CEB4
+_0201CF46:
+ ldr r0, _0201CF50 ; =0x021C5938
+ ldr r0, [r0, #0x54]
+ add sp, #0x8
+ pop {r3-r7, pc}
+ nop
+_0201CF50: .word 0x021C5938
+_0201CF54: .word 0x021C5938
+
+ thumb_func_start FUN_0201CF58
+FUN_0201CF58: ; 0x0201CF58
+ push {r3-r7, lr}
+ ldr r5, _0201CFC8 ; =0x021C5938
+ str r1, [sp, #0x0]
+ ldr r1, [r5, #0x8]
+ add r7, r0, #0x0
+ mov r4, #0x0
+ cmp r1, #0x0
+ bls _0201CFC0
+_0201CF68:
+ ldr r0, [sp, #0x0]
+ sub r0, r0, r1
+ add r0, r4, r0
+ add r0, r0, #0x1
+ lsl r0, r0, #0x10
+ asr r1, r0, #0x10
+ bpl _0201CF7C
+ add r1, #0x9
+ lsl r0, r1, #0x10
+ asr r1, r0, #0x10
+_0201CF7C:
+ ldr r0, [r5, #0x54]
+ lsl r1, r1, #0x3
+ lsl r3, r0, #0x3
+ ldr r0, _0201CFCC ; =0x021C5938
+ ldr r6, [r5, #0x0]
+ add r2, r0, r1
+ ldrh r0, [r2, #0xc]
+ add r1, r6, r3
+ strh r0, [r6, r3]
+ ldrh r0, [r2, #0xe]
+ strh r0, [r1, #0x2]
+ ldrh r0, [r2, #0x10]
+ strh r0, [r1, #0x4]
+ ldrh r0, [r2, #0x12]
+ strh r0, [r1, #0x6]
+ ldr r0, [r5, #0x54]
+ add r0, r0, #0x1
+ str r0, [r5, #0x54]
+ ldr r1, [r5, #0x4]
+ cmp r0, r1
+ blo _0201CFB8
+ cmp r7, #0x4
+ bne _0201CFB2
+ bl _u32_div_f
+ str r1, [r5, #0x54]
+ b _0201CFB8
+_0201CFB2:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r7, pc}
+_0201CFB8:
+ ldr r1, [r5, #0x8]
+ add r4, r4, #0x1
+ cmp r4, r1
+ blo _0201CF68
+_0201CFC0:
+ ldr r0, _0201CFC8 ; =0x021C5938
+ ldr r0, [r0, #0x54]
+ pop {r3-r7, pc}
+ nop
+_0201CFC8: .word 0x021C5938
+_0201CFCC: .word 0x021C5938
+
+ thumb_func_start FUN_0201CFD0
+FUN_0201CFD0: ; 0x0201CFD0
+ push {r4-r7}
+ mov r2, #0x0
+ strh r2, [r0, #0x0]
+ add r3, r0, #0x0
+ add r6, r2, #0x0
+_0201CFDA:
+ strh r6, [r3, #0x8]
+ strh r6, [r3, #0x6]
+ strh r6, [r3, #0x2]
+ strh r6, [r3, #0x4]
+ add r2, r2, #0x1
+ add r3, #0x8
+ cmp r2, #0x8
+ blt _0201CFDA
+ ldr r2, _0201D038 ; =0x021C5938
+ ldr r3, [r2, #0x8]
+ cmp r3, #0x0
+ bls _0201D034
+ ldr r4, _0201D03C ; =0x021C5938
+_0201CFF4:
+ sub r3, r1, r3
+ add r3, r6, r3
+ add r3, r3, #0x1
+ lsl r3, r3, #0x10
+ asr r3, r3, #0x10
+ bpl _0201D006
+ add r3, #0x9
+ lsl r3, r3, #0x10
+ asr r3, r3, #0x10
+_0201D006:
+ lsl r3, r3, #0x3
+ add r5, r4, r3
+ ldrh r3, [r5, #0x12]
+ cmp r3, #0x0
+ bne _0201D02C
+ ldrh r3, [r0, #0x0]
+ ldrh r7, [r5, #0xc]
+ lsl r3, r3, #0x3
+ add r3, r0, r3
+ strh r7, [r3, #0x2]
+ ldrh r7, [r5, #0xe]
+ strh r7, [r3, #0x4]
+ ldrh r7, [r5, #0x10]
+ strh r7, [r3, #0x6]
+ ldrh r5, [r5, #0x12]
+ strh r5, [r3, #0x8]
+ ldrh r3, [r0, #0x0]
+ add r3, r3, #0x1
+ strh r3, [r0, #0x0]
+_0201D02C:
+ ldr r3, [r2, #0x8]
+ add r6, r6, #0x1
+ cmp r6, r3
+ blo _0201CFF4
+_0201D034:
+ pop {r4-r7}
+ bx lr
+ .balign 4
+_0201D038: .word 0x021C5938
+_0201D03C: .word 0x021C5938
+
+ thumb_func_start FUN_0201D040
+FUN_0201D040: ; 0x0201D040
+ ldr r1, _0201D054 ; =0x04001000
+ ldr r2, [r1, #0x0]
+ ldr r1, _0201D058 ; =0x00300010
+ lsl r3, r1, #0x16
+ ldr r3, [r3, #0x0]
+ and r2, r1
+ and r1, r3
+ ldr r3, _0201D05C ; =FUN_0201D060
+ bx r3
+ nop
+_0201D054: .word 0x04001000
+_0201D058: .word 0x00300010
+_0201D05C: .word FUN_0201D060
+
+ thumb_func_start FUN_0201D060
+FUN_0201D060: ; 0x0201D060
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ ldr r0, _0201D120 ; =0x021C5994
+ str r1, [sp, #0x0]
+ ldr r0, [r0, #0x0]
+ str r2, [sp, #0x4]
+ cmp r0, #0x0
+ bne _0201D11A
+ ldr r0, [r5, #0xc]
+ mov r1, #0x3c
+ bl FUN_02016998
+ add r1, r0, #0x0
+ ldr r0, _0201D120 ; =0x021C5994
+ mov r2, #0x3c
+ str r1, [r0, #0x0]
+ mov r0, #0x0
+ bl MIi_CpuClear32
+ ldr r1, _0201D120 ; =0x021C5994
+ ldr r2, [r5, #0x0]
+ ldr r0, [r1, #0x0]
+ str r2, [r0, #0x4]
+ ldr r1, [r1, #0x0]
+ ldr r0, [r5, #0xc]
+ ldr r2, [r1, #0x4]
+ mov r1, #0x54
+ mul r1, r2
+ bl FUN_02016998
+ ldr r7, _0201D120 ; =0x021C5994
+ mov r6, #0x0
+ ldr r1, [r7, #0x0]
+ str r0, [r1, #0x0]
+ ldr r0, [r5, #0x0]
+ cmp r0, #0x0
+ ble _0201D0C2
+ add r4, r6, #0x0
+_0201D0AE:
+ ldr r0, [r7, #0x0]
+ ldr r0, [r0, #0x0]
+ add r0, r0, r4
+ bl FUN_0201D690
+ ldr r0, [r5, #0x0]
+ add r6, r6, #0x1
+ add r4, #0x54
+ cmp r6, r0
+ blt _0201D0AE
+_0201D0C2:
+ ldr r0, [sp, #0x0]
+ bl FUN_0201DED0
+ ldr r1, _0201D120 ; =0x021C5994
+ ldr r1, [r1, #0x0]
+ str r0, [r1, #0x2c]
+ ldr r0, [sp, #0x4]
+ bl FUN_0201DED0
+ ldr r2, _0201D120 ; =0x021C5994
+ mov r3, #0x1
+ ldr r1, [r2, #0x0]
+ lsl r3, r3, #0x1a
+ str r0, [r1, #0x30]
+ ldr r0, [r3, #0x0]
+ ldr r1, _0201D124 ; =0xFFCFFFEF
+ add r4, r0, #0x0
+ ldr r0, [sp, #0x0]
+ and r4, r1
+ orr r0, r4
+ str r0, [r3, #0x0]
+ ldr r3, _0201D128 ; =0x04001000
+ ldr r0, [r3, #0x0]
+ and r1, r0
+ ldr r0, [sp, #0x4]
+ orr r0, r1
+ str r0, [r3, #0x0]
+ ldr r1, [r2, #0x0]
+ ldr r0, [r5, #0x4]
+ ldr r1, [r1, #0x2c]
+ bl FUN_0201DF2C
+ ldr r1, _0201D120 ; =0x021C5994
+ add r4, r0, #0x0
+ ldr r1, [r1, #0x0]
+ ldr r0, [r5, #0x8]
+ ldr r1, [r1, #0x30]
+ bl FUN_0201DF2C
+ add r1, r0, #0x0
+ ldr r2, [r5, #0xc]
+ add r0, r4, #0x0
+ bl FUN_0201DC58
+_0201D11A:
+ add sp, #0x8
+ pop {r3-r7, pc}
+ nop
+_0201D120: .word 0x021C5994
+_0201D124: .word 0xFFCFFFEF
+_0201D128: .word 0x04001000
+
+ thumb_func_start FUN_0201D12C
+FUN_0201D12C: ; 0x0201D12C
+ push {r3, lr}
+ ldr r0, _0201D164 ; =0x021C5994
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0201D162
+ ldr r0, [r0, #0x34]
+ bl FUN_0201DCC0
+ ldr r0, _0201D164 ; =0x021C5994
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x38]
+ bl FUN_0201DCC0
+ bl FUN_0201D374
+ ldr r0, _0201D164 ; =0x021C5994
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x0]
+ bl FUN_02016A18
+ ldr r0, _0201D164 ; =0x021C5994
+ ldr r0, [r0, #0x0]
+ bl FUN_02016A18
+ ldr r0, _0201D164 ; =0x021C5994
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+_0201D162:
+ pop {r3, pc}
+ .balign 4
+_0201D164: .word 0x021C5994
+
+ thumb_func_start FUN_0201D168
+FUN_0201D168: ; 0x0201D168
+ push {r3, lr}
+ ldr r0, _0201D190 ; =0x021C5994
+ mov r2, #0x0
+ ldr r1, [r0, #0x0]
+ str r2, [r1, #0xc]
+ ldr r1, [r0, #0x0]
+ str r2, [r1, #0x10]
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x34]
+ bl FUN_0201DD00
+ ldr r0, _0201D190 ; =0x021C5994
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x38]
+ bl FUN_0201DD00
+ bl FUN_0201DAE8
+ pop {r3, pc}
+ nop
+_0201D190: .word 0x021C5994
+
+ thumb_func_start FUN_0201D194
+FUN_0201D194: ; 0x0201D194
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0x0
+ add r3, r1, #0x0
+ cmp r2, #0x1
+ add r0, sp, #0x4
+ bne _0201D1CA
+ str r0, [sp, #0x0]
+ ldr r0, _0201D1F4 ; =0x021C5994
+ add r2, r3, #0x0
+ ldr r0, [r0, #0x0]
+ add r1, r4, #0x0
+ ldr r0, [r0, #0x1c]
+ add r3, sp, #0x8
+ bl FUN_0201DFF0
+ ldr r3, [sp, #0x4]
+ cmp r3, #0x0
+ ble _0201D1F0
+ mov r2, #0x0
+ str r2, [sp, #0x0]
+ ldr r1, [sp, #0x8]
+ mov r0, #0x1
+ bl FUN_0201D948
+ add sp, #0xc
+ pop {r3-r4, pc}
+_0201D1CA:
+ str r0, [sp, #0x0]
+ ldr r0, _0201D1F4 ; =0x021C5994
+ add r2, r3, #0x0
+ ldr r0, [r0, #0x0]
+ add r1, r4, #0x0
+ ldr r0, [r0, #0x20]
+ add r3, sp, #0x8
+ bl FUN_0201DFF0
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ ble _0201D1F0
+ str r0, [sp, #0x0]
+ mov r1, #0x0
+ ldr r2, [sp, #0x8]
+ mov r0, #0x2
+ add r3, r1, #0x0
+ bl FUN_0201D948
+_0201D1F0:
+ add sp, #0xc
+ pop {r3-r4, pc}
+ .balign 4
+_0201D1F4: .word 0x021C5994
+
+ thumb_func_start FUN_0201D1F8
+FUN_0201D1F8: ; 0x0201D1F8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x8]
+ bl FUN_0201D2AC
+ cmp r0, #0x1
+ bne _0201D20A
+ bl ErrorHandling
+_0201D20A:
+ bl FUN_0201DAAC
+ add r4, r0, #0x0
+ bne _0201D21A
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0201D21A:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0201D6B4
+ cmp r0, #0x0
+ bne _0201D22A
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0201D22A:
+ add r0, r4, #0x0
+ bl FUN_0201D724
+ cmp r0, #0x0
+ bne _0201D23E
+ ldr r0, [r4, #0xc]
+ bl FUN_0201D324
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0201D23E:
+ ldr r0, _0201D24C ; =0x021C5994
+ ldr r1, [r0, #0x0]
+ ldr r0, [r1, #0x8]
+ add r0, r0, #0x1
+ str r0, [r1, #0x8]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+_0201D24C: .word 0x021C5994
+
+ thumb_func_start FUN_0201D250
+FUN_0201D250: ; 0x0201D250
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x8]
+ bl FUN_0201D2AC
+ cmp r0, #0x1
+ bne _0201D262
+ bl ErrorHandling
+_0201D262:
+ bl FUN_0201DAAC
+ add r4, r0, #0x0
+ bne _0201D272
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0201D272:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0201D6B4
+ cmp r0, #0x0
+ bne _0201D282
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0201D282:
+ mov r0, #0x1
+ str r0, [r4, #0x40]
+ add r0, r4, #0x0
+ bl FUN_0201D724
+ cmp r0, #0x0
+ bne _0201D29A
+ ldr r0, [r4, #0xc]
+ bl FUN_0201D324
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0201D29A:
+ ldr r0, _0201D2A8 ; =0x021C5994
+ ldr r1, [r0, #0x0]
+ ldr r0, [r1, #0x8]
+ add r0, r0, #0x1
+ str r0, [r1, #0x8]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+_0201D2A8: .word 0x021C5994
+
+ thumb_func_start FUN_0201D2AC
+FUN_0201D2AC: ; 0x0201D2AC
+ push {r3-r4}
+ ldr r1, _0201D2D8 ; =0x021C5994
+ mov r2, #0x0
+ ldr r4, [r1, #0x0]
+ ldr r1, [r4, #0x4]
+ cmp r1, #0x0
+ ble _0201D2D2
+ ldr r3, [r4, #0x0]
+_0201D2BC:
+ ldr r1, [r3, #0xc]
+ cmp r0, r1
+ bne _0201D2C8
+ mov r0, #0x1
+ pop {r3-r4}
+ bx lr
+_0201D2C8:
+ ldr r1, [r4, #0x4]
+ add r2, r2, #0x1
+ add r3, #0x54
+ cmp r2, r1
+ blt _0201D2BC
+_0201D2D2:
+ mov r0, #0x0
+ pop {r3-r4}
+ bx lr
+ .balign 4
+_0201D2D8: .word 0x021C5994
+
+ thumb_func_start FUN_0201D2DC
+FUN_0201D2DC: ; 0x0201D2DC
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r5, r1, #0x0
+ bne _0201D2E8
+ bl ErrorHandling
+_0201D2E8:
+ add r0, r4, #0x0
+ bl FUN_0201D7F8
+ add r4, r0, #0x0
+ bne _0201D2F6
+ bl ErrorHandling
+_0201D2F6:
+ str r5, [r4, #0x0]
+ ldr r1, [r4, #0x4]
+ mov r0, #0x1
+ tst r0, r1
+ beq _0201D30C
+ ldr r1, [r4, #0x34]
+ ldr r2, [r5, #0x14]
+ ldr r3, [r5, #0x10]
+ mov r0, #0x13
+ bl FUN_0201C2C8
+_0201D30C:
+ ldr r1, [r4, #0x4]
+ mov r0, #0x2
+ tst r0, r1
+ beq _0201D320
+ ldr r1, [r4, #0x38]
+ ldr r2, [r5, #0x14]
+ ldr r3, [r5, #0x10]
+ mov r0, #0x23
+ bl FUN_0201C2C8
+_0201D320:
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201D324
+FUN_0201D324: ; 0x0201D324
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ mov r5, #0x1
+ mov r7, #0x0
+_0201D32C:
+ add r0, r6, #0x0
+ bl FUN_0201D7F8
+ add r4, r0, #0x0
+ bne _0201D33A
+ bl ErrorHandling
+_0201D33A:
+ add r0, r4, #0x0
+ add r0, #0x3c
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x4
+ bne _0201D34E
+ add r0, r4, #0x0
+ add r0, #0x10
+ bl FUN_0201D4F0
+ b _0201D350
+_0201D34E:
+ add r5, r7, #0x0
+_0201D350:
+ cmp r5, #0x0
+ bne _0201D32C
+ add r0, r4, #0x0
+ add r0, #0x3c
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0201D36E
+ add r0, r4, #0x0
+ bl FUN_0201D7E0
+ ldr r0, _0201D370 ; =0x021C5994
+ ldr r1, [r0, #0x0]
+ ldr r0, [r1, #0x8]
+ sub r0, r0, #0x1
+ str r0, [r1, #0x8]
+_0201D36E:
+ pop {r3-r7, pc}
+ .balign 4
+_0201D370: .word 0x021C5994
+
+ thumb_func_start FUN_0201D374
+FUN_0201D374: ; 0x0201D374
+ push {r4-r6, lr}
+ ldr r6, _0201D3AC ; =0x021C5994
+ mov r4, #0x0
+ ldr r1, [r6, #0x0]
+ ldr r0, [r1, #0x4]
+ cmp r0, #0x0
+ ble _0201D3AA
+ add r5, r4, #0x0
+_0201D384:
+ ldr r1, [r1, #0x0]
+ add r0, r1, r5
+ add r0, #0x3c
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0201D39E
+ add r0, r1, r5
+ bl FUN_0201D7E0
+ ldr r1, [r6, #0x0]
+ ldr r0, [r1, #0x8]
+ sub r0, r0, #0x1
+ str r0, [r1, #0x8]
+_0201D39E:
+ ldr r1, [r6, #0x0]
+ add r4, r4, #0x1
+ ldr r0, [r1, #0x4]
+ add r5, #0x54
+ cmp r4, r0
+ blt _0201D384
+_0201D3AA:
+ pop {r4-r6, pc}
+ .balign 4
+_0201D3AC: .word 0x021C5994
+
+ thumb_func_start FUN_0201D3B0
+FUN_0201D3B0: ; 0x0201D3B0
+ push {r4, lr}
+ bl FUN_0201D7F8
+ add r4, r0, #0x0
+ bne _0201D3BE
+ bl ErrorHandling
+_0201D3BE:
+ add r0, r4, #0x0
+ add r0, #0x3c
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0201D3CC
+ mov r0, #0x0
+ pop {r4, pc}
+_0201D3CC:
+ add r4, #0x10
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201D3D4
+FUN_0201D3D4: ; 0x0201D3D4
+ push {r3-r5, lr}
+ sub sp, #0x18
+ add r5, r1, #0x0
+ bl FUN_0201D7F8
+ add r4, r0, #0x0
+ bne _0201D3E6
+ bl ErrorHandling
+_0201D3E6:
+ add r0, r4, #0x0
+ add r0, #0x3c
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0201D3F6
+ add sp, #0x18
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0201D3F6:
+ add r0, sp, #0xc
+ str r0, [sp, #0x0]
+ add r0, sp, #0x8
+ str r0, [sp, #0x4]
+ ldr r0, [r4, #0x4]
+ add r1, sp, #0x14
+ add r2, sp, #0x10
+ add r3, r5, #0x0
+ bl FUN_0201D86C
+ add r0, r4, #0x0
+ add r0, #0x3c
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x3
+ bne _0201D41A
+ add sp, #0x18
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0201D41A:
+ add r0, r4, #0x0
+ mov r1, #0x3
+ add r0, #0x3c
+ strb r1, [r0, #0x0]
+ ldr r1, [sp, #0x14]
+ ldr r2, [sp, #0x10]
+ add r0, r4, #0x0
+ bl FUN_0201D918
+ mov r0, #0x1
+ str r0, [r4, #0x48]
+ ldr r0, [sp, #0xc]
+ str r0, [r4, #0x4c]
+ ldr r0, [sp, #0x8]
+ str r0, [r4, #0x50]
+ add r0, r4, #0x0
+ bl FUN_0201DA38
+ ldr r0, [sp, #0x8]
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x4]
+ ldr r1, [sp, #0x14]
+ ldr r2, [sp, #0x10]
+ ldr r3, [sp, #0xc]
+ bl FUN_0201D948
+ add r4, #0x10
+ add r0, r4, #0x0
+ add sp, #0x18
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201D458
+FUN_0201D458: ; 0x0201D458
+ push {r3-r5, lr}
+ sub sp, #0x18
+ bl FUN_0201D6D8
+ add r4, r0, #0x0
+ bne _0201D468
+ bl ErrorHandling
+_0201D468:
+ bl FUN_0201DAAC
+ add r5, r0, #0x0
+ bne _0201D474
+ bl ErrorHandling
+_0201D474:
+ add r0, r4, #0x0
+ add r0, #0x3c
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x3
+ beq _0201D484
+ add sp, #0x18
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0201D484:
+ add r3, r5, #0x0
+ mov r2, #0xa
+_0201D488:
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _0201D488
+ ldr r0, [r4, #0x0]
+ mov r1, #0x4
+ str r0, [r3, #0x0]
+ add r0, r5, #0x0
+ add r0, #0x3c
+ strb r1, [r0, #0x0]
+ ldr r0, [r5, #0x4]
+ mov r1, #0x1
+ tst r1, r0
+ beq _0201D4A8
+ ldr r3, [r5, #0x4c]
+ b _0201D4AA
+_0201D4A8:
+ ldr r3, [r5, #0x50]
+_0201D4AA:
+ add r1, sp, #0xc
+ str r1, [sp, #0x0]
+ add r1, sp, #0x8
+ str r1, [sp, #0x4]
+ add r1, sp, #0x14
+ add r2, sp, #0x10
+ bl FUN_0201D86C
+ ldr r1, [sp, #0x14]
+ ldr r2, [sp, #0x10]
+ add r0, r5, #0x0
+ bl FUN_0201D918
+ mov r0, #0x1
+ str r0, [r5, #0x48]
+ ldr r0, [sp, #0xc]
+ str r0, [r5, #0x4c]
+ ldr r0, [sp, #0x8]
+ str r0, [r5, #0x50]
+ add r0, r5, #0x0
+ bl FUN_0201DA38
+ ldr r0, [sp, #0x8]
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x4]
+ ldr r1, [sp, #0x14]
+ ldr r2, [sp, #0x10]
+ ldr r3, [sp, #0xc]
+ bl FUN_0201D948
+ add r5, #0x10
+ add r0, r5, #0x0
+ add sp, #0x18
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201D4F0
+FUN_0201D4F0: ; 0x0201D4F0
+ push {r4-r6, lr}
+ ldr r2, _0201D564 ; =0x021C5994
+ mov r1, #0x0
+ ldr r5, [r2, #0x0]
+ ldr r4, [r5, #0x4]
+ cmp r4, #0x0
+ ble _0201D52E
+ ldr r2, [r5, #0x0]
+ add r3, r1, #0x0
+_0201D502:
+ add r6, r2, #0x0
+ add r6, #0x3c
+ ldrb r6, [r6, #0x0]
+ cmp r6, #0x3
+ beq _0201D518
+ ldr r6, [r5, #0x0]
+ add r6, r6, r3
+ add r6, #0x3c
+ ldrb r6, [r6, #0x0]
+ cmp r6, #0x4
+ bne _0201D522
+_0201D518:
+ ldr r6, [r5, #0x0]
+ add r6, r6, r3
+ add r6, #0x10
+ cmp r6, r0
+ beq _0201D52E
+_0201D522:
+ ldr r6, [r5, #0x4]
+ add r1, r1, #0x1
+ add r2, #0x54
+ add r3, #0x54
+ cmp r1, r6
+ blt _0201D502
+_0201D52E:
+ cmp r1, r4
+ bge _0201D562
+ mov r0, #0x54
+ add r4, r1, #0x0
+ mul r4, r0
+ ldr r0, [r5, #0x0]
+ add r0, r0, r4
+ bl FUN_0201DE4C
+ ldr r0, _0201D564 ; =0x021C5994
+ ldr r1, [r0, #0x0]
+ ldr r2, [r1, #0x0]
+ add r2, #0x3c
+ ldrb r1, [r2, r4]
+ cmp r1, #0x3
+ bne _0201D554
+ mov r0, #0x2
+ strb r0, [r2, r4]
+ pop {r4-r6, pc}
+_0201D554:
+ mov r1, #0x0
+ strb r1, [r2, r4]
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x0]
+ add r0, r0, r4
+ bl FUN_0201D690
+_0201D562:
+ pop {r4-r6, pc}
+ .balign 4
+_0201D564: .word 0x021C5994
+
+ thumb_func_start FUN_0201D568
+FUN_0201D568: ; 0x0201D568
+ push {r3-r7, lr}
+ sub sp, #0x18
+ add r6, r0, #0x0
+ add r5, r2, #0x0
+ add r4, r3, #0x0
+ cmp r1, #0x0
+ bne _0201D5A0
+ add r1, r5, #0x0
+ add r2, sp, #0x14
+ add r3, sp, #0x10
+ bl FUN_0201DF44
+ add r7, r0, #0x0
+ beq _0201D5E0
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_0201DF94
+ str r5, [r4, #0x8]
+ str r6, [r4, #0x0]
+ cmp r5, #0x1
+ bne _0201D59A
+ ldr r0, [sp, #0x14]
+ str r0, [r4, #0x4]
+ b _0201D5E0
+_0201D59A:
+ ldr r0, [sp, #0x10]
+ str r0, [r4, #0x4]
+ b _0201D5E0
+_0201D5A0:
+ add r0, sp, #0xc
+ str r0, [sp, #0x0]
+ add r0, sp, #0x8
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ add r1, sp, #0x14
+ add r2, sp, #0x10
+ add r3, r6, #0x0
+ bl FUN_0201D86C
+ add r7, r0, #0x0
+ beq _0201D5E0
+ ldr r0, [sp, #0x8]
+ str r0, [sp, #0x0]
+ ldr r1, [sp, #0x14]
+ ldr r2, [sp, #0x10]
+ ldr r3, [sp, #0xc]
+ add r0, r5, #0x0
+ bl FUN_0201D948
+ str r5, [r4, #0x8]
+ cmp r5, #0x1
+ bne _0201D5D8
+ ldr r0, [sp, #0xc]
+ str r0, [r4, #0x0]
+ ldr r0, [sp, #0x14]
+ str r0, [r4, #0x4]
+ b _0201D5E0
+_0201D5D8:
+ ldr r0, [sp, #0x8]
+ str r0, [r4, #0x0]
+ ldr r0, [sp, #0x10]
+ str r0, [r4, #0x4]
+_0201D5E0:
+ add r0, r7, #0x0
+ add sp, #0x18
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201D5E8
+FUN_0201D5E8: ; 0x0201D5E8
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x8]
+ mov r0, #0x1
+ tst r0, r1
+ beq _0201D61E
+ ldr r1, _0201D654 ; =0x021C5994
+ ldr r0, [r4, #0x0]
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0x2c]
+ bl FUN_0201DF2C
+ add r5, r0, #0x0
+ ldr r0, _0201D654 ; =0x021C5994
+ ldr r1, [r4, #0x4]
+ ldr r2, [r0, #0x0]
+ ldr r0, [r2, #0x1c]
+ sub r0, r1, r0
+ ldr r1, [r2, #0x2c]
+ bl FUN_0201DF2C
+ ldr r2, _0201D654 ; =0x021C5994
+ add r1, r5, #0x0
+ ldr r2, [r2, #0x0]
+ ldr r2, [r2, #0x34]
+ bl FUN_0201DDFC
+_0201D61E:
+ ldr r1, [r4, #0x8]
+ mov r0, #0x2
+ tst r0, r1
+ beq _0201D650
+ ldr r1, _0201D654 ; =0x021C5994
+ ldr r0, [r4, #0x0]
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0x30]
+ bl FUN_0201DF2C
+ add r5, r0, #0x0
+ ldr r0, _0201D654 ; =0x021C5994
+ ldr r1, [r4, #0x4]
+ ldr r2, [r0, #0x0]
+ ldr r0, [r2, #0x20]
+ sub r0, r1, r0
+ ldr r1, [r2, #0x30]
+ bl FUN_0201DF2C
+ ldr r2, _0201D654 ; =0x021C5994
+ add r1, r5, #0x0
+ ldr r2, [r2, #0x0]
+ ldr r2, [r2, #0x38]
+ bl FUN_0201DDFC
+_0201D650:
+ pop {r3-r5, pc}
+ nop
+_0201D654: .word 0x021C5994
+
+ thumb_func_start FUN_0201D658
+FUN_0201D658: ; 0x0201D658
+ push {r3, lr}
+ ldr r0, _0201D670 ; =0x021C5994
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0201D666
+ bl ErrorHandling
+_0201D666:
+ ldr r1, _0201D670 ; =0x021C5994
+ mov r2, #0x0
+ ldr r0, [r1, #0x0]
+ str r2, [r1, #0x0]
+ pop {r3, pc}
+ .balign 4
+_0201D670: .word 0x021C5994
+
+ thumb_func_start FUN_0201D674
+FUN_0201D674: ; 0x0201D674
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _0201D68C ; =0x021C5994
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0201D684
+ bl ErrorHandling
+_0201D684:
+ ldr r0, _0201D68C ; =0x021C5994
+ str r4, [r0, #0x0]
+ pop {r4, pc}
+ nop
+_0201D68C: .word 0x021C5994
+
+ thumb_func_start FUN_0201D690
+FUN_0201D690: ; 0x0201D690
+ mov r2, #0x0
+ str r2, [r0, #0x0]
+ str r2, [r0, #0x4]
+ strb r2, [r0, #0x8]
+ sub r1, r2, #0x1
+ str r1, [r0, #0xc]
+ str r2, [r0, #0x34]
+ add r1, r0, #0x0
+ str r2, [r0, #0x38]
+ add r1, #0x3c
+ strb r2, [r1, #0x0]
+ str r2, [r0, #0x40]
+ ldr r3, _0201D6B0 ; =FUN_020B1A24
+ add r0, #0x10
+ bx r3
+ nop
+_0201D6B0: .word FUN_020B1A24
+
+ thumb_func_start FUN_0201D6B4
+FUN_0201D6B4: ; 0x0201D6B4
+ ldr r2, [r0, #0x0]
+ str r2, [r1, #0x0]
+ ldr r2, [r0, #0x8]
+ str r2, [r1, #0xc]
+ ldr r2, [r0, #0x4]
+ str r2, [r1, #0x4]
+ ldr r2, [r1, #0x0]
+ ldr r2, [r2, #0xc]
+ lsr r2, r2, #0x8
+ strb r2, [r1, #0x8]
+ ldr r0, [r0, #0xc]
+ str r0, [r1, #0x44]
+ mov r0, #0x0
+ str r0, [r1, #0x48]
+ str r0, [r1, #0x4c]
+ str r0, [r1, #0x50]
+ mov r0, #0x1
+ bx lr
+
+ thumb_func_start FUN_0201D6D8
+FUN_0201D6D8: ; 0x0201D6D8
+ push {r3-r6}
+ ldr r2, _0201D720 ; =0x021C5994
+ mov r1, #0x0
+ ldr r5, [r2, #0x0]
+ ldr r4, [r5, #0x4]
+ cmp r4, #0x0
+ ble _0201D70A
+ ldr r2, [r5, #0x0]
+ add r3, r1, #0x0
+_0201D6EA:
+ add r6, r2, #0x0
+ add r6, #0x3c
+ ldrb r6, [r6, #0x0]
+ cmp r6, #0x0
+ beq _0201D6FE
+ ldr r6, [r5, #0x0]
+ add r6, r6, r3
+ add r6, #0x10
+ cmp r6, r0
+ beq _0201D70A
+_0201D6FE:
+ ldr r6, [r5, #0x4]
+ add r1, r1, #0x1
+ add r2, #0x54
+ add r3, #0x54
+ cmp r1, r6
+ blt _0201D6EA
+_0201D70A:
+ cmp r1, r4
+ blt _0201D714
+ mov r0, #0x0
+ pop {r3-r6}
+ bx lr
+_0201D714:
+ mov r0, #0x54
+ ldr r2, [r5, #0x0]
+ mul r0, r1
+ add r0, r2, r0
+ pop {r3-r6}
+ bx lr
+ .balign 4
+_0201D720: .word 0x021C5994
+
+ thumb_func_start FUN_0201D724
+FUN_0201D724: ; 0x0201D724
+ push {r3, lr}
+ ldrb r1, [r0, #0x8]
+ mov r2, #0x1
+ cmp r1, #0x0
+ beq _0201D736
+ mov r1, #0x2
+ add r0, #0x3c
+ strb r1, [r0, #0x0]
+ b _0201D750
+_0201D736:
+ add r1, r0, #0x0
+ add r1, #0x3c
+ strb r2, [r1, #0x0]
+ ldr r1, [r0, #0x44]
+ cmp r1, #0x0
+ bne _0201D74A
+ bl FUN_0201D754
+ add r2, r0, #0x0
+ b _0201D750
+_0201D74A:
+ bl FUN_0201D788
+ add r2, r0, #0x0
+_0201D750:
+ add r0, r2, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_0201D754
+FUN_0201D754: ; 0x0201D754
+ push {r3-r5, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r1, [r5, #0x4]
+ ldr r0, [r0, #0x10]
+ add r2, sp, #0x4
+ add r3, sp, #0x0
+ bl FUN_0201DF44
+ add r4, r0, #0x0
+ beq _0201D780
+ ldr r1, [sp, #0x4]
+ ldr r2, [sp, #0x0]
+ add r0, r5, #0x0
+ bl FUN_0201D858
+ ldr r0, [r5, #0x0]
+ ldr r1, [r5, #0x4]
+ ldr r0, [r0, #0x10]
+ bl FUN_0201DF94
+_0201D780:
+ add r0, r4, #0x0
+ add sp, #0x8
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201D788
+FUN_0201D788: ; 0x0201D788
+ push {r4, lr}
+ sub sp, #0x18
+ add r4, r0, #0x0
+ add r0, sp, #0xc
+ str r0, [sp, #0x0]
+ add r0, sp, #0x8
+ str r0, [sp, #0x4]
+ ldr r3, [r4, #0x0]
+ ldr r0, [r4, #0x4]
+ ldr r3, [r3, #0x10]
+ add r1, sp, #0x14
+ add r2, sp, #0x10
+ bl FUN_0201D86C
+ cmp r0, #0x0
+ bne _0201D7AE
+ add sp, #0x18
+ mov r0, #0x0
+ pop {r4, pc}
+_0201D7AE:
+ ldr r1, [sp, #0x14]
+ ldr r2, [sp, #0x10]
+ add r0, r4, #0x0
+ bl FUN_0201D918
+ mov r0, #0x1
+ str r0, [r4, #0x48]
+ ldr r0, [sp, #0xc]
+ str r0, [r4, #0x4c]
+ ldr r0, [sp, #0x8]
+ str r0, [r4, #0x50]
+ add r0, r4, #0x0
+ bl FUN_0201D9B0
+ ldr r0, [sp, #0x8]
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x4]
+ ldr r1, [sp, #0x14]
+ ldr r2, [sp, #0x10]
+ ldr r3, [sp, #0xc]
+ bl FUN_0201D948
+ mov r0, #0x1
+ add sp, #0x18
+ pop {r4, pc}
+
+ thumb_func_start FUN_0201D7E0
+FUN_0201D7E0: ; 0x0201D7E0
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x48]
+ cmp r1, #0x0
+ beq _0201D7EE
+ bl FUN_0201DE4C
+_0201D7EE:
+ add r0, r4, #0x0
+ bl FUN_0201D690
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201D7F8
+FUN_0201D7F8: ; 0x0201D7F8
+ push {r4-r5}
+ ldr r2, _0201D82C ; =0x021C5994
+ mov r1, #0x0
+ ldr r5, [r2, #0x0]
+ ldr r2, [r5, #0x4]
+ cmp r2, #0x0
+ ble _0201D824
+ ldr r2, [r5, #0x0]
+ add r4, r2, #0x0
+_0201D80A:
+ ldr r3, [r4, #0xc]
+ cmp r0, r3
+ bne _0201D81A
+ mov r0, #0x54
+ mul r0, r1
+ add r0, r2, r0
+ pop {r4-r5}
+ bx lr
+_0201D81A:
+ ldr r3, [r5, #0x4]
+ add r1, r1, #0x1
+ add r4, #0x54
+ cmp r1, r3
+ blt _0201D80A
+_0201D824:
+ mov r0, #0x0
+ pop {r4-r5}
+ bx lr
+ nop
+_0201D82C: .word 0x021C5994
+
+ thumb_func_start FUN_0201D830
+FUN_0201D830: ; 0x0201D830
+ cmp r1, #0x1
+ bne _0201D83C
+ mov r1, #0x1
+ lsl r1, r1, #0x1a
+ ldr r2, [r1, #0x0]
+ b _0201D840
+_0201D83C:
+ ldr r1, _0201D850 ; =0x04001000
+ ldr r2, [r1, #0x0]
+_0201D840:
+ ldr r1, _0201D854 ; =0x00300010
+ and r2, r1
+ ldr r1, [r0, #0x0]
+ str r2, [r1, #0x8]
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x8]
+ bx lr
+ nop
+_0201D850: .word 0x04001000
+_0201D854: .word 0x00300010
+
+ thumb_func_start FUN_0201D858
+FUN_0201D858: ; 0x0201D858
+ push {r3, lr}
+ str r1, [r0, #0x34]
+ str r2, [r0, #0x38]
+ ldrb r1, [r0, #0x8]
+ cmp r1, #0x0
+ bne _0201D868
+ bl FUN_0201D9B0
+_0201D868:
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201D86C
+FUN_0201D86C: ; 0x0201D86C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x1c]
+ add r6, r2, #0x0
+ str r0, [sp, #0x1c]
+ mov r2, #0x1
+ add r0, r5, #0x0
+ add r4, r1, #0x0
+ str r3, [sp, #0x0]
+ ldr r7, [sp, #0x18]
+ tst r0, r2
+ beq _0201D8C4
+ ldr r1, _0201D914 ; =0x021C5994
+ add r0, r3, #0x0
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0x2c]
+ bl FUN_0201DF10
+ ldr r1, _0201D914 ; =0x021C5994
+ str r0, [r7, #0x0]
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0x2c]
+ bl FUN_0201DF2C
+ ldr r1, _0201D914 ; =0x021C5994
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0x34]
+ bl FUN_0201DD74
+ mov r1, #0x0
+ mvn r1, r1
+ str r0, [r4, #0x0]
+ cmp r0, r1
+ bne _0201D8B8
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0201D8B8:
+ ldr r1, _0201D914 ; =0x021C5994
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0x2c]
+ bl FUN_0201DF3C
+ str r0, [r4, #0x0]
+_0201D8C4:
+ mov r0, #0x2
+ tst r0, r5
+ beq _0201D90E
+ ldr r1, _0201D914 ; =0x021C5994
+ ldr r0, [sp, #0x0]
+ ldr r1, [r1, #0x0]
+ mov r2, #0x1
+ ldr r1, [r1, #0x30]
+ bl FUN_0201DF10
+ ldr r1, [sp, #0x1c]
+ str r0, [r1, #0x0]
+ ldr r1, _0201D914 ; =0x021C5994
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0x30]
+ bl FUN_0201DF2C
+ ldr r1, _0201D914 ; =0x021C5994
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0x38]
+ bl FUN_0201DD74
+ mov r1, #0x0
+ mvn r1, r1
+ str r0, [r6, #0x0]
+ cmp r0, r1
+ bne _0201D902
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0201D902:
+ ldr r1, _0201D914 ; =0x021C5994
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0x30]
+ bl FUN_0201DF3C
+ str r0, [r6, #0x0]
+_0201D90E:
+ mov r0, #0x1
+ pop {r3-r7, pc}
+ nop
+_0201D914: .word 0x021C5994
+
+ thumb_func_start FUN_0201D918
+FUN_0201D918: ; 0x0201D918
+ push {r3-r4}
+ ldr r4, [r0, #0x4]
+ mov r3, #0x1
+ tst r3, r4
+ beq _0201D92C
+ ldr r3, _0201D944 ; =0x021C5994
+ ldr r3, [r3, #0x0]
+ ldr r3, [r3, #0x1c]
+ add r1, r1, r3
+ str r1, [r0, #0x34]
+_0201D92C:
+ ldr r3, [r0, #0x4]
+ mov r1, #0x2
+ tst r1, r3
+ beq _0201D93E
+ ldr r1, _0201D944 ; =0x021C5994
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0x20]
+ add r1, r2, r1
+ str r1, [r0, #0x38]
+_0201D93E:
+ pop {r3-r4}
+ bx lr
+ nop
+_0201D944: .word 0x021C5994
+
+ thumb_func_start FUN_0201D948
+FUN_0201D948: ; 0x0201D948
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ mov r0, #0x1
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ tst r0, r5
+ beq _0201D97C
+ ldr r1, _0201D9AC ; =0x021C5994
+ add r0, r3, #0x0
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0x2c]
+ bl FUN_0201DF2C
+ ldr r1, _0201D9AC ; =0x021C5994
+ add r7, r0, #0x0
+ ldr r1, [r1, #0x0]
+ add r0, r4, #0x0
+ ldr r1, [r1, #0x2c]
+ bl FUN_0201DF2C
+ ldr r2, _0201D9AC ; =0x021C5994
+ add r1, r7, #0x0
+ ldr r2, [r2, #0x0]
+ ldr r2, [r2, #0x34]
+ bl FUN_0201DD18
+_0201D97C:
+ mov r0, #0x2
+ tst r0, r5
+ beq _0201D9A8
+ ldr r1, _0201D9AC ; =0x021C5994
+ ldr r0, [sp, #0x18]
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0x30]
+ bl FUN_0201DF2C
+ ldr r1, _0201D9AC ; =0x021C5994
+ add r4, r0, #0x0
+ ldr r1, [r1, #0x0]
+ add r0, r6, #0x0
+ ldr r1, [r1, #0x30]
+ bl FUN_0201DF2C
+ ldr r2, _0201D9AC ; =0x021C5994
+ add r1, r4, #0x0
+ ldr r2, [r2, #0x0]
+ ldr r2, [r2, #0x38]
+ bl FUN_0201DD18
+_0201D9A8:
+ pop {r3-r7, pc}
+ nop
+_0201D9AC: .word 0x021C5994
+
+ thumb_func_start FUN_0201D9B0
+FUN_0201D9B0: ; 0x0201D9B0
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x10
+ bl FUN_020B1A24
+ ldr r1, [r4, #0x4]
+ cmp r1, #0x3
+ beq _0201D9C8
+ add r0, r4, #0x0
+ bl FUN_0201D9DC
+ pop {r4, pc}
+_0201D9C8:
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_0201D9DC
+ add r0, r4, #0x0
+ mov r1, #0x2
+ bl FUN_0201D9DC
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201D9DC
+FUN_0201D9DC: ; 0x0201D9DC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r2, [r5, #0x40]
+ add r4, r1, #0x0
+ cmp r2, #0x0
+ beq _0201D9EE
+ bl FUN_0201D830
+ b _0201D9F0
+_0201D9EE:
+ add r0, r4, #0x0
+_0201D9F0:
+ cmp r4, #0x1
+ bne _0201D9FE
+ mov r2, #0x1
+ lsl r2, r2, #0x1a
+ ldr r1, [r5, #0x34]
+ ldr r2, [r2, #0x0]
+ b _0201DA04
+_0201D9FE:
+ ldr r2, _0201DA34 ; =0x04001000
+ ldr r1, [r5, #0x38]
+ ldr r2, [r2, #0x0]
+_0201DA04:
+ cmp r0, #0x0
+ ldr r0, [r5, #0x0]
+ bne _0201DA16
+ add r5, #0x10
+ add r2, r4, #0x0
+ add r3, r5, #0x0
+ bl FUN_020B1528
+ b _0201DA20
+_0201DA16:
+ add r5, #0x10
+ add r2, r4, #0x0
+ add r3, r5, #0x0
+ bl FUN_020B1768
+_0201DA20:
+ cmp r4, #0x1
+ bne _0201DA2C
+ mov r0, #0x1
+ lsl r0, r0, #0x1a
+ ldr r0, [r0, #0x0]
+ pop {r3-r5, pc}
+_0201DA2C:
+ ldr r0, _0201DA34 ; =0x04001000
+ ldr r0, [r0, #0x0]
+ pop {r3-r5, pc}
+ nop
+_0201DA34: .word 0x04001000
+
+ thumb_func_start FUN_0201DA38
+FUN_0201DA38: ; 0x0201DA38
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x10
+ bl FUN_020B1A24
+ ldr r1, [r4, #0x4]
+ cmp r1, #0x3
+ beq _0201DA50
+ add r0, r4, #0x0
+ bl FUN_0201DA64
+ pop {r4, pc}
+_0201DA50:
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_0201DA64
+ add r0, r4, #0x0
+ mov r1, #0x2
+ bl FUN_0201DA64
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201DA64
+FUN_0201DA64: ; 0x0201DA64
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r2, [r5, #0x40]
+ add r4, r1, #0x0
+ cmp r2, #0x0
+ beq _0201DA74
+ bl FUN_0201D830
+_0201DA74:
+ cmp r4, #0x1
+ bne _0201DA82
+ mov r0, #0x1
+ lsl r0, r0, #0x1a
+ ldr r1, [r5, #0x34]
+ ldr r0, [r0, #0x0]
+ b _0201DA88
+_0201DA82:
+ ldr r0, _0201DAA8 ; =0x04001000
+ ldr r1, [r5, #0x38]
+ ldr r0, [r0, #0x0]
+_0201DA88:
+ ldr r0, [r5, #0x0]
+ add r5, #0x10
+ add r2, r4, #0x0
+ add r3, r5, #0x0
+ bl FUN_020B1340
+ cmp r4, #0x1
+ bne _0201DAA0
+ mov r0, #0x1
+ lsl r0, r0, #0x1a
+ ldr r0, [r0, #0x0]
+ pop {r3-r5, pc}
+_0201DAA0:
+ ldr r0, _0201DAA8 ; =0x04001000
+ ldr r0, [r0, #0x0]
+ pop {r3-r5, pc}
+ nop
+_0201DAA8: .word 0x04001000
+
+ thumb_func_start FUN_0201DAAC
+FUN_0201DAAC: ; 0x0201DAAC
+ push {r3-r4}
+ ldr r1, _0201DAE4 ; =0x021C5994
+ mov r0, #0x0
+ ldr r4, [r1, #0x0]
+ ldr r1, [r4, #0x4]
+ cmp r1, #0x0
+ ble _0201DADC
+ ldr r1, [r4, #0x0]
+ add r3, r1, #0x0
+_0201DABE:
+ add r2, r3, #0x0
+ add r2, #0x3c
+ ldrb r2, [r2, #0x0]
+ cmp r2, #0x0
+ bne _0201DAD2
+ mov r2, #0x54
+ mul r2, r0
+ add r0, r1, r2
+ pop {r3-r4}
+ bx lr
+_0201DAD2:
+ ldr r2, [r4, #0x4]
+ add r0, r0, #0x1
+ add r3, #0x54
+ cmp r0, r2
+ blt _0201DABE
+_0201DADC:
+ mov r0, #0x0
+ pop {r3-r4}
+ bx lr
+ nop
+_0201DAE4: .word 0x021C5994
+
+ thumb_func_start FUN_0201DAE8
+FUN_0201DAE8: ; 0x0201DAE8
+ push {r3, lr}
+ bl GX_GetBankForOBJ
+ cmp r0, #0x30
+ bgt _0201DB18
+ bge _0201DB60
+ cmp r0, #0x10
+ bgt _0201DB12
+ bge _0201DB54
+ cmp r0, #0x3
+ bhi _0201DB90
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0201DB0A: ; jump table (using 16-bit offset)
+ .short _0201DB32 - _0201DB0A - 2; case 0
+ .short _0201DB78 - _0201DB0A - 2; case 1
+ .short _0201DB78 - _0201DB0A - 2; case 2
+ .short _0201DB84 - _0201DB0A - 2; case 3
+_0201DB12:
+ cmp r0, #0x20
+ beq _0201DB3C
+ b _0201DB90
+_0201DB18:
+ cmp r0, #0x50
+ bgt _0201DB24
+ bge _0201DB60
+ cmp r0, #0x40
+ beq _0201DB3C
+ b _0201DB90
+_0201DB24:
+ cmp r0, #0x60
+ bgt _0201DB2C
+ beq _0201DB48
+ b _0201DB90
+_0201DB2C:
+ cmp r0, #0x70
+ beq _0201DB6C
+ b _0201DB90
+_0201DB32:
+ ldr r0, _0201DC38 ; =0x021C5994
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ str r1, [r0, #0x14]
+ b _0201DB98
+_0201DB3C:
+ ldr r0, _0201DC38 ; =0x021C5994
+ mov r1, #0x1
+ ldr r0, [r0, #0x0]
+ lsl r1, r1, #0xe
+ str r1, [r0, #0x14]
+ b _0201DB98
+_0201DB48:
+ ldr r0, _0201DC38 ; =0x021C5994
+ mov r1, #0x2
+ ldr r0, [r0, #0x0]
+ lsl r1, r1, #0xe
+ str r1, [r0, #0x14]
+ b _0201DB98
+_0201DB54:
+ ldr r0, _0201DC38 ; =0x021C5994
+ mov r1, #0x1
+ ldr r0, [r0, #0x0]
+ lsl r1, r1, #0x10
+ str r1, [r0, #0x14]
+ b _0201DB98
+_0201DB60:
+ ldr r0, _0201DC38 ; =0x021C5994
+ mov r1, #0x5
+ ldr r0, [r0, #0x0]
+ lsl r1, r1, #0xe
+ str r1, [r0, #0x14]
+ b _0201DB98
+_0201DB6C:
+ ldr r0, _0201DC38 ; =0x021C5994
+ mov r1, #0x6
+ ldr r0, [r0, #0x0]
+ lsl r1, r1, #0xe
+ str r1, [r0, #0x14]
+ b _0201DB98
+_0201DB78:
+ ldr r0, _0201DC38 ; =0x021C5994
+ mov r1, #0x2
+ ldr r0, [r0, #0x0]
+ lsl r1, r1, #0x10
+ str r1, [r0, #0x14]
+ b _0201DB98
+_0201DB84:
+ ldr r0, _0201DC38 ; =0x021C5994
+ mov r1, #0x1
+ ldr r0, [r0, #0x0]
+ lsl r1, r1, #0x12
+ str r1, [r0, #0x14]
+ b _0201DB98
+_0201DB90:
+ ldr r0, _0201DC38 ; =0x021C5994
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ str r1, [r0, #0x14]
+_0201DB98:
+ bl GX_GetBankForSubOBJ
+ cmp r0, #0x0
+ beq _0201DBAE
+ cmp r0, #0x8
+ beq _0201DBC2
+ mov r1, #0x1
+ lsl r1, r1, #0x8
+ cmp r0, r1
+ beq _0201DBB8
+ b _0201DBCE
+_0201DBAE:
+ ldr r0, _0201DC38 ; =0x021C5994
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ str r1, [r0, #0x18]
+ b _0201DBD6
+_0201DBB8:
+ ldr r0, _0201DC38 ; =0x021C5994
+ lsl r1, r1, #0x6
+ ldr r0, [r0, #0x0]
+ str r1, [r0, #0x18]
+ b _0201DBD6
+_0201DBC2:
+ ldr r0, _0201DC38 ; =0x021C5994
+ mov r1, #0x2
+ ldr r0, [r0, #0x0]
+ lsl r1, r1, #0x10
+ str r1, [r0, #0x18]
+ b _0201DBD6
+_0201DBCE:
+ ldr r0, _0201DC38 ; =0x021C5994
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ str r1, [r0, #0x18]
+_0201DBD6:
+ ldr r0, _0201DC38 ; =0x021C5994
+ ldr r1, [r0, #0x0]
+ ldr r0, [r1, #0x24]
+ ldr r1, [r1, #0x2c]
+ bl FUN_0201DF3C
+ ldr r1, _0201DC38 ; =0x021C5994
+ ldr r3, [r1, #0x0]
+ ldr r2, [r3, #0x14]
+ sub r0, r2, r0
+ str r0, [r3, #0x1c]
+ ldr r1, [r1, #0x0]
+ ldr r0, [r1, #0x28]
+ ldr r1, [r1, #0x30]
+ bl FUN_0201DF3C
+ ldr r1, _0201DC38 ; =0x021C5994
+ ldr r3, [r1, #0x0]
+ ldr r2, [r3, #0x18]
+ sub r0, r2, r0
+ str r0, [r3, #0x20]
+ ldr r1, [r1, #0x0]
+ mov r2, #0x0
+ ldr r0, [r1, #0x1c]
+ cmp r0, #0x0
+ blt _0201DC12
+ ldr r0, [r1, #0x20]
+ cmp r0, #0x0
+ blt _0201DC12
+ mov r2, #0x1
+_0201DC12:
+ cmp r2, #0x0
+ bne _0201DC1A
+ bl ErrorHandling
+_0201DC1A:
+ ldr r0, _0201DC38 ; =0x021C5994
+ mov r2, #0x0
+ ldr r1, [r0, #0x0]
+ ldr r0, [r1, #0x1c]
+ cmp r0, #0x0
+ blt _0201DC2E
+ ldr r0, [r1, #0x20]
+ cmp r0, #0x0
+ blt _0201DC2E
+ mov r2, #0x1
+_0201DC2E:
+ cmp r2, #0x0
+ bne _0201DC36
+ bl ErrorHandling
+_0201DC36:
+ pop {r3, pc}
+ .balign 4
+_0201DC38: .word 0x021C5994
+
+ thumb_func_start FUN_0201DC3C
+FUN_0201DC3C: ; 0x0201DC3C
+ push {r3, lr}
+ ldr r0, _0201DC54 ; =0x021C5994
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x34]
+ bl FUN_0201DD00
+ ldr r0, _0201DC54 ; =0x021C5994
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x38]
+ bl FUN_0201DD00
+ pop {r3, pc}
+ .balign 4
+_0201DC54: .word 0x021C5994
+
+ thumb_func_start FUN_0201DC58
+FUN_0201DC58: ; 0x0201DC58
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, _0201DCBC ; =0x021C5994
+ add r4, r1, #0x0
+ ldr r1, [r0, #0x0]
+ add r6, r2, #0x0
+ str r5, [r1, #0x24]
+ ldr r1, [r0, #0x0]
+ str r4, [r1, #0x28]
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x34]
+ cmp r0, #0x0
+ beq _0201DC76
+ bl FUN_02016A18
+_0201DC76:
+ ldr r0, _0201DCBC ; =0x021C5994
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x38]
+ cmp r0, #0x0
+ beq _0201DC84
+ bl FUN_02016A18
+_0201DC84:
+ ldr r0, _0201DCBC ; =0x021C5994
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x24]
+ cmp r0, #0x0
+ beq _0201DC9C
+ add r0, r6, #0x0
+ lsr r1, r5, #0x3
+ bl FUN_02016998
+ ldr r1, _0201DCBC ; =0x021C5994
+ ldr r1, [r1, #0x0]
+ str r0, [r1, #0x34]
+_0201DC9C:
+ ldr r0, _0201DCBC ; =0x021C5994
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x28]
+ cmp r0, #0x0
+ beq _0201DCB4
+ add r0, r6, #0x0
+ lsr r1, r4, #0x3
+ bl FUN_02016998
+ ldr r1, _0201DCBC ; =0x021C5994
+ ldr r1, [r1, #0x0]
+ str r0, [r1, #0x38]
+_0201DCB4:
+ bl FUN_0201DC3C
+ pop {r4-r6, pc}
+ nop
+_0201DCBC: .word 0x021C5994
+
+ thumb_func_start FUN_0201DCC0
+FUN_0201DCC0: ; 0x0201DCC0
+ push {r3, lr}
+ cmp r0, #0x0
+ beq _0201DCE2
+ ldr r1, _0201DCE4 ; =0x021C5994
+ ldr r2, [r1, #0x0]
+ ldr r1, [r2, #0x34]
+ cmp r0, r1
+ bne _0201DCDA
+ mov r1, #0x0
+ str r1, [r2, #0x24]
+ bl FUN_02016A18
+ pop {r3, pc}
+_0201DCDA:
+ mov r1, #0x0
+ str r1, [r2, #0x28]
+ bl FUN_02016A18
+_0201DCE2:
+ pop {r3, pc}
+ .balign 4
+_0201DCE4: .word 0x021C5994
+
+ thumb_func_start FUN_0201DCE8
+FUN_0201DCE8: ; 0x0201DCE8
+ ldr r1, _0201DCFC ; =0x021C5994
+ ldr r2, [r1, #0x0]
+ ldr r1, [r2, #0x34]
+ cmp r0, r1
+ bne _0201DCF6
+ ldr r0, [r2, #0x24]
+ bx lr
+_0201DCF6:
+ ldr r0, [r2, #0x28]
+ bx lr
+ nop
+_0201DCFC: .word 0x021C5994
+
+ thumb_func_start FUN_0201DD00
+FUN_0201DD00: ; 0x0201DD00
+ push {r4, lr}
+ add r4, r0, #0x0
+ beq _0201DD16
+ bl FUN_0201DCE8
+ add r2, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x0
+ lsr r2, r2, #0x3
+ bl memset
+_0201DD16:
+ pop {r4, pc}
+
+ thumb_func_start FUN_0201DD18
+FUN_0201DD18: ; 0x0201DD18
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r4, r2, #0x0
+ beq _0201DD6E
+ add r0, r4, #0x0
+ bl FUN_0201DCE8
+ add r6, r5, r6
+ add r7, r0, #0x0
+ cmp r5, r6
+ bhs _0201DD6E
+_0201DD32:
+ cmp r5, r7
+ bhs _0201DD6E
+ add r0, r5, #0x0
+ add r1, sp, #0x4
+ add r2, sp, #0x0
+ bl FUN_0201DFE4
+ add r0, sp, #0x0
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x1
+ lsl r0, r1
+ ldr r1, [sp, #0x4]
+ ldrb r1, [r4, r1]
+ tst r0, r1
+ beq _0201DD54
+ bl ErrorHandling
+_0201DD54:
+ add r2, sp, #0x0
+ ldrb r3, [r2, #0x0]
+ ldr r1, [sp, #0x4]
+ mov r2, #0x1
+ lsl r2, r3
+ lsl r2, r2, #0x18
+ ldrb r0, [r4, r1]
+ lsr r2, r2, #0x18
+ add r5, r5, #0x1
+ orr r0, r2
+ strb r0, [r4, r1]
+ cmp r5, r6
+ blo _0201DD32
+_0201DD6E:
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201DD74
+FUN_0201DD74: ; 0x0201DD74
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r7, r0, #0x0
+ str r1, [sp, #0x0]
+ cmp r1, #0x0
+ beq _0201DDF2
+ add r0, r1, #0x0
+ bl FUN_0201DCE8
+ mov r6, #0x0
+ str r0, [sp, #0x4]
+ cmp r0, #0x0
+ bls _0201DDF2
+_0201DD8E:
+ add r0, r6, #0x0
+ add r1, sp, #0xc
+ add r2, sp, #0x8
+ bl FUN_0201DFE4
+ add r0, sp, #0x8
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x1
+ mov r4, #0x0
+ lsl r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ b _0201DDD0
+_0201DDA8:
+ add r5, r6, r4
+ add r0, r5, #0x0
+ add r1, sp, #0xc
+ add r2, sp, #0x8
+ bl FUN_0201DFE4
+ add r0, sp, #0x8
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x1
+ lsl r0, r1
+ lsl r0, r0, #0x18
+ ldr r1, [sp, #0x4]
+ lsr r0, r0, #0x18
+ cmp r5, r1
+ blo _0201DDCE
+ mov r0, #0x0
+ add sp, #0x10
+ mvn r0, r0
+ pop {r3-r7, pc}
+_0201DDCE:
+ add r4, r4, #0x1
+_0201DDD0:
+ ldr r2, [sp, #0xc]
+ ldr r1, [sp, #0x0]
+ ldrb r1, [r1, r2]
+ tst r0, r1
+ bne _0201DDDE
+ cmp r4, r7
+ bls _0201DDA8
+_0201DDDE:
+ cmp r4, r7
+ bls _0201DDE8
+ add sp, #0x10
+ add r0, r6, #0x0
+ pop {r3-r7, pc}
+_0201DDE8:
+ add r0, r6, r4
+ add r6, r0, #0x1
+ ldr r0, [sp, #0x4]
+ cmp r6, r0
+ blo _0201DD8E
+_0201DDF2:
+ mov r0, #0x0
+ mvn r0, r0
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201DDFC
+FUN_0201DDFC: ; 0x0201DDFC
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r4, r2, #0x0
+ beq _0201DE46
+ add r6, r5, r1
+ cmp r5, r6
+ bhs _0201DE46
+ add r7, sp, #0x0
+_0201DE0E:
+ add r0, r5, #0x0
+ add r1, sp, #0x4
+ add r2, sp, #0x0
+ bl FUN_0201DFE4
+ ldrb r1, [r7, #0x0]
+ mov r0, #0x1
+ lsl r0, r1
+ ldr r1, [sp, #0x4]
+ ldrb r1, [r4, r1]
+ tst r0, r1
+ bne _0201DE2A
+ bl ErrorHandling
+_0201DE2A:
+ ldrb r0, [r7, #0x0]
+ mov r1, #0x1
+ ldr r3, [sp, #0x4]
+ lsl r1, r0
+ mov r0, #0xff
+ eor r0, r1
+ lsl r0, r0, #0x18
+ ldrb r2, [r4, r3]
+ lsr r0, r0, #0x18
+ add r5, r5, #0x1
+ and r0, r2
+ strb r0, [r4, r3]
+ cmp r5, r6
+ blo _0201DE0E
+_0201DE46:
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201DE4C
+FUN_0201DE4C: ; 0x0201DE4C
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x4]
+ mov r1, #0x1
+ tst r0, r1
+ beq _0201DE8A
+ add r0, r4, #0x0
+ add r0, #0x10
+ bl FUN_020B1A14
+ ldr r1, _0201DECC ; =0x021C5994
+ ldr r2, [r1, #0x0]
+ ldr r1, [r2, #0x1c]
+ sub r0, r0, r1
+ ldr r1, [r2, #0x2c]
+ bl FUN_0201DF2C
+ ldr r1, _0201DECC ; =0x021C5994
+ add r5, r0, #0x0
+ ldr r1, [r1, #0x0]
+ ldr r0, [r4, #0x4c]
+ ldr r1, [r1, #0x2c]
+ bl FUN_0201DF2C
+ ldr r2, _0201DECC ; =0x021C5994
+ add r1, r0, #0x0
+ ldr r2, [r2, #0x0]
+ add r0, r5, #0x0
+ ldr r2, [r2, #0x34]
+ bl FUN_0201DDFC
+_0201DE8A:
+ ldr r0, [r4, #0x4]
+ mov r1, #0x2
+ tst r0, r1
+ beq _0201DEC4
+ add r0, r4, #0x0
+ add r0, #0x10
+ bl FUN_020B1A14
+ ldr r1, _0201DECC ; =0x021C5994
+ ldr r2, [r1, #0x0]
+ ldr r1, [r2, #0x20]
+ sub r0, r0, r1
+ ldr r1, [r2, #0x30]
+ bl FUN_0201DF2C
+ ldr r1, _0201DECC ; =0x021C5994
+ add r5, r0, #0x0
+ ldr r1, [r1, #0x0]
+ ldr r0, [r4, #0x50]
+ ldr r1, [r1, #0x30]
+ bl FUN_0201DF2C
+ ldr r2, _0201DECC ; =0x021C5994
+ add r1, r0, #0x0
+ ldr r2, [r2, #0x0]
+ add r0, r5, #0x0
+ ldr r2, [r2, #0x38]
+ bl FUN_0201DDFC
+_0201DEC4:
+ mov r0, #0x0
+ str r0, [r4, #0x48]
+ pop {r3-r5, pc}
+ nop
+_0201DECC: .word 0x021C5994
+
+ thumb_func_start FUN_0201DED0
+FUN_0201DED0: ; 0x0201DED0
+ ldr r1, _0201DF04 ; =0x00100010
+ cmp r0, r1
+ bgt _0201DEDE
+ bge _0201DEF4
+ cmp r0, #0x10
+ beq _0201DEF0
+ b _0201DF00
+_0201DEDE:
+ ldr r1, _0201DF08 ; =0x00200010
+ cmp r0, r1
+ bgt _0201DEE8
+ beq _0201DEF8
+ b _0201DF00
+_0201DEE8:
+ ldr r1, _0201DF0C ; =0x00300010
+ cmp r0, r1
+ beq _0201DEFC
+ b _0201DF00
+_0201DEF0:
+ mov r0, #0x1
+ bx lr
+_0201DEF4:
+ mov r0, #0x2
+ bx lr
+_0201DEF8:
+ mov r0, #0x4
+ bx lr
+_0201DEFC:
+ mov r0, #0x8
+ bx lr
+_0201DF00:
+ mov r0, #0x1
+ bx lr
+ .balign 4
+_0201DF04: .word 0x00100010
+_0201DF08: .word 0x00200010
+_0201DF0C: .word 0x00300010
+
+ thumb_func_start FUN_0201DF10
+FUN_0201DF10: ; 0x0201DF10
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl _s32_div_f
+ cmp r1, #0x0
+ beq _0201DF28
+ sub r5, r5, r1
+ cmp r6, #0x1
+ bne _0201DF28
+ add r5, r5, r4
+_0201DF28:
+ add r0, r5, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0201DF2C
+FUN_0201DF2C: ; 0x0201DF2C
+ asr r2, r0, #0x4
+ lsr r2, r2, #0x1b
+ add r2, r0, r2
+ ldr r3, _0201DF38 ; =_s32_div_f
+ asr r0, r2, #0x5
+ bx r3
+ .balign 4
+_0201DF38: .word _s32_div_f
+
+ thumb_func_start FUN_0201DF3C
+FUN_0201DF3C: ; 0x0201DF3C
+ mul r1, r0
+ lsl r0, r1, #0x5
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201DF44
+FUN_0201DF44: ; 0x0201DF44
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r1, r2, #0x0
+ mov r0, #0x1
+ add r2, r4, #0x0
+ add r7, r3, #0x0
+ tst r2, r0
+ beq _0201DF6E
+ ldr r2, _0201DF90 ; =0x021C5994
+ ldr r2, [r2, #0x0]
+ ldr r6, [r2, #0xc]
+ ldr r2, [r2, #0x1c]
+ add r3, r6, r5
+ cmp r3, r2
+ bls _0201DF6C
+ bl ErrorHandling
+ mov r0, #0x0
+ b _0201DF6E
+_0201DF6C:
+ str r6, [r1, #0x0]
+_0201DF6E:
+ mov r1, #0x2
+ tst r1, r4
+ beq _0201DF8C
+ ldr r1, _0201DF90 ; =0x021C5994
+ ldr r1, [r1, #0x0]
+ ldr r3, [r1, #0x10]
+ ldr r1, [r1, #0x20]
+ add r2, r3, r5
+ cmp r2, r1
+ bls _0201DF8A
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0201DF8A:
+ str r3, [r7, #0x0]
+_0201DF8C:
+ pop {r3-r7, pc}
+ nop
+_0201DF90: .word 0x021C5994
+
+ thumb_func_start FUN_0201DF94
+FUN_0201DF94: ; 0x0201DF94
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ mov r2, #0x1
+ add r0, r4, #0x0
+ tst r0, r2
+ beq _0201DFBC
+ ldr r0, _0201DFE0 ; =0x021C5994
+ ldr r3, [r0, #0x0]
+ ldr r1, [r3, #0xc]
+ add r1, r1, r5
+ str r1, [r3, #0xc]
+ ldr r1, [r0, #0x0]
+ ldr r0, [r1, #0xc]
+ ldr r1, [r1, #0x2c]
+ bl FUN_0201DF10
+ ldr r1, _0201DFE0 ; =0x021C5994
+ ldr r1, [r1, #0x0]
+ str r0, [r1, #0xc]
+_0201DFBC:
+ mov r0, #0x2
+ tst r0, r4
+ beq _0201DFDE
+ ldr r0, _0201DFE0 ; =0x021C5994
+ ldr r2, [r0, #0x0]
+ ldr r1, [r2, #0x10]
+ add r1, r1, r5
+ str r1, [r2, #0x10]
+ ldr r1, [r0, #0x0]
+ mov r2, #0x1
+ ldr r0, [r1, #0x10]
+ ldr r1, [r1, #0x30]
+ bl FUN_0201DF10
+ ldr r1, _0201DFE0 ; =0x021C5994
+ ldr r1, [r1, #0x0]
+ str r0, [r1, #0x10]
+_0201DFDE:
+ pop {r3-r5, pc}
+ .balign 4
+_0201DFE0: .word 0x021C5994
+
+ thumb_func_start FUN_0201DFE4
+FUN_0201DFE4: ; 0x0201DFE4
+ asr r3, r0, #0x3
+ str r3, [r1, #0x0]
+ mov r1, #0x7
+ and r0, r1
+ strb r0, [r2, #0x0]
+ bx lr
+
+ thumb_func_start FUN_0201DFF0
+FUN_0201DFF0: ; 0x0201DFF0
+ push {r3-r4}
+ sub r0, r1, r0
+ ldr r4, [sp, #0x8]
+ str r0, [r3, #0x0]
+ bpl _0201E006
+ add r0, r2, r0
+ str r0, [r4, #0x0]
+ mov r0, #0x0
+ str r0, [r3, #0x0]
+ pop {r3-r4}
+ bx lr
+_0201E006:
+ str r2, [r4, #0x0]
+ pop {r3-r4}
+ bx lr
+
+ thumb_func_start FUN_0201E00C
+FUN_0201E00C: ; 0x0201E00C
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ ldr r0, _0201E064 ; =0x021C5998
+ add r4, r1, #0x0
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0201E060
+ add r0, r4, #0x0
+ mov r1, #0x28
+ bl FUN_02016998
+ add r1, r0, #0x0
+ ldr r0, _0201E064 ; =0x021C5998
+ mov r2, #0x28
+ str r1, [r0, #0x0]
+ mov r0, #0x0
+ bl MIi_CpuClear32
+ ldr r0, _0201E064 ; =0x021C5998
+ mov r1, #0x30
+ ldr r0, [r0, #0x0]
+ mul r1, r6
+ str r6, [r0, #0x4]
+ add r0, r4, #0x0
+ bl FUN_02016998
+ ldr r7, _0201E064 ; =0x021C5998
+ mov r4, #0x0
+ ldr r1, [r7, #0x0]
+ cmp r6, #0x0
+ str r0, [r1, #0x0]
+ ble _0201E060
+ add r5, r4, #0x0
+_0201E04E:
+ ldr r0, [r7, #0x0]
+ ldr r0, [r0, #0x0]
+ add r0, r0, r5
+ bl FUN_0201E2F8
+ add r4, r4, #0x1
+ add r5, #0x30
+ cmp r4, r6
+ blt _0201E04E
+_0201E060:
+ pop {r3-r7, pc}
+ nop
+_0201E064: .word 0x021C5998
+
+ thumb_func_start FUN_0201E068
+FUN_0201E068: ; 0x0201E068
+ cmp r1, #0x1
+ bne _0201E078
+ ldr r1, _0201E088 ; =0x021C5998
+ ldr r2, [r1, #0x0]
+ ldrh r1, [r2, #0x24]
+ orr r0, r1
+ strh r0, [r2, #0x24]
+ bx lr
+_0201E078:
+ cmp r1, #0x2
+ bne _0201E086
+ ldr r1, _0201E088 ; =0x021C5998
+ ldr r2, [r1, #0x0]
+ ldrh r1, [r2, #0x26]
+ orr r0, r1
+ strh r0, [r2, #0x26]
+_0201E086:
+ bx lr
+ .balign 4
+_0201E088: .word 0x021C5998
+
+ thumb_func_start FUN_0201E08C
+FUN_0201E08C: ; 0x0201E08C
+ push {r3, lr}
+ ldr r0, _0201E0B4 ; =0x021C5998
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0201E0B2
+ bl FUN_0201E1F0
+ ldr r0, _0201E0B4 ; =0x021C5998
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x0]
+ bl FUN_02016A18
+ ldr r0, _0201E0B4 ; =0x021C5998
+ ldr r0, [r0, #0x0]
+ bl FUN_02016A18
+ ldr r0, _0201E0B4 ; =0x021C5998
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+_0201E0B2:
+ pop {r3, pc}
+ .balign 4
+_0201E0B4: .word 0x021C5998
+
+ thumb_func_start FUN_0201E0B8
+FUN_0201E0B8: ; 0x0201E0B8
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201E0BC
+FUN_0201E0BC: ; 0x0201E0BC
+ push {r3, lr}
+ ldr r0, _0201E0E0 ; =0x021C5998
+ mov r2, #0x0
+ ldr r1, [r0, #0x0]
+ str r2, [r1, #0xc]
+ ldr r1, [r0, #0x0]
+ str r2, [r1, #0x10]
+ ldr r1, [r0, #0x0]
+ str r2, [r1, #0x14]
+ ldr r0, [r0, #0x0]
+ str r2, [r0, #0x18]
+ bl FUN_0201E464
+ ldr r0, _0201E0E0 ; =0x021C5998
+ ldr r0, [r0, #0x0]
+ bl FUN_0201E574
+ pop {r3, pc}
+ .balign 4
+_0201E0E0: .word 0x021C5998
+
+ thumb_func_start FUN_0201E0E4
+FUN_0201E0E4: ; 0x0201E0E4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_0201E428
+ add r4, r0, #0x0
+ bne _0201E0F8
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0201E0F8:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0201E2C4
+ cmp r0, #0x0
+ bne _0201E108
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0201E108:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0201E314
+ cmp r0, #0x0
+ bne _0201E11E
+ ldr r0, [r5, #0xc]
+ bl FUN_0201E1C8
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0201E11E:
+ add r0, r4, #0x0
+ bl FUN_0201E57C
+ mov r0, #0x1
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0201E128
+FUN_0201E128: ; 0x0201E128
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_0201E428
+ add r4, r0, #0x0
+ bne _0201E13C
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0201E13C:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0201E2C4
+ cmp r0, #0x0
+ bne _0201E14C
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0201E14C:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0201E36C
+ cmp r0, #0x0
+ bne _0201E162
+ ldr r0, [r5, #0xc]
+ bl FUN_0201E1C8
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0201E162:
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201E168
+FUN_0201E168: ; 0x0201E168
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r5, r1, #0x0
+ bne _0201E174
+ bl ErrorHandling
+_0201E174:
+ add r0, r4, #0x0
+ bl FUN_0201E3F0
+ add r4, r0, #0x0
+ bne _0201E182
+ bl ErrorHandling
+_0201E182:
+ str r5, [r4, #0x0]
+ ldr r1, [r4, #0x4]
+ mov r0, #0x1
+ tst r0, r1
+ beq _0201E19A
+ ldr r3, [r4, #0x8]
+ ldr r1, [r4, #0x24]
+ ldr r2, [r5, #0xc]
+ mov r0, #0xe
+ lsl r3, r3, #0x5
+ bl FUN_0201C2C8
+_0201E19A:
+ ldr r1, [r4, #0x4]
+ mov r0, #0x2
+ tst r0, r1
+ beq _0201E1B0
+ ldr r3, [r4, #0x8]
+ ldr r1, [r4, #0x28]
+ ldr r2, [r5, #0xc]
+ mov r0, #0x1e
+ lsl r3, r3, #0x5
+ bl FUN_0201C2C8
+_0201E1B0:
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201E1B4
+FUN_0201E1B4: ; 0x0201E1B4
+ push {r3, lr}
+ bl FUN_0201E3F0
+ cmp r0, #0x0
+ beq _0201E1C2
+ mov r0, #0x1
+ pop {r3, pc}
+_0201E1C2:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201E1C8
+FUN_0201E1C8: ; 0x0201E1C8
+ push {r4, lr}
+ bl FUN_0201E3F0
+ add r4, r0, #0x0
+ bne _0201E1D6
+ bl ErrorHandling
+_0201E1D6:
+ add r0, r4, #0x0
+ add r0, #0x2c
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x1
+ bne _0201E1EC
+ add r0, r4, #0x0
+ bl FUN_0201E5B8
+ add r0, r4, #0x0
+ bl FUN_0201E2BC
+_0201E1EC:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201E1F0
+FUN_0201E1F0: ; 0x0201E1F0
+ push {r4-r6, lr}
+ ldr r6, _0201E22C ; =0x021C5998
+ mov r4, #0x0
+ ldr r1, [r6, #0x0]
+ ldr r0, [r1, #0x4]
+ cmp r0, #0x0
+ ble _0201E228
+ add r5, r4, #0x0
+_0201E200:
+ ldr r1, [r1, #0x0]
+ add r0, r1, r5
+ add r0, #0x2c
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x1
+ bne _0201E21C
+ add r0, r1, r5
+ bl FUN_0201E5B8
+ ldr r0, [r6, #0x0]
+ ldr r0, [r0, #0x0]
+ add r0, r0, r5
+ bl FUN_0201E2BC
+_0201E21C:
+ ldr r1, [r6, #0x0]
+ add r4, r4, #0x1
+ ldr r0, [r1, #0x4]
+ add r5, #0x30
+ cmp r4, r0
+ blt _0201E200
+_0201E228:
+ pop {r4-r6, pc}
+ nop
+_0201E22C: .word 0x021C5998
+
+ thumb_func_start FUN_0201E230
+FUN_0201E230: ; 0x0201E230
+ push {r3, lr}
+ bl FUN_0201E3F0
+ cmp r0, #0x0
+ bne _0201E244
+ bne _0201E240
+ bl ErrorHandling
+_0201E240:
+ mov r0, #0x0
+ pop {r3, pc}
+_0201E244:
+ add r1, r0, #0x0
+ add r1, #0x2c
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x1
+ bne _0201E252
+ add r0, #0x10
+ pop {r3, pc}
+_0201E252:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201E258
+FUN_0201E258: ; 0x0201E258
+ push {r4, lr}
+ add r4, r1, #0x0
+ bl FUN_0201E3F0
+ cmp r0, #0x0
+ bne _0201E26E
+ bne _0201E26A
+ bl ErrorHandling
+_0201E26A:
+ mov r0, #0x0
+ pop {r4, pc}
+_0201E26E:
+ add r1, r0, #0x0
+ add r1, #0x2c
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x1
+ beq _0201E27C
+ mov r0, #0x0
+ pop {r4, pc}
+_0201E27C:
+ ldr r1, [r0, #0x0]
+ ldr r1, [r1, #0x4]
+ cmp r1, #0x0
+ beq _0201E288
+ mov r1, #0x1
+ str r1, [r4, #0x18]
+_0201E288:
+ add r0, #0x10
+ pop {r4, pc}
+
+ thumb_func_start FUN_0201E28C
+FUN_0201E28C: ; 0x0201E28C
+ push {r4, lr}
+ ldr r2, [r0, #0x4]
+ cmp r2, #0x0
+ beq _0201E29A
+ mov r4, #0x2
+ lsl r4, r4, #0x8
+ b _0201E2A6
+_0201E29A:
+ ldr r2, [r0, #0x0]
+ cmp r2, #0x4
+ bne _0201E2A4
+ mov r4, #0x0
+ b _0201E2A6
+_0201E2A4:
+ mov r4, #0x20
+_0201E2A6:
+ cmp r4, #0x0
+ beq _0201E2B6
+ bl FUN_020B19C4
+ add r1, r4, #0x0
+ bl _u32_div_f
+ pop {r4, pc}
+_0201E2B6:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201E2BC
+FUN_0201E2BC: ; 0x0201E2BC
+ ldr r3, _0201E2C0 ; =FUN_0201E2F8
+ bx r3
+ .balign 4
+_0201E2C0: .word FUN_0201E2F8
+
+ thumb_func_start FUN_0201E2C4
+FUN_0201E2C4: ; 0x0201E2C4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r4, r1, #0x0
+ str r0, [r4, #0x0]
+ ldr r0, [r5, #0xc]
+ bl FUN_0201E1B4
+ cmp r0, #0x1
+ bne _0201E2E0
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0201E2E0:
+ ldr r0, [r5, #0xc]
+ add r1, r4, #0x0
+ str r0, [r4, #0xc]
+ ldr r0, [r5, #0x4]
+ add r1, #0x2c
+ str r0, [r4, #0x4]
+ mov r0, #0x1
+ strb r0, [r1, #0x0]
+ ldr r1, [r5, #0x8]
+ str r1, [r4, #0x8]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201E2F8
+FUN_0201E2F8: ; 0x0201E2F8
+ push {r4, lr}
+ mov r1, #0x0
+ mov r2, #0x30
+ add r4, r0, #0x0
+ bl memset
+ mov r0, #0x0
+ mvn r0, r0
+ str r0, [r4, #0xc]
+ add r4, #0x10
+ add r0, r4, #0x0
+ bl FUN_020B19DC
+ pop {r4, pc}
+
+ thumb_func_start FUN_0201E314
+FUN_0201E314: ; 0x0201E314
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r6, r1, #0x0
+ ldr r0, [r6, #0x0]
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ beq _0201E334
+ ldr r0, _0201E368 ; =0x021C5998
+ ldr r0, [r0, #0x0]
+ add r4, r0, #0x0
+ add r5, r0, #0x0
+ ldr r3, [r0, #0x1c]
+ add r4, #0x14
+ add r5, #0x18
+ ldr r0, [r0, #0x20]
+ b _0201E344
+_0201E334:
+ ldr r0, _0201E368 ; =0x021C5998
+ mov r3, #0x2
+ ldr r5, [r0, #0x0]
+ lsl r3, r3, #0x8
+ add r4, r5, #0x0
+ add r4, #0xc
+ add r5, #0x10
+ add r0, r3, #0x0
+_0201E344:
+ str r0, [sp, #0x0]
+ ldr r1, [r4, #0x0]
+ ldr r2, [r5, #0x0]
+ add r0, r6, #0x0
+ bl FUN_0201E5F4
+ add r0, r6, #0x0
+ bl FUN_0201E4AC
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ add r2, r5, #0x0
+ bl FUN_0201E640
+ mov r0, #0x1
+ add sp, #0x4
+ pop {r3-r6, pc}
+ nop
+_0201E368: .word 0x021C5998
+
+ thumb_func_start FUN_0201E36C
+FUN_0201E36C: ; 0x0201E36C
+ push {r4-r6, lr}
+ add r5, r1, #0x0
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ beq _0201E37C
+ bl ErrorHandling
+_0201E37C:
+ ldr r1, [r5, #0x4]
+ mov r0, #0x1
+ tst r0, r1
+ beq _0201E39E
+ ldr r0, _0201E3EC ; =0x021C5998
+ ldr r1, [r5, #0x8]
+ ldr r0, [r0, #0x0]
+ ldrh r0, [r0, #0x24]
+ bl FUN_0201E534
+ add r6, r0, #0x0
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r6, r0
+ bne _0201E39E
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0201E39E:
+ ldr r1, [r5, #0x4]
+ mov r0, #0x2
+ tst r0, r1
+ beq _0201E3C0
+ ldr r0, _0201E3EC ; =0x021C5998
+ ldr r1, [r5, #0x8]
+ ldr r0, [r0, #0x0]
+ ldrh r0, [r0, #0x26]
+ bl FUN_0201E534
+ add r4, r0, #0x0
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r4, r0
+ bne _0201E3C0
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0201E3C0:
+ ldr r1, [r5, #0x4]
+ mov r0, #0x1
+ tst r0, r1
+ beq _0201E3CA
+ str r6, [r5, #0x24]
+_0201E3CA:
+ ldr r1, [r5, #0x4]
+ mov r0, #0x2
+ tst r0, r1
+ beq _0201E3D4
+ str r4, [r5, #0x28]
+_0201E3D4:
+ ldr r0, [r5, #0x8]
+ lsl r1, r0, #0x5
+ ldr r0, [r5, #0x0]
+ str r1, [r0, #0x8]
+ add r0, r5, #0x0
+ bl FUN_0201E4BC
+ add r0, r5, #0x0
+ bl FUN_0201E57C
+ mov r0, #0x1
+ pop {r4-r6, pc}
+ .balign 4
+_0201E3EC: .word 0x021C5998
+
+ thumb_func_start FUN_0201E3F0
+FUN_0201E3F0: ; 0x0201E3F0
+ push {r4-r5}
+ ldr r2, _0201E424 ; =0x021C5998
+ mov r1, #0x0
+ ldr r5, [r2, #0x0]
+ ldr r2, [r5, #0x4]
+ cmp r2, #0x0
+ ble _0201E41C
+ ldr r2, [r5, #0x0]
+ add r4, r2, #0x0
+_0201E402:
+ ldr r3, [r4, #0xc]
+ cmp r0, r3
+ bne _0201E412
+ mov r0, #0x30
+ mul r0, r1
+ add r0, r2, r0
+ pop {r4-r5}
+ bx lr
+_0201E412:
+ ldr r3, [r5, #0x4]
+ add r1, r1, #0x1
+ add r4, #0x30
+ cmp r1, r3
+ blt _0201E402
+_0201E41C:
+ mov r0, #0x0
+ pop {r4-r5}
+ bx lr
+ nop
+_0201E424: .word 0x021C5998
+
+ thumb_func_start FUN_0201E428
+FUN_0201E428: ; 0x0201E428
+ push {r3-r4}
+ ldr r1, _0201E460 ; =0x021C5998
+ mov r0, #0x0
+ ldr r4, [r1, #0x0]
+ ldr r1, [r4, #0x4]
+ cmp r1, #0x0
+ ble _0201E458
+ ldr r1, [r4, #0x0]
+ add r3, r1, #0x0
+_0201E43A:
+ add r2, r3, #0x0
+ add r2, #0x2c
+ ldrb r2, [r2, #0x0]
+ cmp r2, #0x0
+ bne _0201E44E
+ mov r2, #0x30
+ mul r2, r0
+ add r0, r1, r2
+ pop {r3-r4}
+ bx lr
+_0201E44E:
+ ldr r2, [r4, #0x4]
+ add r0, r0, #0x1
+ add r3, #0x30
+ cmp r0, r2
+ blt _0201E43A
+_0201E458:
+ mov r0, #0x0
+ pop {r3-r4}
+ bx lr
+ nop
+_0201E460: .word 0x021C5998
+
+ thumb_func_start FUN_0201E464
+FUN_0201E464: ; 0x0201E464
+ push {r3, lr}
+ bl GX_GetBankForOBJExtPltt
+ cmp r0, #0x20
+ beq _0201E472
+ cmp r0, #0x40
+ bne _0201E47E
+_0201E472:
+ ldr r0, _0201E4A8 ; =0x021C5998
+ mov r1, #0x2
+ ldr r0, [r0, #0x0]
+ lsl r1, r1, #0xc
+ str r1, [r0, #0x1c]
+ b _0201E486
+_0201E47E:
+ ldr r0, _0201E4A8 ; =0x021C5998
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ str r1, [r0, #0x1c]
+_0201E486:
+ bl GX_GetBankForSubOBJExtPltt
+ mov r1, #0x1
+ lsl r1, r1, #0x8
+ cmp r0, r1
+ bne _0201E49C
+ ldr r0, _0201E4A8 ; =0x021C5998
+ lsl r1, r1, #0x5
+ ldr r0, [r0, #0x0]
+ str r1, [r0, #0x20]
+ pop {r3, pc}
+_0201E49C:
+ ldr r0, _0201E4A8 ; =0x021C5998
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ str r1, [r0, #0x20]
+ pop {r3, pc}
+ nop
+_0201E4A8: .word 0x021C5998
+
+ thumb_func_start FUN_0201E4AC
+FUN_0201E4AC: ; 0x0201E4AC
+ ldr r1, [r0, #0x8]
+ ldr r3, _0201E4B8 ; =FUN_0201E4BC
+ lsl r2, r1, #0x5
+ ldr r1, [r0, #0x0]
+ str r2, [r1, #0x8]
+ bx r3
+ .balign 4
+_0201E4B8: .word FUN_0201E4BC
+
+ thumb_func_start FUN_0201E4BC
+FUN_0201E4BC: ; 0x0201E4BC
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, #0x10
+ bl FUN_020B19DC
+ ldr r0, [r4, #0x4]
+ mov r2, #0x1
+ tst r0, r2
+ beq _0201E4DA
+ add r3, r4, #0x0
+ ldr r0, [r4, #0x0]
+ ldr r1, [r4, #0x24]
+ add r3, #0x10
+ bl FUN_020B1240
+_0201E4DA:
+ ldr r0, [r4, #0x4]
+ mov r2, #0x2
+ tst r0, r2
+ beq _0201E4EE
+ ldr r0, [r4, #0x0]
+ ldr r1, [r4, #0x28]
+ add r4, #0x10
+ add r3, r4, #0x0
+ bl FUN_020B1240
+_0201E4EE:
+ pop {r4, pc}
+
+ thumb_func_start FUN_0201E4F0
+FUN_0201E4F0: ; 0x0201E4F0
+ push {r4-r7}
+ mov r3, #0x0
+ cmp r1, #0x0
+ ble _0201E50E
+ mov r5, #0x1
+_0201E4FA:
+ ldrh r7, [r0, #0x0]
+ add r4, r2, r3
+ add r6, r5, #0x0
+ lsl r6, r4
+ add r4, r7, #0x0
+ orr r4, r6
+ add r3, r3, #0x1
+ strh r4, [r0, #0x0]
+ cmp r3, r1
+ blt _0201E4FA
+_0201E50E:
+ pop {r4-r7}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201E514
+FUN_0201E514: ; 0x0201E514
+ push {r4-r7}
+ mov r4, #0x0
+ cmp r1, #0x0
+ ble _0201E530
+ mov r6, #0x1
+_0201E51E:
+ add r5, r2, r4
+ add r7, r6, #0x0
+ ldrh r3, [r0, #0x0]
+ lsl r7, r5
+ bic r3, r7
+ add r4, r4, #0x1
+ strh r3, [r0, #0x0]
+ cmp r4, r1
+ blt _0201E51E
+_0201E530:
+ pop {r4-r7}
+ bx lr
+
+ thumb_func_start FUN_0201E534
+FUN_0201E534: ; 0x0201E534
+ push {r4-r7}
+ mov r3, #0x0
+ mov r6, #0x1
+ add r2, r3, #0x0
+_0201E53C:
+ add r4, r2, #0x0
+ b _0201E546
+_0201E540:
+ cmp r5, #0x10
+ bge _0201E554
+ add r4, r4, #0x1
+_0201E546:
+ add r5, r3, r4
+ add r7, r6, #0x0
+ lsl r7, r5
+ tst r7, r0
+ bne _0201E554
+ cmp r4, r1
+ blt _0201E540
+_0201E554:
+ cmp r4, r1
+ bge _0201E560
+ add r3, r3, r4
+ add r3, r3, #0x1
+ cmp r3, #0x10
+ blt _0201E53C
+_0201E560:
+ cmp r3, #0x10
+ blt _0201E56C
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r4-r7}
+ bx lr
+_0201E56C:
+ lsl r0, r3, #0x5
+ pop {r4-r7}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201E574
+FUN_0201E574: ; 0x0201E574
+ mov r1, #0x0
+ strh r1, [r0, #0x24]
+ strh r1, [r0, #0x26]
+ bx lr
+
+ thumb_func_start FUN_0201E57C
+FUN_0201E57C: ; 0x0201E57C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x4]
+ mov r0, #0x1
+ tst r0, r1
+ beq _0201E598
+ ldr r0, _0201E5B4 ; =0x021C5998
+ ldr r2, [r4, #0x24]
+ ldr r0, [r0, #0x0]
+ ldr r1, [r4, #0x8]
+ add r0, #0x24
+ lsr r2, r2, #0x5
+ bl FUN_0201E4F0
+_0201E598:
+ ldr r1, [r4, #0x4]
+ mov r0, #0x2
+ tst r0, r1
+ beq _0201E5B0
+ ldr r0, _0201E5B4 ; =0x021C5998
+ ldr r2, [r4, #0x28]
+ ldr r0, [r0, #0x0]
+ ldr r1, [r4, #0x8]
+ add r0, #0x26
+ lsr r2, r2, #0x5
+ bl FUN_0201E4F0
+_0201E5B0:
+ pop {r4, pc}
+ nop
+_0201E5B4: .word 0x021C5998
+
+ thumb_func_start FUN_0201E5B8
+FUN_0201E5B8: ; 0x0201E5B8
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x4]
+ mov r0, #0x1
+ tst r0, r1
+ beq _0201E5D4
+ ldr r0, _0201E5F0 ; =0x021C5998
+ ldr r2, [r4, #0x24]
+ ldr r0, [r0, #0x0]
+ ldr r1, [r4, #0x8]
+ add r0, #0x24
+ lsr r2, r2, #0x5
+ bl FUN_0201E514
+_0201E5D4:
+ ldr r1, [r4, #0x4]
+ mov r0, #0x2
+ tst r0, r1
+ beq _0201E5EC
+ ldr r0, _0201E5F0 ; =0x021C5998
+ ldr r2, [r4, #0x28]
+ ldr r0, [r0, #0x0]
+ ldr r1, [r4, #0x8]
+ add r0, #0x26
+ lsr r2, r2, #0x5
+ bl FUN_0201E514
+_0201E5EC:
+ pop {r4, pc}
+ nop
+_0201E5F0: .word 0x021C5998
+
+ thumb_func_start FUN_0201E5F4
+FUN_0201E5F4: ; 0x0201E5F4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r2, #0x0
+ ldr r2, [r5, #0x4]
+ mov r0, #0x1
+ tst r2, r0
+ beq _0201E61A
+ ldr r2, [r5, #0x8]
+ lsl r2, r2, #0x5
+ add r2, r1, r2
+ cmp r2, r3
+ bls _0201E618
+ bl ErrorHandling
+ bl FUN_0201E0B8
+ mov r0, #0x0
+ b _0201E61A
+_0201E618:
+ str r1, [r5, #0x24]
+_0201E61A:
+ ldr r2, [r5, #0x4]
+ mov r1, #0x2
+ tst r1, r2
+ beq _0201E63C
+ ldr r1, [r5, #0x8]
+ lsl r1, r1, #0x5
+ add r2, r4, r1
+ ldr r1, [sp, #0x10]
+ cmp r2, r1
+ bls _0201E63A
+ bl ErrorHandling
+ bl FUN_0201E0B8
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0201E63A:
+ str r4, [r5, #0x28]
+_0201E63C:
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201E640
+FUN_0201E640: ; 0x0201E640
+ push {r3-r4}
+ ldr r4, [r0, #0x4]
+ mov r3, #0x1
+ tst r3, r4
+ beq _0201E654
+ ldr r3, [r0, #0x8]
+ ldr r4, [r1, #0x0]
+ lsl r3, r3, #0x5
+ add r3, r4, r3
+ str r3, [r1, #0x0]
+_0201E654:
+ ldr r3, [r0, #0x4]
+ mov r1, #0x2
+ tst r1, r3
+ beq _0201E666
+ ldr r0, [r0, #0x8]
+ ldr r1, [r2, #0x0]
+ lsl r0, r0, #0x5
+ add r0, r1, r0
+ str r0, [r2, #0x0]
+_0201E666:
+ pop {r3-r4}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201E66C
+FUN_0201E66C: ; 0x0201E66C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl GX_ResetBankForBG
+ bl GX_ResetBankForBGExtPltt
+ bl GX_ResetBankForSubBG
+ bl FUN_020C6034
+ bl GX_ResetBankForOBJ
+ bl GX_ResetBankForOBJExtPltt
+ bl FUN_020C605C
+ bl GX_ResetBankForSubOBJ
+ bl GX_ResetBankForTex
+ bl GX_ResetBankForTexPltt
+ ldr r0, [r4, #0x0]
+ bl GX_SetBankForBG
+ ldr r0, [r4, #0x4]
+ bl GX_SetBankForBGExtPltt
+ ldr r0, [r4, #0x8]
+ bl GX_SetBankForSubBG
+ ldr r0, [r4, #0xc]
+ bl GX_SetBankForSubBGExtPltt
+ ldr r0, [r4, #0x10]
+ bl GX_SetBankForOBJ
+ ldr r0, [r4, #0x14]
+ bl GX_SetBankForOBJExtPltt
+ ldr r0, [r4, #0x18]
+ bl GX_SetBankForSubOBJ
+ ldr r0, [r4, #0x1c]
+ bl GX_SetBankForSubOBJExtPltt
+ ldr r0, [r4, #0x20]
+ bl GX_SetBankForTex
+ ldr r0, [r4, #0x24]
+ bl GX_SetBankForTexPltt
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201E6D8
+FUN_0201E6D8: ; 0x0201E6D8
+ ldr r0, _0201E6E0 ; =0x021C599C
+ mov r1, #0x0
+ str r1, [r0, #0x4]
+ bx lr
+ .balign 4
+_0201E6E0: .word 0x021C599C
+
+ thumb_func_start FUN_0201E6E4
+FUN_0201E6E4: ; 0x0201E6E4
+ cmp r1, #0x1
+ bne _0201E6F2
+ ldr r1, _0201E718 ; =0x021C599C
+ ldr r1, [r1, #0x4]
+ tst r1, r0
+ beq _0201E6FA
+ bx lr
+_0201E6F2:
+ ldr r1, _0201E718 ; =0x021C599C
+ ldr r1, [r1, #0x4]
+ tst r1, r0
+ beq _0201E714
+_0201E6FA:
+ ldr r1, _0201E718 ; =0x021C599C
+ ldr r2, [r1, #0x4]
+ add r3, r2, #0x0
+ eor r3, r0
+ mov r2, #0x1
+ lsl r2, r2, #0x1a
+ str r3, [r1, #0x4]
+ ldr r1, [r2, #0x0]
+ ldr r0, _0201E71C ; =0xFFFFE0FF
+ and r1, r0
+ lsl r0, r3, #0x8
+ orr r0, r1
+ str r0, [r2, #0x0]
+_0201E714:
+ bx lr
+ nop
+_0201E718: .word 0x021C599C
+_0201E71C: .word 0xFFFFE0FF
+
+ thumb_func_start FUN_0201E720
+FUN_0201E720: ; 0x0201E720
+ ldr r1, _0201E738 ; =0x021C599C
+ mov r3, #0x1
+ str r0, [r1, #0x4]
+ lsl r3, r3, #0x1a
+ ldr r2, [r3, #0x0]
+ ldr r1, _0201E73C ; =0xFFFFE0FF
+ lsl r0, r0, #0x8
+ and r1, r2
+ orr r0, r1
+ str r0, [r3, #0x0]
+ bx lr
+ nop
+_0201E738: .word 0x021C599C
+_0201E73C: .word 0xFFFFE0FF
+
+ thumb_func_start FUN_0201E740
+FUN_0201E740: ; 0x0201E740
+ ldr r0, _0201E748 ; =0x021C599C
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+_0201E748: .word 0x021C599C
+
+ thumb_func_start FUN_0201E74C
+FUN_0201E74C: ; 0x0201E74C
+ cmp r1, #0x1
+ bne _0201E75A
+ ldr r1, _0201E77C ; =0x021C599C
+ ldr r1, [r1, #0x0]
+ tst r1, r0
+ beq _0201E762
+ bx lr
+_0201E75A:
+ ldr r1, _0201E77C ; =0x021C599C
+ ldr r1, [r1, #0x0]
+ tst r1, r0
+ beq _0201E77A
+_0201E762:
+ ldr r1, _0201E77C ; =0x021C599C
+ ldr r2, [r1, #0x0]
+ add r3, r2, #0x0
+ eor r3, r0
+ ldr r2, _0201E780 ; =0x04001000
+ str r3, [r1, #0x0]
+ ldr r1, [r2, #0x0]
+ ldr r0, _0201E784 ; =0xFFFFE0FF
+ and r1, r0
+ lsl r0, r3, #0x8
+ orr r0, r1
+ str r0, [r2, #0x0]
+_0201E77A:
+ bx lr
+ .balign 4
+_0201E77C: .word 0x021C599C
+_0201E780: .word 0x04001000
+_0201E784: .word 0xFFFFE0FF
+
+ thumb_func_start FUN_0201E788
+FUN_0201E788: ; 0x0201E788
+ push {r3, lr}
+ bl GX_DispOn
+ ldr r2, _0201E79C ; =0x04001000
+ mov r0, #0x1
+ ldr r1, [r2, #0x0]
+ lsl r0, r0, #0x10
+ orr r0, r1
+ str r0, [r2, #0x0]
+ pop {r3, pc}
+ .balign 4
+_0201E79C: .word 0x04001000
+
+ thumb_func_start FUN_0201E7A0
+FUN_0201E7A0: ; 0x0201E7A0
+ ldr r0, _0201E7C0 ; =0x021C4918
+ ldr r2, _0201E7C4 ; =0x04000304
+ ldrb r0, [r0, #0x5]
+ cmp r0, #0x0
+ bne _0201E7B4
+ ldrh r1, [r2, #0x0]
+ lsr r0, r2, #0xb
+ orr r0, r1
+ strh r0, [r2, #0x0]
+ bx lr
+_0201E7B4:
+ ldrh r1, [r2, #0x0]
+ ldr r0, _0201E7C8 ; =0xFFFF7FFF
+ and r0, r1
+ strh r0, [r2, #0x0]
+ bx lr
+ nop
+_0201E7C0: .word 0x021C4918
+_0201E7C4: .word 0x04000304
+_0201E7C8: .word 0xFFFF7FFF
+
+ thumb_func_start FUN_0201E7CC
+FUN_0201E7CC: ; 0x0201E7CC
+ ldr r0, _0201E7D4 ; =0x021C599C
+ ldr r0, [r0, #0x4]
+ bx lr
+ nop
+_0201E7D4: .word 0x021C599C
+
+ thumb_func_start FUN_0201E7D8
+FUN_0201E7D8: ; 0x0201E7D8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldrh r0, [r5, #0x3e]
+ ldr r2, [r5, #0x38]
+ ldrh r4, [r5, #0x3c]
+ asr r0, r0, #0x4
+ lsl r1, r0, #0x2
+ ldr r0, _0201E8B4 ; =0x020FFA38
+ asr r3, r2, #0x1f
+ ldrsh r0, [r0, r1]
+ asr r1, r0, #0x1f
+ bl _ll_mul
+ mov r2, #0x2
+ mov r3, #0x0
+ lsl r2, r2, #0xa
+ add r0, r0, r2
+ adc r1, r3
+ asr r2, r4, #0x4
+ lsl r2, r2, #0x1
+ add r2, r2, #0x1
+ lsl r3, r2, #0x1
+ ldr r2, _0201E8B4 ; =0x020FFA38
+ lsl r1, r1, #0x14
+ ldrsh r2, [r2, r3]
+ lsr r0, r0, #0xc
+ orr r0, r1
+ asr r1, r0, #0x1f
+ asr r3, r2, #0x1f
+ bl _ll_mul
+ mov r2, #0x2
+ mov r3, #0x0
+ lsl r2, r2, #0xa
+ add r2, r0, r2
+ adc r1, r3
+ lsl r0, r1, #0x14
+ lsr r1, r2, #0xc
+ orr r1, r0
+ str r1, [r5, #0x14]
+ ldrh r0, [r5, #0x3e]
+ ldr r2, [r5, #0x38]
+ asr r0, r0, #0x4
+ lsl r0, r0, #0x1
+ add r0, r0, #0x1
+ lsl r1, r0, #0x1
+ ldr r0, _0201E8B4 ; =0x020FFA38
+ asr r3, r2, #0x1f
+ ldrsh r0, [r0, r1]
+ asr r1, r0, #0x1f
+ bl _ll_mul
+ mov r2, #0x2
+ lsl r2, r2, #0xa
+ mov r3, #0x0
+ add r0, r0, r2
+ adc r1, r3
+ ldrh r2, [r5, #0x3c]
+ lsl r1, r1, #0x14
+ lsr r0, r0, #0xc
+ asr r2, r2, #0x4
+ lsl r2, r2, #0x1
+ add r2, r2, #0x1
+ lsl r3, r2, #0x1
+ ldr r2, _0201E8B4 ; =0x020FFA38
+ orr r0, r1
+ ldrsh r2, [r2, r3]
+ asr r1, r0, #0x1f
+ asr r3, r2, #0x1f
+ bl _ll_mul
+ mov r2, #0x2
+ mov r3, #0x0
+ lsl r2, r2, #0xa
+ add r2, r0, r2
+ adc r1, r3
+ lsl r0, r1, #0x14
+ lsr r1, r2, #0xc
+ orr r1, r0
+ neg r0, r4
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r1, [r5, #0x1c]
+ asr r0, r0, #0x4
+ lsl r1, r0, #0x2
+ ldr r0, _0201E8B4 ; =0x020FFA38
+ ldr r2, [r5, #0x38]
+ ldrsh r0, [r0, r1]
+ asr r3, r2, #0x1f
+ asr r1, r0, #0x1f
+ bl _ll_mul
+ mov r2, #0x2
+ mov r3, #0x0
+ lsl r2, r2, #0xa
+ add r2, r0, r2
+ adc r1, r3
+ lsl r0, r1, #0x14
+ lsr r1, r2, #0xc
+ orr r1, r0
+ add r0, r5, #0x0
+ str r1, [r5, #0x18]
+ add r0, #0x14
+ add r5, #0x20
+ add r1, r5, #0x0
+ add r2, r0, #0x0
+ bl VEC_Add
+ pop {r3-r5, pc}
+ nop
+_0201E8B4: .word 0x020FFA38
+
+ thumb_func_start FUN_0201E8B8
+FUN_0201E8B8: ; 0x0201E8B8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldrh r0, [r5, #0x3e]
+ ldr r2, [r5, #0x38]
+ ldrh r4, [r5, #0x3c]
+ asr r0, r0, #0x4
+ lsl r1, r0, #0x2
+ ldr r0, _0201E998 ; =0x020FFA38
+ asr r3, r2, #0x1f
+ ldrsh r0, [r0, r1]
+ asr r1, r0, #0x1f
+ bl _ll_mul
+ mov r2, #0x2
+ mov r3, #0x0
+ lsl r2, r2, #0xa
+ add r0, r0, r2
+ adc r1, r3
+ asr r2, r4, #0x4
+ lsl r2, r2, #0x1
+ add r2, r2, #0x1
+ lsl r3, r2, #0x1
+ ldr r2, _0201E998 ; =0x020FFA38
+ lsl r1, r1, #0x14
+ ldrsh r2, [r2, r3]
+ lsr r0, r0, #0xc
+ orr r0, r1
+ asr r1, r0, #0x1f
+ asr r3, r2, #0x1f
+ bl _ll_mul
+ mov r2, #0x2
+ mov r3, #0x0
+ lsl r2, r2, #0xa
+ add r2, r0, r2
+ adc r1, r3
+ lsl r0, r1, #0x14
+ lsr r1, r2, #0xc
+ orr r1, r0
+ neg r0, r1
+ str r0, [r5, #0x20]
+ ldrh r0, [r5, #0x3e]
+ ldr r2, [r5, #0x38]
+ asr r0, r0, #0x4
+ lsl r0, r0, #0x1
+ add r0, r0, #0x1
+ lsl r1, r0, #0x1
+ ldr r0, _0201E998 ; =0x020FFA38
+ asr r3, r2, #0x1f
+ ldrsh r0, [r0, r1]
+ asr r1, r0, #0x1f
+ bl _ll_mul
+ mov r2, #0x2
+ lsl r2, r2, #0xa
+ mov r3, #0x0
+ add r0, r0, r2
+ adc r1, r3
+ ldrh r2, [r5, #0x3c]
+ lsl r1, r1, #0x14
+ lsr r0, r0, #0xc
+ asr r2, r2, #0x4
+ lsl r2, r2, #0x1
+ add r2, r2, #0x1
+ lsl r3, r2, #0x1
+ ldr r2, _0201E998 ; =0x020FFA38
+ orr r0, r1
+ ldrsh r2, [r2, r3]
+ asr r1, r0, #0x1f
+ asr r3, r2, #0x1f
+ bl _ll_mul
+ mov r2, #0x2
+ mov r3, #0x0
+ lsl r2, r2, #0xa
+ add r2, r0, r2
+ adc r1, r3
+ lsl r0, r1, #0x14
+ lsr r1, r2, #0xc
+ orr r1, r0
+ neg r0, r1
+ str r0, [r5, #0x28]
+ neg r0, r4
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ asr r0, r0, #0x4
+ lsl r1, r0, #0x2
+ ldr r0, _0201E998 ; =0x020FFA38
+ ldr r2, [r5, #0x38]
+ ldrsh r0, [r0, r1]
+ asr r3, r2, #0x1f
+ asr r1, r0, #0x1f
+ bl _ll_mul
+ mov r2, #0x2
+ mov r3, #0x0
+ lsl r2, r2, #0xa
+ add r2, r0, r2
+ adc r1, r3
+ lsl r0, r1, #0x14
+ lsr r1, r2, #0xc
+ orr r1, r0
+ neg r0, r1
+ str r0, [r5, #0x24]
+ add r0, r5, #0x0
+ add r0, #0x20
+ add r5, #0x14
+ add r1, r5, #0x0
+ add r2, r0, #0x0
+ bl VEC_Add
+ pop {r3-r5, pc}
+ .balign 4
+_0201E998: .word 0x020FFA38
+
+ thumb_func_start FUN_0201E99C
+FUN_0201E99C: ; 0x0201E99C
+ add r2, r1, #0x0
+ add r2, #0x46
+ strh r0, [r2, #0x0]
+ asr r0, r0, #0x4
+ lsl r3, r0, #0x1
+ ldr r2, _0201E9E0 ; =0x020FFA38
+ lsl r0, r3, #0x1
+ ldrsh r0, [r2, r0]
+ str r0, [r1, #0x0]
+ add r0, r3, #0x1
+ lsl r0, r0, #0x1
+ ldrsh r0, [r2, r0]
+ mov r2, #0x0
+ str r0, [r1, #0x4]
+ ldr r0, _0201E9E4 ; =0x00001555
+ str r0, [r1, #0x8]
+ mov r0, #0x96
+ lsl r0, r0, #0xc
+ str r0, [r1, #0xc]
+ mov r0, #0xe1
+ lsl r0, r0, #0xe
+ str r0, [r1, #0x10]
+ mov r0, #0x1
+ str r2, [r1, #0x2c]
+ lsl r0, r0, #0xc
+ str r0, [r1, #0x30]
+ str r2, [r1, #0x34]
+ str r2, [r1, #0x54]
+ str r2, [r1, #0x58]
+ str r2, [r1, #0x5c]
+ str r2, [r1, #0x60]
+ str r2, [r1, #0x64]
+ bx lr
+ nop
+_0201E9E0: .word 0x020FFA38
+_0201E9E4: .word 0x00001555
+
+ thumb_func_start FUN_0201E9E8
+FUN_0201E9E8: ; 0x0201E9E8
+ ldr r2, [r0, #0x58]
+ cmp r2, #0x0
+ bne _0201E9F2
+ mov r2, #0x0
+ str r2, [r1, #0x0]
+_0201E9F2:
+ ldr r2, [r0, #0x5c]
+ cmp r2, #0x0
+ bne _0201E9FC
+ mov r2, #0x0
+ str r2, [r1, #0x4]
+_0201E9FC:
+ ldr r0, [r0, #0x60]
+ cmp r0, #0x0
+ bne _0201EA06
+ mov r0, #0x0
+ str r0, [r1, #0x8]
+_0201EA06:
+ bx lr
+
+ thumb_func_start FUN_0201EA08
+FUN_0201EA08: ; 0x0201EA08
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r7, [r5, #0x64]
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ cmp r7, #0x0
+ bne _0201EA20
+ ldmia r4!, {r0-r1}
+ stmia r6!, {r0-r1}
+ ldr r0, [r4, #0x0]
+ str r0, [r6, #0x0]
+ pop {r3-r7, pc}
+_0201EA20:
+ add r0, r7, #0x0
+ str r0, [sp, #0x0]
+ add r0, #0x8
+ str r0, [sp, #0x0]
+ ldr r0, [r7, #0x10]
+ cmp r0, #0x0
+ bne _0201EA48
+ add r3, r4, #0x0
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ str r0, [r2, #0x0]
+ ldr r0, [r5, #0x64]
+ ldr r2, [r7, #0x4]
+ ldr r1, [r0, #0xc]
+ cmp r2, r1
+ bne _0201EA5C
+ mov r1, #0x1
+ str r1, [r0, #0x10]
+ b _0201EA5C
+_0201EA48:
+ ldr r2, [r7, #0x4]
+ mov r1, #0xc
+ mul r1, r2
+ ldr r0, [r7, #0x20]
+ add r2, r6, #0x0
+ add r3, r0, r1
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ str r0, [r2, #0x0]
+_0201EA5C:
+ ldr r1, [r5, #0x64]
+ ldr r0, [r7, #0x4]
+ ldr r1, [r1, #0x0]
+ add r0, r0, #0x1
+ bl _s32_div_f
+ str r1, [r7, #0x4]
+ ldr r1, [sp, #0x0]
+ ldr r0, [r5, #0x64]
+ ldr r2, [r1, #0x0]
+ mov r1, #0xc
+ ldr r0, [r0, #0x20]
+ mul r1, r2
+ add r3, r4, #0x0
+ add r2, r0, r1
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ str r0, [r2, #0x0]
+ ldr r0, [sp, #0x0]
+ ldr r1, [r5, #0x64]
+ ldr r0, [r0, #0x0]
+ ldr r1, [r1, #0x0]
+ add r0, r0, #0x1
+ bl _s32_div_f
+ ldr r0, [sp, #0x0]
+ str r1, [r0, #0x0]
+ ldr r0, [r5, #0x64]
+ ldr r0, [r0, #0x14]
+ cmp r0, #0x0
+ bne _0201EAA0
+ ldr r0, [r4, #0x0]
+ str r0, [r6, #0x0]
+_0201EAA0:
+ ldr r0, [r5, #0x64]
+ ldr r0, [r0, #0x18]
+ cmp r0, #0x0
+ bne _0201EAAC
+ ldr r0, [r4, #0x4]
+ str r0, [r6, #0x4]
+_0201EAAC:
+ ldr r0, [r5, #0x64]
+ ldr r0, [r0, #0x1c]
+ cmp r0, #0x0
+ bne _0201EAB8
+ ldr r0, [r4, #0x8]
+ str r0, [r6, #0x8]
+_0201EAB8:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201EABC
+FUN_0201EABC: ; 0x0201EABC
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x18]
+ add r7, r1, #0x0
+ str r0, [sp, #0x18]
+ ldr r0, [r0, #0x54]
+ add r6, r2, #0x0
+ str r3, [sp, #0x0]
+ cmp r0, #0x0
+ beq _0201EB46
+ add r0, r7, #0x1
+ cmp r0, r5
+ ble _0201EADA
+ bl ErrorHandling
+_0201EADA:
+ ldr r0, [sp, #0x0]
+ mov r1, #0x24
+ bl FUN_02016998
+ add r4, r0, #0x0
+ mov r1, #0xc
+ ldr r0, [sp, #0x0]
+ mul r1, r5
+ bl FUN_02016998
+ mov r1, #0x0
+ str r0, [r4, #0x20]
+ cmp r5, #0x0
+ ble _0201EB12
+ add r2, r1, #0x0
+ add r0, r1, #0x0
+_0201EAFA:
+ ldr r3, [r4, #0x20]
+ add r1, r1, #0x1
+ str r0, [r3, r2]
+ ldr r3, [r4, #0x20]
+ add r3, r3, r2
+ str r0, [r3, #0x4]
+ ldr r3, [r4, #0x20]
+ add r3, r3, r2
+ str r0, [r3, #0x8]
+ add r2, #0xc
+ cmp r1, r5
+ blt _0201EAFA
+_0201EB12:
+ str r5, [r4, #0x0]
+ mov r0, #0x0
+ str r0, [r4, #0x4]
+ str r7, [r4, #0x8]
+ str r7, [r4, #0xc]
+ str r0, [r4, #0x10]
+ str r0, [r4, #0x14]
+ str r0, [r4, #0x18]
+ str r0, [r4, #0x1c]
+ mov r0, #0x1
+ add r1, r6, #0x0
+ tst r1, r0
+ beq _0201EB2E
+ str r0, [r4, #0x14]
+_0201EB2E:
+ mov r0, #0x2
+ tst r0, r6
+ beq _0201EB38
+ mov r0, #0x1
+ str r0, [r4, #0x18]
+_0201EB38:
+ mov r0, #0x4
+ tst r0, r6
+ beq _0201EB42
+ mov r0, #0x1
+ str r0, [r4, #0x1c]
+_0201EB42:
+ ldr r0, [sp, #0x18]
+ str r4, [r0, #0x64]
+_0201EB46:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0201EB48
+FUN_0201EB48: ; 0x0201EB48
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x64]
+ cmp r0, #0x0
+ beq _0201EB62
+ ldr r0, [r0, #0x20]
+ bl FUN_02016A18
+ ldr r0, [r4, #0x64]
+ bl FUN_02016A18
+ mov r0, #0x0
+ str r0, [r4, #0x64]
+_0201EB62:
+ pop {r4, pc}
+
+ thumb_func_start FUN_0201EB64
+FUN_0201EB64: ; 0x0201EB64
+ ldr r3, _0201EB6C ; =FUN_02016998
+ mov r1, #0x68
+ bx r3
+ nop
+_0201EB6C: .word FUN_02016998
+
+ thumb_func_start FUN_0201EB70
+FUN_0201EB70: ; 0x0201EB70
+ ldr r3, _0201EB74 ; =FUN_02016A18
+ bx r3
+ .balign 4
+_0201EB74: .word FUN_02016A18
+
+ thumb_func_start FUN_0201EB78
+FUN_0201EB78: ; 0x0201EB78
+ push {r3-r4}
+ add r4, r0, #0x0
+ add r3, r1, #0x0
+ mov r2, #0xd
+_0201EB80:
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _0201EB80
+ pop {r3-r4}
+ bx lr
+
+ thumb_func_start FUN_0201EB8C
+FUN_0201EB8C: ; 0x0201EB8C
+ ldr r1, _0201EB94 ; =0x021C59A4
+ str r0, [r1, #0x0]
+ bx lr
+ nop
+_0201EB94: .word 0x021C59A4
+
+ thumb_func_start FUN_0201EB98
+FUN_0201EB98: ; 0x0201EB98
+ ldr r0, _0201EBA0 ; =0x021C59A4
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+_0201EBA0: .word 0x021C59A4
+
+ thumb_func_start FUN_0201EBA4
+FUN_0201EBA4: ; 0x0201EBA4
+ push {r3-r6, lr}
+ sub sp, #0x1c
+ ldr r0, _0201EC40 ; =0x021C59A4
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _0201EC3A
+ ldr r0, [r1, #0x54]
+ cmp r0, #0x0
+ beq _0201EBEE
+ add r1, #0x48
+ add r2, sp, #0x10
+ bl VEC_Subtract
+ ldr r0, _0201EC40 ; =0x021C59A4
+ add r1, sp, #0x10
+ ldr r0, [r0, #0x0]
+ bl FUN_0201E9E8
+ ldr r0, _0201EC40 ; =0x021C59A4
+ add r1, sp, #0x10
+ ldr r0, [r0, #0x0]
+ add r2, sp, #0x4
+ bl FUN_0201EA08
+ ldr r1, _0201EC40 ; =0x021C59A4
+ add r0, sp, #0x4
+ ldr r1, [r1, #0x0]
+ bl FUN_0201EF70
+ ldr r0, _0201EC40 ; =0x021C59A4
+ ldr r3, [r0, #0x0]
+ ldr r2, [r3, #0x54]
+ add r3, #0x48
+ ldmia r2!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r2, #0x0]
+ str r0, [r3, #0x0]
+_0201EBEE:
+ ldr r0, _0201EC40 ; =0x021C59A4
+ ldr r5, _0201EC44 ; =0x021CEF58
+ ldr r4, [r0, #0x0]
+ add r3, r4, #0x0
+ add r2, r4, #0x0
+ add r4, #0x14
+ add r6, r4, #0x0
+ ldmia r6!, {r0-r1}
+ stmia r5!, {r0-r1}
+ ldr r0, [r6, #0x0]
+ add r2, #0x2c
+ str r0, [r5, #0x0]
+ add r6, r2, #0x0
+ ldr r5, _0201EC48 ; =0x021CEF64
+ ldmia r6!, {r0-r1}
+ stmia r5!, {r0-r1}
+ ldr r0, [r6, #0x0]
+ add r3, #0x20
+ str r0, [r5, #0x0]
+ add r6, r3, #0x0
+ ldr r5, _0201EC4C ; =0x021CEF70
+ ldmia r6!, {r0-r1}
+ stmia r5!, {r0-r1}
+ ldr r0, [r6, #0x0]
+ add r1, r2, #0x0
+ str r0, [r5, #0x0]
+ ldr r0, _0201EC50 ; =0x021CED64
+ add r2, r3, #0x0
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ mov r3, #0x0
+ bl G3i_LookAt_
+ ldr r1, _0201EC54 ; =0x021CED98
+ mov r0, #0xe8
+ ldr r2, [r1, #0x7c]
+ bic r2, r0
+ str r2, [r1, #0x7c]
+_0201EC3A:
+ add sp, #0x1c
+ pop {r3-r6, pc}
+ nop
+_0201EC40: .word 0x021C59A4
+_0201EC44: .word 0x021CEF58
+_0201EC48: .word 0x021CEF64
+_0201EC4C: .word 0x021CEF70
+_0201EC50: .word 0x021CED64
+_0201EC54: .word 0x021CED98
+
+ thumb_func_start FUN_0201EC58
+FUN_0201EC58: ; 0x0201EC58
+ add r3, r0, #0x0
+ add r2, r1, #0x0
+ ldmia r3!, {r0-r1}
+ add r2, #0x2c
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ str r0, [r2, #0x0]
+ bx lr
+
+ thumb_func_start FUN_0201EC68
+FUN_0201EC68: ; 0x0201EC68
+ push {r3-r4}
+ add r3, r1, #0x0
+ add r4, r0, #0x0
+ str r4, [r3, #0x54]
+ add r2, r3, #0x0
+ ldmia r4!, {r0-r1}
+ add r2, #0x48
+ stmia r2!, {r0-r1}
+ ldr r0, [r4, #0x0]
+ str r0, [r2, #0x0]
+ mov r0, #0x1
+ str r0, [r3, #0x58]
+ str r0, [r3, #0x5c]
+ str r0, [r3, #0x60]
+ pop {r3-r4}
+ bx lr
+
+ thumb_func_start FUN_0201EC88
+FUN_0201EC88: ; 0x0201EC88
+ mov r1, #0x0
+ str r1, [r0, #0x54]
+ str r1, [r0, #0x58]
+ str r1, [r0, #0x5c]
+ str r1, [r0, #0x60]
+ bx lr
+
+ thumb_func_start FUN_0201EC94
+FUN_0201EC94: ; 0x0201EC94
+ str r0, [r2, #0xc]
+ add r0, r2, #0x0
+ str r1, [r2, #0x10]
+ add r0, #0x44
+ ldr r3, _0201ECA4 ; =FUN_0201EE2C
+ ldrb r0, [r0, #0x0]
+ add r1, r2, #0x0
+ bx r3
+ .balign 4
+_0201ECA4: .word FUN_0201EE2C
+
+ thumb_func_start FUN_0201ECA8
+FUN_0201ECA8: ; 0x0201ECA8
+ push {r3-r7, lr}
+ ldr r4, [sp, #0x20]
+ add r5, r0, #0x0
+ add r7, r1, #0x0
+ add r0, r3, #0x0
+ add r1, r4, #0x0
+ add r6, r2, #0x0
+ bl FUN_0201E99C
+ add r3, r5, #0x0
+ add r2, r4, #0x0
+ ldmia r3!, {r0-r1}
+ add r2, #0x20
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ str r0, [r2, #0x0]
+ str r7, [r4, #0x38]
+ ldrh r0, [r6, #0x0]
+ strh r0, [r4, #0x3c]
+ ldrh r0, [r6, #0x2]
+ strh r0, [r4, #0x3e]
+ add r0, r4, #0x0
+ ldrh r1, [r6, #0x4]
+ add r0, #0x40
+ strh r1, [r0, #0x0]
+ add r0, r4, #0x0
+ ldrh r1, [r6, #0x6]
+ add r0, #0x42
+ strh r1, [r0, #0x0]
+ add r0, r4, #0x0
+ bl FUN_0201E7D8
+ add r0, sp, #0x8
+ ldrb r0, [r0, #0x10]
+ add r1, r4, #0x0
+ bl FUN_0201EE2C
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0x0
+ beq _0201ED0E
+ str r5, [r4, #0x54]
+ add r2, r4, #0x0
+ ldmia r5!, {r0-r1}
+ add r2, #0x48
+ stmia r2!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ str r0, [r2, #0x0]
+ mov r0, #0x1
+ str r0, [r4, #0x58]
+ str r0, [r4, #0x5c]
+ str r0, [r4, #0x60]
+_0201ED0E:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0201ED10
+FUN_0201ED10: ; 0x0201ED10
+ push {r3-r7, lr}
+ ldr r4, [sp, #0x1c]
+ add r6, r0, #0x0
+ add r7, r1, #0x0
+ add r0, r3, #0x0
+ add r1, r4, #0x0
+ add r5, r2, #0x0
+ bl FUN_0201E99C
+ add r2, r4, #0x0
+ ldmia r6!, {r0-r1}
+ add r2, #0x14
+ stmia r2!, {r0-r1}
+ ldr r0, [r6, #0x0]
+ str r0, [r2, #0x0]
+ str r7, [r4, #0x38]
+ ldrh r0, [r5, #0x0]
+ strh r0, [r4, #0x3c]
+ ldrh r0, [r5, #0x2]
+ strh r0, [r4, #0x3e]
+ add r0, r4, #0x0
+ ldrh r1, [r5, #0x4]
+ add r0, #0x40
+ strh r1, [r0, #0x0]
+ add r0, r4, #0x0
+ ldrh r1, [r5, #0x6]
+ add r0, #0x42
+ strh r1, [r0, #0x0]
+ add r0, r4, #0x0
+ bl FUN_0201E8B8
+ add r0, sp, #0x8
+ ldrb r0, [r0, #0x10]
+ add r1, r4, #0x0
+ bl FUN_0201EE2C
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201ED5C
+FUN_0201ED5C: ; 0x0201ED5C
+ push {r4-r7, lr}
+ sub sp, #0x3c
+ ldr r4, [sp, #0x54]
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r0, r2, #0x0
+ add r1, r4, #0x0
+ add r7, r3, #0x0
+ bl FUN_0201E99C
+ add r3, r5, #0x0
+ add r2, r4, #0x0
+ ldmia r3!, {r0-r1}
+ add r2, #0x20
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ add r3, r6, #0x0
+ str r0, [r2, #0x0]
+ add r2, r4, #0x0
+ ldmia r3!, {r0-r1}
+ add r2, #0x14
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ add r1, r5, #0x0
+ str r0, [r2, #0x0]
+ add r0, r6, #0x0
+ add r2, sp, #0x30
+ bl VEC_Subtract
+ add r0, sp, #0x30
+ bl VEC_Mag
+ str r0, [r4, #0x38]
+ mov r6, #0x0
+ add r0, sp, #0x24
+ str r6, [r0, #0x0]
+ str r6, [r0, #0x4]
+ str r6, [r0, #0x8]
+ add r0, sp, #0x18
+ str r6, [r0, #0x0]
+ str r6, [r0, #0x4]
+ str r6, [r0, #0x8]
+ add r0, sp, #0xc
+ str r6, [r0, #0x0]
+ str r6, [r0, #0x4]
+ str r6, [r0, #0x8]
+ mov r0, #0x1
+ lsl r0, r0, #0xc
+ add r3, sp, #0x30
+ str r0, [sp, #0x8]
+ ldmia r3!, {r0-r1}
+ add r2, sp, #0xc
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ str r6, [sp, #0x0]
+ str r0, [r2, #0x0]
+ str r6, [sp, #0x4]
+ str r6, [sp, #0x10]
+ add r0, sp, #0x0
+ add r1, sp, #0xc
+ bl FUN_0201C7B0
+ strh r0, [r4, #0x3e]
+ add r1, r6, #0x0
+ mov r0, #0x1
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x38]
+ str r1, [sp, #0x4]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x34]
+ str r1, [sp, #0x8]
+ str r0, [sp, #0x14]
+ str r1, [sp, #0x10]
+ add r0, sp, #0x0
+ add r1, sp, #0xc
+ bl FUN_0201C7B0
+ strh r0, [r4, #0x3c]
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ add r0, #0x40
+ strh r1, [r0, #0x0]
+ add r0, r7, #0x0
+ add r1, r4, #0x0
+ bl FUN_0201EE2C
+ ldr r0, [sp, #0x50]
+ cmp r0, #0x0
+ beq _0201EE26
+ str r5, [r4, #0x54]
+ add r2, r4, #0x0
+ ldmia r5!, {r0-r1}
+ add r2, #0x48
+ stmia r2!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ str r0, [r2, #0x0]
+ mov r0, #0x1
+ str r0, [r4, #0x58]
+ str r0, [r4, #0x5c]
+ str r0, [r4, #0x60]
+_0201EE26:
+ add sp, #0x3c
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201EE2C
+FUN_0201EE2C: ; 0x0201EE2C
+ push {r3-r6, lr}
+ sub sp, #0x14
+ add r5, r1, #0x0
+ cmp r0, #0x0
+ bne _0201EE6C
+ ldr r0, [r5, #0x10]
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ ldr r0, _0201EEE4 ; =0x021CED20
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0x0]
+ ldr r1, [r5, #0x4]
+ ldr r2, [r5, #0x8]
+ ldr r3, [r5, #0xc]
+ bl G3i_PerspectiveW_
+ ldr r1, _0201EEE8 ; =0x021CED98
+ mov r0, #0x50
+ ldr r2, [r1, #0x7c]
+ add r5, #0x44
+ bic r2, r0
+ str r2, [r1, #0x7c]
+ mov r1, #0x0
+ ldr r0, _0201EEEC ; =0x02105BB8
+ strb r1, [r5, #0x0]
+ str r1, [r0, #0x0]
+ add sp, #0x14
+ pop {r3-r6, pc}
+_0201EE6C:
+ ldr r4, [r5, #0x38]
+ ldr r0, [r5, #0x0]
+ ldr r1, [r5, #0x4]
+ bl FX_Div
+ asr r1, r0, #0x1f
+ asr r3, r4, #0x1f
+ add r2, r4, #0x0
+ bl _ll_mul
+ mov r2, #0x2
+ mov r3, #0x0
+ lsl r2, r2, #0xa
+ add r2, r0, r2
+ adc r1, r3
+ lsr r4, r2, #0xc
+ lsl r0, r1, #0x14
+ orr r4, r0
+ ldr r2, [r5, #0x8]
+ asr r1, r4, #0x1f
+ add r0, r4, #0x0
+ asr r3, r2, #0x1f
+ bl _ll_mul
+ mov r6, #0x2
+ mov r2, #0x0
+ lsl r6, r6, #0xa
+ add r3, r0, r6
+ adc r1, r2
+ lsl r0, r1, #0x14
+ lsr r3, r3, #0xc
+ orr r3, r0
+ ldr r0, [r5, #0xc]
+ neg r1, r4
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x10]
+ str r0, [sp, #0x4]
+ lsl r0, r6, #0x1
+ str r0, [sp, #0x8]
+ str r2, [sp, #0xc]
+ ldr r0, _0201EEE4 ; =0x021CED20
+ neg r2, r3
+ str r0, [sp, #0x10]
+ add r0, r4, #0x0
+ bl G3i_OrthoW_
+ ldr r1, _0201EEE8 ; =0x021CED98
+ mov r0, #0x50
+ ldr r2, [r1, #0x7c]
+ add r5, #0x44
+ bic r2, r0
+ str r2, [r1, #0x7c]
+ mov r0, #0x1
+ strb r0, [r5, #0x0]
+ ldr r0, _0201EEEC ; =0x02105BB8
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ add sp, #0x14
+ pop {r3-r6, pc}
+ nop
+_0201EEE4: .word 0x021CED20
+_0201EEE8: .word 0x021CED98
+_0201EEEC: .word 0x02105BB8
+
+ thumb_func_start FUN_0201EEF0
+FUN_0201EEF0: ; 0x0201EEF0
+ add r2, r1, #0x0
+ add r2, #0x46
+ strh r0, [r2, #0x0]
+ add r0, r1, #0x0
+ add r0, #0x46
+ ldrh r0, [r0, #0x0]
+ ldr r3, _0201EF24 ; =FUN_0201EE2C
+ asr r0, r0, #0x4
+ lsl r2, r0, #0x2
+ ldr r0, _0201EF28 ; =0x020FFA38
+ ldrsh r2, [r0, r2]
+ str r2, [r1, #0x0]
+ add r2, r1, #0x0
+ add r2, #0x46
+ ldrh r2, [r2, #0x0]
+ asr r2, r2, #0x4
+ lsl r2, r2, #0x1
+ add r2, r2, #0x1
+ lsl r2, r2, #0x1
+ ldrsh r0, [r0, r2]
+ str r0, [r1, #0x4]
+ add r0, r1, #0x0
+ add r0, #0x44
+ ldrb r0, [r0, #0x0]
+ bx r3
+ nop
+_0201EF24: .word FUN_0201EE2C
+_0201EF28: .word 0x020FFA38
+
+ thumb_func_start FUN_0201EF2C
+FUN_0201EF2C: ; 0x0201EF2C
+ add r2, r1, #0x0
+ add r2, #0x46
+ ldrh r2, [r2, #0x0]
+ ldr r3, _0201EF68 ; =FUN_0201EE2C
+ add r2, r2, r0
+ add r0, r1, #0x0
+ add r0, #0x46
+ strh r2, [r0, #0x0]
+ add r0, r1, #0x0
+ add r0, #0x46
+ ldrh r0, [r0, #0x0]
+ asr r0, r0, #0x4
+ lsl r2, r0, #0x2
+ ldr r0, _0201EF6C ; =0x020FFA38
+ ldrsh r2, [r0, r2]
+ str r2, [r1, #0x0]
+ add r2, r1, #0x0
+ add r2, #0x46
+ ldrh r2, [r2, #0x0]
+ asr r2, r2, #0x4
+ lsl r2, r2, #0x1
+ add r2, r2, #0x1
+ lsl r2, r2, #0x1
+ ldrsh r0, [r0, r2]
+ str r0, [r1, #0x4]
+ add r0, r1, #0x0
+ add r0, #0x44
+ ldrb r0, [r0, #0x0]
+ bx r3
+ nop
+_0201EF68: .word FUN_0201EE2C
+_0201EF6C: .word 0x020FFA38
+
+ thumb_func_start FUN_0201EF70
+FUN_0201EF70: ; 0x0201EF70
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x14
+ add r1, r5, #0x0
+ add r2, r0, #0x0
+ bl VEC_Add
+ add r4, #0x20
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ bl VEC_Add
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0201EF90
+FUN_0201EF90: ; 0x0201EF90
+ ldrh r2, [r0, #0x0]
+ strh r2, [r1, #0x3c]
+ ldrh r2, [r0, #0x2]
+ strh r2, [r1, #0x3e]
+ add r2, r1, #0x0
+ ldrh r3, [r0, #0x4]
+ add r2, #0x40
+ strh r3, [r2, #0x0]
+ ldrh r2, [r0, #0x6]
+ add r0, r1, #0x0
+ add r0, #0x42
+ strh r2, [r0, #0x0]
+ ldr r3, _0201EFB0 ; =FUN_0201E7D8
+ add r0, r1, #0x0
+ bx r3
+ nop
+_0201EFB0: .word FUN_0201E7D8
+
+ thumb_func_start FUN_0201EFB4
+FUN_0201EFB4: ; 0x0201EFB4
+ ldrh r3, [r1, #0x3c]
+ ldrh r2, [r0, #0x0]
+ add r2, r3, r2
+ strh r2, [r1, #0x3c]
+ ldrh r3, [r1, #0x3e]
+ ldrh r2, [r0, #0x2]
+ add r2, r3, r2
+ strh r2, [r1, #0x3e]
+ add r2, r1, #0x0
+ add r2, #0x40
+ ldrh r2, [r2, #0x0]
+ ldrh r0, [r0, #0x4]
+ ldr r3, _0201EFDC ; =FUN_0201E8B8
+ add r2, r2, r0
+ add r0, r1, #0x0
+ add r0, #0x40
+ strh r2, [r0, #0x0]
+ add r0, r1, #0x0
+ bx r3
+ nop
+_0201EFDC: .word FUN_0201E8B8
+
+ thumb_func_start FUN_0201EFE0
+FUN_0201EFE0: ; 0x0201EFE0
+ ldr r3, _0201EFE8 ; =FUN_0201E7D8
+ str r0, [r1, #0x38]
+ add r0, r1, #0x0
+ bx r3
+ .balign 4
+_0201EFE8: .word FUN_0201E7D8
+
+ thumb_func_start FUN_0201EFEC
+FUN_0201EFEC: ; 0x0201EFEC
+ push {r4, lr}
+ add r3, r1, #0x0
+ add r4, r0, #0x0
+ add r2, r3, #0x0
+ ldmia r4!, {r0-r1}
+ add r2, #0x20
+ stmia r2!, {r0-r1}
+ ldr r0, [r4, #0x0]
+ str r0, [r2, #0x0]
+ add r0, r3, #0x0
+ bl FUN_0201E7D8
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201F008
+FUN_0201F008: ; 0x0201F008
+ add r0, #0x46
+ ldrh r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201F010
+FUN_0201F010: ; 0x0201F010
+ ldr r0, [r0, #0x38]
+ bx lr
+
+ thumb_func_start FUN_0201F014
+FUN_0201F014: ; 0x0201F014
+ ldrh r2, [r1, #0x3c]
+ strh r2, [r0, #0x0]
+ ldrh r2, [r1, #0x3e]
+ strh r2, [r0, #0x2]
+ add r2, r1, #0x0
+ add r2, #0x40
+ ldrh r2, [r2, #0x0]
+ add r1, #0x42
+ strh r2, [r0, #0x4]
+ ldrh r1, [r1, #0x0]
+ strh r1, [r0, #0x6]
+ bx lr
+
+ thumb_func_start FUN_0201F02C
+FUN_0201F02C: ; 0x0201F02C
+ add r2, r1, #0x0
+ add r2, #0x20
+ add r3, r0, #0x0
+ ldmia r2!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r2, #0x0]
+ str r0, [r3, #0x0]
+ bx lr
+
+ thumb_func_start FUN_0201F03C
+FUN_0201F03C: ; 0x0201F03C
+ add r2, r1, #0x0
+ add r2, #0x14
+ add r3, r0, #0x0
+ ldmia r2!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r2, #0x0]
+ str r0, [r3, #0x0]
+ bx lr
+
+ thumb_func_start FUN_0201F04C
+FUN_0201F04C: ; 0x0201F04C
+ add r3, r0, #0x0
+ add r2, r1, #0x0
+ ldmia r3!, {r0-r1}
+ add r2, #0x20
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ str r0, [r2, #0x0]
+ bx lr
+
+ thumb_func_start FUN_0201F05C
+FUN_0201F05C: ; 0x0201F05C
+ add r3, r0, #0x0
+ add r2, r1, #0x0
+ ldmia r3!, {r0-r1}
+ add r2, #0x14
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ str r0, [r2, #0x0]
+ bx lr
+
+ thumb_func_start FUN_0201F06C
+FUN_0201F06C: ; 0x0201F06C
+ mov r2, #0x0
+ strb r2, [r0, #0x0]
+ strb r2, [r0, #0x1]
+ str r2, [r0, #0x4]
+ add r1, r0, #0x0
+ str r2, [r0, #0x8]
+ add r1, #0xc4
+ str r2, [r1, #0x0]
+ add r1, r0, #0x0
+ add r1, #0xc8
+ str r2, [r1, #0x0]
+ add r1, r0, #0x0
+ add r1, #0xcc
+ str r2, [r1, #0x0]
+ add r1, r0, #0x0
+ add r1, #0xd0
+ str r2, [r1, #0x0]
+ strb r2, [r0, #0x3]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201F094
+FUN_0201F094: ; 0x0201F094
+ mov r3, #0x0
+ str r3, [r0, #0x1c]
+ str r3, [r0, #0x20]
+ str r3, [r0, #0x78]
+ add r1, r0, #0x0
+ str r3, [r0, #0x7c]
+ add r1, #0x80
+ str r3, [r1, #0x0]
+ add r1, r0, #0x0
+ add r1, #0x84
+ add r2, r0, #0x0
+ str r3, [r1, #0x0]
+ add r2, #0x94
+ mov r1, #0x10
+_0201F0B0:
+ strb r3, [r2, #0x0]
+ add r2, r2, #0x1
+ sub r1, r1, #0x1
+ bne _0201F0B0
+ add r2, r0, #0x0
+ mov r1, #0x0
+ add r2, #0x88
+ str r1, [r2, #0x0]
+ add r2, r0, #0x0
+ add r2, #0x8c
+ str r1, [r2, #0x0]
+ add r2, r0, #0x0
+ add r2, #0x90
+ str r1, [r2, #0x0]
+ add r2, r0, #0x0
+ add r2, #0xa4
+ str r1, [r2, #0x0]
+ str r1, [r0, #0x0]
+ str r1, [r0, #0x4]
+ mov r2, #0x1
+ str r1, [r0, #0x8]
+ lsl r2, r2, #0xc
+ str r2, [r0, #0xc]
+ str r2, [r0, #0x10]
+ str r2, [r0, #0x14]
+ add r2, r0, #0x0
+ add r2, #0xaa
+ strh r1, [r2, #0x0]
+ add r2, r0, #0x0
+ add r2, #0xa8
+ strb r1, [r2, #0x0]
+ add r2, r0, #0x0
+ add r2, #0xb0
+ str r1, [r2, #0x0]
+ add r2, r0, #0x0
+ add r2, #0xb4
+ str r1, [r2, #0x0]
+ strb r1, [r0, #0x18]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201F100
+FUN_0201F100: ; 0x0201F100
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ ldr r0, _0201F13C ; =0x021C59A8
+ add r4, r1, #0x0
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0201F112
+ bl ErrorHandling
+_0201F112:
+ mov r1, #0xd4
+ add r0, r4, #0x0
+ mul r1, r6
+ bl FUN_02016998
+ ldr r7, _0201F13C ; =0x021C59A8
+ mov r4, #0x0
+ str r0, [r7, #0x0]
+ str r6, [r7, #0x4]
+ cmp r6, #0x0
+ ble _0201F13A
+ add r5, r4, #0x0
+_0201F12A:
+ ldr r0, [r7, #0x0]
+ add r0, r0, r5
+ bl FUN_0201F06C
+ add r4, r4, #0x1
+ add r5, #0xd4
+ cmp r4, r6
+ blt _0201F12A
+_0201F13A:
+ pop {r3-r7, pc}
+ .balign 4
+_0201F13C: .word 0x021C59A8
+
+ thumb_func_start FUN_0201F140
+FUN_0201F140: ; 0x0201F140
+ push {r4-r6, lr}
+ ldr r6, _0201F174 ; =0x021C59A8
+ mov r4, #0x0
+ ldr r0, [r6, #0x4]
+ cmp r0, #0x0
+ ble _0201F160
+ add r5, r4, #0x0
+_0201F14E:
+ ldr r0, [r6, #0x0]
+ add r0, r0, r5
+ bl FUN_0201F23C
+ ldr r0, [r6, #0x4]
+ add r4, r4, #0x1
+ add r5, #0xd4
+ cmp r4, r0
+ blt _0201F14E
+_0201F160:
+ ldr r0, _0201F174 ; =0x021C59A8
+ ldr r0, [r0, #0x0]
+ bl FUN_02016A18
+ ldr r0, _0201F174 ; =0x021C59A8
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ str r1, [r0, #0x4]
+ pop {r4-r6, pc}
+ nop
+_0201F174: .word 0x021C59A8
+
+ thumb_func_start FUN_0201F178
+FUN_0201F178: ; 0x0201F178
+ push {r3-r7, lr}
+ ldr r6, _0201F1B0 ; =0x021C59A8
+ mov r4, #0x0
+ ldr r0, [r6, #0x4]
+ cmp r0, #0x0
+ ble _0201F1AC
+ add r5, r4, #0x0
+ mov r7, #0x2
+_0201F188:
+ ldr r0, [r6, #0x0]
+ add r0, r0, r5
+ ldrb r1, [r0, #0x1]
+ cmp r1, #0x1
+ bne _0201F196
+ bl FUN_0201F318
+_0201F196:
+ ldr r0, [r6, #0x0]
+ add r1, r0, r5
+ ldrb r0, [r1, #0x3]
+ cmp r0, #0x1
+ bne _0201F1A2
+ strb r7, [r1, #0x3]
+_0201F1A2:
+ ldr r0, [r6, #0x4]
+ add r4, r4, #0x1
+ add r5, #0xd4
+ cmp r4, r0
+ blt _0201F188
+_0201F1AC:
+ pop {r3-r7, pc}
+ nop
+_0201F1B0: .word 0x021C59A8
+
+ thumb_func_start FUN_0201F1B4
+FUN_0201F1B4: ; 0x0201F1B4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_0201F2E4
+ add r4, r0, #0x0
+ bne _0201F1C8
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0201F1C8:
+ mov r0, #0x1
+ strb r0, [r4, #0x0]
+ strb r0, [r4, #0x1]
+ ldr r2, [r5, #0x0]
+ mov r1, #0xb8
+ ldr r0, [r5, #0x4]
+ mul r1, r2
+ bl FUN_02016998
+ str r0, [r4, #0x4]
+ ldr r0, [r5, #0x0]
+ str r0, [r4, #0x8]
+ add r0, r4, #0x0
+ add r0, #0xc
+ bl FUN_0201F094
+ add r1, r4, #0x0
+ add r0, r4, #0x0
+ add r1, #0xc
+ add r0, #0xbc
+ str r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0xc0
+ str r1, [r0, #0x0]
+ ldr r1, [r5, #0x0]
+ ldr r0, [r5, #0x4]
+ lsl r1, r1, #0x2
+ bl FUN_02016998
+ add r1, r4, #0x0
+ add r1, #0xc4
+ str r0, [r1, #0x0]
+ add r0, r4, #0x0
+ bl FUN_0201FABC
+ ldr r0, [r5, #0x4]
+ mov r1, #0x10
+ bl FUN_02016998
+ add r1, r4, #0x0
+ add r1, #0xcc
+ str r0, [r1, #0x0]
+ add r0, r4, #0x0
+ add r0, #0xcc
+ ldr r0, [r0, #0x0]
+ ldr r1, [r5, #0x4]
+ mov r2, #0x4
+ bl FUN_02016B20
+ ldr r0, [r5, #0x0]
+ ldr r1, [r5, #0x4]
+ bl FUN_0201C360
+ add r1, r4, #0x0
+ add r1, #0xd0
+ str r0, [r1, #0x0]
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0201F23C
+FUN_0201F23C: ; 0x0201F23C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _0201F24A
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r4, pc}
+_0201F24A:
+ ldrb r1, [r4, #0x0]
+ cmp r1, #0x0
+ beq _0201F27E
+ bl FUN_0201F284
+ ldr r0, [r4, #0x4]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ add r0, #0xc4
+ ldr r0, [r0, #0x0]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ add r0, #0xcc
+ ldr r0, [r0, #0x0]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ add r0, #0xd0
+ ldr r0, [r0, #0x0]
+ bl FUN_0201C39C
+ add r0, r4, #0x0
+ bl FUN_0201F06C
+_0201F27E:
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201F284
+FUN_0201F284: ; 0x0201F284
+ push {r3-r5, lr}
+ cmp r0, #0x0
+ bne _0201F294
+ bne _0201F290
+ bl ErrorHandling
+_0201F290:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0201F294:
+ ldrb r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _0201F2BA
+ add r1, r0, #0x0
+ add r1, #0xbc
+ add r4, r0, #0x0
+ ldr r1, [r1, #0x0]
+ add r4, #0xc
+ cmp r1, r4
+ beq _0201F2BA
+_0201F2A8:
+ add r0, r1, #0x0
+ add r0, #0xb0
+ ldr r5, [r0, #0x0]
+ add r0, r1, #0x0
+ bl FUN_0201F744
+ add r1, r5, #0x0
+ cmp r5, r4
+ bne _0201F2A8
+_0201F2BA:
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201F2C0
+FUN_0201F2C0: ; 0x0201F2C0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _0201F2CA
+ bl ErrorHandling
+_0201F2CA:
+ ldrb r0, [r4, #0x3]
+ cmp r0, #0x0
+ bne _0201F2D4
+ mov r0, #0x0
+ pop {r4, pc}
+_0201F2D4:
+ mov r0, #0x1
+ pop {r4, pc}
+
+ thumb_func_start FUN_0201F2D8
+FUN_0201F2D8: ; 0x0201F2D8
+ ldrb r1, [r0, #0x3]
+ cmp r1, #0x2
+ bne _0201F2E2
+ mov r1, #0x0
+ strb r1, [r0, #0x3]
+_0201F2E2:
+ bx lr
+
+ thumb_func_start FUN_0201F2E4
+FUN_0201F2E4: ; 0x0201F2E4
+ push {r3-r4}
+ ldr r0, _0201F314 ; =0x021C59A8
+ mov r1, #0x0
+ ldr r3, [r0, #0x4]
+ cmp r3, #0x0
+ ble _0201F30C
+ ldr r4, [r0, #0x0]
+ add r2, r4, #0x0
+_0201F2F4:
+ ldrb r0, [r2, #0x0]
+ cmp r0, #0x0
+ bne _0201F304
+ mov r0, #0xd4
+ mul r0, r1
+ add r0, r4, r0
+ pop {r3-r4}
+ bx lr
+_0201F304:
+ add r1, r1, #0x1
+ add r2, #0xd4
+ cmp r1, r3
+ blt _0201F2F4
+_0201F30C:
+ mov r0, #0x0
+ pop {r3-r4}
+ bx lr
+ nop
+_0201F314: .word 0x021C59A8
+
+ thumb_func_start FUN_0201F318
+FUN_0201F318: ; 0x0201F318
+ push {r3-r6, lr}
+ sub sp, #0x24
+ add r5, r0, #0x0
+ bne _0201F324
+ bl ErrorHandling
+_0201F324:
+ add r0, sp, #0x0
+ bl MTX_Identity33_
+ add r0, r5, #0x0
+ add r0, #0xbc
+ ldr r4, [r0, #0x0]
+ add r5, #0xc
+ cmp r4, r5
+ beq _0201F37E
+ add r6, sp, #0x0
+_0201F338:
+ ldrb r0, [r4, #0x18]
+ cmp r0, #0x1
+ bne _0201F376
+ add r0, r4, #0x0
+ bl FUN_0201FC54
+ add r0, r4, #0x0
+ add r0, #0xa8
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x3
+ bne _0201F356
+ add r0, r4, #0x0
+ bl FUN_0201F90C
+ b _0201F360
+_0201F356:
+ cmp r0, #0x2
+ bne _0201F360
+ add r0, r4, #0x0
+ bl FUN_0201F8F0
+_0201F360:
+ add r0, r4, #0x0
+ add r3, r4, #0x0
+ add r0, #0x24
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ add r3, #0xc
+ bl FUN_0201B26C
+ add r0, r4, #0x0
+ bl FUN_0201FC70
+_0201F376:
+ add r4, #0xb0
+ ldr r4, [r4, #0x0]
+ cmp r4, r5
+ bne _0201F338
+_0201F37E:
+ add sp, #0x24
+ pop {r3-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201F384
+FUN_0201F384: ; 0x0201F384
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r6, [r5, #0x1c]
+ add r4, r1, #0x0
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_0201F5B8
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0201F5D4
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_0201F648
+ add r0, r5, #0x0
+ add r0, #0xa8
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x1
+ bne _0201F3BA
+ add r6, #0xc
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_0201FB58
+_0201F3BA:
+ add r0, r5, #0x0
+ mov r1, #0x2
+ add r0, #0xa8
+ strb r1, [r0, #0x0]
+ ldr r0, [r4, #0x8]
+ mov r1, #0x0
+ str r0, [r5, #0x20]
+ add r0, r5, #0x0
+ add r0, #0xaa
+ strh r1, [r0, #0x0]
+ add r5, #0xac
+ str r1, [r5, #0x0]
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0201F3D4
+FUN_0201F3D4: ; 0x0201F3D4
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r6, [r5, #0x1c]
+ add r4, r1, #0x0
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_0201F5B8
+ add r0, r5, #0x0
+ add r0, #0xa8
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x2
+ bne _0201F3FE
+ add r0, r5, #0x0
+ add r1, r5, #0x0
+ add r2, r5, #0x0
+ add r0, #0x88
+ add r1, #0x8c
+ add r2, #0x90
+ bl FUN_0201F524
+_0201F3FE:
+ add r0, r5, #0x0
+ ldr r1, [r4, #0x1c]
+ add r0, #0x88
+ str r1, [r0, #0x0]
+ add r0, r5, #0x0
+ ldr r1, [r4, #0x20]
+ add r0, #0x8c
+ str r1, [r0, #0x0]
+ add r0, r5, #0x0
+ ldr r1, [r4, #0x24]
+ add r0, #0x90
+ str r1, [r0, #0x0]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0201F69C
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0201F6C8
+ add r0, r5, #0x0
+ add r0, #0xa8
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x1
+ bne _0201F43A
+ add r6, #0xc
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_0201FB58
+_0201F43A:
+ add r0, r5, #0x0
+ mov r1, #0x3
+ add r0, #0xa8
+ strb r1, [r0, #0x0]
+ ldr r0, [r4, #0x8]
+ mov r1, #0x0
+ str r0, [r5, #0x20]
+ add r0, r5, #0x0
+ add r0, #0xaa
+ strh r1, [r0, #0x0]
+ add r5, #0xac
+ str r1, [r5, #0x0]
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0201F454
+FUN_0201F454: ; 0x0201F454
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ bl FUN_020B7E1C
+ str r0, [sp, #0x8]
+ add r0, r5, #0x0
+ bl FUN_020B7E10
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ bl FUN_020B7CE4
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x0
+ beq _0201F492
+ ldr r3, _0201F4E4 ; =0x021064B8
+ mov r1, #0x0
+ ldr r3, [r3, #0x0]
+ add r2, r1, #0x0
+ blx r3
+ str r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _0201F496
+ bl ErrorHandling
+ b _0201F496
+_0201F492:
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+_0201F496:
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _0201F4B2
+ ldr r3, _0201F4E4 ; =0x021064B8
+ mov r1, #0x1
+ ldr r3, [r3, #0x0]
+ mov r2, #0x0
+ blx r3
+ str r0, [r6, #0x0]
+ cmp r0, #0x0
+ bne _0201F4B6
+ bl ErrorHandling
+ b _0201F4B6
+_0201F4B2:
+ mov r0, #0x0
+ str r0, [r6, #0x0]
+_0201F4B6:
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x0
+ beq _0201F4DA
+ ldr r3, _0201F4E8 ; =0x021064C0
+ mov r1, #0x2
+ ldrh r2, [r5, #0x20]
+ lsl r1, r1, #0xe
+ ldr r3, [r3, #0x0]
+ and r1, r2
+ mov r2, #0x0
+ blx r3
+ str r0, [r7, #0x0]
+ cmp r0, #0x0
+ bne _0201F4DE
+ bl ErrorHandling
+ add sp, #0xc
+ pop {r4-r7, pc}
+_0201F4DA:
+ mov r0, #0x0
+ str r0, [r7, #0x0]
+_0201F4DE:
+ add sp, #0xc
+ pop {r4-r7, pc}
+ nop
+_0201F4E4: .word 0x021064B8
+_0201F4E8: .word 0x021064C0
+
+ thumb_func_start FUN_0201F4EC
+FUN_0201F4EC: ; 0x0201F4EC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r3, #0x0
+ bl FUN_020B7CF0
+ add r0, r5, #0x0
+ bl FUN_020B7C58
+ str r0, [r4, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0201F500
+FUN_0201F500: ; 0x0201F500
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ ldr r1, [r2, #0x0]
+ ldr r2, [r3, #0x0]
+ add r5, r0, #0x0
+ bl FUN_020B7DFC
+ ldr r1, [sp, #0x10]
+ add r0, r5, #0x0
+ ldr r1, [r1, #0x0]
+ bl FUN_020B7CDC
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_020B7790
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201F524
+FUN_0201F524: ; 0x0201F524
+ push {r3-r5, lr}
+ ldr r0, [r0, #0x0]
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ cmp r0, #0x0
+ beq _0201F536
+ ldr r1, _0201F550 ; =0x021064BC
+ ldr r1, [r1, #0x0]
+ blx r1
+_0201F536:
+ ldr r0, [r5, #0x0]
+ cmp r0, #0x0
+ beq _0201F542
+ ldr r1, _0201F550 ; =0x021064BC
+ ldr r1, [r1, #0x0]
+ blx r1
+_0201F542:
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _0201F54E
+ ldr r1, _0201F554 ; =0x021064C4
+ ldr r1, [r1, #0x0]
+ blx r1
+_0201F54E:
+ pop {r3-r5, pc}
+ .balign 4
+_0201F550: .word 0x021064BC
+_0201F554: .word 0x021064C4
+
+ thumb_func_start FUN_0201F558
+FUN_0201F558: ; 0x0201F558
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ add r5, r1, #0x0
+ cmp r4, #0x0
+ beq _0201F568
+ cmp r5, #0x0
+ bne _0201F56E
+_0201F568:
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0201F56E:
+ bl FUN_020B7E1C
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ bl FUN_020B7E10
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ bl FUN_020B7CE4
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020B7E1C
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020B7E10
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020B7CE4
+ ldr r1, [sp, #0x0]
+ cmp r1, r6
+ bne _0201F5AA
+ ldr r1, [sp, #0x4]
+ cmp r1, r7
+ bne _0201F5AA
+ cmp r4, r0
+ beq _0201F5B0
+_0201F5AA:
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0201F5B0:
+ mov r0, #0x1
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201F5B8
+FUN_0201F5B8: ; 0x0201F5B8
+ push {r4, lr}
+ add r4, r1, #0x0
+ add r0, r4, #0x0
+ add r0, #0xa4
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0201F5D0
+ bl FUN_0201C40C
+ mov r0, #0x0
+ add r4, #0xa4
+ str r0, [r4, #0x0]
+_0201F5D0:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201F5D4
+FUN_0201F5D4: ; 0x0201F5D4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0x80
+ ldr r4, [r0, #0x0]
+ add r0, r1, #0x0
+ add r1, r5, #0x0
+ add r2, r5, #0x0
+ add r1, #0x7c
+ add r2, #0x80
+ bl FUN_0201FB9C
+ str r0, [r5, #0x78]
+ add r0, r5, #0x0
+ ldr r1, [r5, #0x7c]
+ add r0, #0x24
+ bl FUN_020B80B4
+ add r0, r5, #0x0
+ add r0, #0xa8
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x3
+ beq _0201F60E
+ add r1, r5, #0x0
+ add r1, #0x80
+ ldr r1, [r1, #0x0]
+ add r0, r4, #0x0
+ bl FUN_0201F558
+ b _0201F610
+_0201F60E:
+ mov r0, #0x0
+_0201F610:
+ cmp r0, #0x0
+ bne _0201F644
+ add r0, r5, #0x0
+ add r0, #0xa8
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x2
+ bne _0201F62E
+ add r0, r5, #0x0
+ add r1, r5, #0x0
+ add r2, r5, #0x0
+ add r0, #0x88
+ add r1, #0x8c
+ add r2, #0x90
+ bl FUN_0201F524
+_0201F62E:
+ add r0, r5, #0x0
+ add r0, #0x80
+ add r1, r5, #0x0
+ add r2, r5, #0x0
+ add r5, #0x90
+ ldr r0, [r0, #0x0]
+ add r1, #0x88
+ add r2, #0x8c
+ add r3, r5, #0x0
+ bl FUN_0201F454
+_0201F644:
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201F648
+FUN_0201F648: ; 0x0201F648
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r4, r2, #0x0
+ add r6, r0, #0x0
+ add r5, r1, #0x0
+ add r0, r4, #0x0
+ bl FUN_0201FBCC
+ add r1, r5, #0x0
+ add r1, #0x84
+ add r3, r5, #0x0
+ add r3, #0x94
+ str r0, [r1, #0x0]
+ add r4, #0xc
+ add r2, r3, #0x0
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ add r0, r5, #0x0
+ add r0, #0x90
+ ldr r0, [r0, #0x0]
+ add r1, r2, #0x0
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ add r0, #0xac
+ ldr r0, [r0, #0x0]
+ add r2, r5, #0x0
+ add r3, r5, #0x0
+ str r0, [sp, #0x4]
+ add r6, #0xd0
+ add r2, #0x84
+ add r3, #0x88
+ ldr r0, [r6, #0x0]
+ ldr r2, [r2, #0x0]
+ ldr r3, [r3, #0x0]
+ bl FUN_0201C3B4
+ add r5, #0xa4
+ str r0, [r5, #0x0]
+ add sp, #0x8
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0201F69C
+FUN_0201F69C: ; 0x0201F69C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r1, r5, #0x0
+ add r2, r5, #0x0
+ add r0, r4, #0x0
+ add r1, #0x7c
+ add r2, #0x80
+ bl FUN_0201FB9C
+ str r0, [r5, #0x78]
+ add r0, r5, #0x0
+ ldr r1, [r5, #0x7c]
+ add r0, #0x24
+ bl FUN_020B80B4
+ add r0, r4, #0x0
+ bl FUN_0201FBCC
+ add r5, #0x84
+ str r0, [r5, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0201F6C8
+FUN_0201F6C8: ; 0x0201F6C8
+ push {r3-r4}
+ add r4, r0, #0x0
+ add r2, r4, #0x0
+ add r3, r1, #0x0
+ add r3, #0xc
+ add r2, #0x94
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ mov r0, #0x0
+ add r4, #0xa4
+ str r0, [r4, #0x0]
+ pop {r3-r4}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201F6E8
+FUN_0201F6E8: ; 0x0201F6E8
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r6, [r5, #0x0]
+ cmp r6, #0x0
+ bne _0201F6F6
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0201F6F6:
+ add r0, r6, #0x0
+ bl FUN_0201FAF4
+ add r4, r0, #0x0
+ bne _0201F704
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0201F704:
+ add r3, r5, #0x0
+ str r6, [r4, #0x1c]
+ add r3, #0x8
+ ldmia r3!, {r0-r1}
+ add r2, r4, #0x0
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ add r3, r5, #0x0
+ str r0, [r2, #0x0]
+ add r3, #0x14
+ add r2, r4, #0x0
+ ldmia r3!, {r0-r1}
+ add r2, #0xc
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ mov r1, #0x0
+ str r0, [r2, #0x0]
+ add r0, r4, #0x0
+ add r0, #0xaa
+ strh r1, [r0, #0x0]
+ mov r1, #0x1
+ add r0, r4, #0x0
+ strb r1, [r4, #0x18]
+ add r0, #0xa8
+ strb r1, [r0, #0x0]
+ ldr r1, [r5, #0x4]
+ add r0, r4, #0x0
+ bl FUN_0201FBD8
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201F744
+FUN_0201F744: ; 0x0201F744
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bne _0201F74E
+ bl ErrorHandling
+_0201F74E:
+ add r0, r5, #0x0
+ add r0, #0xa8
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x1
+ bne _0201F75C
+ bl ErrorHandling
+_0201F75C:
+ add r0, r5, #0x0
+ add r0, #0xa8
+ ldrb r0, [r0, #0x0]
+ ldr r4, [r5, #0x1c]
+ cmp r0, #0x0
+ bne _0201F76C
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0201F76C:
+ add r0, r5, #0x0
+ bl FUN_0201FB7C
+ add r0, r5, #0x0
+ add r0, #0xa8
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x2
+ bne _0201F78C
+ add r0, r5, #0x0
+ add r1, r5, #0x0
+ add r2, r5, #0x0
+ add r0, #0x88
+ add r1, #0x8c
+ add r2, #0x90
+ bl FUN_0201F524
+_0201F78C:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_0201F5B8
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_0201FB20
+ mov r0, #0x1
+ strb r0, [r4, #0x3]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201F7A4
+FUN_0201F7A4: ; 0x0201F7A4
+ push {r3-r4}
+ add r4, r0, #0x0
+ str r1, [r4, #0x0]
+ str r2, [r4, #0x4]
+ str r3, [r4, #0x8]
+ ldr r3, [sp, #0x8]
+ add r2, r4, #0x0
+ add r2, #0xc
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ mov r0, #0x0
+ str r0, [r4, #0x1c]
+ str r0, [r4, #0x20]
+ str r0, [r4, #0x24]
+ pop {r3-r4}
+ bx lr
+
+ thumb_func_start FUN_0201F7C8
+FUN_0201F7C8: ; 0x0201F7C8
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r5, r1, #0x0
+ cmp r4, #0x0
+ bne _0201F7D6
+ bl ErrorHandling
+_0201F7D6:
+ ldmia r5!, {r0-r1}
+ stmia r4!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ str r0, [r4, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0201F7E0
+FUN_0201F7E0: ; 0x0201F7E0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _0201F7EA
+ bl ErrorHandling
+_0201F7EA:
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201F7F0
+FUN_0201F7F0: ; 0x0201F7F0
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r5, r1, #0x0
+ cmp r4, #0x0
+ bne _0201F7FE
+ bl ErrorHandling
+_0201F7FE:
+ ldmia r5!, {r0-r1}
+ add r4, #0xc
+ stmia r4!, {r0-r1}
+ ldr r0, [r5, #0x0]
+ str r0, [r4, #0x0]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201F80C
+FUN_0201F80C: ; 0x0201F80C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _0201F81A
+ bl ErrorHandling
+_0201F81A:
+ strb r4, [r5, #0x18]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201F820
+FUN_0201F820: ; 0x0201F820
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _0201F82A
+ bl ErrorHandling
+_0201F82A:
+ ldrb r0, [r4, #0x18]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201F830
+FUN_0201F830: ; 0x0201F830
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _0201F83E
+ bl ErrorHandling
+_0201F83E:
+ add r5, #0xaa
+ strh r4, [r5, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0201F844
+FUN_0201F844: ; 0x0201F844
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _0201F84E
+ bl ErrorHandling
+_0201F84E:
+ add r4, #0xaa
+ ldrh r0, [r4, #0x0]
+ pop {r4, pc}
+
+ thumb_func_start FUN_0201F854
+FUN_0201F854: ; 0x0201F854
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _0201F862
+ bl ErrorHandling
+_0201F862:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0201FBFC
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0201F86C
+FUN_0201F86C: ; 0x0201F86C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _0201F87A
+ bl ErrorHandling
+_0201F87A:
+ add r5, #0xac
+ str r4, [r5, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0201F880
+FUN_0201F880: ; 0x0201F880
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _0201F88A
+ bl ErrorHandling
+_0201F88A:
+ add r4, #0xac
+ ldr r0, [r4, #0x0]
+ pop {r4, pc}
+
+ thumb_func_start FUN_0201F890
+FUN_0201F890: ; 0x0201F890
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _0201F89E
+ bl ErrorHandling
+_0201F89E:
+ add r1, r5, #0x0
+ add r1, #0xaa
+ ldrh r1, [r1, #0x0]
+ add r0, r5, #0x0
+ bl FUN_0201FBEC
+ add r1, r5, #0x0
+ add r1, #0xac
+ str r0, [r1, #0x0]
+ add r0, r5, #0x0
+ add r0, #0xac
+ ldr r0, [r0, #0x0]
+ add r5, #0xac
+ add r0, r0, r4
+ str r0, [r5, #0x0]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201F8C0
+FUN_0201F8C0: ; 0x0201F8C0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _0201F8CA
+ bl ErrorHandling
+_0201F8CA:
+ add r1, r4, #0x0
+ add r1, #0xaa
+ ldrh r1, [r1, #0x0]
+ add r0, r4, #0x0
+ bl FUN_0201FBEC
+ add r4, #0xac
+ ldr r1, [r4, #0x0]
+ sub r0, r1, r0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201F8E0
+FUN_0201F8E0: ; 0x0201F8E0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _0201F8EA
+ bl ErrorHandling
+_0201F8EA:
+ ldr r0, [r4, #0x7c]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201F8F0
+FUN_0201F8F0: ; 0x0201F8F0
+ push {r3, lr}
+ add r1, r0, #0x0
+ add r0, #0xa8
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x2
+ bne _0201F90A
+ add r0, r1, #0x0
+ add r0, #0xa4
+ add r1, #0xac
+ ldr r0, [r0, #0x0]
+ ldr r1, [r1, #0x0]
+ bl FUN_0201C438
+_0201F90A:
+ pop {r3, pc}
+
+ thumb_func_start FUN_0201F90C
+FUN_0201F90C: ; 0x0201F90C
+ push {r3-r4, lr}
+ sub sp, #0x4
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0xac
+ ldr r1, [r1, #0x0]
+ add r0, #0x94
+ lsl r1, r1, #0x4
+ lsr r1, r1, #0x10
+ bl FUN_02022244
+ add r2, sp, #0x0
+ strb r0, [r2, #0x0]
+ lsr r0, r0, #0x8
+ strb r0, [r2, #0x1]
+ ldrb r0, [r2, #0x0]
+ add r1, r4, #0x0
+ add r1, #0x84
+ strb r0, [r2, #0x2]
+ ldrb r0, [r2, #0x1]
+ strb r0, [r2, #0x3]
+ ldrb r2, [r2, #0x2]
+ ldr r0, [r4, #0x7c]
+ ldr r1, [r1, #0x0]
+ bl FUN_0201F954
+ add r2, sp, #0x0
+ ldr r0, [r4, #0x7c]
+ add r4, #0x84
+ ldrb r2, [r2, #0x3]
+ ldr r1, [r4, #0x0]
+ bl FUN_0201FA04
+ add sp, #0x4
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201F954
+FUN_0201F954: ; 0x0201F954
+ push {r3-r7, lr}
+ ldr r3, [r0, #0x8]
+ mov r5, #0x0
+ add r6, r0, r3
+ ldrh r0, [r0, r3]
+ add r3, r1, #0x0
+ add r1, #0x42
+ ldrh r1, [r1, #0x0]
+ add r3, #0x3c
+ add r4, r6, r0
+ add r0, r3, r1
+ ldrh r1, [r3, r1]
+ mul r2, r1
+ add r0, r0, r2
+ ldr r0, [r0, #0x4]
+ lsl r0, r0, #0x10
+ lsr r7, r0, #0x10
+ ldrb r0, [r4, #0x1]
+ cmp r0, #0x0
+ ble _0201F9A2
+_0201F97C:
+ ldrh r0, [r4, #0x6]
+ add r1, r4, r0
+ ldrh r0, [r4, r0]
+ add r2, r1, #0x4
+ add r1, r0, #0x0
+ mul r1, r5
+ add r1, r2, r1
+ ldrb r2, [r1, #0x3]
+ mov r0, #0x1
+ tst r0, r2
+ beq _0201F99A
+ add r0, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_0201F9A4
+_0201F99A:
+ ldrb r0, [r4, #0x1]
+ add r5, r5, #0x1
+ cmp r5, r0
+ blt _0201F97C
+_0201F9A2:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0201F9A4
+FUN_0201F9A4: ; 0x0201F9A4
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r6, r0, #0x0
+ add r0, r1, #0x0
+ ldrh r0, [r0, #0x0]
+ str r1, [sp, #0x0]
+ add r7, r2, #0x0
+ add r0, r6, r0
+ str r0, [sp, #0x4]
+ add r0, r1, #0x0
+ ldrb r0, [r0, #0x2]
+ mov r4, #0x0
+ cmp r0, #0x0
+ ble _0201F9FC
+ add r0, r6, #0x4
+ str r0, [sp, #0x8]
+_0201F9C4:
+ ldrh r2, [r6, #0xa]
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0x8]
+ add r0, r0, r2
+ ldrh r2, [r1, r2]
+ ldr r1, [sp, #0x4]
+ ldrb r1, [r1, r4]
+ mul r1, r2
+ add r0, r0, r1
+ ldr r0, [r0, #0x4]
+ add r5, r6, r0
+ ldr r0, [r5, #0x14]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ add r1, r0, r7
+ ldr r0, _0201FA00 ; =0x0000FFFF
+ cmp r1, r0
+ bls _0201F9EC
+ bl ErrorHandling
+_0201F9EC:
+ ldr r0, [r5, #0x14]
+ add r4, r4, #0x1
+ add r0, r0, r7
+ str r0, [r5, #0x14]
+ ldr r0, [sp, #0x0]
+ ldrb r0, [r0, #0x2]
+ cmp r4, r0
+ blt _0201F9C4
+_0201F9FC:
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_0201FA00: .word 0x0000FFFF
+
+ thumb_func_start FUN_0201FA04
+FUN_0201FA04: ; 0x0201FA04
+ push {r3-r7, lr}
+ ldr r3, [r0, #0x8]
+ add r7, r0, r3
+ ldrh r0, [r7, #0x2]
+ add r4, r7, r0
+ ldrh r0, [r1, #0x34]
+ add r5, r1, r0
+ ldrh r0, [r5, #0x6]
+ add r1, r5, r0
+ ldrh r0, [r5, r0]
+ add r3, r1, #0x4
+ add r1, r0, #0x0
+ mul r1, r2
+ add r0, r3, r1
+ ldrh r6, [r3, r1]
+ ldrh r1, [r0, #0x2]
+ mov r0, #0x1
+ tst r0, r1
+ bne _0201FA2C
+ lsr r6, r6, #0x1
+_0201FA2C:
+ ldrb r0, [r4, #0x1]
+ mov r5, #0x0
+ cmp r0, #0x0
+ bls _0201FA5A
+_0201FA34:
+ ldrh r0, [r4, #0x6]
+ add r1, r4, r0
+ ldrh r0, [r4, r0]
+ add r2, r1, #0x4
+ add r1, r0, #0x0
+ mul r1, r5
+ add r1, r2, r1
+ ldrb r2, [r1, #0x3]
+ mov r0, #0x1
+ tst r0, r2
+ beq _0201FA52
+ add r0, r7, #0x0
+ add r2, r6, #0x0
+ bl FUN_0201FA5C
+_0201FA52:
+ ldrb r0, [r4, #0x1]
+ add r5, r5, #0x1
+ cmp r5, r0
+ blo _0201FA34
+_0201FA5A:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0201FA5C
+FUN_0201FA5C: ; 0x0201FA5C
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r6, r0, #0x0
+ add r0, r1, #0x0
+ ldrh r0, [r0, #0x0]
+ str r1, [sp, #0x0]
+ add r7, r2, #0x0
+ add r0, r6, r0
+ str r0, [sp, #0x4]
+ add r0, r1, #0x0
+ ldrb r0, [r0, #0x2]
+ mov r4, #0x0
+ cmp r0, #0x0
+ bls _0201FAB4
+ add r0, r6, #0x4
+ str r0, [sp, #0x8]
+_0201FA7C:
+ ldrh r2, [r6, #0xa]
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0x8]
+ add r0, r0, r2
+ ldrh r2, [r1, r2]
+ ldr r1, [sp, #0x4]
+ ldrb r1, [r1, r4]
+ mul r1, r2
+ add r0, r0, r1
+ ldr r0, [r0, #0x4]
+ add r5, r6, r0
+ ldrh r1, [r5, #0x1c]
+ ldr r0, _0201FAB8 ; =0x00001FFF
+ and r0, r1
+ add r1, r0, r7
+ ldr r0, _0201FAB8 ; =0x00001FFF
+ cmp r1, r0
+ bls _0201FAA4
+ bl ErrorHandling
+_0201FAA4:
+ ldrh r0, [r5, #0x1c]
+ add r4, r4, #0x1
+ add r0, r0, r7
+ strh r0, [r5, #0x1c]
+ ldr r0, [sp, #0x0]
+ ldrb r0, [r0, #0x2]
+ cmp r4, r0
+ blo _0201FA7C
+_0201FAB4:
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_0201FAB8: .word 0x00001FFF
+
+ thumb_func_start FUN_0201FABC
+FUN_0201FABC: ; 0x0201FABC
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x8]
+ mov r7, #0x0
+ cmp r0, #0x0
+ ble _0201FAEC
+ add r4, r7, #0x0
+ add r6, r7, #0x0
+_0201FACC:
+ ldr r0, [r5, #0x4]
+ add r0, r0, r4
+ bl FUN_0201F094
+ ldr r0, [r5, #0x4]
+ add r7, r7, #0x1
+ add r1, r0, r4
+ add r0, r5, #0x0
+ add r0, #0xc4
+ ldr r0, [r0, #0x0]
+ add r4, #0xb8
+ str r1, [r0, r6]
+ ldr r0, [r5, #0x8]
+ add r6, r6, #0x4
+ cmp r7, r0
+ blt _0201FACC
+_0201FAEC:
+ mov r0, #0x0
+ add r5, #0xc8
+ str r0, [r5, #0x0]
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0201FAF4
+FUN_0201FAF4: ; 0x0201FAF4
+ add r1, r0, #0x0
+ add r1, #0xc8
+ ldr r3, [r1, #0x0]
+ ldr r1, [r0, #0x8]
+ cmp r3, r1
+ blt _0201FB04
+ mov r0, #0x0
+ bx lr
+_0201FB04:
+ add r1, r0, #0x0
+ add r1, #0xc4
+ ldr r2, [r1, #0x0]
+ lsl r1, r3, #0x2
+ ldr r2, [r2, r1]
+ add r1, r0, #0x0
+ add r1, #0xc8
+ ldr r1, [r1, #0x0]
+ add r0, #0xc8
+ add r1, r1, #0x1
+ str r1, [r0, #0x0]
+ add r0, r2, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201FB20
+FUN_0201FB20: ; 0x0201FB20
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, #0xc8
+ ldr r0, [r0, #0x0]
+ add r4, r1, #0x0
+ cmp r0, #0x0
+ bgt _0201FB32
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0201FB32:
+ add r0, r4, #0x0
+ bl FUN_0201F094
+ add r0, r5, #0x0
+ add r0, #0xc8
+ ldr r0, [r0, #0x0]
+ sub r1, r0, #0x1
+ add r0, r5, #0x0
+ add r0, #0xc8
+ str r1, [r0, #0x0]
+ add r0, r5, #0x0
+ add r0, #0xc4
+ add r5, #0xc8
+ ldr r1, [r0, #0x0]
+ ldr r0, [r5, #0x0]
+ lsl r0, r0, #0x2
+ str r4, [r1, r0]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0201FB58
+FUN_0201FB58: ; 0x0201FB58
+ add r2, r0, #0x0
+ add r2, #0xb4
+ ldr r3, [r2, #0x0]
+ add r2, r1, #0x0
+ add r2, #0xb4
+ str r3, [r2, #0x0]
+ add r2, r0, #0x0
+ add r2, #0xb4
+ ldr r2, [r2, #0x0]
+ add r2, #0xb0
+ str r1, [r2, #0x0]
+ add r2, r1, #0x0
+ add r2, #0xb0
+ str r0, [r2, #0x0]
+ add r0, #0xb4
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201FB7C
+FUN_0201FB7C: ; 0x0201FB7C
+ add r1, r0, #0x0
+ add r1, #0xb0
+ ldr r2, [r1, #0x0]
+ add r1, r0, #0x0
+ add r1, #0xb4
+ ldr r1, [r1, #0x0]
+ add r1, #0xb0
+ str r2, [r1, #0x0]
+ add r1, r0, #0x0
+ add r0, #0xb0
+ add r1, #0xb4
+ ldr r0, [r0, #0x0]
+ ldr r1, [r1, #0x0]
+ add r0, #0xb4
+ str r1, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_0201FB9C
+FUN_0201FB9C: ; 0x0201FB9C
+ push {r3-r7, lr}
+ add r6, r1, #0x0
+ mov r1, #0x0
+ add r5, r2, #0x0
+ bl FUN_0201FC90
+ add r7, r0, #0x0
+ bl FUN_020BC13C
+ add r4, r0, #0x0
+ ldrh r0, [r4, #0xe]
+ add r0, r4, r0
+ ldr r0, [r0, #0xc]
+ add r0, r4, r0
+ str r0, [r6, #0x0]
+ cmp r5, #0x0
+ beq _0201FBC6
+ add r0, r7, #0x0
+ bl FUN_020BC0FC
+ str r0, [r5, #0x0]
+_0201FBC6:
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201FBCC
+FUN_0201FBCC: ; 0x0201FBCC
+ ldr r3, _0201FBD4 ; =FUN_0201FC90
+ mov r1, #0x1
+ bx r3
+ nop
+_0201FBD4: .word FUN_0201FC90
+
+ thumb_func_start FUN_0201FBD8
+FUN_0201FBD8: ; 0x0201FBD8
+ push {r3, lr}
+ ldr r2, [r1, #0x1c]
+ cmp r2, #0x0
+ bne _0201FBE6
+ bl FUN_0201F384
+ pop {r3, pc}
+_0201FBE6:
+ bl FUN_0201F3D4
+ pop {r3, pc}
+
+ thumb_func_start FUN_0201FBEC
+FUN_0201FBEC: ; 0x0201FBEC
+ push {r3, lr}
+ ldr r0, [r0, #0x20]
+ bl FUN_0201FCA8
+ ldr r0, [r0, #0x0]
+ lsl r0, r0, #0xc
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201FBFC
+FUN_0201FBFC: ; 0x0201FBFC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r1, r5, #0x0
+ add r1, #0xaa
+ ldrh r1, [r1, #0x0]
+ ldr r0, [r5, #0x20]
+ bl FUN_0201FCA8
+ add r5, #0xac
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_0201FC1C
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201FC1C
+FUN_0201FC1C: ; 0x0201FC1C
+ push {r3-r6}
+ ldr r4, [r0, #0x0]
+ ldr r6, [r1, #0x0]
+ lsl r4, r4, #0xc
+ mov r3, #0x0
+ cmp r4, r6
+ bgt _0201FC32
+ ldr r5, [r0, #0x4]
+ lsl r5, r5, #0xc
+ cmp r5, r6
+ bge _0201FC36
+_0201FC32:
+ str r4, [r1, #0x0]
+ b _0201FC4E
+_0201FC36:
+ add r2, r6, r2
+ cmp r5, r2
+ bge _0201FC4C
+ ldr r0, [r0, #0x8]
+ cmp r0, #0x0
+ bne _0201FC46
+ str r4, [r1, #0x0]
+ b _0201FC4E
+_0201FC46:
+ mov r3, #0x1
+ str r5, [r1, #0x0]
+ b _0201FC4E
+_0201FC4C:
+ str r2, [r1, #0x0]
+_0201FC4E:
+ add r0, r3, #0x0
+ pop {r3-r6}
+ bx lr
+
+ thumb_func_start FUN_0201FC54
+FUN_0201FC54: ; 0x0201FC54
+ push {r3, lr}
+ add r3, r0, #0x0
+ add r0, #0x90
+ str r0, [sp, #0x0]
+ add r0, r3, #0x0
+ add r0, #0x80
+ add r2, r3, #0x0
+ ldr r1, [r3, #0x78]
+ ldr r0, [r0, #0x0]
+ add r2, #0x88
+ add r3, #0x8c
+ bl FUN_0201F500
+ pop {r3, pc}
+
+ thumb_func_start FUN_0201FC70
+FUN_0201FC70: ; 0x0201FC70
+ push {r3-r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x78]
+ bl FUN_020B772C
+ add r4, #0x80
+ ldr r0, [r4, #0x0]
+ add r1, sp, #0x4
+ add r2, sp, #0x8
+ add r3, sp, #0x0
+ bl FUN_0201F4EC
+ add sp, #0xc
+ pop {r3-r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201FC90
+FUN_0201FC90: ; 0x0201FC90
+ cmp r1, #0x0
+ beq _0201FC9A
+ cmp r1, #0x1
+ beq _0201FC9E
+ b _0201FCA2
+_0201FC9A:
+ ldr r0, [r0, #0x0]
+ bx lr
+_0201FC9E:
+ ldr r0, [r0, #0x4]
+ bx lr
+_0201FCA2:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0201FCA8
+FUN_0201FCA8: ; 0x0201FCA8
+ mov r2, #0xc
+ mul r2, r1
+ add r0, r0, r2
+ bx lr
+
+ thumb_func_start FUN_0201FCB0
+FUN_0201FCB0: ; 0x0201FCB0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bne _0201FCBA
+ bl ErrorHandling
+_0201FCBA:
+ ldr r0, [r5, #0x4]
+ cmp r0, #0x0
+ bne _0201FCC4
+ bl ErrorHandling
+_0201FCC4:
+ mov r1, #0x49
+ ldr r0, [r5, #0x8]
+ lsl r1, r1, #0x2
+ bl FUN_02016998
+ add r4, r0, #0x0
+ bne _0201FCD6
+ bl ErrorHandling
+_0201FCD6:
+ add r0, r4, #0x0
+ bl FUN_0201FE44
+ ldr r2, [r5, #0x0]
+ ldr r0, [r5, #0x8]
+ lsl r1, r2, #0x6
+ add r1, r2, r1
+ lsl r1, r1, #0x2
+ bl FUN_02016998
+ str r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _0201FCF4
+ bl ErrorHandling
+_0201FCF4:
+ ldr r0, [r5, #0x0]
+ str r0, [r4, #0x4]
+ ldr r1, [r5, #0x0]
+ ldr r0, [r5, #0x8]
+ lsl r1, r1, #0x2
+ bl FUN_02016998
+ str r0, [r4, #0x8]
+ cmp r0, #0x0
+ bne _0201FD0C
+ bl ErrorHandling
+_0201FD0C:
+ add r0, r4, #0x0
+ bl FUN_0202083C
+ add r0, r4, #0x0
+ add r0, #0x10
+ bl FUN_0201FE6C
+ add r2, r4, #0x0
+ mov r1, #0x43
+ lsl r1, r1, #0x2
+ add r2, #0x10
+ str r2, [r4, r1]
+ add r0, r1, #0x4
+ str r2, [r4, r0]
+ ldr r0, [r5, #0x4]
+ add r1, #0x8
+ str r0, [r4, r1]
+ ldr r0, [r5, #0x8]
+ ldr r1, _0201FD54 ; =0x02105BBC
+ bl FUN_020161A4
+ mov r1, #0x46
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ add r1, r4, r1
+ bl thunk_FUN_020afda0_2
+ mov r0, #0x12
+ mov r1, #0x1
+ lsl r0, r0, #0x4
+ str r1, [r4, r0]
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ nop
+_0201FD54: .word 0x02105BBC
+
+ thumb_func_start FUN_0201FD58
+FUN_0201FD58: ; 0x0201FD58
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _0201FD62
+ mov r0, #0x0
+ pop {r4, pc}
+_0201FD62:
+ ldr r1, [r4, #0x0]
+ cmp r1, #0x0
+ bne _0201FD6C
+ mov r0, #0x1
+ pop {r4, pc}
+_0201FD6C:
+ bl FUN_0201FDB4
+ mov r0, #0x46
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ ldr r0, [r4, #0x8]
+ bl FUN_02016A18
+ ldr r0, [r4, #0x0]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ bl FUN_0201FE44
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201FD98
+FUN_0201FD98: ; 0x0201FD98
+ cmp r0, #0x0
+ bne _0201FDA0
+ mov r0, #0x0
+ bx lr
+_0201FDA0:
+ ldr r2, [r0, #0x0]
+ cmp r2, #0x0
+ bne _0201FDAA
+ mov r0, #0x0
+ bx lr
+_0201FDAA:
+ mov r2, #0x12
+ lsl r2, r2, #0x4
+ str r1, [r0, r2]
+ mov r0, #0x1
+ bx lr
+
+ thumb_func_start FUN_0201FDB4
+FUN_0201FDB4: ; 0x0201FDB4
+ push {r4-r6, lr}
+ cmp r0, #0x0
+ bne _0201FDBE
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0201FDBE:
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ bne _0201FDC8
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_0201FDC8:
+ mov r1, #0x11
+ lsl r1, r1, #0x4
+ add r4, r0, #0x0
+ ldr r1, [r0, r1]
+ add r4, #0x10
+ cmp r1, r4
+ beq _0201FDE8
+ mov r6, #0x1
+ lsl r6, r6, #0x8
+_0201FDDA:
+ ldr r5, [r1, r6]
+ add r0, r1, #0x0
+ bl FUN_0201FFC8
+ add r1, r5, #0x0
+ cmp r5, r4
+ bne _0201FDDA
+_0201FDE8:
+ mov r0, #0x1
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0201FDEC
+FUN_0201FDEC: ; 0x0201FDEC
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bne _0201FDF6
+ bl ErrorHandling
+_0201FDF6:
+ mov r0, #0x12
+ lsl r0, r0, #0x4
+ ldr r1, [r5, r0]
+ cmp r1, #0x0
+ beq _0201FE38
+ sub r0, #0x10
+ add r6, r5, #0x0
+ ldr r4, [r5, r0]
+ add r6, #0x10
+ cmp r4, r6
+ beq _0201FE38
+ ldr r7, _0201FE3C ; =0x020EE658
+_0201FE0E:
+ add r2, r4, #0x0
+ add r2, #0x34
+ ldrb r2, [r2, #0x0]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ lsl r2, r2, #0x2
+ ldr r2, [r7, r2]
+ blx r2
+ add r1, r4, #0x0
+ add r1, #0x35
+ ldrb r1, [r1, #0x0]
+ add r0, r4, #0x0
+ lsl r2, r1, #0x2
+ ldr r1, _0201FE40 ; =0x020EE660
+ ldr r1, [r1, r2]
+ blx r1
+ mov r0, #0x1
+ lsl r0, r0, #0x8
+ ldr r4, [r4, r0]
+ cmp r4, r6
+ bne _0201FE0E
+_0201FE38:
+ pop {r3-r7, pc}
+ nop
+_0201FE3C: .word 0x020EE658
+_0201FE40: .word 0x020EE660
+
+ thumb_func_start FUN_0201FE44
+FUN_0201FE44: ; 0x0201FE44
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r1, #0x0
+ str r1, [r4, #0x0]
+ str r1, [r4, #0x4]
+ str r1, [r4, #0x8]
+ mov r0, #0x45
+ str r1, [r4, #0xc]
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ add r0, r4, #0x0
+ add r0, #0x10
+ bl FUN_0201FE6C
+ mov r0, #0x12
+ mov r1, #0x0
+ lsl r0, r0, #0x4
+ str r1, [r4, r0]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201FE6C
+FUN_0201FE6C: ; 0x0201FE6C
+ push {r4, lr}
+ mov r2, #0x41
+ add r4, r0, #0x0
+ mov r1, #0x0
+ lsl r2, r2, #0x2
+ str r1, [r4, #0x3c]
+ bl memset
+ add r0, r4, #0x0
+ add r0, #0xb4
+ bl FUN_020B1A24
+ add r0, r4, #0x0
+ add r0, #0xd8
+ bl FUN_020B19DC
+ mov r0, #0x0
+ str r0, [r4, #0x30]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201FE94
+FUN_0201FE94: ; 0x0201FE94
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ bl FUN_02020874
+ add r4, r0, #0x0
+ bne _0201FEA6
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0201FEA6:
+ ldr r0, [r5, #0x0]
+ add r6, r5, #0x0
+ str r0, [r4, #0x3c]
+ add r0, r4, #0x0
+ mov r2, #0x0
+ add r0, #0xf0
+ add r6, #0x8
+ strh r2, [r0, #0x0]
+ ldmia r6!, {r0-r1}
+ add r3, r4, #0x0
+ stmia r3!, {r0-r1}
+ ldr r0, [r6, #0x0]
+ add r6, r5, #0x0
+ str r0, [r3, #0x0]
+ add r6, #0x14
+ add r3, r4, #0x0
+ ldmia r6!, {r0-r1}
+ add r3, #0x18
+ stmia r3!, {r0-r1}
+ ldr r0, [r6, #0x0]
+ str r0, [r3, #0x0]
+ ldrh r0, [r5, #0x20]
+ strh r0, [r4, #0x24]
+ add r0, r4, #0x0
+ ldr r1, [r5, #0x28]
+ add r0, #0xf8
+ str r1, [r0, #0x0]
+ add r0, r4, #0x0
+ ldr r1, [r5, #0x24]
+ add r0, #0xf4
+ strh r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x26
+ strb r2, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x27
+ strb r2, [r0, #0x0]
+ str r2, [r4, #0x2c]
+ add r0, r4, #0x0
+ str r2, [r4, #0x30]
+ mov r1, #0x11
+ add r0, #0x28
+ strb r1, [r0, #0x0]
+ mov r0, #0x45
+ ldr r1, [r5, #0x0]
+ lsl r0, r0, #0x2
+ ldr r0, [r1, r0]
+ add r1, r4, #0x0
+ add r1, #0x26
+ ldrb r1, [r1, #0x0]
+ bl FUN_020B502C
+ add r0, r4, #0x0
+ add r0, #0x27
+ ldrb r2, [r0, #0x0]
+ mov r0, #0x45
+ ldr r1, [r5, #0x0]
+ lsl r0, r0, #0x2
+ ldr r0, [r1, r0]
+ mov r1, #0x1
+ mov r3, #0x2
+ and r1, r2
+ and r2, r3
+ bl FUN_020B4F38
+ add r0, r4, #0x0
+ mov r2, #0x1
+ add r0, #0x34
+ strb r2, [r0, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x0
+ add r0, #0x35
+ strb r1, [r0, #0x0]
+ lsl r0, r2, #0xd
+ str r0, [r4, #0x38]
+ ldr r0, [r5, #0x0]
+ ldr r1, [r5, #0x4]
+ ldr r3, [r5, #0x2c]
+ add r2, r4, #0x0
+ bl FUN_02020434
+ cmp r0, #0x0
+ bne _0201FF56
+ add r0, r4, #0x0
+ bl FUN_0201FFC8
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0201FF56:
+ add r1, r4, #0x0
+ add r1, #0xf8
+ add r0, r4, #0x0
+ ldr r1, [r1, #0x0]
+ add r0, #0xd8
+ bl FUN_020205E8
+ add r1, r4, #0x0
+ add r1, #0x2a
+ strb r0, [r1, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x2a
+ ldrb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x29
+ strb r1, [r0, #0x0]
+ ldr r0, [r5, #0x0]
+ add r1, r4, #0x0
+ bl FUN_02020788
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201FF84
+FUN_0201FF84: ; 0x0201FF84
+ push {r4, lr}
+ sub sp, #0x30
+ add r2, r0, #0x0
+ ldr r0, [r2, #0x0]
+ add r4, r2, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [r2, #0x4]
+ add r4, #0x8
+ str r0, [sp, #0x4]
+ ldmia r4!, {r0-r1}
+ add r3, sp, #0x8
+ stmia r3!, {r0-r1}
+ ldr r0, [r4, #0x0]
+ mov r1, #0x0
+ str r0, [r3, #0x0]
+ mov r0, #0x1
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x14]
+ str r0, [sp, #0x18]
+ str r0, [sp, #0x1c]
+ add r0, sp, #0x0
+ strh r1, [r0, #0x20]
+ ldr r0, [r2, #0x14]
+ str r0, [sp, #0x24]
+ ldr r0, [r2, #0x18]
+ str r0, [sp, #0x28]
+ ldr r0, [r2, #0x1c]
+ str r0, [sp, #0x2c]
+ add r0, sp, #0x0
+ bl FUN_0201FE94
+ add sp, #0x30
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0201FFC8
+FUN_0201FFC8: ; 0x0201FFC8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r1, r5, #0x0
+ add r1, #0xec
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ beq _02020040
+ add r1, r5, #0x0
+ add r1, #0xfc
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ beq _0201FFE4
+ bl FUN_02020820
+_0201FFE4:
+ add r0, r5, #0x0
+ add r0, #0xec
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x3
+ bne _0202000E
+ add r1, r5, #0x0
+ add r1, #0xf8
+ add r0, r5, #0x0
+ add r4, r5, #0x0
+ ldr r1, [r1, #0x0]
+ add r0, #0xb4
+ add r4, #0x40
+ bl FUN_020B1A14
+ mov r1, #0x0
+ mvn r1, r1
+ cmp r0, r1
+ beq _0202000E
+ ldr r0, [r4, #0x5c]
+ bl FUN_020B4358
+_0202000E:
+ add r0, r5, #0x0
+ add r0, #0xec
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x2
+ bne _02020030
+ add r4, r5, #0x0
+ add r4, #0x40
+ ldr r0, [r4, #0x70]
+ cmp r0, #0x0
+ beq _02020026
+ bl FUN_02016A18
+_02020026:
+ ldr r0, [r4, #0x74]
+ cmp r0, #0x0
+ beq _02020030
+ bl FUN_02016A18
+_02020030:
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r0, #0xec
+ str r1, [r0, #0x0]
+ ldr r0, [r5, #0x3c]
+ add r1, r5, #0x0
+ bl FUN_02020890
+_02020040:
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02020044
+FUN_02020044: ; 0x02020044
+ add r2, r1, #0x0
+ add r3, r0, #0x0
+ ldmia r2!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r2, #0x0]
+ str r0, [r3, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02020054
+FUN_02020054: ; 0x02020054
+ add r3, r1, #0x0
+ add r2, r0, #0x0
+ ldmia r3!, {r0-r1}
+ add r2, #0xc
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ str r0, [r2, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02020064
+FUN_02020064: ; 0x02020064
+ add r3, r1, #0x0
+ add r2, r0, #0x0
+ ldmia r3!, {r0-r1}
+ add r2, #0x18
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ str r0, [r2, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02020074
+FUN_02020074: ; 0x02020074
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r2, #0x0
+ bl FUN_02020064
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020200EC
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02020088
+FUN_02020088: ; 0x02020088
+ strh r1, [r0, #0x24]
+ bx lr
+
+ thumb_func_start FUN_0202008C
+FUN_0202008C: ; 0x0202008C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r2, #0x0
+ bl FUN_02020088
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020200EC
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020200A0
+FUN_020200A0: ; 0x020200A0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _020200AE
+ bl ErrorHandling
+_020200AE:
+ cmp r4, #0x2
+ blt _020200B6
+ bl ErrorHandling
+_020200B6:
+ add r5, #0x34
+ strb r4, [r5, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020200BC
+FUN_020200BC: ; 0x020200BC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _020200CA
+ bl ErrorHandling
+_020200CA:
+ cmp r4, #0x2
+ blt _020200D2
+ bl ErrorHandling
+_020200D2:
+ add r5, #0x35
+ strb r4, [r5, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020200D8
+FUN_020200D8: ; 0x020200D8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _020200E6
+ bl ErrorHandling
+_020200E6:
+ str r4, [r5, #0x38]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020200EC
+FUN_020200EC: ; 0x020200EC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _020200FA
+ bl ErrorHandling
+_020200FA:
+ add r5, #0x26
+ strb r4, [r5, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02020100
+FUN_02020100: ; 0x02020100
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _0202010E
+ bl ErrorHandling
+_0202010E:
+ add r0, r5, #0x0
+ add r0, #0x27
+ strb r4, [r0, #0x0]
+ mov r0, #0x0
+ add r5, #0x26
+ strb r0, [r5, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0202011C
+FUN_0202011C: ; 0x0202011C
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02020120
+FUN_02020120: ; 0x02020120
+ add r0, #0x18
+ bx lr
+
+ thumb_func_start FUN_02020124
+FUN_02020124: ; 0x02020124
+ ldrh r0, [r0, #0x24]
+ bx lr
+
+ thumb_func_start FUN_02020128
+FUN_02020128: ; 0x02020128
+ add r0, #0x34
+ ldrb r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02020130
+FUN_02020130: ; 0x02020130
+ push {r4, lr}
+ lsl r2, r1, #0x10
+ lsr r3, r2, #0x10
+ add r2, r0, #0x0
+ add r2, #0xf0
+ strh r3, [r2, #0x0]
+ add r2, r0, #0x0
+ add r2, #0xec
+ ldr r2, [r2, #0x0]
+ cmp r2, #0x1
+ beq _0202014A
+ cmp r2, #0x3
+ bne _02020168
+_0202014A:
+ add r4, r0, #0x0
+ add r4, #0x40
+ lsl r1, r1, #0x10
+ ldr r0, [r4, #0x4]
+ lsr r1, r1, #0x10
+ bl FUN_020AFC04
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x8
+ bl FUN_020B1EE4
+ mov r0, #0x1
+ str r0, [r4, #0x10]
+ pop {r4, pc}
+_02020168:
+ add r4, r0, #0x0
+ add r4, #0x40
+ ldr r0, [r4, #0x6c]
+ add r1, r3, #0x0
+ bl FUN_020AFC04
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ add r0, #0x8
+ bl FUN_020B242C
+ mov r0, #0x1
+ str r0, [r4, #0x10]
+ pop {r4, pc}
+
+ thumb_func_start FUN_02020184
+FUN_02020184: ; 0x02020184
+ push {r3, lr}
+ add r2, r0, #0x0
+ add r2, #0xf0
+ ldrh r2, [r2, #0x0]
+ cmp r2, r1
+ beq _02020194
+ bl FUN_02020130
+_02020194:
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02020198
+FUN_02020198: ; 0x02020198
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r0, #0xec
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x1
+ beq _020201A8
+ cmp r0, #0x3
+ bne _020201C2
+_020201A8:
+ add r5, r4, #0x0
+ add r5, #0x40
+ add r0, r5, #0x0
+ add r0, #0x8
+ bl FUN_020B0448
+ mov r0, #0x1
+ str r0, [r5, #0x10]
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02020208
+ pop {r3-r5, pc}
+_020201C2:
+ add r5, r4, #0x0
+ add r5, #0x40
+ add r0, r5, #0x0
+ add r0, #0x8
+ bl FUN_020B0448
+ mov r0, #0x1
+ str r0, [r5, #0x10]
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02020208
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020201DC
+FUN_020201DC: ; 0x020201DC
+ add r0, #0xf0
+ ldrh r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020201E4
+FUN_020201E4: ; 0x020201E4
+ push {r3, lr}
+ add r2, r0, #0x0
+ add r2, #0xec
+ ldr r2, [r2, #0x0]
+ cmp r2, #0x1
+ beq _020201F4
+ cmp r2, #0x3
+ bne _020201FE
+_020201F4:
+ add r0, #0x40
+ add r0, #0x8
+ bl FUN_020B1EC4
+ pop {r3, pc}
+_020201FE:
+ add r0, #0x40
+ add r0, #0x8
+ bl FUN_020B224C
+ pop {r3, pc}
+
+ thumb_func_start FUN_02020208
+FUN_02020208: ; 0x02020208
+ push {r3, lr}
+ add r2, r0, #0x0
+ add r2, #0xec
+ ldr r2, [r2, #0x0]
+ cmp r2, #0x1
+ beq _02020218
+ cmp r2, #0x3
+ bne _02020222
+_02020218:
+ add r0, #0x40
+ add r0, #0x8
+ bl FUN_020B1EA4
+ pop {r3, pc}
+_02020222:
+ add r0, #0x40
+ add r0, #0x8
+ bl FUN_020B2194
+ pop {r3, pc}
+
+ thumb_func_start FUN_0202022C
+FUN_0202022C: ; 0x0202022C
+ ldr r3, _02020234 ; =0x020B04FC
+ add r0, #0x40
+ add r0, #0x8
+ bx r3
+ .balign 4
+_02020234: .word 0x020B04FC
+
+ thumb_func_start FUN_02020238
+FUN_02020238: ; 0x02020238
+ add r0, #0xf2
+ strb r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02020240
+FUN_02020240: ; 0x02020240
+ add r0, #0xf2
+ ldrb r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02020248
+FUN_02020248: ; 0x02020248
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _02020256
+ bl ErrorHandling
+_02020256:
+ add r0, r5, #0x0
+ add r0, #0x29
+ strb r4, [r0, #0x0]
+ add r0, r5, #0x0
+ add r0, #0x28
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x2
+ orr r1, r0
+ add r0, r5, #0x0
+ add r0, #0x28
+ strb r1, [r0, #0x0]
+ add r0, r5, #0x0
+ add r0, #0x28
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x10
+ add r5, #0x28
+ bic r1, r0
+ strb r1, [r5, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0202027C
+FUN_0202027C: ; 0x0202027C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02020248
+ add r1, r4, #0x0
+ add r1, #0xf8
+ add r0, r4, #0x0
+ ldr r1, [r1, #0x0]
+ add r0, #0xd8
+ bl FUN_020205E8
+ add r1, r4, #0x0
+ add r1, #0x29
+ ldrb r1, [r1, #0x0]
+ add r4, #0x29
+ add r0, r1, r0
+ strb r0, [r4, #0x0]
+ pop {r4, pc}
+
+ thumb_func_start FUN_020202A0
+FUN_020202A0: ; 0x020202A0
+ add r0, #0x29
+ ldrb r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020202A8
+FUN_020202A8: ; 0x020202A8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _020202B6
+ bl ErrorHandling
+_020202B6:
+ add r0, r5, #0x0
+ add r0, #0x2a
+ strb r4, [r0, #0x0]
+ add r0, r5, #0x0
+ add r0, #0x28
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x10
+ orr r1, r0
+ add r0, r5, #0x0
+ add r0, #0x28
+ strb r1, [r0, #0x0]
+ add r0, r5, #0x0
+ add r0, #0x28
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x2
+ add r5, #0x28
+ bic r1, r0
+ strb r1, [r5, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020202DC
+FUN_020202DC: ; 0x020202DC
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_020202A8
+ add r1, r4, #0x0
+ add r1, #0xf8
+ add r0, r4, #0x0
+ ldr r1, [r1, #0x0]
+ add r0, #0xd8
+ bl FUN_020205E8
+ add r1, r4, #0x0
+ add r1, #0x2a
+ ldrb r1, [r1, #0x0]
+ add r4, #0x2a
+ add r0, r1, r0
+ strb r0, [r4, #0x0]
+ pop {r4, pc}
+
+ thumb_func_start FUN_02020300
+FUN_02020300: ; 0x02020300
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _0202030A
+ bl ErrorHandling
+_0202030A:
+ add r4, #0x2a
+ ldrb r0, [r4, #0x0]
+ pop {r4, pc}
+
+ thumb_func_start FUN_02020310
+FUN_02020310: ; 0x02020310
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r2, r5, #0x0
+ ldr r4, [r5, #0x3c]
+ add r2, #0xf4
+ strh r1, [r2, #0x0]
+ bl FUN_02020820
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_02020788
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202032C
+FUN_0202032C: ; 0x0202032C
+ add r0, #0xf4
+ ldrh r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02020334
+FUN_02020334: ; 0x02020334
+ push {r3-r4}
+ add r3, r0, #0x0
+ add r4, r1, #0x0
+ add r3, #0xb4
+ mov r2, #0x4
+_0202033E:
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _0202033E
+ ldr r0, [r4, #0x0]
+ str r0, [r3, #0x0]
+ pop {r3-r4}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02020350
+FUN_02020350: ; 0x02020350
+ add r0, #0xb4
+ bx lr
+
+ thumb_func_start FUN_02020354
+FUN_02020354: ; 0x02020354
+ add r0, #0xd8
+ bx lr
+
+ thumb_func_start FUN_02020358
+FUN_02020358: ; 0x02020358
+ str r1, [r0, #0x2c]
+ cmp r1, #0x1
+ bne _0202036E
+ add r1, r0, #0x0
+ add r1, #0x28
+ ldrb r2, [r1, #0x0]
+ mov r1, #0x4
+ add r0, #0x28
+ orr r1, r2
+ strb r1, [r0, #0x0]
+ bx lr
+_0202036E:
+ add r1, r0, #0x0
+ add r1, #0x28
+ ldrb r2, [r1, #0x0]
+ mov r1, #0x4
+ eor r1, r2
+ add r0, #0x28
+ strb r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02020380
+FUN_02020380: ; 0x02020380
+ add r0, #0xf8
+ ldr r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02020388
+FUN_02020388: ; 0x02020388
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02020392
+ bl ErrorHandling
+_02020392:
+ ldr r0, [r4, #0x50]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02020398
+FUN_02020398: ; 0x02020398
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ add r5, r1, #0x0
+ cmp r4, #0x0
+ bne _020203A6
+ bl ErrorHandling
+_020203A6:
+ str r5, [r4, #0x30]
+ cmp r5, #0x0
+ bne _020203BC
+ add r0, r4, #0x0
+ add r0, #0x28
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x8
+ add r4, #0x28
+ eor r0, r1
+ strb r0, [r4, #0x0]
+ pop {r3-r5, pc}
+_020203BC:
+ add r0, r4, #0x0
+ add r0, #0x28
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x8
+ orr r0, r1
+ add r4, #0x28
+ strb r0, [r4, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020203CC
+FUN_020203CC: ; 0x020203CC
+ push {r4, lr}
+ mov r1, #0x1
+ lsl r1, r1, #0xa
+ bl FUN_02016998
+ add r4, r0, #0x0
+ mov r0, #0xb
+ mov r2, #0x1
+ lsl r0, r0, #0x6
+ add r1, r4, #0x0
+ lsl r2, r2, #0xa
+ bl MIi_CpuClear16
+ mov r1, #0x1
+ add r0, r4, #0x0
+ lsl r1, r1, #0xa
+ bl DC_FlushRange
+ mov r2, #0x1
+ add r0, r4, #0x0
+ mov r1, #0x0
+ lsl r2, r2, #0xa
+ bl GX_LoadOAM
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+
+ thumb_func_start FUN_02020404
+FUN_02020404: ; 0x02020404
+ push {r4, lr}
+ mov r1, #0x1
+ lsl r1, r1, #0xa
+ bl FUN_02016998
+ add r4, r0, #0x0
+ mov r0, #0xb
+ mov r2, #0x1
+ lsl r0, r0, #0x6
+ add r1, r4, #0x0
+ lsl r2, r2, #0xa
+ bl MIi_CpuClear16
+ mov r2, #0x1
+ add r0, r4, #0x0
+ mov r1, #0x0
+ lsl r2, r2, #0xa
+ bl GXS_LoadOAM
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02020434
+FUN_02020434: ; 0x02020434
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ str r0, [sp, #0x0]
+ add r4, r2, #0x0
+ add r0, r5, #0x0
+ add r7, r3, #0x0
+ bl FUN_020204DC
+ add r1, r4, #0x0
+ add r1, #0xec
+ str r0, [r1, #0x0]
+ add r3, r4, #0x0
+ ldr r6, [r5, #0x0]
+ add r3, #0xb4
+ mov r2, #0x4
+_02020452:
+ ldmia r6!, {r0-r1}
+ stmia r3!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _02020452
+ ldr r0, [r6, #0x0]
+ add r2, r4, #0x0
+ str r0, [r3, #0x0]
+ ldr r3, [r5, #0x8]
+ add r2, #0xd8
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ add r1, r4, #0x0
+ str r0, [r2, #0x0]
+ ldr r0, [r5, #0xc]
+ bl FUN_020204F4
+ ldr r0, [r5, #0x10]
+ cmp r0, #0x0
+ beq _02020486
+ add r1, r4, #0x0
+ bl FUN_020204F8
+ b _02020494
+_02020486:
+ mov r1, #0x47
+ ldr r0, [sp, #0x0]
+ lsl r1, r1, #0x2
+ ldr r0, [r0, r1]
+ add r1, r4, #0x0
+ bl FUN_020204F8
+_02020494:
+ add r0, r4, #0x0
+ add r0, #0xec
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x2
+ bne _020204B8
+ ldr r0, [r5, #0x14]
+ add r1, r4, #0x0
+ bl FUN_020204FC
+ ldr r0, [r5, #0x18]
+ add r1, r4, #0x0
+ bl FUN_02020504
+ add r0, r4, #0x0
+ add r1, r7, #0x0
+ bl FUN_02020588
+ b _020204D0
+_020204B8:
+ cmp r0, #0x3
+ bne _020204C8
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r7, #0x0
+ bl FUN_0202052C
+ b _020204D0
+_020204C8:
+ add r0, r4, #0x0
+ add r1, r7, #0x0
+ bl FUN_0202050C
+_020204D0:
+ add r5, #0x20
+ ldrb r0, [r5, #0x0]
+ add r4, #0xf2
+ strb r0, [r4, #0x0]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020204DC
+FUN_020204DC: ; 0x020204DC
+ ldr r1, [r0, #0x14]
+ cmp r1, #0x0
+ beq _020204E6
+ mov r0, #0x2
+ bx lr
+_020204E6:
+ ldr r0, [r0, #0x1c]
+ cmp r0, #0x1
+ bne _020204F0
+ mov r0, #0x3
+ bx lr
+_020204F0:
+ mov r0, #0x1
+ bx lr
+
+ thumb_func_start FUN_020204F4
+FUN_020204F4: ; 0x020204F4
+ str r0, [r1, #0x40]
+ bx lr
+
+ thumb_func_start FUN_020204F8
+FUN_020204F8: ; 0x020204F8
+ str r0, [r1, #0x44]
+ bx lr
+
+ thumb_func_start FUN_020204FC
+FUN_020204FC: ; 0x020204FC
+ add r1, #0xa8
+ str r0, [r1, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02020504
+FUN_02020504: ; 0x02020504
+ add r1, #0xac
+ str r0, [r1, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202050C
+FUN_0202050C: ; 0x0202050C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r5, #0x0
+ add r4, #0x40
+ ldr r0, [r4, #0x4]
+ mov r1, #0x0
+ bl FUN_020AFC04
+ add r4, #0x8
+ add r1, r0, #0x0
+ ldr r2, [r5, #0x40]
+ add r0, r4, #0x0
+ bl FUN_020B1F80
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202052C
+FUN_0202052C: ; 0x0202052C
+ push {r4-r7, lr}
+ sub sp, #0x1c
+ add r6, r1, #0x0
+ add r4, r6, #0x0
+ add r4, #0x40
+ add r5, r0, #0x0
+ bl FUN_020B43A4
+ str r0, [r4, #0x5c]
+ ldr r0, [r4, #0x4]
+ mov r1, #0x0
+ ldr r5, [r5, #0x4]
+ bl FUN_020AFC04
+ str r0, [sp, #0x18]
+ add r0, r6, #0x0
+ add r0, #0xb4
+ mov r1, #0x1
+ bl FUN_020B1A14
+ add r7, r0, #0x0
+ add r0, r6, #0x0
+ add r0, #0xb4
+ mov r1, #0x2
+ bl FUN_020B1A14
+ mov r1, #0x0
+ mvn r1, r1
+ str r1, [sp, #0x0]
+ str r7, [sp, #0x4]
+ str r0, [sp, #0x8]
+ ldr r0, [r5, #0x14]
+ ldr r1, [sp, #0x18]
+ str r0, [sp, #0xc]
+ mov r0, #0x0
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x10]
+ str r0, [sp, #0x14]
+ add r0, r4, #0x0
+ ldr r2, [r6, #0x40]
+ ldr r3, [r4, #0x5c]
+ add r0, #0x8
+ bl FUN_020B1EFC
+ add sp, #0x1c
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_02020588
+FUN_02020588: ; 0x02020588
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ add r4, r5, #0x0
+ add r4, #0x40
+ ldr r0, [r4, #0x6c]
+ add r7, r1, #0x0
+ mov r1, #0x0
+ bl FUN_020AFC04
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0x68]
+ bl FUN_020B23D8
+ add r6, r0, #0x0
+ mov r1, #0x28
+ add r0, r7, #0x0
+ mul r1, r6
+ bl FUN_02016998
+ mov r1, #0x54
+ str r0, [r4, #0x70]
+ add r0, r7, #0x0
+ mul r1, r6
+ bl FUN_02016998
+ str r0, [r4, #0x74]
+ ldr r0, [r4, #0x4]
+ add r3, r6, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x40]
+ str r0, [sp, #0x4]
+ ldr r0, [r4, #0x68]
+ str r0, [sp, #0x8]
+ add r0, r4, #0x0
+ ldr r1, [r4, #0x70]
+ ldr r2, [r4, #0x74]
+ add r0, #0x8
+ bl FUN_020B20C8
+ add r4, #0x8
+ ldr r1, [sp, #0xc]
+ add r0, r4, #0x0
+ bl FUN_020B242C
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020205E8
+FUN_020205E8: ; 0x020205E8
+ push {r4, lr}
+ ldr r2, [r0, #0x4]
+ cmp r2, #0x0
+ beq _020205F6
+ mov r4, #0x2
+ lsl r4, r4, #0x8
+ b _02020602
+_020205F6:
+ ldr r2, [r0, #0x0]
+ cmp r2, #0x4
+ bne _02020600
+ mov r4, #0x0
+ b _02020602
+_02020600:
+ mov r4, #0x20
+_02020602:
+ cmp r4, #0x0
+ beq _02020612
+ bl FUN_020B19C4
+ add r1, r4, #0x0
+ bl _u32_div_f
+ pop {r4, pc}
+_02020612:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02020618
+FUN_02020618: ; 0x02020618
+ push {r3-r6, lr}
+ sub sp, #0xc
+ add r4, r1, #0x0
+ add r3, r4, #0x0
+ add r5, r0, #0x0
+ ldmia r3!, {r0-r1}
+ add r2, sp, #0x0
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ add r1, r4, #0x0
+ str r0, [r2, #0x0]
+ mov r0, #0x45
+ lsl r0, r0, #0x2
+ add r2, r4, #0x0
+ ldr r0, [r5, r0]
+ add r1, #0xb4
+ add r2, #0xd8
+ bl thunk_FUN_020b5040
+ mov r0, #0x45
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ bl FUN_020B326C
+ bl FUN_020B2B58
+ add r1, r4, #0x0
+ mov r0, #0x45
+ add r1, #0x26
+ lsl r0, r0, #0x2
+ ldrb r1, [r1, #0x0]
+ ldr r0, [r5, r0]
+ bl FUN_020B502C
+ add r0, r4, #0x0
+ add r0, #0x26
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02020680
+ add r0, r4, #0x0
+ add r0, #0x27
+ ldrb r2, [r0, #0x0]
+ mov r0, #0x45
+ lsl r0, r0, #0x2
+ mov r1, #0x1
+ ldr r0, [r5, r0]
+ mov r3, #0x2
+ and r1, r2
+ and r2, r3
+ bl FUN_020B4F38
+ b _0202068E
+_02020680:
+ mov r0, #0x45
+ lsl r0, r0, #0x2
+ mov r1, #0x0
+ ldr r0, [r5, r0]
+ add r2, r1, #0x0
+ bl FUN_020B4F38
+_0202068E:
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ ldr r2, [sp, #0x8]
+ bl FUN_020B2A08
+ add r0, r4, #0x0
+ add r0, #0x26
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020206DC
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x10]
+ ldr r2, [r4, #0x14]
+ bl FUN_020B2A08
+ ldr r0, [r4, #0x18]
+ ldr r1, [r4, #0x1c]
+ ldr r2, [r4, #0x20]
+ bl FUN_020B28B4
+ ldrh r0, [r4, #0x24]
+ ldr r2, _02020770 ; =0x020FFA38
+ asr r0, r0, #0x4
+ lsl r1, r0, #0x1
+ lsl r0, r1, #0x1
+ add r1, r1, #0x1
+ lsl r1, r1, #0x1
+ ldrsh r0, [r2, r0]
+ ldrsh r1, [r2, r1]
+ bl FUN_020B2794
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x10]
+ ldr r2, [r4, #0x14]
+ neg r0, r0
+ neg r1, r1
+ neg r2, r2
+ bl FUN_020B2A08
+_020206DC:
+ add r0, r4, #0x0
+ add r0, #0x28
+ ldrb r3, [r0, #0x0]
+ mov r0, #0x45
+ lsl r0, r0, #0x2
+ ldr r2, [r5, r0]
+ add r1, r2, #0x0
+ add r1, #0x84
+ ldr r1, [r1, #0x0]
+ add r2, #0x84
+ orr r1, r3
+ str r1, [r2, #0x0]
+ add r1, r4, #0x0
+ add r1, #0x28
+ ldrb r1, [r1, #0x0]
+ mvn r6, r1
+ ldr r1, [r5, r0]
+ add r2, r1, #0x0
+ add r2, #0x84
+ ldr r3, [r2, #0x0]
+ mvn r2, r6
+ and r2, r3
+ add r1, #0x84
+ str r2, [r1, #0x0]
+ add r1, r4, #0x0
+ add r1, #0x29
+ ldrb r2, [r1, #0x0]
+ ldr r1, [r5, r0]
+ add r1, #0x8a
+ strh r2, [r1, #0x0]
+ add r1, r4, #0x0
+ add r1, #0x2a
+ ldrb r2, [r1, #0x0]
+ ldr r1, [r5, r0]
+ add r1, #0x94
+ strh r2, [r1, #0x0]
+ ldr r1, [r5, r0]
+ ldr r2, [r4, #0x2c]
+ add r1, #0x90
+ str r2, [r1, #0x0]
+ ldr r1, [r5, r0]
+ ldr r2, [r4, #0x30]
+ add r1, #0x8c
+ str r2, [r1, #0x0]
+ add r1, r4, #0x0
+ add r1, #0xf2
+ ldr r0, [r5, r0]
+ ldrb r1, [r1, #0x0]
+ add r0, #0x88
+ strh r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0xec
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x1
+ beq _0202074E
+ cmp r0, #0x3
+ bne _0202075A
+_0202074E:
+ add r4, #0x40
+ add r4, #0x8
+ add r0, r4, #0x0
+ bl FUN_020B317C
+ b _02020764
+_0202075A:
+ add r4, #0x40
+ add r4, #0x8
+ add r0, r4, #0x0
+ bl FUN_020B2D9C
+_02020764:
+ bl FUN_020B2B08
+ bl FUN_020B31F0
+ add sp, #0xc
+ pop {r3-r6, pc}
+ .balign 4
+_02020770: .word 0x020FFA38
+
+ thumb_func_start FUN_02020774
+FUN_02020774: ; 0x02020774
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02020778
+FUN_02020778: ; 0x02020778
+ ldr r3, _02020780 ; =FUN_020201E4
+ ldr r1, [r0, #0x38]
+ bx r3
+ nop
+_02020780: .word FUN_020201E4
+
+ thumb_func_start FUN_02020784
+FUN_02020784: ; 0x02020784
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02020788
+FUN_02020788: ; 0x02020788
+ push {r4-r7}
+ mov r2, #0x11
+ lsl r2, r2, #0x4
+ add r4, r0, #0x0
+ ldr r5, [r0, r2]
+ add r4, #0x10
+ cmp r5, r4
+ bne _020207AC
+ str r1, [r0, r2]
+ sub r3, r2, #0x4
+ str r1, [r0, r3]
+ add r0, r1, #0x0
+ add r0, #0xfc
+ str r4, [r0, #0x0]
+ sub r2, #0x10
+ str r4, [r1, r2]
+ pop {r4-r7}
+ bx lr
+_020207AC:
+ add r3, r1, #0x0
+ add r3, #0xf4
+ ldrh r6, [r3, #0x0]
+ sub r3, r2, #0x4
+ ldr r3, [r0, r3]
+ add r7, r3, #0x0
+ add r7, #0xf4
+ ldrh r7, [r7, #0x0]
+ cmp r7, r6
+ bhi _020207DE
+ add r5, r1, #0x0
+ add r5, #0xfc
+ str r3, [r5, #0x0]
+ sub r3, r2, #0x4
+ ldr r5, [r0, r3]
+ add r3, r2, #0x0
+ sub r3, #0x10
+ str r1, [r5, r3]
+ add r3, r2, #0x0
+ sub r3, #0x10
+ str r4, [r1, r3]
+ sub r2, r2, #0x4
+ str r1, [r0, r2]
+ pop {r4-r7}
+ bx lr
+_020207DE:
+ cmp r5, r4
+ beq _0202081A
+ add r0, r2, #0x0
+ sub r0, #0x10
+_020207E6:
+ add r2, r5, #0x0
+ add r2, #0xf4
+ ldrh r2, [r2, #0x0]
+ cmp r2, r6
+ bls _02020814
+ add r0, r5, #0x0
+ add r0, #0xfc
+ mov r2, #0x1
+ ldr r0, [r0, #0x0]
+ lsl r2, r2, #0x8
+ str r1, [r0, r2]
+ add r0, r5, #0x0
+ add r0, #0xfc
+ ldr r3, [r0, #0x0]
+ add r0, r1, #0x0
+ add r0, #0xfc
+ str r3, [r0, #0x0]
+ add r0, r5, #0x0
+ add r0, #0xfc
+ str r1, [r0, #0x0]
+ str r5, [r1, r2]
+ pop {r4-r7}
+ bx lr
+_02020814:
+ ldr r5, [r5, r0]
+ cmp r5, r4
+ bne _020207E6
+_0202081A:
+ pop {r4-r7}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02020820
+FUN_02020820: ; 0x02020820
+ mov r2, #0x1
+ add r1, r0, #0x0
+ lsl r2, r2, #0x8
+ add r1, #0xfc
+ ldr r3, [r0, r2]
+ ldr r1, [r1, #0x0]
+ str r3, [r1, r2]
+ add r1, r0, #0x0
+ add r1, #0xfc
+ ldr r0, [r0, r2]
+ ldr r1, [r1, #0x0]
+ add r0, #0xfc
+ str r1, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_0202083C
+FUN_0202083C: ; 0x0202083C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x4]
+ mov r7, #0x0
+ cmp r0, #0x0
+ ble _0202086C
+ add r4, r7, #0x0
+ add r6, r7, #0x0
+_0202084C:
+ ldr r0, [r5, #0x0]
+ add r0, r0, r4
+ bl FUN_0201FE6C
+ ldr r0, [r5, #0x0]
+ add r7, r7, #0x1
+ add r1, r0, r4
+ ldr r0, [r5, #0x8]
+ str r1, [r0, r6]
+ mov r0, #0x41
+ lsl r0, r0, #0x2
+ add r4, r4, r0
+ ldr r0, [r5, #0x4]
+ add r6, r6, #0x4
+ cmp r7, r0
+ blt _0202084C
+_0202086C:
+ mov r0, #0x0
+ str r0, [r5, #0xc]
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02020874
+FUN_02020874: ; 0x02020874
+ ldr r3, [r0, #0xc]
+ ldr r1, [r0, #0x4]
+ cmp r3, r1
+ blt _02020880
+ mov r0, #0x0
+ bx lr
+_02020880:
+ ldr r2, [r0, #0x8]
+ lsl r1, r3, #0x2
+ ldr r2, [r2, r1]
+ add r1, r3, #0x1
+ str r1, [r0, #0xc]
+ add r0, r2, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02020890
+FUN_02020890: ; 0x02020890
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ add r4, r1, #0x0
+ cmp r0, #0x0
+ bgt _020208A0
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_020208A0:
+ add r0, r4, #0x0
+ bl FUN_0201FE6C
+ ldr r0, [r5, #0xc]
+ sub r0, r0, #0x1
+ str r0, [r5, #0xc]
+ ldr r1, [r5, #0x8]
+ lsl r0, r0, #0x2
+ str r4, [r1, r0]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020208B8
+FUN_020208B8: ; 0x020208B8
+ push {r4-r7}
+ ldrb r3, [r0, #0x0]
+ mov r4, #0x0
+ cmp r3, #0xff
+ beq _020208FA
+_020208C2:
+ ldrb r7, [r0, #0x2]
+ ldrb r3, [r0, #0x3]
+ ldrb r5, [r0, #0x0]
+ sub r6, r1, r7
+ sub r3, r3, r7
+ cmp r6, r3
+ bhs _020208D4
+ mov r6, #0x1
+ b _020208D6
+_020208D4:
+ mov r6, #0x0
+_020208D6:
+ ldrb r7, [r0, #0x1]
+ sub r3, r2, r5
+ sub r5, r7, r5
+ cmp r3, r5
+ bhs _020208E4
+ mov r3, #0x1
+ b _020208E6
+_020208E4:
+ mov r3, #0x0
+_020208E6:
+ tst r3, r6
+ beq _020208F0
+ add r0, r4, #0x0
+ pop {r4-r7}
+ bx lr
+_020208F0:
+ add r0, r0, #0x4
+ ldrb r3, [r0, #0x0]
+ add r4, r4, #0x1
+ cmp r3, #0xff
+ bne _020208C2
+_020208FA:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r4-r7}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02020904
+FUN_02020904: ; 0x02020904
+ push {r3-r4}
+ ldrb r3, [r0, #0x1]
+ sub r4, r3, r1
+ ldrb r1, [r0, #0x2]
+ sub r3, r1, r2
+ ldrb r2, [r0, #0x3]
+ add r1, r4, #0x0
+ add r0, r3, #0x0
+ mul r1, r4
+ mul r0, r3
+ add r1, r1, r0
+ add r0, r2, #0x0
+ mul r0, r2
+ cmp r1, r0
+ bhs _02020928
+ mov r0, #0x1
+ pop {r3-r4}
+ bx lr
+_02020928:
+ mov r0, #0x0
+ pop {r3-r4}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02020930
+FUN_02020930: ; 0x02020930
+ push {r4-r5}
+ ldrb r5, [r0, #0x2]
+ ldrb r3, [r0, #0x0]
+ sub r4, r1, r5
+ ldrb r1, [r0, #0x3]
+ sub r1, r1, r5
+ cmp r4, r1
+ bhs _02020944
+ mov r4, #0x1
+ b _02020946
+_02020944:
+ mov r4, #0x0
+_02020946:
+ ldrb r0, [r0, #0x1]
+ sub r1, r2, r3
+ sub r0, r0, r3
+ cmp r1, r0
+ bhs _02020954
+ mov r0, #0x1
+ b _02020956
+_02020954:
+ mov r0, #0x0
+_02020956:
+ tst r0, r4
+ beq _02020960
+ mov r0, #0x1
+ pop {r4-r5}
+ bx lr
+_02020960:
+ mov r0, #0x0
+ pop {r4-r5}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02020968
+FUN_02020968: ; 0x02020968
+ push {r3, lr}
+ ldr r2, _02020984 ; =0x021C48F8
+ ldrh r1, [r2, #0x22]
+ cmp r1, #0x0
+ beq _0202097C
+ ldrh r1, [r2, #0x1c]
+ ldrh r2, [r2, #0x1e]
+ bl FUN_020208B8
+ pop {r3, pc}
+_0202097C:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3, pc}
+ nop
+_02020984: .word 0x021C48F8
+
+ thumb_func_start FUN_02020988
+FUN_02020988: ; 0x02020988
+ push {r3, lr}
+ ldr r2, _020209A4 ; =0x021C48F8
+ ldrh r1, [r2, #0x20]
+ cmp r1, #0x0
+ beq _0202099C
+ ldrh r1, [r2, #0x1c]
+ ldrh r2, [r2, #0x1e]
+ bl FUN_020208B8
+ pop {r3, pc}
+_0202099C:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3, pc}
+ nop
+_020209A4: .word 0x021C48F8
+
+ thumb_func_start FUN_020209A8
+FUN_020209A8: ; 0x020209A8
+ push {r3-r7, lr}
+ ldr r7, _020209F0 ; =0x021C48F8
+ add r5, r0, #0x0
+ ldrh r0, [r7, #0x22]
+ cmp r0, #0x0
+ beq _020209EA
+ mov r6, #0x0
+ add r4, r5, #0x0
+_020209B8:
+ ldrb r0, [r5, #0x0]
+ cmp r0, #0xfe
+ bne _020209D0
+ ldrh r1, [r7, #0x1c]
+ ldrh r2, [r7, #0x1e]
+ add r0, r4, #0x0
+ bl FUN_02020904
+ cmp r0, #0x0
+ beq _020209E2
+ add r0, r6, #0x0
+ pop {r3-r7, pc}
+_020209D0:
+ ldrh r1, [r7, #0x1c]
+ ldrh r2, [r7, #0x1e]
+ add r0, r4, #0x0
+ bl FUN_02020930
+ cmp r0, #0x0
+ beq _020209E2
+ add r0, r6, #0x0
+ pop {r3-r7, pc}
+_020209E2:
+ add r5, r5, #0x4
+ add r4, r4, #0x4
+ add r6, r6, #0x1
+ b _020209B8
+_020209EA:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r7, pc}
+ .balign 4
+_020209F0: .word 0x021C48F8
+
+ thumb_func_start FUN_020209F4
+FUN_020209F4: ; 0x020209F4
+ push {r3-r7, lr}
+ ldr r7, _02020A3C ; =0x021C48F8
+ add r5, r0, #0x0
+ ldrh r0, [r7, #0x20]
+ cmp r0, #0x0
+ beq _02020A36
+ mov r6, #0x0
+ add r4, r5, #0x0
+_02020A04:
+ ldrb r0, [r5, #0x0]
+ cmp r0, #0xfe
+ bne _02020A1C
+ ldrh r1, [r7, #0x1c]
+ ldrh r2, [r7, #0x1e]
+ add r0, r4, #0x0
+ bl FUN_02020904
+ cmp r0, #0x0
+ beq _02020A2E
+ add r0, r6, #0x0
+ pop {r3-r7, pc}
+_02020A1C:
+ ldrh r1, [r7, #0x1c]
+ ldrh r2, [r7, #0x1e]
+ add r0, r4, #0x0
+ bl FUN_02020930
+ cmp r0, #0x0
+ beq _02020A2E
+ add r0, r6, #0x0
+ pop {r3-r7, pc}
+_02020A2E:
+ add r5, r5, #0x4
+ add r4, r4, #0x4
+ add r6, r6, #0x1
+ b _02020A04
+_02020A36:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r7, pc}
+ .balign 4
+_02020A3C: .word 0x021C48F8
+
+ thumb_func_start FUN_02020A40
+FUN_02020A40: ; 0x02020A40
+ push {r3, lr}
+ ldr r2, _02020A68 ; =0x021C48F8
+ ldrh r1, [r2, #0x22]
+ cmp r1, #0x0
+ beq _02020A62
+ ldrb r1, [r0, #0x0]
+ cmp r1, #0xfe
+ ldrh r1, [r2, #0x1c]
+ bne _02020A5A
+ ldrh r2, [r2, #0x1e]
+ bl FUN_02020904
+ pop {r3, pc}
+_02020A5A:
+ ldrh r2, [r2, #0x1e]
+ bl FUN_02020930
+ pop {r3, pc}
+_02020A62:
+ mov r0, #0x0
+ pop {r3, pc}
+ nop
+_02020A68: .word 0x021C48F8
+
+ thumb_func_start FUN_02020A6C
+FUN_02020A6C: ; 0x02020A6C
+ push {r3, lr}
+ ldr r2, _02020A94 ; =0x021C48F8
+ ldrh r1, [r2, #0x20]
+ cmp r1, #0x0
+ beq _02020A8E
+ ldrb r1, [r0, #0x0]
+ cmp r1, #0xfe
+ ldrh r1, [r2, #0x1c]
+ bne _02020A86
+ ldrh r2, [r2, #0x1e]
+ bl FUN_02020904
+ pop {r3, pc}
+_02020A86:
+ ldrh r2, [r2, #0x1e]
+ bl FUN_02020930
+ pop {r3, pc}
+_02020A8E:
+ mov r0, #0x0
+ pop {r3, pc}
+ nop
+_02020A94: .word 0x021C48F8
+
+ thumb_func_start FUN_02020A98
+FUN_02020A98: ; 0x02020A98
+ ldr r0, _02020AA0 ; =0x021C48F8
+ ldrh r0, [r0, #0x22]
+ bx lr
+ nop
+_02020AA0: .word 0x021C48F8
+
+ thumb_func_start FUN_02020AA4
+FUN_02020AA4: ; 0x02020AA4
+ ldr r0, _02020AAC ; =0x021C48F8
+ ldrh r0, [r0, #0x20]
+ bx lr
+ nop
+_02020AAC: .word 0x021C48F8
+
+ thumb_func_start FUN_02020AB0
+FUN_02020AB0: ; 0x02020AB0
+ ldr r2, _02020AC8 ; =0x021C48F8
+ ldrh r3, [r2, #0x22]
+ cmp r3, #0x0
+ beq _02020AC4
+ ldrh r3, [r2, #0x1c]
+ str r3, [r0, #0x0]
+ ldrh r0, [r2, #0x1e]
+ str r0, [r1, #0x0]
+ mov r0, #0x1
+ bx lr
+_02020AC4:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_02020AC8: .word 0x021C48F8
+
+ thumb_func_start FUN_02020ACC
+FUN_02020ACC: ; 0x02020ACC
+ ldr r2, _02020AE4 ; =0x021C48F8
+ ldrh r3, [r2, #0x20]
+ cmp r3, #0x0
+ beq _02020AE0
+ ldrh r3, [r2, #0x1c]
+ str r3, [r0, #0x0]
+ ldrh r0, [r2, #0x1e]
+ str r0, [r1, #0x0]
+ mov r0, #0x1
+ bx lr
+_02020AE0:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_02020AE4: .word 0x021C48F8
+
+ thumb_func_start FUN_02020AE8
+FUN_02020AE8: ; 0x02020AE8
+ push {r3, lr}
+ ldrb r3, [r0, #0x0]
+ cmp r3, #0xfe
+ bne _02020AF6
+ bl FUN_02020904
+ pop {r3, pc}
+_02020AF6:
+ bl FUN_02020930
+ pop {r3, pc}
+
+ thumb_func_start FUN_02020AFC
+FUN_02020AFC: ; 0x02020AFC
+ push {r3, lr}
+ ldr r0, _02020B24 ; =0x021C59B0
+ mov r2, #0x0
+ str r2, [r0, #0x4]
+ str r2, [r0, #0x8]
+ ldr r1, _02020B28 ; =0x0400010E
+ str r2, [r0, #0x0]
+ strh r2, [r1, #0x0]
+ sub r0, r1, #0x2
+ strh r2, [r0, #0x0]
+ mov r0, #0xc1
+ strh r0, [r1, #0x0]
+ ldr r1, _02020B2C ; =FUN_02020B30
+ mov r0, #0x40
+ bl OS_SetIrqFunction
+ mov r0, #0x40
+ bl OS_EnableIrqMask
+ pop {r3, pc}
+ .balign 4
+_02020B24: .word 0x021C59B0
+_02020B28: .word 0x0400010E
+_02020B2C: .word FUN_02020B30
+
+ thumb_func_start FUN_02020B30
+FUN_02020B30: ; 0x02020B30
+ ldr r0, _02020B68 ; =0x021C59B0
+ mov r3, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r2, [r0, #0x8]
+ add r1, r1, #0x1
+ adc r2, r3
+ str r1, [r0, #0x4]
+ str r2, [r0, #0x8]
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _02020B54
+ ldr r2, _02020B6C ; =0x0400010E
+ strh r3, [r2, #0x0]
+ sub r1, r2, #0x2
+ strh r3, [r1, #0x0]
+ mov r1, #0xc1
+ strh r1, [r2, #0x0]
+ str r3, [r0, #0x0]
+_02020B54:
+ ldr r3, _02020B70 ; =0x027E0000
+ ldr r1, _02020B74 ; =0x00003FF8
+ mov r0, #0x40
+ ldr r2, [r3, r1]
+ orr r2, r0
+ str r2, [r3, r1]
+ ldr r3, _02020B78 ; =OS_SetIrqFunction
+ ldr r1, _02020B7C ; =FUN_02020B30
+ bx r3
+ nop
+_02020B68: .word 0x021C59B0
+_02020B6C: .word 0x0400010E
+_02020B70: .word 0x027E0000
+_02020B74: .word 0x00003FF8
+_02020B78: .word OS_SetIrqFunction
+_02020B7C: .word FUN_02020B30
+
+ thumb_func_start FUN_02020B80
+FUN_02020B80: ; 0x02020B80
+ push {r4-r5, lr}
+ sub sp, #0xc
+ bl OS_DisableInterrupts
+ ldr r1, _02020BE4 ; =0x0400010C
+ add r3, sp, #0x0
+ ldrh r1, [r1, #0x0]
+ ldr r2, _02020BE8 ; =0x0000FFFF
+ strh r1, [r3, #0x0]
+ ldr r1, _02020BEC ; =0x021C59B0
+ ldr r5, [r1, #0x4]
+ ldr r4, [r1, #0x8]
+ mov r1, #0x0
+ mvn r1, r1
+ and r1, r5
+ str r1, [sp, #0x4]
+ and r2, r4
+ ldr r1, _02020BF0 ; =0x04000214
+ str r2, [sp, #0x8]
+ ldr r2, [r1, #0x0]
+ mov r1, #0x40
+ tst r2, r1
+ beq _02020BC4
+ ldrh r2, [r3, #0x0]
+ lsl r1, r1, #0x9
+ tst r1, r2
+ bne _02020BC4
+ ldr r2, [sp, #0x4]
+ mov r1, #0x0
+ ldr r3, [sp, #0x8]
+ add r2, r2, #0x1
+ adc r3, r1
+ str r2, [sp, #0x4]
+ str r3, [sp, #0x8]
+_02020BC4:
+ bl OS_RestoreInterrupts
+ ldr r2, [sp, #0x4]
+ ldr r1, [sp, #0x8]
+ lsr r0, r2, #0x10
+ lsl r1, r1, #0x10
+ orr r1, r0
+ add r0, sp, #0x0
+ lsl r3, r2, #0x10
+ ldrh r2, [r0, #0x0]
+ asr r0, r2, #0x1f
+ orr r1, r0
+ add r0, r3, #0x0
+ orr r0, r2
+ add sp, #0xc
+ pop {r4-r5, pc}
+ .balign 4
+_02020BE4: .word 0x0400010C
+_02020BE8: .word 0x0000FFFF
+_02020BEC: .word 0x021C59B0
+_02020BF0: .word 0x04000214
+
+ thumb_func_start FUN_02020BF4
+FUN_02020BF4: ; 0x02020BF4
+ ldr r3, _02020BF8 ; =FUN_02020B80
+ bx r3
+ .balign 4
+_02020BF8: .word FUN_02020B80
+
+ thumb_func_start FUN_02020BFC
+FUN_02020BFC: ; 0x02020BFC
+ push {r3, lr}
+ lsr r2, r0, #0x1a
+ lsl r1, r1, #0x6
+ orr r1, r2
+ ldr r2, _02020C10 ; =0x000082EA
+ lsl r0, r0, #0x6
+ mov r3, #0x0
+ bl _ll_udiv
+ pop {r3, pc}
+ .balign 4
+_02020C10: .word 0x000082EA
+
+ thumb_func_start FUN_02020C14
+FUN_02020C14: ; 0x02020C14
+ push {r3, lr}
+ lsr r2, r0, #0x1a
+ lsl r1, r1, #0x6
+ orr r1, r2
+ ldr r2, _02020C28 ; =0x01FF6210
+ lsl r0, r0, #0x6
+ mov r3, #0x0
+ bl _ll_udiv
+ pop {r3, pc}
+ .balign 4
+_02020C28: .word 0x01FF6210
+
+ thumb_func_start ErrorHandling
+ErrorHandling: ; 0x02020C2C
+ push {r3, lr}
+ bl FUN_02031810
+ cmp r0, #0x0
+ beq _02020C42
+ bl OS_GetProcMode
+ cmp r0, #0x12
+ beq _02020C42
+ bl FUN_0208A9B8
+_02020C42:
+ pop {r3, pc}
+
+ thumb_func_start FUN_02020C44
+FUN_02020C44: ; 0x02020C44
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0xc
+ bl FUN_02016998
+ add r6, r0, #0x0
+ bne _02020C5A
+ bl ErrorHandling
+_02020C5A:
+ add r0, r4, #0x0
+ lsl r1, r7, #0x3
+ bl FUN_02016998
+ str r0, [r6, #0x0]
+ cmp r0, #0x0
+ bne _02020C6C
+ bl ErrorHandling
+_02020C6C:
+ mov r4, #0x0
+ cmp r7, #0x0
+ ble _02020C84
+ add r5, r4, #0x0
+_02020C74:
+ ldr r0, [r6, #0x0]
+ add r0, r0, r5
+ bl FUN_02020E78
+ add r4, r4, #0x1
+ add r5, #0x8
+ cmp r4, r7
+ blt _02020C74
+_02020C84:
+ str r7, [r6, #0x4]
+ mov r0, #0x0
+ str r0, [r6, #0x8]
+ add r0, r6, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02020C90
+FUN_02020C90: ; 0x02020C90
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02020C9A
+ bl ErrorHandling
+_02020C9A:
+ add r0, r4, #0x0
+ bl FUN_02020D9C
+ ldr r0, [r4, #0x0]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02020CB0
+FUN_02020CB0: ; 0x02020CB0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _02020CBE
+ bl ErrorHandling
+_02020CBE:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02020DD8
+ cmp r0, #0x0
+ bne _02020CCE
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02020CCE:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02020CD4
+FUN_02020CD4: ; 0x02020CD4
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r7, r1, #0x0
+ add r6, r2, #0x0
+ cmp r5, #0x0
+ bne _02020CE4
+ bl ErrorHandling
+_02020CE4:
+ add r0, r5, #0x0
+ bl FUN_02020E48
+ add r4, r0, #0x0
+ bne _02020CF2
+ bl ErrorHandling
+_02020CF2:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02020CB0
+ cmp r0, #0x1
+ beq _02020D02
+ bl ErrorHandling
+_02020D02:
+ str r7, [r4, #0x4]
+ str r6, [r4, #0x0]
+ ldr r0, [r5, #0x8]
+ add r0, r0, #0x1
+ str r0, [r5, #0x8]
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02020D10
+FUN_02020D10: ; 0x02020D10
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ str r3, [sp, #0x0]
+ cmp r5, #0x0
+ bne _02020D22
+ bl ErrorHandling
+_02020D22:
+ cmp r6, #0x0
+ bne _02020D2A
+ bl ErrorHandling
+_02020D2A:
+ add r0, r5, #0x0
+ bl FUN_02020E48
+ add r4, r0, #0x0
+ bne _02020D38
+ bl ErrorHandling
+_02020D38:
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ bl FUN_02020CB0
+ cmp r0, #0x1
+ beq _02020D48
+ bl ErrorHandling
+_02020D48:
+ ldr r0, [sp, #0x0]
+ add r1, r6, #0x0
+ bl FUN_020161A4
+ str r0, [r4, #0x4]
+ cmp r0, #0x0
+ bne _02020D5A
+ bl ErrorHandling
+_02020D5A:
+ str r7, [r4, #0x0]
+ ldr r0, [r5, #0x8]
+ add r0, r0, #0x1
+ str r0, [r5, #0x8]
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02020D68
+FUN_02020D68: ; 0x02020D68
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _02020D76
+ bl ErrorHandling
+_02020D76:
+ cmp r4, #0x0
+ bne _02020D7E
+ bl ErrorHandling
+_02020D7E:
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x0
+ beq _02020D8C
+ bl FUN_02016A18
+ mov r0, #0x0
+ str r0, [r4, #0x4]
+_02020D8C:
+ mov r0, #0x0
+ mvn r0, r0
+ str r0, [r4, #0x0]
+ ldr r0, [r5, #0x8]
+ sub r0, r0, #0x1
+ str r0, [r5, #0x8]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02020D9C
+FUN_02020D9C: ; 0x02020D9C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bne _02020DA6
+ bl ErrorHandling
+_02020DA6:
+ ldr r0, [r5, #0x0]
+ cmp r0, #0x0
+ bne _02020DB0
+ bl ErrorHandling
+_02020DB0:
+ ldr r0, [r5, #0x4]
+ mov r6, #0x0
+ cmp r0, #0x0
+ ble _02020DD6
+ add r4, r6, #0x0
+ sub r7, r6, #0x1
+_02020DBC:
+ ldr r1, [r5, #0x0]
+ ldr r0, [r1, r4]
+ cmp r0, r7
+ beq _02020DCC
+ add r0, r5, #0x0
+ add r1, r1, r4
+ bl FUN_02020D68
+_02020DCC:
+ ldr r0, [r5, #0x4]
+ add r6, r6, #0x1
+ add r4, #0x8
+ cmp r6, r0
+ blt _02020DBC
+_02020DD6:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02020DD8
+FUN_02020DD8: ; 0x02020DD8
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _02020DE6
+ bl ErrorHandling
+_02020DE6:
+ ldr r6, [r5, #0x4]
+ mov r1, #0x0
+ cmp r6, #0x0
+ ble _02020E06
+ ldr r3, [r5, #0x0]
+ add r2, r3, #0x0
+_02020DF2:
+ ldr r0, [r2, #0x0]
+ cmp r4, r0
+ bne _02020DFE
+ lsl r0, r1, #0x3
+ add r0, r3, r0
+ pop {r4-r6, pc}
+_02020DFE:
+ add r1, r1, #0x1
+ add r2, #0x8
+ cmp r1, r6
+ blt _02020DF2
+_02020E06:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02020E0C
+FUN_02020E0C: ; 0x02020E0C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02020E16
+ bl ErrorHandling
+_02020E16:
+ ldr r0, [r4, #0x4]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02020E1C
+FUN_02020E1C: ; 0x02020E1C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _02020E2A
+ bl ErrorHandling
+_02020E2A:
+ ldr r0, [r5, #0x4]
+ cmp r0, #0x0
+ beq _02020E34
+ bl FUN_02016A18
+_02020E34:
+ str r4, [r5, #0x4]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02020E38
+FUN_02020E38: ; 0x02020E38
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02020E42
+ bl ErrorHandling
+_02020E42:
+ ldr r0, [r4, #0x0]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02020E48
+FUN_02020E48: ; 0x02020E48
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bne _02020E52
+ bl ErrorHandling
+_02020E52:
+ ldr r5, [r4, #0x4]
+ mov r2, #0x0
+ cmp r5, #0x0
+ ble _02020E74
+ ldr r4, [r4, #0x0]
+ sub r0, r2, #0x1
+ add r3, r4, #0x0
+_02020E60:
+ ldr r1, [r3, #0x0]
+ cmp r1, r0
+ bne _02020E6C
+ lsl r0, r2, #0x3
+ add r0, r4, r0
+ pop {r3-r5, pc}
+_02020E6C:
+ add r2, r2, #0x1
+ add r3, #0x8
+ cmp r2, r5
+ blt _02020E60
+_02020E74:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02020E78
+FUN_02020E78: ; 0x02020E78
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02020E82
+ bl ErrorHandling
+_02020E82:
+ mov r0, #0x0
+ mvn r0, r0
+ str r0, [r4, #0x0]
+ mov r0, #0x0
+ str r0, [r4, #0x4]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02020E90
+FUN_02020E90: ; 0x02020E90
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x8
+ bl FUN_02016998
+ add r7, r0, #0x0
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_02020C44
+ mov r1, #0x18
+ str r0, [r7, #0x0]
+ add r0, r4, #0x0
+ mul r1, r6
+ bl FUN_02016998
+ mov r4, #0x0
+ str r0, [r7, #0x4]
+ cmp r6, #0x0
+ ble _02020ECE
+ add r5, r4, #0x0
+_02020EBE:
+ ldr r0, [r7, #0x4]
+ add r0, r0, r5
+ bl FUN_0202120C
+ add r4, r4, #0x1
+ add r5, #0x18
+ cmp r4, r6
+ blt _02020EBE
+_02020ECE:
+ add r0, r7, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02020ED4
+FUN_02020ED4: ; 0x02020ED4
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02020EDE
+ bl ErrorHandling
+_02020EDE:
+ add r0, r4, #0x0
+ bl FUN_02021010
+ ldr r0, [r4, #0x0]
+ bl FUN_02020C90
+ ldr r0, [r4, #0x4]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+
+ thumb_func_start FUN_02020EF8
+FUN_02020EF8: ; 0x02020EF8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _02020F06
+ bl ErrorHandling
+_02020F06:
+ ldr r0, [r5, #0x0]
+ add r1, r4, #0x0
+ bl FUN_02020CB0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02020F10
+FUN_02020F10: ; 0x02020F10
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r7, r3, #0x0
+ str r2, [sp, #0x0]
+ cmp r5, #0x0
+ bne _02020F22
+ bl ErrorHandling
+_02020F22:
+ add r0, r5, #0x0
+ bl FUN_020211DC
+ add r4, r0, #0x0
+ strh r7, [r4, #0x16]
+ ldrh r0, [r4, #0x16]
+ cmp r0, #0x1
+ bne _02020F40
+ ldr r1, [sp, #0x18]
+ add r0, r6, #0x0
+ bl FUN_02021310
+ add r1, r0, #0x0
+ str r6, [r4, #0x10]
+ b _02020F46
+_02020F40:
+ mov r0, #0x0
+ add r1, r6, #0x0
+ str r0, [r4, #0x10]
+_02020F46:
+ ldr r0, [r5, #0x0]
+ ldr r2, [sp, #0x0]
+ bl FUN_02020CD4
+ str r0, [r4, #0x0]
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02020F54
+FUN_02020F54: ; 0x02020F54
+ push {r3-r4, lr}
+ sub sp, #0x4
+ ldr r4, [sp, #0x10]
+ str r4, [sp, #0x0]
+ bl FUN_02020F10
+ add r4, r0, #0x0
+ bl FUN_02021174
+ add r0, r4, #0x0
+ add sp, #0x4
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_02020F6C
+FUN_02020F6C: ; 0x02020F6C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _02020F7A
+ bl ErrorHandling
+_02020F7A:
+ cmp r4, #0x0
+ bne _02020F82
+ bl ErrorHandling
+_02020F82:
+ ldrh r0, [r4, #0x16]
+ cmp r0, #0x1
+ bne _02020F98
+ ldrh r0, [r4, #0x14]
+ cmp r0, #0x0
+ bne _02020F98
+ ldr r0, [r4, #0x10]
+ bl FUN_02016A18
+ mov r0, #0x0
+ strh r0, [r4, #0x16]
+_02020F98:
+ ldr r1, [r4, #0x0]
+ cmp r1, #0x0
+ beq _02020FA4
+ ldr r0, [r5, #0x0]
+ bl FUN_02020D68
+_02020FA4:
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x0
+ beq _02020FB8
+ ldr r1, _02020FE8 ; =0x021064BC
+ ldr r1, [r1, #0x0]
+ blx r1
+ cmp r0, #0x0
+ beq _02020FB8
+ bl ErrorHandling
+_02020FB8:
+ ldr r0, [r4, #0x8]
+ cmp r0, #0x0
+ beq _02020FCC
+ ldr r1, _02020FE8 ; =0x021064BC
+ ldr r1, [r1, #0x0]
+ blx r1
+ cmp r0, #0x0
+ beq _02020FCC
+ bl ErrorHandling
+_02020FCC:
+ ldr r0, [r4, #0xc]
+ cmp r0, #0x0
+ beq _02020FE0
+ ldr r1, _02020FEC ; =0x021064C4
+ ldr r1, [r1, #0x0]
+ blx r1
+ cmp r0, #0x0
+ beq _02020FE0
+ bl ErrorHandling
+_02020FE0:
+ add r0, r4, #0x0
+ bl FUN_0202120C
+ pop {r3-r5, pc}
+ .balign 4
+_02020FE8: .word 0x021064BC
+_02020FEC: .word 0x021064C4
+
+ thumb_func_start FUN_02020FF0
+FUN_02020FF0: ; 0x02020FF0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _02020FFE
+ bl ErrorHandling
+_02020FFE:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02021050
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02020F6C
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02021010
+FUN_02021010: ; 0x02021010
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bne _0202101A
+ bl ErrorHandling
+_0202101A:
+ ldr r0, [r5, #0x4]
+ cmp r0, #0x0
+ bne _02021024
+ bl ErrorHandling
+_02021024:
+ ldr r0, [r5, #0x0]
+ mov r6, #0x0
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ ble _0202104C
+ add r4, r6, #0x0
+_02021030:
+ ldr r1, [r5, #0x4]
+ ldr r0, [r1, r4]
+ cmp r0, #0x0
+ beq _02021040
+ add r0, r5, #0x0
+ add r1, r1, r4
+ bl FUN_02020F6C
+_02021040:
+ ldr r0, [r5, #0x0]
+ add r6, r6, #0x1
+ ldr r0, [r0, #0x4]
+ add r4, #0x18
+ cmp r6, r0
+ blt _02021030
+_0202104C:
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02021050
+FUN_02021050: ; 0x02021050
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ add r7, r1, #0x0
+ cmp r6, #0x0
+ bne _0202105E
+ bl ErrorHandling
+_0202105E:
+ ldr r0, [r6, #0x0]
+ mov r4, #0x0
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ ble _02021092
+ add r5, r4, #0x0
+_0202106A:
+ ldr r1, [r6, #0x4]
+ ldr r0, [r1, r5]
+ cmp r0, #0x0
+ beq _02021086
+ add r0, r1, r5
+ bl FUN_02021098
+ cmp r0, r7
+ bne _02021086
+ mov r0, #0x18
+ ldr r1, [r6, #0x4]
+ mul r0, r4
+ add r0, r1, r0
+ pop {r3-r7, pc}
+_02021086:
+ ldr r0, [r6, #0x0]
+ add r4, r4, #0x1
+ ldr r0, [r0, #0x4]
+ add r5, #0x18
+ cmp r4, r0
+ blt _0202106A
+_02021092:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02021098
+FUN_02021098: ; 0x02021098
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _020210A2
+ bl ErrorHandling
+_020210A2:
+ ldr r0, [r4, #0x0]
+ bl FUN_02020E38
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020210AC
+FUN_020210AC: ; 0x020210AC
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _020210B6
+ bl ErrorHandling
+_020210B6:
+ add r0, r4, #0x0
+ bl FUN_02021220
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020210C0
+FUN_020210C0: ; 0x020210C0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _020210CA
+ bl ErrorHandling
+_020210CA:
+ ldrh r0, [r4, #0x14]
+ cmp r0, #0x0
+ beq _020210D4
+ bl ErrorHandling
+_020210D4:
+ ldr r0, [r4, #0xc]
+ cmp r0, #0x0
+ bne _020210E0
+ bl ErrorHandling
+ pop {r4, pc}
+_020210E0:
+ add r0, r4, #0x0
+ bl FUN_02021230
+ add r1, r4, #0x0
+ bl FUN_020212B8
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020210F0
+FUN_020210F0: ; 0x020210F0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _020210FE
+ bl ErrorHandling
+_020210FE:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02021050
+ bl FUN_020210C0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0202110C
+FUN_0202110C: ; 0x0202110C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02021116
+ bl ErrorHandling
+_02021116:
+ ldrh r0, [r4, #0x16]
+ cmp r0, #0x0
+ bne _02021122
+ bl ErrorHandling
+ pop {r4, pc}
+_02021122:
+ ldrh r0, [r4, #0x14]
+ cmp r0, #0x0
+ beq _0202112E
+ bl ErrorHandling
+ pop {r4, pc}
+_0202112E:
+ add r0, r4, #0x0
+ bl FUN_02021230
+ bl FUN_020212F8
+ add r0, r4, #0x0
+ bl FUN_02021220
+ ldr r1, [r4, #0x4]
+ ldr r2, [r4, #0x8]
+ ldr r3, [r4, #0xc]
+ bl FUN_020212E4
+ ldr r0, [r4, #0x10]
+ bl FUN_02016A18
+ mov r0, #0x0
+ str r0, [r4, #0x10]
+ mov r0, #0x1
+ strh r0, [r4, #0x14]
+ pop {r4, pc}
+
+ thumb_func_start FUN_02021158
+FUN_02021158: ; 0x02021158
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _02021166
+ bl ErrorHandling
+_02021166:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02021050
+ bl FUN_0202110C
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02021174
+FUN_02021174: ; 0x02021174
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _0202117E
+ bl ErrorHandling
+_0202117E:
+ ldrh r0, [r4, #0x14]
+ cmp r0, #0x0
+ beq _02021188
+ bl ErrorHandling
+_02021188:
+ ldr r0, [r4, #0xc]
+ cmp r0, #0x0
+ beq _02021194
+ bl ErrorHandling
+ pop {r4, pc}
+_02021194:
+ add r0, r4, #0x0
+ bl FUN_02021230
+ add r2, r4, #0x0
+ add r1, r4, #0x4
+ add r4, #0xc
+ add r2, #0x8
+ add r3, r4, #0x0
+ bl FUN_02021248
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020211AC
+FUN_020211AC: ; 0x020211AC
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _020211B6
+ bl ErrorHandling
+_020211B6:
+ ldr r0, [r4, #0x4]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020211BC
+FUN_020211BC: ; 0x020211BC
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _020211C6
+ bl ErrorHandling
+_020211C6:
+ ldr r0, [r4, #0x8]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020211CC
+FUN_020211CC: ; 0x020211CC
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _020211D6
+ bl ErrorHandling
+_020211D6:
+ ldr r0, [r4, #0xc]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020211DC
+FUN_020211DC: ; 0x020211DC
+ push {r3-r4}
+ ldr r1, [r0, #0x0]
+ mov r2, #0x0
+ ldr r4, [r1, #0x4]
+ cmp r4, #0x0
+ ble _02021204
+ ldr r3, [r0, #0x4]
+_020211EA:
+ ldr r1, [r3, #0x0]
+ cmp r1, #0x0
+ bne _020211FC
+ ldr r1, [r0, #0x4]
+ mov r0, #0x18
+ mul r0, r2
+ add r0, r1, r0
+ pop {r3-r4}
+ bx lr
+_020211FC:
+ add r2, r2, #0x1
+ add r3, #0x18
+ cmp r2, r4
+ blt _020211EA
+_02021204:
+ mov r0, #0x0
+ pop {r3-r4}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202120C
+FUN_0202120C: ; 0x0202120C
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ str r1, [r0, #0x4]
+ str r1, [r0, #0x8]
+ str r1, [r0, #0xc]
+ strh r1, [r0, #0x14]
+ str r1, [r0, #0x10]
+ strh r1, [r0, #0x14]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02021220
+FUN_02021220: ; 0x02021220
+ push {r3, lr}
+ ldr r0, [r0, #0x0]
+ bl FUN_02020E0C
+ bl FUN_020BC0FC
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02021230
+FUN_02021230: ; 0x02021230
+ push {r3, lr}
+ ldrh r1, [r0, #0x16]
+ cmp r1, #0x0
+ bne _02021240
+ ldr r0, [r0, #0x0]
+ bl FUN_02020E0C
+ b _02021242
+_02021240:
+ ldr r0, [r0, #0x10]
+_02021242:
+ bl FUN_020BC0FC
+ pop {r3, pc}
+
+ thumb_func_start FUN_02021248
+FUN_02021248: ; 0x02021248
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ str r1, [sp, #0x0]
+ str r2, [sp, #0x4]
+ str r3, [sp, #0x8]
+ bl FUN_020B7E1C
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020B7E10
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020B7CE4
+ add r4, r0, #0x0
+ cmp r7, #0x0
+ beq _0202127E
+ ldr r3, _020212B0 ; =0x021064B8
+ mov r1, #0x0
+ ldr r3, [r3, #0x0]
+ add r0, r7, #0x0
+ add r2, r1, #0x0
+ blx r3
+ ldr r1, [sp, #0x0]
+ str r0, [r1, #0x0]
+_0202127E:
+ cmp r6, #0x0
+ beq _02021292
+ ldr r3, _020212B0 ; =0x021064B8
+ add r0, r6, #0x0
+ ldr r3, [r3, #0x0]
+ mov r1, #0x1
+ mov r2, #0x0
+ blx r3
+ ldr r1, [sp, #0x4]
+ str r0, [r1, #0x0]
+_02021292:
+ cmp r4, #0x0
+ beq _020212AC
+ ldr r3, _020212B4 ; =0x021064C0
+ mov r1, #0x2
+ ldrh r2, [r5, #0x20]
+ lsl r1, r1, #0xe
+ ldr r3, [r3, #0x0]
+ and r1, r2
+ add r0, r4, #0x0
+ mov r2, #0x0
+ blx r3
+ ldr r1, [sp, #0x8]
+ str r0, [r1, #0x0]
+_020212AC:
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_020212B0: .word 0x021064B8
+_020212B4: .word 0x021064C0
+
+ thumb_func_start FUN_020212B8
+FUN_020212B8: ; 0x020212B8
+ push {r4, lr}
+ add r3, r1, #0x0
+ ldr r1, [r3, #0x4]
+ ldr r2, [r3, #0x8]
+ ldr r3, [r3, #0xc]
+ add r4, r0, #0x0
+ bl FUN_020212E4
+ ldr r1, [r4, #0x4]
+ add r0, r4, #0x0
+ bl DC_FlushRange
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_020B7D28
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_020B7C78
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020212E4
+FUN_020212E4: ; 0x020212E4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r3, #0x0
+ bl FUN_020B7DFC
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020B7CDC
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020212F8
+FUN_020212F8: ; 0x020212F8
+ push {r4, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ add r1, sp, #0x4
+ add r2, sp, #0x0
+ bl FUN_020B7CF0
+ add r0, r4, #0x0
+ bl FUN_020B7C58
+ add sp, #0x8
+ pop {r4, pc}
+
+ thumb_func_start FUN_02021310
+FUN_02021310: ; 0x02021310
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02021334
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_02016998
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ add r4, r0, #0x0
+ bl memcpy
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02021334
+FUN_02021334: ; 0x02021334
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_020BC0FC
+ add r4, r0, #0x0
+ bne _02021344
+ bl ErrorHandling
+_02021344:
+ ldr r0, [r4, #0x14]
+ add r0, r4, r0
+ sub r0, r0, r5
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0202134C
+FUN_0202134C: ; 0x0202134C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_020B33A0
+ add r5, #0x80
+ str r4, [r5, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0202135C
+FUN_0202135C: ; 0x0202135C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ bl FUN_020B3334
+ add r2, r5, #0x0
+ ldmia r4!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldmia r4!, {r0-r1}
+ stmia r2!, {r0-r1}
+ str r6, [r5, #0x28]
+ ldr r0, [sp, #0x18]
+ str r7, [r5, #0x2c]
+ str r0, [r5, #0x34]
+ ldr r0, [sp, #0x1c]
+ str r0, [r5, #0x14]
+ ldr r0, [sp, #0x20]
+ cmp r0, #0x0
+ beq _0202138C
+ add r1, r5, #0x0
+ bl FUN_020B3390
+_0202138C:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02021390
+FUN_02021390: ; 0x02021390
+ add r3, r0, #0x0
+ add r2, r1, #0x0
+ ldmia r2!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r2!, {r0-r1}
+ stmia r3!, {r0-r1}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020213A0
+FUN_020213A0: ; 0x020213A0
+ push {r3-r7, lr}
+ sub sp, #0x60
+ add r5, r1, #0x0
+ add r6, r2, #0x0
+ ldr r4, [r5, #0x10]
+ ldr r3, [r6, #0x0]
+ add r2, r0, #0x0
+ sub r3, r4, r3
+ ldrh r1, [r0, #0x2]
+ mov r0, #0x3f
+ str r3, [sp, #0x18]
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x1a
+ ldr r4, [r5, #0x14]
+ ldr r3, [r6, #0x4]
+ add r2, #0x8
+ sub r3, r4, r3
+ str r3, [sp, #0x14]
+ asr r3, r1, #0xb
+ mov r1, #0x1
+ and r1, r3
+ lsr r0, r0, #0x18
+ cmp r1, #0x1
+ bne _020213F4
+ mov r0, #0x6
+ ldrsh r0, [r2, r0]
+ lsl r4, r0, #0xc
+ mov r0, #0x2
+ ldrsh r0, [r2, r0]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x10]
+ mov r0, #0x4
+ ldrsh r0, [r2, r0]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0xc]
+ mov r0, #0x0
+ ldrsh r0, [r2, r0]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x8]
+ b _02021400
+_020213F4:
+ neg r1, r0
+ lsl r0, r0, #0xc
+ lsl r4, r1, #0xc
+ str r0, [sp, #0x10]
+ str r4, [sp, #0xc]
+ str r0, [sp, #0x8]
+_02021400:
+ ldr r0, [r5, #0xc]
+ str r0, [sp, #0x1c]
+ asr r0, r0, #0x1f
+ str r0, [sp, #0x20]
+ asr r0, r4, #0x1f
+ str r0, [sp, #0x24]
+ ldr r0, [r5, #0x4]
+ ldr r1, [sp, #0x24]
+ str r0, [sp, #0x28]
+ asr r0, r0, #0x1f
+ str r0, [sp, #0x2c]
+ ldr r2, [sp, #0x28]
+ ldr r3, [sp, #0x2c]
+ add r0, r4, #0x0
+ bl _ll_mul
+ add r7, r1, #0x0
+ str r0, [sp, #0x30]
+ ldr r1, [sp, #0x24]
+ ldr r2, [sp, #0x1c]
+ ldr r3, [sp, #0x20]
+ add r0, r4, #0x0
+ bl _ll_mul
+ add r2, r0, #0x0
+ add r3, r1, #0x0
+ mov r0, #0x2
+ ldr r1, [sp, #0x30]
+ mov r4, #0x0
+ lsl r0, r0, #0xa
+ add r0, r1, r0
+ adc r7, r4
+ lsl r1, r7, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r1
+ mov r1, #0x2
+ lsl r1, r1, #0xa
+ add r2, r2, r1
+ adc r3, r4
+ lsl r1, r3, #0x14
+ lsr r2, r2, #0xc
+ orr r2, r1
+ add r1, r0, r2
+ ldr r0, [sp, #0x14]
+ ldr r2, [sp, #0x28]
+ add r0, r0, r1
+ str r0, [sp, #0x5c]
+ ldr r0, [sp, #0x10]
+ ldr r3, [sp, #0x2c]
+ asr r0, r0, #0x1f
+ str r0, [sp, #0x34]
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x34]
+ bl _ll_mul
+ str r0, [sp, #0x38]
+ add r4, r1, #0x0
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x34]
+ ldr r2, [sp, #0x1c]
+ ldr r3, [sp, #0x20]
+ bl _ll_mul
+ mov r2, #0x2
+ ldr r3, [sp, #0x38]
+ lsl r2, r2, #0xa
+ add r2, r3, r2
+ ldr r3, _0202158C ; =0x00000000
+ adc r4, r3
+ lsl r3, r4, #0x14
+ lsr r2, r2, #0xc
+ orr r2, r3
+ mov r3, #0x2
+ lsl r3, r3, #0xa
+ add r3, r0, r3
+ ldr r0, _0202158C ; =0x00000000
+ adc r1, r0
+ lsl r0, r1, #0x14
+ lsr r1, r3, #0xc
+ orr r1, r0
+ ldr r0, [sp, #0x14]
+ add r1, r2, r1
+ add r4, r0, r1
+ ldr r0, [r5, #0x8]
+ str r0, [sp, #0x3c]
+ asr r0, r0, #0x1f
+ str r0, [sp, #0x40]
+ ldr r0, [sp, #0xc]
+ asr r0, r0, #0x1f
+ str r0, [sp, #0x44]
+ ldr r0, [r5, #0x0]
+ ldr r1, [sp, #0x44]
+ str r0, [sp, #0x48]
+ asr r0, r0, #0x1f
+ str r0, [sp, #0x4c]
+ ldr r0, [sp, #0xc]
+ ldr r2, [sp, #0x48]
+ ldr r3, [sp, #0x4c]
+ bl _ll_mul
+ str r0, [sp, #0x50]
+ add r5, r1, #0x0
+ ldr r0, [sp, #0xc]
+ ldr r1, [sp, #0x44]
+ ldr r2, [sp, #0x3c]
+ ldr r3, [sp, #0x40]
+ bl _ll_mul
+ mov r2, #0x2
+ ldr r3, [sp, #0x50]
+ lsl r2, r2, #0xa
+ add r2, r3, r2
+ ldr r3, _0202158C ; =0x00000000
+ adc r5, r3
+ lsl r3, r5, #0x14
+ lsr r2, r2, #0xc
+ orr r2, r3
+ mov r3, #0x2
+ lsl r3, r3, #0xa
+ add r3, r0, r3
+ ldr r0, _0202158C ; =0x00000000
+ adc r1, r0
+ lsl r0, r1, #0x14
+ lsr r1, r3, #0xc
+ orr r1, r0
+ ldr r0, [sp, #0x18]
+ add r1, r2, r1
+ add r5, r0, r1
+ ldr r0, [sp, #0x8]
+ asr r0, r0, #0x1f
+ str r0, [sp, #0x54]
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0x54]
+ ldr r2, [sp, #0x48]
+ ldr r3, [sp, #0x4c]
+ bl _ll_mul
+ str r0, [sp, #0x58]
+ str r1, [sp, #0x4]
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0x54]
+ ldr r2, [sp, #0x3c]
+ ldr r3, [sp, #0x40]
+ bl _ll_mul
+ mov r12, r0
+ add r2, r1, #0x0
+ mov r0, #0x2
+ ldr r1, [sp, #0x58]
+ lsl r0, r0, #0xa
+ add r3, r1, r0
+ ldr r1, [sp, #0x4]
+ ldr r0, _0202158C ; =0x00000000
+ adc r1, r0
+ str r1, [sp, #0x4]
+ lsl r0, r1, #0x14
+ lsr r1, r3, #0xc
+ orr r1, r0
+ mov r0, #0x2
+ lsl r0, r0, #0xa
+ mov r3, r12
+ add r0, r3, r0
+ ldr r3, _0202158C ; =0x00000000
+ adc r2, r3
+ lsl r2, r2, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r2
+ add r1, r1, r0
+ ldr r0, [sp, #0x18]
+ add r0, r0, r1
+ ldr r1, [sp, #0x5c]
+ cmp r4, r1
+ bge _02021560
+ add r1, r4, #0x0
+ ldr r4, [sp, #0x5c]
+ str r1, [sp, #0x5c]
+_02021560:
+ cmp r0, r5
+ bge _0202156A
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r5, r1, #0x0
+_0202156A:
+ cmp r4, #0x0
+ ble _02021586
+ ldr r2, [r6, #0xc]
+ ldr r1, [sp, #0x5c]
+ cmp r1, r2
+ bge _02021586
+ cmp r0, #0x0
+ ble _02021586
+ ldr r0, [r6, #0x8]
+ cmp r5, r0
+ bge _02021586
+ add sp, #0x60
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02021586:
+ mov r0, #0x0
+ add sp, #0x60
+ pop {r3-r7, pc}
+ .balign 4
+_0202158C: .word 0x00000000
+
+ thumb_func_start FUN_02021590
+FUN_02021590: ; 0x02021590
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ ldr r0, [sp, #0x20]
+ mov r1, #0x78
+ add r7, r2, #0x0
+ str r3, [sp, #0x4]
+ bl FUN_02016998
+ add r4, r0, #0x0
+ beq _020215C0
+ ldr r1, [sp, #0x20]
+ ldr r3, [sp, #0x4]
+ str r1, [sp, #0x0]
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ bl FUN_02021600
+ ldr r2, [sp, #0x20]
+ add r0, r4, #0x0
+ add r1, r7, #0x0
+ bl FUN_020216D4
+_020215C0:
+ add r0, r4, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020215C8
+FUN_020215C8: ; 0x020215C8
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02021728
+ add r0, r4, #0x0
+ bl FUN_020216B8
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020215E0
+FUN_020215E0: ; 0x020215E0
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ add r6, r2, #0x0
+ cmp r1, r4
+ beq _020215FC
+ bl FUN_02021728
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_020216D4
+_020215FC:
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02021600
+FUN_02021600: ; 0x02021600
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ ldr r1, [sp, #0x18]
+ add r4, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_02006670
+ str r0, [r5, #0x54]
+ cmp r0, #0x0
+ beq _020216A6
+ add r1, r5, #0x0
+ add r1, #0x5c
+ str r1, [sp, #0x0]
+ add r1, r4, #0x0
+ mov r2, #0x0
+ mov r3, #0x10
+ bl FUN_02006814
+ str r6, [r5, #0x6c]
+ cmp r6, #0x0
+ beq _02021638
+ mov r0, #0x0
+ str r0, [r5, #0x74]
+ ldr r0, _020216AC ; =FUN_0202192C
+ str r0, [r5, #0x70]
+ b _02021660
+_02021638:
+ ldr r0, [r5, #0x60]
+ cmp r0, #0x0
+ bne _02021642
+ bl ErrorHandling
+_02021642:
+ ldr r0, [sp, #0x18]
+ ldr r1, [r5, #0x64]
+ bl FUN_02016998
+ str r0, [r5, #0x74]
+ ldr r0, _020216B0 ; =FUN_02021924
+ add r1, r4, #0x0
+ str r0, [r5, #0x70]
+ ldr r0, [r5, #0x74]
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x54]
+ ldr r2, [r5, #0x60]
+ ldr r3, [r5, #0x64]
+ bl FUN_02006814
+_02021660:
+ add r0, r5, #0x0
+ add r0, #0x6a
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x2
+ bhi _02021674
+ add r0, r5, #0x0
+ add r0, #0x6b
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x2
+ bls _02021678
+_02021674:
+ bl ErrorHandling
+_02021678:
+ add r0, r5, #0x0
+ add r0, #0x6a
+ ldrb r0, [r0, #0x0]
+ ldr r2, _020216B4 ; =0x020EE668
+ sub r0, r0, #0x1
+ lsl r3, r0, #0x1
+ add r0, r5, #0x0
+ add r0, #0x6b
+ ldrb r0, [r0, #0x0]
+ sub r1, r0, #0x1
+ add r0, r2, r3
+ ldrb r0, [r1, r0]
+ str r0, [r5, #0x8]
+ add r0, r5, #0x0
+ add r0, #0x6b
+ ldrb r1, [r0, #0x0]
+ add r0, r5, #0x0
+ add r0, #0x6a
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x4
+ mul r0, r1
+ str r0, [r5, #0xc]
+ str r4, [r5, #0x58]
+_020216A6:
+ add sp, #0x4
+ pop {r3-r6, pc}
+ nop
+_020216AC: .word FUN_0202192C
+_020216B0: .word FUN_02021924
+_020216B4: .word 0x020EE668
+
+ thumb_func_start FUN_020216B8
+FUN_020216B8: ; 0x020216B8
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x74]
+ cmp r0, #0x0
+ beq _020216C6
+ bl FUN_02016A18
+_020216C6:
+ ldr r0, [r4, #0x54]
+ cmp r0, #0x0
+ beq _020216D0
+ bl FUN_020066F4
+_020216D0:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020216D4
+FUN_020216D4: ; 0x020216D4
+ push {r3, lr}
+ add r3, r1, #0x0
+ add r1, r2, #0x0
+ str r3, [r0, #0x0]
+ ldr r2, _020216E8 ; =0x020EE66C
+ lsl r3, r3, #0x2
+ ldr r2, [r2, r3]
+ blx r2
+ pop {r3, pc}
+ nop
+_020216E8: .word 0x020EE66C
+
+ thumb_func_start FUN_020216EC
+FUN_020216EC: ; 0x020216EC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r2, [r5, #0xc]
+ ldr r0, [r5, #0x64]
+ add r4, r2, #0x0
+ mul r4, r0
+ add r0, r1, #0x0
+ add r1, r4, #0x0
+ bl FUN_02016998
+ str r0, [r5, #0x10]
+ ldr r0, _02021718 ; =FUN_02021774
+ add r3, r4, #0x0
+ str r0, [r5, #0x4]
+ ldr r0, [r5, #0x10]
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ ldr r2, [r5, #0x5c]
+ bl FUN_02006814
+ pop {r3-r5, pc}
+ .balign 4
+_02021718: .word FUN_02021774
+
+ thumb_func_start FUN_0202171C
+FUN_0202171C: ; 0x0202171C
+ ldr r1, _02021724 ; =FUN_0202181C
+ str r1, [r0, #0x4]
+ bx lr
+ nop
+_02021724: .word FUN_0202181C
+
+ thumb_func_start FUN_02021728
+FUN_02021728: ; 0x02021728
+ push {r3, lr}
+ ldr r1, [r0, #0x0]
+ lsl r2, r1, #0x2
+ ldr r1, _02021738 ; =0x020EE674
+ ldr r1, [r1, r2]
+ blx r1
+ pop {r3, pc}
+ nop
+_02021738: .word 0x020EE674
+
+ thumb_func_start FUN_0202173C
+FUN_0202173C: ; 0x0202173C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x10]
+ bl FUN_02016A18
+ mov r0, #0x0
+ str r0, [r4, #0x10]
+ pop {r4, pc}
+
+ thumb_func_start FUN_0202174C
+FUN_0202174C: ; 0x0202174C
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02021750
+FUN_02021750: ; 0x02021750
+ push {r3, lr}
+ ldr r3, [r0, #0x64]
+ cmp r1, r3
+ bhi _02021764
+ sub r1, r1, #0x1
+ lsl r1, r1, #0x10
+ ldr r3, [r0, #0x4]
+ lsr r1, r1, #0x10
+ blx r3
+ pop {r3, pc}
+_02021764:
+ add r0, r2, #0x0
+ mov r1, #0x0
+ add r0, #0x80
+ strb r1, [r0, #0x0]
+ add r2, #0x81
+ strb r1, [r2, #0x0]
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02021774
+FUN_02021774: ; 0x02021774
+ push {r3-r7, lr}
+ str r1, [sp, #0x0]
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x0]
+ ldr r1, [r7, #0xc]
+ add r5, r0, #0x0
+ ldr r0, [r7, #0x8]
+ add r6, r2, #0x0
+ mul r5, r1
+ ldr r4, [r7, #0x10]
+ cmp r0, #0x3
+ bhi _02021802
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02021798: ; jump table (using 16-bit offset)
+ .short _020217A0 - _02021798 - 2; case 0
+ .short _020217AA - _02021798 - 2; case 1
+ .short _020217C0 - _02021798 - 2; case 2
+ .short _020217D6 - _02021798 - 2; case 3
+_020217A0:
+ add r0, r4, r5
+ add r1, r6, #0x0
+ bl FUN_0201C100
+ b _02021802
+_020217AA:
+ add r0, r4, r5
+ add r1, r6, #0x0
+ bl FUN_0201C100
+ add r0, r4, r5
+ add r1, r6, #0x0
+ add r0, #0x10
+ add r1, #0x40
+ bl FUN_0201C100
+ b _02021802
+_020217C0:
+ add r0, r4, r5
+ add r1, r6, #0x0
+ bl FUN_0201C100
+ add r0, r4, r5
+ add r1, r6, #0x0
+ add r0, #0x10
+ add r1, #0x20
+ bl FUN_0201C100
+ b _02021802
+_020217D6:
+ add r0, r4, r5
+ add r1, r6, #0x0
+ bl FUN_0201C100
+ add r0, r4, r5
+ add r1, r6, #0x0
+ add r0, #0x10
+ add r1, #0x20
+ bl FUN_0201C100
+ add r0, r4, r5
+ add r1, r6, #0x0
+ add r0, #0x20
+ add r1, #0x40
+ bl FUN_0201C100
+ add r0, r4, r5
+ add r1, r6, #0x0
+ add r0, #0x30
+ add r1, #0x60
+ bl FUN_0201C100
+_02021802:
+ ldr r1, [sp, #0x0]
+ ldr r2, [r7, #0x70]
+ add r0, r7, #0x0
+ blx r2
+ add r1, r6, #0x0
+ add r1, #0x80
+ add r7, #0x69
+ strb r0, [r1, #0x0]
+ ldrb r0, [r7, #0x0]
+ add r6, #0x81
+ strb r0, [r6, #0x0]
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202181C
+FUN_0202181C: ; 0x0202181C
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ ldr r6, [r4, #0xc]
+ add r0, #0x14
+ str r0, [sp, #0x0]
+ add r7, r1, #0x0
+ add r5, r2, #0x0
+ add r2, r7, #0x0
+ ldr r3, [r4, #0x5c]
+ mul r2, r6
+ add r2, r3, r2
+ ldr r0, [r4, #0x54]
+ ldr r1, [r4, #0x58]
+ add r3, r6, #0x0
+ bl FUN_02006814
+ ldr r0, [r4, #0x8]
+ cmp r0, #0x3
+ bhi _020218C0
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0202184E: ; jump table (using 16-bit offset)
+ .short _02021856 - _0202184E - 2; case 0
+ .short _02021862 - _0202184E - 2; case 1
+ .short _0202187A - _0202184E - 2; case 2
+ .short _02021892 - _0202184E - 2; case 3
+_02021856:
+ add r0, r4, #0x0
+ add r0, #0x14
+ add r1, r5, #0x0
+ bl FUN_0201C100
+ b _020218C0
+_02021862:
+ add r0, r4, #0x0
+ add r0, #0x14
+ add r1, r5, #0x0
+ bl FUN_0201C100
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r0, #0x24
+ add r1, #0x40
+ bl FUN_0201C100
+ b _020218C0
+_0202187A:
+ add r0, r4, #0x0
+ add r0, #0x14
+ add r1, r5, #0x0
+ bl FUN_0201C100
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r0, #0x24
+ add r1, #0x20
+ bl FUN_0201C100
+ b _020218C0
+_02021892:
+ add r0, r4, #0x0
+ add r0, #0x14
+ add r1, r5, #0x0
+ bl FUN_0201C100
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r0, #0x24
+ add r1, #0x20
+ bl FUN_0201C100
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r0, #0x34
+ add r1, #0x40
+ bl FUN_0201C100
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ add r0, #0x44
+ add r1, #0x60
+ bl FUN_0201C100
+_020218C0:
+ ldr r2, [r4, #0x70]
+ add r0, r4, #0x0
+ add r1, r7, #0x0
+ blx r2
+ add r1, r5, #0x0
+ add r1, #0x80
+ add r4, #0x69
+ strb r0, [r1, #0x0]
+ ldrb r0, [r4, #0x0]
+ add r5, #0x81
+ strb r0, [r5, #0x0]
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020218D8
+FUN_020218D8: ; 0x020218D8
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ ldrh r1, [r4, #0x0]
+ add r5, r0, #0x0
+ ldr r0, _0202191C ; =0x0000FFFF
+ add r7, r2, #0x0
+ mov r6, #0x0
+ cmp r1, r0
+ beq _02021916
+_020218EA:
+ ldr r0, _02021920 ; =0x0000FFFE
+ cmp r1, r0
+ bne _02021900
+ add r0, r4, #0x0
+ bl FUN_0201B8B8
+ add r4, r0, #0x0
+ ldrh r1, [r4, #0x0]
+ ldr r0, _0202191C ; =0x0000FFFF
+ cmp r1, r0
+ beq _02021916
+_02021900:
+ ldr r2, [r5, #0x70]
+ add r0, r5, #0x0
+ sub r1, r1, #0x1
+ blx r2
+ add r4, r4, #0x2
+ add r0, r7, r0
+ add r6, r6, r0
+ ldrh r1, [r4, #0x0]
+ ldr r0, _0202191C ; =0x0000FFFF
+ cmp r1, r0
+ bne _020218EA
+_02021916:
+ sub r0, r6, r7
+ pop {r3-r7, pc}
+ nop
+_0202191C: .word 0x0000FFFF
+_02021920: .word 0x0000FFFE
+
+ thumb_func_start FUN_02021924
+FUN_02021924: ; 0x02021924
+ ldr r0, [r0, #0x74]
+ ldrb r0, [r0, r1]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202192C
+FUN_0202192C: ; 0x0202192C
+ add r0, #0x68
+ ldrb r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02021934
+FUN_02021934: ; 0x02021934
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ ldrh r1, [r5, #0x0]
+ add r7, r0, #0x0
+ mov r4, #0x0
+ ldr r0, _02021994 ; =0x0000FFFF
+ add r6, r2, #0x0
+ str r4, [sp, #0x0]
+ cmp r1, r0
+ beq _02021986
+_02021948:
+ ldr r0, _02021998 ; =0x0000FFFE
+ cmp r1, r0
+ bne _02021958
+ add r0, r5, #0x0
+ bl FUN_0201B8B8
+ add r5, r0, #0x0
+ b _0202197E
+_02021958:
+ mov r0, #0xe
+ lsl r0, r0, #0xc
+ cmp r1, r0
+ bne _02021970
+ ldr r0, [sp, #0x0]
+ sub r1, r4, r6
+ cmp r0, r1
+ bhs _0202196A
+ str r1, [sp, #0x0]
+_0202196A:
+ mov r4, #0x0
+ add r5, r5, #0x2
+ b _0202197E
+_02021970:
+ ldr r2, [r7, #0x70]
+ add r0, r7, #0x0
+ sub r1, r1, #0x1
+ blx r2
+ add r0, r6, r0
+ add r4, r4, r0
+ add r5, r5, #0x2
+_0202197E:
+ ldrh r1, [r5, #0x0]
+ ldr r0, _02021994 ; =0x0000FFFF
+ cmp r1, r0
+ bne _02021948
+_02021986:
+ ldr r0, [sp, #0x0]
+ sub r1, r4, r6
+ cmp r0, r1
+ bhs _02021990
+ str r1, [sp, #0x0]
+_02021990:
+ ldr r0, [sp, #0x0]
+ pop {r3-r7, pc}
+ .balign 4
+_02021994: .word 0x0000FFFF
+_02021998: .word 0x0000FFFE
+
+ thumb_func_start FUN_0202199C
+FUN_0202199C: ; 0x0202199C
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ ldrh r1, [r5, #0x0]
+ add r6, r0, #0x0
+ ldr r0, _020219EC ; =0x0000FFFF
+ mov r4, #0x0
+ cmp r1, r0
+ beq _020219E8
+ sub r7, r0, #0x1
+_020219AE:
+ cmp r1, r7
+ bne _020219D4
+ add r0, r5, #0x0
+ bl FUN_0201B8E0
+ ldr r1, _020219F0 ; =0x00000203
+ cmp r0, r1
+ bne _020219CA
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_0201B914
+ add r4, r0, #0x0
+ sub r4, #0xc
+_020219CA:
+ add r0, r5, #0x0
+ bl FUN_0201B8B8
+ add r5, r0, #0x0
+ b _020219E0
+_020219D4:
+ ldr r2, [r6, #0x70]
+ add r0, r6, #0x0
+ sub r1, r1, #0x1
+ blx r2
+ add r4, r4, r0
+ add r5, r5, #0x2
+_020219E0:
+ ldrh r1, [r5, #0x0]
+ ldr r0, _020219EC ; =0x0000FFFF
+ cmp r1, r0
+ bne _020219AE
+_020219E8:
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_020219EC: .word 0x0000FFFF
+_020219F0: .word 0x00000203
+
+ thumb_func_start FUN_020219F4
+FUN_020219F4: ; 0x020219F4
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ lsl r1, r4, #0x1
+ add r1, #0xa
+ bl FUN_02016998
+ cmp r0, #0x0
+ beq _02021A14
+ ldr r1, _02021A18 ; =0xB6F8D2EC
+ str r1, [r0, #0x4]
+ strh r4, [r0, #0x0]
+ mov r1, #0x0
+ strh r1, [r0, #0x2]
+ ldr r1, _02021A1C ; =0x0000FFFF
+ strh r1, [r0, #0x8]
+_02021A14:
+ pop {r4, pc}
+ nop
+_02021A18: .word 0xB6F8D2EC
+_02021A1C: .word 0x0000FFFF
+
+ thumb_func_start FUN_02021A20
+FUN_02021A20: ; 0x02021A20
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02021A2A
+ bl ErrorHandling
+_02021A2A:
+ ldr r1, [r4, #0x4]
+ ldr r0, _02021A44 ; =0xB6F8D2EC
+ cmp r1, r0
+ beq _02021A36
+ bl ErrorHandling
+_02021A36:
+ ldr r0, _02021A48 ; =0xB6F8D2ED
+ str r0, [r4, #0x4]
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+ nop
+_02021A44: .word 0xB6F8D2EC
+_02021A48: .word 0xB6F8D2ED
+
+ thumb_func_start FUN_02021A4C
+FUN_02021A4C: ; 0x02021A4C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02021A56
+ bl ErrorHandling
+_02021A56:
+ ldr r1, [r4, #0x4]
+ ldr r0, _02021A6C ; =0xB6F8D2EC
+ cmp r1, r0
+ beq _02021A62
+ bl ErrorHandling
+_02021A62:
+ mov r0, #0x0
+ strh r0, [r4, #0x2]
+ ldr r0, _02021A70 ; =0x0000FFFF
+ strh r0, [r4, #0x8]
+ pop {r4, pc}
+ .balign 4
+_02021A6C: .word 0xB6F8D2EC
+_02021A70: .word 0x0000FFFF
+
+ thumb_func_start FUN_02021A74
+FUN_02021A74: ; 0x02021A74
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _02021A82
+ bl ErrorHandling
+_02021A82:
+ ldr r1, [r5, #0x4]
+ ldr r0, _02021AC8 ; =0xB6F8D2EC
+ cmp r1, r0
+ beq _02021A8E
+ bl ErrorHandling
+_02021A8E:
+ cmp r4, #0x0
+ bne _02021A96
+ bl ErrorHandling
+_02021A96:
+ ldr r1, [r4, #0x4]
+ ldr r0, _02021AC8 ; =0xB6F8D2EC
+ cmp r1, r0
+ beq _02021AA2
+ bl ErrorHandling
+_02021AA2:
+ ldrh r2, [r4, #0x2]
+ ldrh r0, [r5, #0x0]
+ cmp r0, r2
+ bls _02021AC0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r2, #0x1
+ add r0, #0x8
+ add r1, #0x8
+ lsl r2, r2, #0x1
+ bl memcpy
+ ldrh r0, [r4, #0x2]
+ strh r0, [r5, #0x2]
+ pop {r3-r5, pc}
+_02021AC0:
+ bl ErrorHandling
+ pop {r3-r5, pc}
+ nop
+_02021AC8: .word 0xB6F8D2EC
+
+ thumb_func_start FUN_02021ACC
+FUN_02021ACC: ; 0x02021ACC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _02021ADA
+ bl ErrorHandling
+_02021ADA:
+ ldr r1, [r5, #0x4]
+ ldr r0, _02021B00 ; =0xB6F8D2EC
+ cmp r1, r0
+ beq _02021AE6
+ bl ErrorHandling
+_02021AE6:
+ ldrh r0, [r5, #0x2]
+ add r1, r4, #0x0
+ add r0, r0, #0x1
+ bl FUN_020219F4
+ add r4, r0, #0x0
+ beq _02021AFA
+ add r1, r5, #0x0
+ bl FUN_02021A74
+_02021AFA:
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ nop
+_02021B00: .word 0xB6F8D2EC
+
+ thumb_func_start FUN_02021B04
+FUN_02021B04: ; 0x02021B04
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x20]
+ add r6, r1, #0x0
+ add r7, r3, #0x0
+ str r2, [sp, #0x0]
+ str r0, [sp, #0x20]
+ cmp r5, #0x0
+ bne _02021B1C
+ bl ErrorHandling
+_02021B1C:
+ ldr r1, [r5, #0x4]
+ ldr r0, _02021C1C ; =0xB6F8D2EC
+ cmp r1, r0
+ beq _02021B28
+ bl ErrorHandling
+_02021B28:
+ cmp r6, #0x0
+ bge _02021B30
+ mov r4, #0x1
+ b _02021B32
+_02021B30:
+ mov r4, #0x0
+_02021B32:
+ ldr r0, [sp, #0x0]
+ ldrh r1, [r5, #0x0]
+ add r0, r0, r4
+ cmp r1, r0
+ bls _02021C14
+ ldr r0, [sp, #0x20]
+ cmp r0, #0x0
+ bne _02021B48
+ ldr r0, _02021C20 ; =0x020EE67C
+ str r0, [sp, #0x4]
+ b _02021B4C
+_02021B48:
+ ldr r0, _02021C24 ; =0x020EE690
+ str r0, [sp, #0x4]
+_02021B4C:
+ add r0, r5, #0x0
+ bl FUN_02021A4C
+ cmp r4, #0x0
+ beq _02021B74
+ mov r0, #0x0
+ mvn r0, r0
+ mul r6, r0
+ ldr r0, [sp, #0x20]
+ cmp r0, #0x0
+ bne _02021B66
+ mov r0, #0xf1
+ b _02021B68
+_02021B66:
+ ldr r0, _02021C28 ; =0x000001BE
+_02021B68:
+ ldrh r2, [r5, #0x2]
+ add r1, r2, #0x1
+ strh r1, [r5, #0x2]
+ lsl r1, r2, #0x1
+ add r1, r5, r1
+ strh r0, [r1, #0x8]
+_02021B74:
+ ldr r0, [sp, #0x0]
+ lsl r1, r0, #0x2
+ ldr r0, _02021C2C ; =0x020EE6A0
+ ldr r4, [r0, r1]
+ cmp r4, #0x0
+ beq _02021C06
+_02021B80:
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl _u32_div_f
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ add r0, r4, #0x0
+ mul r0, r1
+ sub r6, r6, r0
+ cmp r7, #0x2
+ bne _02021BB4
+ cmp r1, #0xa
+ bhs _02021BA2
+ ldr r0, [sp, #0x4]
+ lsl r1, r1, #0x1
+ ldrh r1, [r0, r1]
+ b _02021BA4
+_02021BA2:
+ mov r1, #0xe2
+_02021BA4:
+ ldrh r0, [r5, #0x2]
+ add r2, r0, #0x0
+ add r2, r2, #0x1
+ lsl r0, r0, #0x1
+ strh r2, [r5, #0x2]
+ add r0, r5, r0
+ strh r1, [r0, #0x8]
+ b _02021BFA
+_02021BB4:
+ cmp r1, #0x0
+ bne _02021BBC
+ cmp r4, #0x1
+ bne _02021BDC
+_02021BBC:
+ mov r7, #0x2
+ cmp r1, #0xa
+ bhs _02021BCA
+ ldr r0, [sp, #0x4]
+ lsl r1, r1, #0x1
+ ldrh r1, [r0, r1]
+ b _02021BCC
+_02021BCA:
+ mov r1, #0xe2
+_02021BCC:
+ ldrh r0, [r5, #0x2]
+ add r2, r0, #0x0
+ add r2, r2, #0x1
+ lsl r0, r0, #0x1
+ strh r2, [r5, #0x2]
+ add r0, r5, r0
+ strh r1, [r0, #0x8]
+ b _02021BFA
+_02021BDC:
+ cmp r7, #0x1
+ bne _02021BFA
+ ldr r0, [sp, #0x20]
+ cmp r0, #0x0
+ bne _02021BEA
+ mov r1, #0x1
+ b _02021BEC
+_02021BEA:
+ ldr r1, _02021C30 ; =0x000001E2
+_02021BEC:
+ ldrh r0, [r5, #0x2]
+ add r2, r0, #0x0
+ add r2, r2, #0x1
+ lsl r0, r0, #0x1
+ strh r2, [r5, #0x2]
+ add r0, r5, r0
+ strh r1, [r0, #0x8]
+_02021BFA:
+ add r0, r4, #0x0
+ mov r1, #0xa
+ bl _u32_div_f
+ add r4, r0, #0x0
+ bne _02021B80
+_02021C06:
+ ldrh r0, [r5, #0x2]
+ ldr r1, _02021C34 ; =0x0000FFFF
+ add sp, #0x8
+ lsl r0, r0, #0x1
+ add r0, r5, r0
+ strh r1, [r0, #0x8]
+ pop {r3-r7, pc}
+_02021C14:
+ bl ErrorHandling
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_02021C1C: .word 0xB6F8D2EC
+_02021C20: .word 0x020EE67C
+_02021C24: .word 0x020EE690
+_02021C28: .word 0x000001BE
+_02021C2C: .word 0x020EE6A0
+_02021C30: .word 0x000001E2
+_02021C34: .word 0x0000FFFF
+
+ thumb_func_start FUN_02021C38
+FUN_02021C38: ; 0x02021C38
+ push {r3-r7, lr}
+ sub sp, #0x10
+ str r1, [sp, #0x0]
+ mov r1, #0x0
+ str r1, [sp, #0x8]
+ str r1, [sp, #0xc]
+ add r5, r1, #0x0
+ ldrh r1, [r0, #0x2]
+ mov r7, #0x1
+ cmp r1, #0x12
+ bls _02021C56
+ ldr r0, [sp, #0x8]
+ add sp, #0x10
+ add r1, r0, #0x0
+ pop {r3-r7, pc}
+_02021C56:
+ sub r1, r1, #0x1
+ str r1, [sp, #0x4]
+ bmi _02021CCC
+ lsl r1, r1, #0x1
+ add r4, r0, r1
+_02021C60:
+ ldrh r6, [r4, #0x8]
+ mov r3, #0xa
+ mov r0, #0x0
+ add r1, r6, #0x0
+ sub r1, #0xa2
+ asr r2, r1, #0x1f
+ sub r3, r1, r3
+ mov r12, r2
+ mov r3, r12
+ sbc r3, r0
+ blo _02021C98
+ ldr r0, _02021CDC ; =0x00000121
+ mov r3, #0xa
+ sub r1, r6, r0
+ asr r2, r1, #0x1f
+ mov r0, #0x0
+ sub r3, r1, r3
+ mov r12, r2
+ mov r3, r12
+ sbc r3, r0
+ blo _02021C98
+ ldr r0, [sp, #0x0]
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0xc]
+ add sp, #0x10
+ pop {r3-r7, pc}
+_02021C98:
+ add r0, r1, #0x0
+ add r1, r2, #0x0
+ add r2, r7, #0x0
+ add r3, r5, #0x0
+ bl _ll_mul
+ add r2, r1, #0x0
+ ldr r1, [sp, #0x8]
+ add r0, r1, r0
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0xc]
+ adc r0, r2
+ str r0, [sp, #0xc]
+ add r0, r7, #0x0
+ add r1, r5, #0x0
+ mov r2, #0xa
+ mov r3, #0x0
+ bl _ll_mul
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x4]
+ add r5, r1, #0x0
+ sub r4, r4, #0x2
+ sub r0, r0, #0x1
+ str r0, [sp, #0x4]
+ bpl _02021C60
+_02021CCC:
+ ldr r0, [sp, #0x0]
+ mov r1, #0x1
+ str r1, [r0, #0x0]
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0xc]
+ add sp, #0x10
+ pop {r3-r7, pc}
+ nop
+_02021CDC: .word 0x00000121
+
+ thumb_func_start FUN_02021CE0
+FUN_02021CE0: ; 0x02021CE0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _02021CEE
+ bl ErrorHandling
+_02021CEE:
+ ldr r1, [r5, #0x4]
+ ldr r0, _02021D34 ; =0xB6F8D2EC
+ cmp r1, r0
+ beq _02021CFA
+ bl ErrorHandling
+_02021CFA:
+ cmp r4, #0x0
+ bne _02021D02
+ bl ErrorHandling
+_02021D02:
+ ldr r1, [r4, #0x4]
+ ldr r0, _02021D34 ; =0xB6F8D2EC
+ cmp r1, r0
+ beq _02021D0E
+ bl ErrorHandling
+_02021D0E:
+ ldrh r1, [r5, #0x8]
+ ldrh r0, [r4, #0x8]
+ cmp r1, r0
+ bne _02021D2E
+ ldr r0, _02021D38 ; =0x0000FFFF
+_02021D18:
+ ldrh r1, [r5, #0x8]
+ cmp r1, r0
+ bne _02021D22
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_02021D22:
+ add r5, r5, #0x2
+ add r4, r4, #0x2
+ ldrh r2, [r5, #0x8]
+ ldrh r1, [r4, #0x8]
+ cmp r2, r1
+ beq _02021D18
+_02021D2E:
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ nop
+_02021D34: .word 0xB6F8D2EC
+_02021D38: .word 0x0000FFFF
+
+ thumb_func_start FUN_02021D3C
+FUN_02021D3C: ; 0x02021D3C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02021D46
+ bl ErrorHandling
+_02021D46:
+ ldr r1, [r4, #0x4]
+ ldr r0, _02021D58 ; =0xB6F8D2EC
+ cmp r1, r0
+ beq _02021D52
+ bl ErrorHandling
+_02021D52:
+ ldrh r0, [r4, #0x2]
+ pop {r4, pc}
+ nop
+_02021D58: .word 0xB6F8D2EC
+
+ thumb_func_start FUN_02021D5C
+FUN_02021D5C: ; 0x02021D5C
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bne _02021D66
+ bl ErrorHandling
+_02021D66:
+ ldr r1, [r4, #0x4]
+ ldr r0, _02021D98 ; =0xB6F8D2EC
+ cmp r1, r0
+ beq _02021D72
+ bl ErrorHandling
+_02021D72:
+ ldrh r1, [r4, #0x2]
+ mov r3, #0x0
+ mov r0, #0x1
+ cmp r1, #0x0
+ ble _02021D94
+ mov r1, #0xe
+ add r5, r4, #0x0
+ lsl r1, r1, #0xc
+_02021D82:
+ ldrh r2, [r5, #0x8]
+ cmp r2, r1
+ bne _02021D8A
+ add r0, r0, #0x1
+_02021D8A:
+ ldrh r2, [r4, #0x2]
+ add r3, r3, #0x1
+ add r5, r5, #0x2
+ cmp r3, r2
+ blt _02021D82
+_02021D94:
+ pop {r3-r5, pc}
+ nop
+_02021D98: .word 0xB6F8D2EC
+
+ thumb_func_start FUN_02021D9C
+FUN_02021D9C: ; 0x02021D9C
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ add r7, r0, #0x0
+ add r6, r2, #0x0
+ cmp r5, #0x0
+ bne _02021DAC
+ bl ErrorHandling
+_02021DAC:
+ ldr r1, [r5, #0x4]
+ ldr r0, _02021E24 ; =0xB6F8D2EC
+ cmp r1, r0
+ beq _02021DB8
+ bl ErrorHandling
+_02021DB8:
+ cmp r7, #0x0
+ bne _02021DC0
+ bl ErrorHandling
+_02021DC0:
+ ldr r1, [r7, #0x4]
+ ldr r0, _02021E24 ; =0xB6F8D2EC
+ cmp r1, r0
+ beq _02021DCC
+ bl ErrorHandling
+_02021DCC:
+ mov r4, #0x0
+ cmp r6, #0x0
+ beq _02021DF6
+ ldrh r0, [r5, #0x2]
+ cmp r0, #0x0
+ ble _02021DF6
+ mov r1, #0xe
+ add r0, r5, #0x0
+ lsl r1, r1, #0xc
+_02021DDE:
+ ldrh r2, [r0, #0x8]
+ cmp r2, r1
+ bne _02021DEC
+ sub r6, r6, #0x1
+ bne _02021DEC
+ add r4, r4, #0x1
+ b _02021DF6
+_02021DEC:
+ ldrh r2, [r5, #0x2]
+ add r4, r4, #0x1
+ add r0, r0, #0x2
+ cmp r4, r2
+ blt _02021DDE
+_02021DF6:
+ add r0, r7, #0x0
+ bl FUN_02021A4C
+ ldrh r0, [r5, #0x2]
+ cmp r4, r0
+ bge _02021E20
+ lsl r0, r4, #0x1
+ add r6, r5, r0
+_02021E06:
+ ldrh r1, [r6, #0x8]
+ mov r0, #0xe
+ lsl r0, r0, #0xc
+ cmp r1, r0
+ beq _02021E20
+ add r0, r7, #0x0
+ bl FUN_02021FB0
+ ldrh r0, [r5, #0x2]
+ add r4, r4, #0x1
+ add r6, r6, #0x2
+ cmp r4, r0
+ blt _02021E06
+_02021E20:
+ pop {r3-r7, pc}
+ nop
+_02021E24: .word 0xB6F8D2EC
+
+ thumb_func_start FUN_02021E28
+FUN_02021E28: ; 0x02021E28
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _02021E36
+ bl ErrorHandling
+_02021E36:
+ ldr r1, [r5, #0x4]
+ ldr r0, _02021E84 ; =0xB6F8D2EC
+ cmp r1, r0
+ beq _02021E42
+ bl ErrorHandling
+_02021E42:
+ mov r0, #0x0
+ strh r0, [r5, #0x2]
+ ldrh r1, [r4, #0x0]
+ ldr r0, _02021E88 ; =0x0000FFFF
+ cmp r1, r0
+ beq _02021E76
+ add r1, r0, #0x0
+_02021E50:
+ ldrh r2, [r5, #0x0]
+ ldrh r0, [r5, #0x2]
+ sub r2, r2, #0x1
+ cmp r0, r2
+ blt _02021E60
+ bl ErrorHandling
+ b _02021E76
+_02021E60:
+ add r2, r0, #0x0
+ add r2, r2, #0x1
+ strh r2, [r5, #0x2]
+ ldrh r2, [r4, #0x0]
+ lsl r0, r0, #0x1
+ add r0, r5, r0
+ add r4, r4, #0x2
+ strh r2, [r0, #0x8]
+ ldrh r0, [r4, #0x0]
+ cmp r0, r1
+ bne _02021E50
+_02021E76:
+ ldrh r0, [r5, #0x2]
+ ldr r1, _02021E88 ; =0x0000FFFF
+ lsl r0, r0, #0x1
+ add r0, r5, r0
+ strh r1, [r0, #0x8]
+ pop {r3-r5, pc}
+ nop
+_02021E84: .word 0xB6F8D2EC
+_02021E88: .word 0x0000FFFF
+
+ thumb_func_start FUN_02021E8C
+FUN_02021E8C: ; 0x02021E8C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r7, r1, #0x0
+ add r4, r2, #0x0
+ cmp r5, #0x0
+ bne _02021E9C
+ bl ErrorHandling
+_02021E9C:
+ ldr r1, [r5, #0x4]
+ ldr r0, _02021EE8 ; =0xB6F8D2EC
+ cmp r1, r0
+ beq _02021EA8
+ bl ErrorHandling
+_02021EA8:
+ ldrh r0, [r5, #0x0]
+ cmp r4, r0
+ bhi _02021EE2
+ lsl r6, r4, #0x1
+ add r0, r5, #0x0
+ add r0, #0x8
+ add r1, r7, #0x0
+ add r2, r6, #0x0
+ bl memcpy
+ mov r2, #0x0
+ cmp r4, #0x0
+ bls _02021ED4
+ ldr r0, _02021EEC ; =0x0000FFFF
+ add r3, r5, #0x0
+_02021EC6:
+ ldrh r1, [r3, #0x8]
+ cmp r1, r0
+ beq _02021ED4
+ add r2, r2, #0x1
+ add r3, r3, #0x2
+ cmp r2, r4
+ blo _02021EC6
+_02021ED4:
+ strh r2, [r5, #0x2]
+ cmp r2, r4
+ bne _02021EE6
+ ldr r1, _02021EEC ; =0x0000FFFF
+ add r0, r5, r6
+ strh r1, [r0, #0x6]
+ pop {r3-r7, pc}
+_02021EE2:
+ bl ErrorHandling
+_02021EE6:
+ pop {r3-r7, pc}
+ .balign 4
+_02021EE8: .word 0xB6F8D2EC
+_02021EEC: .word 0x0000FFFF
+
+ thumb_func_start FUN_02021EF0
+FUN_02021EF0: ; 0x02021EF0
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r4, r2, #0x0
+ cmp r5, #0x0
+ bne _02021F00
+ bl ErrorHandling
+_02021F00:
+ ldr r1, [r5, #0x4]
+ ldr r0, _02021F28 ; =0xB6F8D2EC
+ cmp r1, r0
+ beq _02021F0C
+ bl ErrorHandling
+_02021F0C:
+ ldrh r0, [r5, #0x2]
+ add r2, r0, #0x1
+ cmp r2, r4
+ bhi _02021F22
+ add r5, #0x8
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ lsl r2, r2, #0x1
+ bl memcpy
+ pop {r4-r6, pc}
+_02021F22:
+ bl ErrorHandling
+ pop {r4-r6, pc}
+ .balign 4
+_02021F28: .word 0xB6F8D2EC
+
+ thumb_func_start FUN_02021F2C
+FUN_02021F2C: ; 0x02021F2C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02021F36
+ bl ErrorHandling
+_02021F36:
+ ldr r1, [r4, #0x4]
+ ldr r0, _02021F48 ; =0xB6F8D2EC
+ cmp r1, r0
+ beq _02021F42
+ bl ErrorHandling
+_02021F42:
+ add r4, #0x8
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+_02021F48: .word 0xB6F8D2EC
+
+ thumb_func_start FUN_02021F4C
+FUN_02021F4C: ; 0x02021F4C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _02021F5A
+ bl ErrorHandling
+_02021F5A:
+ ldr r1, [r5, #0x4]
+ ldr r0, _02021FAC ; =0xB6F8D2EC
+ cmp r1, r0
+ beq _02021F66
+ bl ErrorHandling
+_02021F66:
+ cmp r4, #0x0
+ bne _02021F6E
+ bl ErrorHandling
+_02021F6E:
+ ldr r1, [r4, #0x4]
+ ldr r0, _02021FAC ; =0xB6F8D2EC
+ cmp r1, r0
+ beq _02021F7A
+ bl ErrorHandling
+_02021F7A:
+ ldrh r2, [r4, #0x2]
+ ldrh r0, [r5, #0x2]
+ add r1, r0, r2
+ add r3, r1, #0x1
+ ldrh r1, [r5, #0x0]
+ cmp r3, r1
+ bgt _02021FA6
+ add r1, r5, #0x0
+ add r1, #0x8
+ lsl r0, r0, #0x1
+ add r0, r1, r0
+ add r1, r4, #0x0
+ add r2, r2, #0x1
+ add r1, #0x8
+ lsl r2, r2, #0x1
+ bl memcpy
+ ldrh r1, [r5, #0x2]
+ ldrh r0, [r4, #0x2]
+ add r0, r1, r0
+ strh r0, [r5, #0x2]
+ pop {r3-r5, pc}
+_02021FA6:
+ bl ErrorHandling
+ pop {r3-r5, pc}
+ .balign 4
+_02021FAC: .word 0xB6F8D2EC
+
+ thumb_func_start FUN_02021FB0
+FUN_02021FB0: ; 0x02021FB0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _02021FBE
+ bl ErrorHandling
+_02021FBE:
+ ldr r1, [r5, #0x4]
+ ldr r0, _02021FF0 ; =0xB6F8D2EC
+ cmp r1, r0
+ beq _02021FCA
+ bl ErrorHandling
+_02021FCA:
+ ldrh r2, [r5, #0x2]
+ ldrh r0, [r5, #0x0]
+ add r1, r2, #0x1
+ cmp r1, r0
+ bge _02021FE8
+ lsl r0, r2, #0x1
+ strh r1, [r5, #0x2]
+ add r0, r5, r0
+ strh r4, [r0, #0x8]
+ ldrh r0, [r5, #0x2]
+ ldr r1, _02021FF4 ; =0x0000FFFF
+ lsl r0, r0, #0x1
+ add r0, r5, r0
+ strh r1, [r0, #0x8]
+ pop {r3-r5, pc}
+_02021FE8:
+ bl ErrorHandling
+ pop {r3-r5, pc}
+ nop
+_02021FF0: .word 0xB6F8D2EC
+_02021FF4: .word 0x0000FFFF
+
+ thumb_func_start FUN_02021FF8
+FUN_02021FF8: ; 0x02021FF8
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02022002
+ bl ErrorHandling
+_02022002:
+ ldr r1, [r4, #0x4]
+ ldr r0, _02022028 ; =0xB6F8D2EC
+ cmp r1, r0
+ beq _0202200E
+ bl ErrorHandling
+_0202200E:
+ ldrh r0, [r4, #0x2]
+ cmp r0, #0x0
+ beq _02022026
+ ldrh r1, [r4, #0x8]
+ ldr r0, _0202202C ; =0x00000145
+ cmp r1, r0
+ blo _02022026
+ add r0, #0x19
+ cmp r1, r0
+ bhi _02022026
+ sub r1, #0x1a
+ strh r1, [r4, #0x8]
+_02022026:
+ pop {r4, pc}
+ .balign 4
+_02022028: .word 0xB6F8D2EC
+_0202202C: .word 0x00000145
+
+ thumb_func_start FUN_02022030
+FUN_02022030: ; 0x02022030
+ ldrh r1, [r0, #0x2]
+ cmp r1, #0x0
+ beq _02022044
+ ldrh r1, [r0, #0x8]
+ mov r0, #0xf1
+ lsl r0, r0, #0x8
+ cmp r1, r0
+ bne _02022044
+ mov r0, #0x1
+ bx lr
+_02022044:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02022048
+FUN_02022048: ; 0x02022048
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ bl FUN_02022030
+ cmp r0, #0x0
+ beq _020220B2
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x0]
+ ldrh r0, [r0, #0x2]
+ add r1, #0x8
+ ldr r7, _020220BC ; =0x000001FF
+ lsl r0, r0, #0x1
+ add r3, r1, r0
+ mov r0, #0x0
+ add r4, #0xa
+ add r1, r0, #0x0
+_0202206C:
+ ldrh r2, [r4, #0x0]
+ asr r2, r0
+ and r2, r7
+ lsl r2, r2, #0x10
+ add r0, #0x9
+ lsr r2, r2, #0x10
+ cmp r0, #0xf
+ blt _02022094
+ add r4, r4, #0x2
+ sub r0, #0xf
+ beq _02022094
+ ldrh r6, [r4, #0x0]
+ mov r5, #0x9
+ sub r5, r5, r0
+ lsl r6, r5
+ ldr r5, _020220BC ; =0x000001FF
+ and r5, r6
+ orr r2, r5
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+_02022094:
+ ldr r5, _020220BC ; =0x000001FF
+ cmp r2, r5
+ beq _020220A2
+ strh r2, [r3, #0x0]
+ add r3, r3, #0x2
+ add r1, r1, #0x1
+ b _0202206C
+_020220A2:
+ ldr r0, _020220C0 ; =0x0000FFFF
+ strh r0, [r3, #0x0]
+ ldr r0, [sp, #0x0]
+ ldrh r0, [r0, #0x2]
+ add r1, r0, r1
+ ldr r0, [sp, #0x0]
+ strh r1, [r0, #0x2]
+ pop {r3-r7, pc}
+_020220B2:
+ ldr r0, [sp, #0x0]
+ add r1, r4, #0x0
+ bl FUN_02021F4C
+ pop {r3-r7, pc}
+ .balign 4
+_020220BC: .word 0x000001FF
+_020220C0: .word 0x0000FFFF
+
+ thumb_func_start FUN_020220C4
+FUN_020220C4: ; 0x020220C4
+ push {r3-r7, lr}
+ add r7, r1, #0x0
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ str r3, [sp, #0x0]
+ cmp r7, #0x0
+ bne _020220D6
+ bl ErrorHandling
+_020220D6:
+ ldr r0, [sp, #0x18]
+ mov r1, #0x14
+ bl FUN_02016998
+ add r4, r0, #0x0
+ beq _0202211C
+ str r5, [r4, #0x0]
+ str r7, [r4, #0x4]
+ ldr r0, [sp, #0x0]
+ str r6, [r4, #0x8]
+ str r0, [r4, #0xc]
+ ldr r0, [sp, #0x18]
+ lsl r1, r7, #0x2
+ bl FUN_02016998
+ str r0, [r4, #0x10]
+ cmp r0, #0x0
+ beq _02022114
+ mov r6, #0x0
+ cmp r7, #0x0
+ bls _0202211C
+ add r5, r6, #0x0
+_02022102:
+ ldr r0, [r4, #0x10]
+ add r0, r0, r5
+ bl FUN_02022120
+ add r6, r6, #0x1
+ add r5, r5, #0x4
+ cmp r6, r7
+ blo _02022102
+ b _0202211C
+_02022114:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r4, #0x0
+_0202211C:
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02022120
+FUN_02022120: ; 0x02022120
+ mov r1, #0x0
+ strb r1, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ strh r1, [r0, #0x2]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202212C
+FUN_0202212C: ; 0x0202212C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02022136
+ bl ErrorHandling
+_02022136:
+ ldr r0, [r4, #0x10]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+
+ thumb_func_start FUN_02022144
+FUN_02022144: ; 0x02022144
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ bl FUN_02020A98
+ str r0, [sp, #0x0]
+ cmp r0, #0x0
+ beq _02022190
+ bl FUN_02020AA4
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0x4]
+ mov r6, #0x0
+ cmp r0, #0x0
+ bls _020221AE
+ add r4, r6, #0x0
+_02022164:
+ ldr r0, [r5, #0x10]
+ add r0, r0, r4
+ ldrb r0, [r0, #0x1]
+ cmp r0, #0x0
+ ldr r0, [r5, #0x0]
+ beq _02022178
+ add r0, r0, r4
+ bl FUN_02020A40
+ b _0202217E
+_02022178:
+ add r0, r0, r4
+ bl FUN_02020A6C
+_0202217E:
+ ldr r1, [r5, #0x10]
+ add r6, r6, #0x1
+ add r1, r1, r4
+ strb r0, [r1, #0x1]
+ ldr r0, [r5, #0x4]
+ add r4, r4, #0x4
+ cmp r6, r0
+ blo _02022164
+ b _020221AE
+_02022190:
+ ldr r0, [r5, #0x4]
+ mov r3, #0x0
+ str r3, [sp, #0x4]
+ cmp r0, #0x0
+ bls _020221AE
+ add r2, r3, #0x0
+ add r1, r3, #0x0
+_0202219E:
+ ldr r0, [r5, #0x10]
+ add r3, r3, #0x1
+ add r0, r0, r2
+ strb r1, [r0, #0x1]
+ ldr r0, [r5, #0x4]
+ add r2, r2, #0x4
+ cmp r3, r0
+ blo _0202219E
+_020221AE:
+ mov r4, #0x0
+ cmp r0, #0x0
+ bls _020221E4
+ add r7, r4, #0x0
+_020221B6:
+ ldr r3, [r5, #0x10]
+ ldr r1, [sp, #0x0]
+ add r0, r3, r7
+ ldrb r3, [r3, r7]
+ ldr r2, [sp, #0x4]
+ lsl r6, r3, #0x2
+ ldr r3, _020221E8 ; =0x020EE6CC
+ ldr r3, [r3, r6]
+ blx r3
+ add r1, r0, #0x0
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r1, r0
+ beq _020221DA
+ ldr r2, [r5, #0xc]
+ ldr r3, [r5, #0x8]
+ add r0, r4, #0x0
+ blx r3
+_020221DA:
+ ldr r0, [r5, #0x4]
+ add r4, r4, #0x1
+ add r7, r7, #0x4
+ cmp r4, r0
+ blo _020221B6
+_020221E4:
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_020221E8: .word 0x020EE6CC
+
+ thumb_func_start FUN_020221EC
+FUN_020221EC: ; 0x020221EC
+ push {r3, lr}
+ ldrb r1, [r0, #0x1]
+ cmp r1, #0x0
+ beq _02022202
+ cmp r2, #0x0
+ beq _02022202
+ mov r1, #0x1
+ bl FUN_0202223C
+ mov r0, #0x0
+ pop {r3, pc}
+_02022202:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3, pc}
+
+ thumb_func_start FUN_02022208
+FUN_02022208: ; 0x02022208
+ push {r3, lr}
+ ldrb r2, [r0, #0x1]
+ cmp r2, #0x0
+ beq _02022220
+ ldrh r2, [r0, #0x2]
+ ldr r1, _02022238 ; =0x0000FFFF
+ cmp r2, r1
+ bhs _0202221C
+ add r1, r2, #0x1
+ strh r1, [r0, #0x2]
+_0202221C:
+ mov r0, #0x2
+ pop {r3, pc}
+_02022220:
+ cmp r1, #0x0
+ beq _0202222E
+ mov r1, #0x0
+ bl FUN_0202223C
+ mov r0, #0x3
+ pop {r3, pc}
+_0202222E:
+ mov r1, #0x0
+ bl FUN_0202223C
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+_02022238: .word 0x0000FFFF
+
+ thumb_func_start FUN_0202223C
+FUN_0202223C: ; 0x0202223C
+ strb r1, [r0, #0x0]
+ mov r1, #0x0
+ strh r1, [r0, #0x2]
+ bx lr
+
+ thumb_func_start FUN_02022244
+FUN_02022244: ; 0x02022244
+ push {r3-r4}
+ ldr r3, [r0, #0xc]
+ mov r2, #0x0
+ sub r3, r3, #0x1
+ beq _02022262
+ ldr r4, [r0, #0x0]
+_02022250:
+ ldrh r3, [r4, #0x2]
+ cmp r3, r1
+ bhi _02022262
+ ldr r3, [r0, #0xc]
+ add r2, r2, #0x1
+ sub r3, r3, #0x1
+ add r4, r4, #0x2
+ cmp r2, r3
+ blo _02022250
+_02022262:
+ ldr r1, [r0, #0x4]
+ ldrb r3, [r1, r2]
+ add r1, sp, #0x0
+ strb r3, [r1, #0x0]
+ ldr r0, [r0, #0x8]
+ ldrb r2, [r0, r2]
+ strb r2, [r1, #0x1]
+ ldrb r0, [r1, #0x0]
+ lsl r1, r2, #0x8
+ orr r0, r1
+ pop {r3-r4}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202227C
+FUN_0202227C: ; 0x0202227C
+ ldr r2, [r0, #0x0]
+ str r2, [r1, #0xc]
+ add r2, r0, #0x4
+ str r2, [r1, #0x0]
+ ldr r0, [r1, #0xc]
+ lsl r0, r0, #0x1
+ add r2, r2, r0
+ str r2, [r1, #0x4]
+ ldr r0, [r1, #0xc]
+ add r0, r2, r0
+ str r0, [r1, #0x8]
+ bx lr
+
+ thumb_func_start FUN_02022294
+FUN_02022294: ; 0x02022294
+ ldr r0, _020222A4 ; =0x021C59BC
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ str r1, [r0, #0x4]
+ str r1, [r0, #0x8]
+ ldr r0, _020222A8 ; =0x021C59BC
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+_020222A4: .word 0x021C59BC
+_020222A8: .word 0x021C59BC
+
+ thumb_func_start FUN_020222AC
+FUN_020222AC: ; 0x020222AC
+ ldr r3, _020222B0 ; =G3X_ResetMtxStack
+ bx r3
+ .balign 4
+_020222B0: .word G3X_ResetMtxStack
+
+ thumb_func_start FUN_020222B4
+FUN_020222B4: ; 0x020222B4
+ ldr r2, _020222C0 ; =0x021C59BC
+ str r0, [r2, #0x4]
+ str r1, [r2, #0x8]
+ mov r0, #0x1
+ str r0, [r2, #0x0]
+ bx lr
+ .balign 4
+_020222C0: .word 0x021C59BC
+
+ thumb_func_start FUN_020222C4
+FUN_020222C4: ; 0x020222C4
+ ldr r0, _020222E0 ; =0x021C59BC
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _020222DC
+ ldr r1, [r0, #0x8]
+ ldr r2, [r0, #0x4]
+ lsl r1, r1, #0x1
+ orr r2, r1
+ ldr r1, _020222E4 ; =0x04000540
+ str r2, [r1, #0x0]
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+_020222DC:
+ bx lr
+ nop
+_020222E0: .word 0x021C59BC
+_020222E4: .word 0x04000540
+
+ thumb_func_start FUN_020222E8
+FUN_020222E8: ; 0x020222E8
+ mov r0, #0x5
+ lsl r0, r0, #0x18
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020222F0
+FUN_020222F0: ; 0x020222F0
+ mov r0, #0x2
+ lsl r0, r0, #0x8
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020222F8
+FUN_020222F8: ; 0x020222F8
+ ldr r0, _020222FC ; =0x05000400
+ bx lr
+ .balign 4
+_020222FC: .word 0x05000400
+
+ thumb_func_start FUN_02022300
+FUN_02022300: ; 0x02022300
+ mov r0, #0x2
+ lsl r0, r0, #0x8
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02022308
+FUN_02022308: ; 0x02022308
+ ldr r0, _0202230C ; =0x05000200
+ bx lr
+ .balign 4
+_0202230C: .word 0x05000200
+
+ thumb_func_start FUN_02022310
+FUN_02022310: ; 0x02022310
+ ldr r0, _02022314 ; =0x05000600
+ bx lr
+ .balign 4
+_02022314: .word 0x05000600
+
+ thumb_func_start FUN_02022318
+FUN_02022318: ; 0x02022318
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r7, r1, #0x0
+ mov r1, #0xc
+ add r6, r0, #0x0
+ add r5, r2, #0x0
+ str r3, [sp, #0x4]
+ bl FUN_02016998
+ add r4, r0, #0x0
+ str r6, [r4, #0x0]
+ bl FUN_020BB7F4
+ bl G3X_InitMtxStack
+ mov r1, #0x2
+ ldr r0, _020223B8 ; =0x04000540
+ cmp r7, #0x0
+ str r1, [r0, #0x0]
+ bne _02022364
+ lsl r0, r5, #0x7
+ bl FUN_020AFA28
+ add r6, r0, #0x0
+ ldr r0, [r4, #0x0]
+ add r1, r6, #0x0
+ bl FUN_02016998
+ str r0, [r4, #0x8]
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ ldr r2, [r4, #0x8]
+ lsl r0, r5, #0x11
+ mov r1, #0x0
+ add r3, r6, #0x0
+ bl FUN_020AF9C4
+ b _0202236E
+_02022364:
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #0x1
+ bl FUN_020AEB70
+_0202236E:
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ bne _02022398
+ ldr r0, [sp, #0x20]
+ lsl r0, r0, #0x8
+ bl FUN_020AFBFC
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x0]
+ add r1, r5, #0x0
+ bl FUN_02016998
+ str r0, [r4, #0x4]
+ ldr r0, [sp, #0x20]
+ ldr r1, [r4, #0x4]
+ lsl r0, r0, #0xd
+ add r2, r5, #0x0
+ mov r3, #0x1
+ bl FUN_020AFBA8
+ b _020223A4
+_02022398:
+ ldr r0, [sp, #0x20]
+ mov r1, #0x1
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x10
+ bl FUN_020AEB70
+_020223A4:
+ ldr r0, [sp, #0x24]
+ cmp r0, #0x0
+ beq _020223AE
+ blx r0
+ b _020223B2
+_020223AE:
+ bl FUN_020223D4
+_020223B2:
+ add r0, r4, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_020223B8: .word 0x04000540
+
+ thumb_func_start FUN_020223BC
+FUN_020223BC: ; 0x020223BC
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x4]
+ bl FUN_02016A18
+ ldr r0, [r4, #0x8]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+
+ thumb_func_start FUN_020223D4
+FUN_020223D4: ; 0x020223D4
+ push {r3, lr}
+ mov r0, #0x1
+ add r1, r0, #0x0
+ bl FUN_0201E6E4
+ ldr r0, _02022438 ; =0x04000008
+ mov r1, #0x3
+ ldrh r2, [r0, #0x0]
+ bic r2, r1
+ strh r2, [r0, #0x0]
+ add r0, #0x58
+ ldrh r2, [r0, #0x0]
+ ldr r1, _0202243C ; =0xFFFFCFFD
+ and r1, r2
+ strh r1, [r0, #0x0]
+ ldrh r1, [r0, #0x0]
+ ldr r2, _02022440 ; =0x0000CFEF
+ and r1, r2
+ strh r1, [r0, #0x0]
+ add r1, r2, #0x0
+ ldrh r3, [r0, #0x0]
+ add r1, #0xc
+ and r1, r3
+ strh r1, [r0, #0x0]
+ add r1, r2, #0x0
+ ldrh r3, [r0, #0x0]
+ add r1, #0x8
+ sub r2, #0x10
+ and r1, r3
+ strh r1, [r0, #0x0]
+ ldrh r1, [r0, #0x0]
+ and r1, r2
+ strh r1, [r0, #0x0]
+ mov r0, #0x0
+ add r1, r0, #0x0
+ add r2, r0, #0x0
+ add r3, r0, #0x0
+ bl G3X_SetFog
+ mov r0, #0x0
+ ldr r2, _02022444 ; =0x00007FFF
+ add r1, r0, #0x0
+ mov r3, #0x3f
+ str r0, [sp, #0x0]
+ bl G3X_SetClearColor
+ ldr r1, _02022448 ; =0xBFFF0000
+ ldr r0, _0202244C ; =0x04000580
+ str r1, [r0, #0x0]
+ pop {r3, pc}
+ .balign 4
+_02022438: .word 0x04000008
+_0202243C: .word 0xFFFFCFFD
+_02022440: .word 0x0000CFEF
+_02022444: .word 0x00007FFF
+_02022448: .word 0xBFFF0000
+_0202244C: .word 0x04000580
+
+ thumb_func_start FUN_02022450
+FUN_02022450: ; 0x02022450
+ push {r3, lr}
+ bl FS_IsAvailable
+ cmp r0, #0x0
+ bne _02022460
+ bl OS_Terminate
+ pop {r3, pc}
+_02022460:
+ ldr r0, _020224BC ; =0x027FF00C
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0202248A
+ bl CARD_Init
+ mov r2, #0x16
+ ldr r0, _020224C0 ; =0x027FFE00
+ ldr r1, _020224C4 ; =0x027FF000
+ lsl r2, r2, #0x4
+ bl MI_CpuCopy8
+ mov r2, #0x16
+ ldr r0, _020224C0 ; =0x027FFE00
+ ldr r1, _020224C8 ; =0x027FFA80
+ lsl r2, r2, #0x4
+ bl MI_CpuCopy8
+ ldr r1, _020224CC ; =0x4A414441
+ ldr r0, _020224BC ; =0x027FF00C
+ str r1, [r0, #0x0]
+_0202248A:
+ ldr r0, _020224D0 ; =0x020EE6D4
+ mov r1, #0x3
+ bl FS_FindArchive
+ ldr r1, _020224C4 ; =0x027FF000
+ ldr r2, [r1, #0x48]
+ str r2, [r0, #0x2c]
+ ldr r2, [r1, #0x4c]
+ str r2, [r0, #0x30]
+ ldr r2, [r1, #0x40]
+ str r2, [r0, #0x34]
+ ldr r2, [r1, #0x44]
+ str r2, [r0, #0x38]
+ ldr r2, [r1, #0xc]
+ ldr r0, _020224CC ; =0x4A414441
+ cmp r2, r0
+ bne _020224B4
+ ldrh r1, [r1, #0x10]
+ ldr r0, _020224D4 ; =0x00003130
+ cmp r1, r0
+ beq _020224B8
+_020224B4:
+ bl OS_Terminate
+_020224B8:
+ pop {r3, pc}
+ nop
+_020224BC: .word 0x027FF00C
+_020224C0: .word 0x027FFE00
+_020224C4: .word 0x027FF000
+_020224C8: .word 0x027FFA80
+_020224CC: .word 0x4A414441
+_020224D0: .word 0x020EE6D4
+_020224D4: .word 0x00003130
+
+ thumb_func_start FUN_020224D8
+FUN_020224D8: ; 0x020224D8
+ push {r4, lr}
+ sub sp, #0x48
+ add r4, r0, #0x0
+ add r0, sp, #0x0
+ bl FS_InitFile
+ add r0, sp, #0x0
+ add r1, r4, #0x0
+ bl FS_OpenFile
+ cmp r0, #0x0
+ beq _020224FC
+ ldr r1, [sp, #0x24]
+ ldr r0, _02022500 ; =0x027FFC2C
+ str r1, [r0, #0x0]
+ mov r0, #0x0
+ bl OS_ResetSystem
+_020224FC:
+ add sp, #0x48
+ pop {r4, pc}
+ .balign 4
+_02022500: .word 0x027FFC2C
+
+ thumb_func_start FUN_02022504
+FUN_02022504: ; 0x02022504
+ ldr r3, _0202250C ; =FUN_02022610
+ mov r1, #0x1b
+ bx r3
+ nop
+_0202250C: .word FUN_02022610
+
+ thumb_func_start FUN_02022510
+FUN_02022510: ; 0x02022510
+ ldr r3, _02022518 ; =FUN_02022610
+ mov r1, #0x23
+ bx r3
+ nop
+_02022518: .word FUN_02022610
+
+ thumb_func_start FUN_0202251C
+FUN_0202251C: ; 0x0202251C
+ ldr r3, _02022524 ; =FUN_02022610
+ mov r1, #0x1f
+ bx r3
+ nop
+_02022524: .word FUN_02022610
+
+ thumb_func_start FUN_02022528
+FUN_02022528: ; 0x02022528
+ ldr r3, _02022530 ; =FUN_02022610
+ mov r1, #0x20
+ bx r3
+ nop
+_02022530: .word FUN_02022610
+
+ thumb_func_start FUN_02022534
+FUN_02022534: ; 0x02022534
+ push {r3, lr}
+ add r3, r2, #0x0
+ mov r2, #0x0
+ bl FUN_02023408
+ pop {r3, pc}
+
+ thumb_func_start FUN_02022540
+FUN_02022540: ; 0x02022540
+ ldr r3, _02022548 ; =FUN_020232BC
+ add r2, r1, #0x0
+ mov r1, #0x0
+ bx r3
+ .balign 4
+_02022548: .word FUN_020232BC
+
+ thumb_func_start FUN_0202254C
+FUN_0202254C: ; 0x0202254C
+ push {r4, lr}
+ ldr r1, _020225E0 ; =0x000204A8
+ mov r0, #0x1
+ bl FUN_02016998
+ add r4, r0, #0x0
+ ldr r2, _020225E0 ; =0x000204A8
+ mov r0, #0x0
+ add r1, r4, #0x0
+ bl MIi_CpuClearFast
+ ldr r0, _020225E4 ; =0x021C59C8
+ str r4, [r0, #0x0]
+ bl FUN_02023570
+ str r0, [r4, #0x0]
+ mov r0, #0x0
+ str r0, [r4, #0x4]
+ mov r0, #0x1
+ str r0, [r4, #0x8]
+ str r0, [r4, #0xc]
+ add r0, r4, #0x0
+ ldr r1, _020225E8 ; =0x00001021
+ add r0, #0x14
+ bl MATHi_CRC16InitTable
+ ldr r0, _020225EC ; =0x00020224
+ add r0, r4, r0
+ bl FUN_020230E4
+ ldr r0, _020225F0 ; =0x00020464
+ ldr r1, _020225EC ; =0x00020224
+ add r0, r4, r0
+ add r1, r4, r1
+ bl FUN_02023160
+ ldr r1, _020225F4 ; =0x00020218
+ mov r0, #0x0
+ add r1, r4, r1
+ mov r2, #0x8
+ bl MIi_CpuClearFast
+ add r0, r4, #0x0
+ bl FUN_02022AD8
+ str r0, [r4, #0x10]
+ cmp r0, #0x3
+ bhi _020225DA
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020225B8: ; jump table (using 16-bit offset)
+ .short _020225D4 - _020225B8 - 2; case 0
+ .short _020225C0 - _020225B8 - 2; case 1
+ .short _020225C4 - _020225B8 - 2; case 2
+ .short _020225D4 - _020225B8 - 2; case 3
+_020225C0:
+ mov r0, #0x0
+ str r0, [r4, #0xc]
+_020225C4:
+ add r0, r4, #0x0
+ bl FUN_02022D08
+ mov r0, #0x1
+ str r0, [r4, #0x4]
+ mov r0, #0x0
+ str r0, [r4, #0x8]
+ b _020225DA
+_020225D4:
+ add r0, r4, #0x0
+ bl FUN_020227DC
+_020225DA:
+ add r0, r4, #0x0
+ pop {r4, pc}
+ nop
+_020225E0: .word 0x000204A8
+_020225E4: .word 0x021C59C8
+_020225E8: .word 0x00001021
+_020225EC: .word 0x00020224
+_020225F0: .word 0x00020464
+_020225F4: .word 0x00020218
+
+ thumb_func_start FUN_020225F8
+FUN_020225F8: ; 0x020225F8
+ push {r3, lr}
+ ldr r0, _0202260C ; =0x021C59C8
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02022606
+ bl ErrorHandling
+_02022606:
+ ldr r0, _0202260C ; =0x021C59C8
+ ldr r0, [r0, #0x0]
+ pop {r3, pc}
+ .balign 4
+_0202260C: .word 0x021C59C8
+
+ thumb_func_start FUN_02022610
+FUN_02022610: ; 0x02022610
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x24
+ blt _0202261E
+ bl ErrorHandling
+_0202261E:
+ mov r0, #0x85
+ lsl r0, r0, #0x2
+ add r2, r5, r0
+ lsl r0, r4, #0x4
+ add r1, r5, r0
+ ldr r0, _02022630 ; =0x0002022C
+ ldr r0, [r1, r0]
+ add r0, r2, r0
+ pop {r3-r5, pc}
+ .balign 4
+_02022630: .word 0x0002022C
+
+ thumb_func_start FUN_02022634
+FUN_02022634: ; 0x02022634
+ ldr r3, _02022638 ; =FUN_02022610
+ bx r3
+ .balign 4
+_02022638: .word FUN_02022610
+
+ thumb_func_start FUN_0202263C
+FUN_0202263C: ; 0x0202263C
+ push {r3-r7, lr}
+ mov r1, #0x1
+ str r0, [sp, #0x0]
+ mov r0, #0x3
+ lsl r1, r1, #0xc
+ bl FUN_020169D8
+ add r6, r0, #0x0
+ mov r0, #0x1
+ bl FUN_02016444
+ ldr r1, _020226F4 ; =0x00020220
+ ldr r0, [sp, #0x0]
+ ldrb r0, [r0, r1]
+ cmp r0, #0x0
+ bne _02022660
+ mov r2, #0x1
+ b _02022662
+_02022660:
+ mov r2, #0x0
+_02022662:
+ ldr r0, [sp, #0x0]
+ mov r1, #0x0
+ bl FUN_02023074
+ ldr r1, _020226F8 ; =0x00020221
+ ldr r0, [sp, #0x0]
+ ldrb r0, [r0, r1]
+ cmp r0, #0x0
+ bne _02022678
+ mov r2, #0x1
+ b _0202267A
+_02022678:
+ mov r2, #0x0
+_0202267A:
+ ldr r0, [sp, #0x0]
+ mov r1, #0x1
+ bl FUN_02023074
+ ldr r0, [sp, #0x0]
+ ldr r3, _020226F4 ; =0x00020220
+ add r2, r0, #0x0
+ ldrb r2, [r2, r3]
+ mov r1, #0x0
+ bl FUN_02023074
+ ldr r0, [sp, #0x0]
+ ldr r3, _020226F8 ; =0x00020221
+ add r2, r0, #0x0
+ ldrb r2, [r2, r3]
+ mov r1, #0x1
+ bl FUN_02023074
+ mov r0, #0x0
+ mov r2, #0x1
+ mvn r0, r0
+ add r1, r6, #0x0
+ lsl r2, r2, #0xc
+ bl MIi_CpuClearFast
+ mov r4, #0x0
+ mov r7, #0x1
+ add r5, r4, #0x0
+ lsl r7, r7, #0xc
+_020226B4:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_020235D0
+ add r0, r4, #0x0
+ add r0, #0x40
+ lsl r0, r0, #0xc
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_020235D0
+ mov r0, #0x1
+ lsl r0, r0, #0xc
+ add r4, r4, #0x1
+ add r5, r5, r0
+ cmp r4, #0x40
+ blt _020226B4
+ add r0, r6, #0x0
+ bl FUN_02016A18
+ ldr r0, [sp, #0x0]
+ bl FUN_020227DC
+ ldr r0, [sp, #0x0]
+ mov r1, #0x0
+ str r1, [r0, #0x4]
+ mov r0, #0x1
+ bl FUN_02016454
+ mov r0, #0x1
+ pop {r3-r7, pc}
+ .balign 4
+_020226F4: .word 0x00020220
+_020226F8: .word 0x00020221
+
+ thumb_func_start FUN_020226FC
+FUN_020226FC: ; 0x020226FC
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ cmp r1, #0x0
+ bne _0202270A
+ mov r0, #0x0
+ pop {r4, pc}
+_0202270A:
+ bl FUN_02022D08
+ cmp r0, #0x0
+ beq _0202271C
+ mov r0, #0x1
+ str r0, [r4, #0x4]
+ mov r1, #0x0
+ str r1, [r4, #0x8]
+ pop {r4, pc}
+_0202271C:
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_02022720
+FUN_02022720: ; 0x02022720
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ bne _0202272E
+ mov r0, #0x3
+ pop {r4, pc}
+_0202272E:
+ ldr r0, [r4, #0x8]
+ cmp r0, #0x0
+ beq _02022784
+ mov r0, #0x1
+ bl FUN_02016444
+ ldr r0, _02022798 ; =0x00020220
+ ldrb r0, [r4, r0]
+ cmp r0, #0x0
+ bne _02022746
+ mov r2, #0x1
+ b _02022748
+_02022746:
+ mov r2, #0x0
+_02022748:
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl FUN_02023074
+ ldr r0, _0202279C ; =0x00020221
+ ldrb r0, [r4, r0]
+ cmp r0, #0x0
+ bne _0202275C
+ mov r2, #0x1
+ b _0202275E
+_0202275C:
+ mov r2, #0x0
+_0202275E:
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_02023074
+ ldr r2, _02022798 ; =0x00020220
+ add r0, r4, #0x0
+ ldrb r2, [r4, r2]
+ mov r1, #0x0
+ bl FUN_02023074
+ ldr r2, _0202279C ; =0x00020221
+ add r0, r4, #0x0
+ ldrb r2, [r4, r2]
+ mov r1, #0x1
+ bl FUN_02023074
+ mov r0, #0x1
+ bl FUN_02016454
+_02022784:
+ add r0, r4, #0x0
+ bl FUN_02023044
+ cmp r0, #0x2
+ bne _02022796
+ mov r1, #0x1
+ str r1, [r4, #0x4]
+ mov r1, #0x0
+ str r1, [r4, #0x8]
+_02022796:
+ pop {r4, pc}
+ .balign 4
+_02022798: .word 0x00020220
+_0202279C: .word 0x00020221
+
+ thumb_func_start FUN_020227A0
+FUN_020227A0: ; 0x020227A0
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x2
+ blt _020227AE
+ bl ErrorHandling
+_020227AE:
+ ldr r0, [r5, #0x8]
+ cmp r0, #0x0
+ beq _020227B8
+ bl ErrorHandling
+_020227B8:
+ ldr r0, [r5, #0x4]
+ cmp r0, #0x1
+ beq _020227C2
+ bl ErrorHandling
+_020227C2:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02022840
+_020227CA:
+ add r0, r5, #0x0
+ bl FUN_02022854
+ cmp r0, #0x0
+ beq _020227CA
+ cmp r0, #0x1
+ beq _020227CA
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020227DC
+FUN_020227DC: ; 0x020227DC
+ add r2, r0, #0x0
+ mov r0, #0x1
+ str r0, [r2, #0x8]
+ str r0, [r2, #0xc]
+ mov r0, #0x85
+ ldr r1, _020227F4 ; =0x00020224
+ lsl r0, r0, #0x2
+ ldr r3, _020227F8 ; =FUN_020231F4
+ add r0, r2, r0
+ add r1, r2, r1
+ bx r3
+ nop
+_020227F4: .word 0x00020224
+_020227F8: .word FUN_020231F4
+
+ thumb_func_start FUN_020227FC
+FUN_020227FC: ; 0x020227FC
+ ldr r0, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02022800
+FUN_02022800: ; 0x02022800
+ ldr r0, [r0, #0x10]
+ bx lr
+
+ thumb_func_start FUN_02022804
+FUN_02022804: ; 0x02022804
+ ldr r0, [r0, #0x4]
+ bx lr
+
+ thumb_func_start FUN_02022808
+FUN_02022808: ; 0x02022808
+ ldr r0, [r0, #0x8]
+ bx lr
+
+ thumb_func_start FUN_0202280C
+FUN_0202280C: ; 0x0202280C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02022808
+ cmp r0, #0x0
+ beq _02022826
+ add r0, r4, #0x0
+ bl FUN_02022804
+ cmp r0, #0x0
+ beq _02022826
+ mov r0, #0x1
+ pop {r4, pc}
+_02022826:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202282C
+FUN_0202282C: ; 0x0202282C
+ ldr r0, [r0, #0xc]
+ bx lr
+
+ thumb_func_start FUN_02022830
+FUN_02022830: ; 0x02022830
+ ldr r0, _0202283C ; =0x021C59C8
+ mov r1, #0x1
+ ldr r0, [r0, #0x0]
+ str r1, [r0, #0xc]
+ bx lr
+ nop
+_0202283C: .word 0x021C59C8
+
+ thumb_func_start FUN_02022840
+FUN_02022840: ; 0x02022840
+ add r2, r1, #0x0
+ ldr r1, _0202284C ; =0x0002047C
+ ldr r3, _02022850 ; =FUN_02022DFC
+ add r1, r0, r1
+ bx r3
+ nop
+_0202284C: .word 0x0002047C
+_02022850: .word FUN_02022DFC
+
+ thumb_func_start FUN_02022854
+FUN_02022854: ; 0x02022854
+ push {r3-r5, lr}
+ ldr r1, _02022878 ; =0x0002047C
+ add r5, r0, #0x0
+ add r1, r5, r1
+ bl FUN_02022E78
+ add r4, r0, #0x0
+ beq _02022874
+ cmp r4, #0x1
+ beq _02022874
+ ldr r1, _02022878 ; =0x0002047C
+ add r0, r5, #0x0
+ add r1, r5, r1
+ add r2, r4, #0x0
+ bl FUN_02022F80
+_02022874:
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_02022878: .word 0x0002047C
+
+ thumb_func_start FUN_0202287C
+FUN_0202287C: ; 0x0202287C
+ ldr r1, _02022884 ; =0x0002047C
+ ldr r3, _02022888 ; =FUN_02022FF0
+ add r1, r0, r1
+ bx r3
+ .balign 4
+_02022884: .word 0x0002047C
+_02022888: .word FUN_02022FF0
+
+ thumb_func_start FUN_0202288C
+FUN_0202288C: ; 0x0202288C
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ str r1, [r0, #0x4]
+ str r1, [r0, #0x8]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02022898
+FUN_02022898: ; 0x02022898
+ ldr r3, _020228A0 ; =MATH_CalcCRC16CCITT
+ add r0, #0x14
+ sub r2, #0x14
+ bx r3
+ .balign 4
+_020228A0: .word MATH_CalcCRC16CCITT
+
+ thumb_func_start FUN_020228A4
+FUN_020228A4: ; 0x020228A4
+ cmp r0, #0x0
+ bne _020228AC
+ mov r2, #0x0
+ b _020228B0
+_020228AC:
+ mov r2, #0x1
+ lsl r2, r2, #0x12
+_020228B0:
+ ldr r0, [r1, #0x4]
+ add r0, r2, r0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020228B8
+FUN_020228B8: ; 0x020228B8
+ push {r3-r5, lr}
+ ldr r3, _020228DC ; =0x00020464
+ add r3, r0, r3
+ mov r0, #0xc
+ mul r0, r2
+ add r5, r3, r0
+ ldr r0, [r5, #0x4]
+ add r4, r1, r0
+ ldr r0, [r5, #0x8]
+ cmp r0, #0x0
+ bne _020228D2
+ bl ErrorHandling
+_020228D2:
+ ldr r0, [r5, #0x8]
+ add r0, r4, r0
+ sub r0, #0x14
+ pop {r3-r5, pc}
+ nop
+_020228DC: .word 0x00020464
+
+ thumb_func_start FUN_020228E0
+FUN_020228E0: ; 0x020228E0
+ push {r3-r7, lr}
+ ldr r4, _02022934 ; =0x00020464
+ add r3, r0, #0x0
+ add r3, r3, r4
+ add r5, r2, #0x0
+ mov r4, #0xc
+ mul r4, r5
+ str r0, [sp, #0x0]
+ add r7, r1, #0x0
+ add r6, r3, r4
+ bl FUN_020228B8
+ add r4, r0, #0x0
+ ldr r2, [r6, #0x8]
+ ldr r0, [r4, #0x8]
+ ldr r1, [r6, #0x4]
+ cmp r0, r2
+ beq _02022908
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02022908:
+ ldr r3, [r4, #0xc]
+ ldr r0, _02022938 ; =0x20060623
+ cmp r3, r0
+ beq _02022914
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02022914:
+ ldrb r0, [r4, #0x10]
+ cmp r0, r5
+ beq _0202291E
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0202291E:
+ ldr r0, [sp, #0x0]
+ add r1, r7, r1
+ bl FUN_02022898
+ ldrh r1, [r4, #0x12]
+ cmp r1, r0
+ bne _02022930
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02022930:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_02022934: .word 0x00020464
+_02022938: .word 0x20060623
+
+ thumb_func_start FUN_0202293C
+FUN_0202293C: ; 0x0202293C
+ push {r3-r7, lr}
+ add r7, r2, #0x0
+ add r6, r1, #0x0
+ add r5, r0, #0x0
+ str r3, [sp, #0x0]
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ add r2, r3, #0x0
+ bl FUN_020228B8
+ add r4, r0, #0x0
+ ldr r2, [sp, #0x0]
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ bl FUN_020228E0
+ str r0, [r5, #0x0]
+ ldr r0, [r4, #0x0]
+ str r0, [r5, #0x4]
+ ldr r0, [r4, #0x4]
+ str r0, [r5, #0x8]
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02022968
+FUN_02022968: ; 0x02022968
+ push {r3-r7, lr}
+ ldr r3, _020229AC ; =0x00020464
+ add r5, r0, #0x0
+ add r7, r2, #0x0
+ mov r4, #0xc
+ add r3, r5, r3
+ mul r4, r7
+ str r1, [sp, #0x0]
+ add r6, r3, r4
+ bl FUN_020228B8
+ ldr r2, _020229B0 ; =0x00020214
+ add r4, r0, #0x0
+ ldr r0, [r5, r2]
+ ldr r1, [r6, #0x4]
+ add r2, r2, #0x4
+ str r0, [r4, #0x0]
+ lsl r0, r7, #0x2
+ add r0, r5, r0
+ ldr r0, [r0, r2]
+ ldr r2, [sp, #0x0]
+ str r0, [r4, #0x4]
+ ldr r0, [r6, #0x8]
+ add r1, r2, r1
+ str r0, [r4, #0x8]
+ ldr r0, _020229B4 ; =0x20060623
+ str r0, [r4, #0xc]
+ strb r7, [r4, #0x10]
+ ldr r2, [r6, #0x8]
+ add r0, r5, #0x0
+ bl FUN_02022898
+ strh r0, [r4, #0x12]
+ pop {r3-r7, pc}
+ .balign 4
+_020229AC: .word 0x00020464
+_020229B0: .word 0x00020214
+_020229B4: .word 0x20060623
+
+ thumb_func_start FUN_020229B8
+FUN_020229B8: ; 0x020229B8
+ mov r2, #0x0
+ mvn r2, r2
+ cmp r0, r2
+ bne _020229C8
+ cmp r1, #0x0
+ bne _020229C8
+ add r0, r2, #0x0
+ bx lr
+_020229C8:
+ cmp r0, #0x0
+ bne _020229D8
+ mov r2, #0x0
+ mvn r2, r2
+ cmp r1, r2
+ bne _020229D8
+ mov r0, #0x1
+ bx lr
+_020229D8:
+ cmp r0, r1
+ bls _020229E0
+ mov r0, #0x1
+ bx lr
+_020229E0:
+ cmp r0, r1
+ bhs _020229E8
+ mov r0, #0x1
+ b _020229EA
+_020229E8:
+ mov r0, #0x0
+_020229EA:
+ neg r0, r0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020229F0
+FUN_020229F0: ; 0x020229F0
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ add r6, r1, #0x0
+ ldr r0, [r7, #0x4]
+ ldr r1, [r6, #0x4]
+ add r5, r2, #0x0
+ add r4, r3, #0x0
+ bl FUN_020229B8
+ str r0, [sp, #0x0]
+ ldr r0, [r7, #0x8]
+ ldr r1, [r6, #0x8]
+ bl FUN_020229B8
+ ldr r2, [r7, #0x0]
+ cmp r2, #0x0
+ beq _02022A6A
+ ldr r1, [r6, #0x0]
+ cmp r1, #0x0
+ beq _02022A6A
+ ldr r1, [sp, #0x0]
+ cmp r1, #0x0
+ ble _02022A30
+ cmp r0, #0x0
+ bgt _02022A26
+ bl ErrorHandling
+_02022A26:
+ mov r0, #0x0
+ str r0, [r5, #0x0]
+ mov r0, #0x1
+ str r0, [r4, #0x0]
+ b _02022A66
+_02022A30:
+ bge _02022A44
+ cmp r0, #0x0
+ blt _02022A3A
+ bl ErrorHandling
+_02022A3A:
+ mov r0, #0x1
+ str r0, [r5, #0x0]
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ b _02022A66
+_02022A44:
+ cmp r0, #0x0
+ ble _02022A52
+ mov r0, #0x0
+ str r0, [r5, #0x0]
+ mov r0, #0x1
+ str r0, [r4, #0x0]
+ b _02022A66
+_02022A52:
+ bge _02022A5E
+ mov r0, #0x1
+ str r0, [r5, #0x0]
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ b _02022A66
+_02022A5E:
+ mov r0, #0x0
+ str r0, [r5, #0x0]
+ mov r0, #0x1
+ str r0, [r4, #0x0]
+_02022A66:
+ mov r0, #0x2
+ pop {r3-r7, pc}
+_02022A6A:
+ cmp r2, #0x0
+ beq _02022A80
+ ldr r0, [r6, #0x0]
+ cmp r0, #0x0
+ bne _02022A80
+ mov r0, #0x0
+ str r0, [r5, #0x0]
+ mov r0, #0x2
+ str r0, [r4, #0x0]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02022A80:
+ cmp r2, #0x0
+ bne _02022A94
+ ldr r0, [r6, #0x0]
+ cmp r0, #0x0
+ beq _02022A94
+ mov r0, #0x1
+ str r0, [r5, #0x0]
+ mov r1, #0x2
+ str r1, [r4, #0x0]
+ pop {r3-r7, pc}
+_02022A94:
+ mov r0, #0x2
+ str r0, [r5, #0x0]
+ str r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02022AA0
+FUN_02022AA0: ; 0x02022AA0
+ push {r3-r6}
+ mov r4, #0xc
+ add r5, r3, #0x0
+ mul r5, r4
+ add r6, r1, r5
+ ldr r5, [r6, #0x4]
+ ldr r1, _02022AD4 ; =0x00020214
+ str r5, [r0, r1]
+ ldr r6, [r6, #0x8]
+ add r5, r1, #0x4
+ str r6, [r0, r5]
+ ldr r5, [sp, #0x10]
+ mul r4, r5
+ add r2, r2, r4
+ ldr r4, [r2, #0x8]
+ add r2, r1, #0x0
+ add r2, #0x8
+ str r4, [r0, r2]
+ add r2, r1, #0x0
+ add r2, #0xc
+ strb r3, [r0, r2]
+ add r1, #0xd
+ strb r5, [r0, r1]
+ pop {r3-r6}
+ bx lr
+ nop
+_02022AD4: .word 0x00020214
+
+ thumb_func_start FUN_02022AD8
+FUN_02022AD8: ; 0x02022AD8
+ push {r3-r6, lr}
+ sub sp, #0x44
+ mov r1, #0x2
+ add r5, r0, #0x0
+ mov r0, #0x3
+ lsl r1, r1, #0x10
+ bl FUN_020169D8
+ mov r1, #0x2
+ add r6, r0, #0x0
+ mov r0, #0x3
+ lsl r1, r1, #0x10
+ bl FUN_020169D8
+ mov r2, #0x2
+ add r4, r0, #0x0
+ mov r0, #0x0
+ add r1, r6, #0x0
+ lsl r2, r2, #0x10
+ bl FUN_020235EC
+ cmp r0, #0x0
+ add r0, sp, #0x2c
+ beq _02022B20
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ mov r3, #0x0
+ bl FUN_0202293C
+ add r0, sp, #0x14
+ add r1, r5, #0x0
+ add r2, r6, #0x0
+ mov r3, #0x1
+ bl FUN_0202293C
+ b _02022B2A
+_02022B20:
+ bl FUN_0202288C
+ add r0, sp, #0x14
+ bl FUN_0202288C
+_02022B2A:
+ mov r0, #0x1
+ lsl r0, r0, #0x12
+ add r1, r4, #0x0
+ lsr r2, r0, #0x1
+ bl FUN_020235EC
+ cmp r0, #0x0
+ add r0, sp, #0x38
+ beq _02022B54
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ mov r3, #0x0
+ bl FUN_0202293C
+ add r0, sp, #0x20
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ mov r3, #0x1
+ bl FUN_0202293C
+ b _02022B5E
+_02022B54:
+ bl FUN_0202288C
+ add r0, sp, #0x20
+ bl FUN_0202288C
+_02022B5E:
+ add r0, r6, #0x0
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add r0, sp, #0x2c
+ add r1, sp, #0x38
+ add r2, sp, #0x10
+ add r3, sp, #0x8
+ bl FUN_020229F0
+ add r4, r0, #0x0
+ add r0, sp, #0x14
+ add r1, sp, #0x20
+ add r2, sp, #0xc
+ add r3, sp, #0x4
+ bl FUN_020229F0
+ cmp r4, #0x0
+ bne _02022B92
+ cmp r0, #0x0
+ bne _02022B92
+ add sp, #0x44
+ mov r0, #0x0
+ pop {r3-r6, pc}
+_02022B92:
+ cmp r4, #0x0
+ beq _02022B9A
+ cmp r0, #0x0
+ bne _02022BA0
+_02022B9A:
+ add sp, #0x44
+ mov r0, #0x3
+ pop {r3-r6, pc}
+_02022BA0:
+ cmp r4, #0x2
+ bne _02022BE4
+ cmp r0, #0x2
+ bne _02022BE4
+ ldr r3, [sp, #0x10]
+ ldr r1, [sp, #0xc]
+ mov r2, #0xc
+ add r4, r3, #0x0
+ mul r4, r2
+ add r0, sp, #0x30
+ ldr r0, [r0, r4]
+ add r4, r1, #0x0
+ mul r4, r2
+ add r2, sp, #0x18
+ ldr r2, [r2, r4]
+ cmp r0, r2
+ str r1, [sp, #0x0]
+ add r1, sp, #0x2c
+ bne _02022BD4
+ add r0, r5, #0x0
+ add r2, sp, #0x14
+ bl FUN_02022AA0
+ add sp, #0x44
+ mov r0, #0x1
+ pop {r3-r6, pc}
+_02022BD4:
+ ldr r3, [sp, #0x8]
+ add r0, r5, #0x0
+ add r2, sp, #0x14
+ bl FUN_02022AA0
+ add sp, #0x44
+ mov r0, #0x2
+ pop {r3-r6, pc}
+_02022BE4:
+ cmp r4, #0x1
+ bne _02022C3A
+ cmp r0, #0x2
+ bne _02022C3A
+ ldr r3, [sp, #0x10]
+ ldr r0, [sp, #0xc]
+ mov r4, #0xc
+ add r2, r3, #0x0
+ add r6, r0, #0x0
+ mul r2, r4
+ add r1, sp, #0x30
+ ldr r2, [r1, r2]
+ mul r6, r4
+ add r1, sp, #0x18
+ ldr r6, [r1, r6]
+ cmp r2, r6
+ bne _02022C18
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ add r1, sp, #0x2c
+ add r2, sp, #0x14
+ bl FUN_02022AA0
+ add sp, #0x44
+ mov r0, #0x2
+ pop {r3-r6, pc}
+_02022C18:
+ ldr r0, [sp, #0x4]
+ mul r4, r0
+ ldr r1, [r1, r4]
+ cmp r2, r1
+ bne _02022C34
+ str r0, [sp, #0x0]
+ add r0, r5, #0x0
+ add r1, sp, #0x2c
+ add r2, sp, #0x14
+ bl FUN_02022AA0
+ add sp, #0x44
+ mov r0, #0x2
+ pop {r3-r6, pc}
+_02022C34:
+ add sp, #0x44
+ mov r0, #0x3
+ pop {r3-r6, pc}
+_02022C3A:
+ cmp r4, #0x2
+ bne _02022C7E
+ cmp r0, #0x1
+ bne _02022C7E
+ ldr r3, [sp, #0x10]
+ ldr r1, [sp, #0xc]
+ mov r2, #0xc
+ add r4, r3, #0x0
+ mul r4, r2
+ add r0, sp, #0x30
+ ldr r0, [r0, r4]
+ add r4, r1, #0x0
+ mul r4, r2
+ add r2, sp, #0x18
+ ldr r2, [r2, r4]
+ cmp r0, r2
+ str r1, [sp, #0x0]
+ add r1, sp, #0x2c
+ bne _02022C6E
+ add r0, r5, #0x0
+ add r2, sp, #0x14
+ bl FUN_02022AA0
+ add sp, #0x44
+ mov r0, #0x1
+ pop {r3-r6, pc}
+_02022C6E:
+ ldr r3, [sp, #0x8]
+ add r0, r5, #0x0
+ add r2, sp, #0x14
+ bl FUN_02022AA0
+ add sp, #0x44
+ mov r0, #0x2
+ pop {r3-r6, pc}
+_02022C7E:
+ cmp r4, #0x1
+ bne _02022CBC
+ cmp r0, #0x1
+ bne _02022CBC
+ ldr r0, [sp, #0xc]
+ ldr r2, [sp, #0x10]
+ cmp r2, r0
+ bne _02022CBC
+ add r3, r2, #0x0
+ mov r1, #0xc
+ mul r3, r1
+ add r2, sp, #0x30
+ mul r1, r0
+ add r0, sp, #0x18
+ ldr r2, [r2, r3]
+ ldr r0, [r0, r1]
+ cmp r2, r0
+ beq _02022CA6
+ bl ErrorHandling
+_02022CA6:
+ ldr r0, [sp, #0xc]
+ add r1, sp, #0x2c
+ str r0, [sp, #0x0]
+ ldr r3, [sp, #0x10]
+ add r0, r5, #0x0
+ add r2, sp, #0x14
+ bl FUN_02022AA0
+ add sp, #0x44
+ mov r0, #0x1
+ pop {r3-r6, pc}
+_02022CBC:
+ ldr r1, [sp, #0x10]
+ mov r0, #0xc
+ add r2, r1, #0x0
+ mul r2, r0
+ add r1, sp, #0x30
+ ldr r3, [r1, r2]
+ ldr r1, [sp, #0xc]
+ add r2, r1, #0x0
+ mul r2, r0
+ add r0, sp, #0x18
+ ldr r0, [r0, r2]
+ cmp r3, r0
+ beq _02022CDA
+ bl ErrorHandling
+_02022CDA:
+ ldr r0, [sp, #0xc]
+ add r1, sp, #0x2c
+ str r0, [sp, #0x0]
+ ldr r3, [sp, #0x10]
+ add r0, r5, #0x0
+ add r2, sp, #0x14
+ bl FUN_02022AA0
+ mov r0, #0x2
+ add sp, #0x44
+ pop {r3-r6, pc}
+
+ thumb_func_start FUN_02022CF0
+FUN_02022CF0: ; 0x02022CF0
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ bl FUN_020228A4
+ ldr r1, [r5, #0x4]
+ ldr r2, [r5, #0x8]
+ add r1, r4, r1
+ bl FUN_020235EC
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02022D08
+FUN_02022D08: ; 0x02022D08
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, _02022D4C ; =0x00020464
+ mov r7, #0x85
+ mov r4, #0x0
+ add r6, r5, r0
+ lsl r7, r7, #0x2
+_02022D16:
+ ldr r0, _02022D50 ; =0x00020220
+ add r1, r5, r4
+ ldrb r0, [r1, r0]
+ add r1, r6, #0x0
+ add r2, r5, r7
+ bl FUN_02022CF0
+ cmp r0, #0x0
+ bne _02022D2C
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02022D2C:
+ add r0, r5, #0x0
+ add r1, r5, r7
+ add r2, r4, #0x0
+ bl FUN_020228E0
+ cmp r0, #0x0
+ bne _02022D3E
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02022D3E:
+ add r4, r4, #0x1
+ add r6, #0xc
+ cmp r4, #0x2
+ blt _02022D16
+ mov r0, #0x1
+ pop {r3-r7, pc}
+ nop
+_02022D4C: .word 0x00020464
+_02022D50: .word 0x00020220
+
+ thumb_func_start FUN_02022D54
+FUN_02022D54: ; 0x02022D54
+ push {r4-r6, lr}
+ add r3, r1, #0x0
+ ldr r1, _02022D90 ; =0x00020464
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ add r2, r5, r1
+ mov r1, #0xc
+ mul r1, r3
+ add r4, r2, r1
+ mov r1, #0x85
+ lsl r1, r1, #0x2
+ add r1, r5, r1
+ add r2, r3, #0x0
+ bl FUN_02022968
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_020228A4
+ mov r1, #0x85
+ lsl r1, r1, #0x2
+ add r2, r5, r1
+ ldr r1, [r4, #0x4]
+ add r1, r2, r1
+ ldr r2, [r4, #0x8]
+ sub r2, #0x14
+ bl FUN_02023668
+ pop {r4-r6, pc}
+ nop
+_02022D90: .word 0x00020464
+
+ thumb_func_start FUN_02022D94
+FUN_02022D94: ; 0x02022D94
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ ldr r0, _02022DC4 ; =0x00020464
+ add r3, r6, r0
+ mov r0, #0xc
+ mul r0, r1
+ add r4, r3, r0
+ add r0, r2, #0x0
+ add r1, r4, #0x0
+ ldr r5, [r4, #0x8]
+ bl FUN_020228A4
+ mov r1, #0x2
+ lsl r1, r1, #0x8
+ add r2, r6, r1
+ ldr r1, [r4, #0x4]
+ add r0, r5, r0
+ add r1, r2, r1
+ sub r0, #0x14
+ add r1, r1, r5
+ mov r2, #0x14
+ bl FUN_02023668
+ pop {r4-r6, pc}
+ .balign 4
+_02022DC4: .word 0x00020464
+
+ thumb_func_start FUN_02022DC8
+FUN_02022DC8: ; 0x02022DC8
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ ldr r0, _02022DF8 ; =0x00020464
+ add r3, r6, r0
+ mov r0, #0xc
+ mul r0, r1
+ add r4, r3, r0
+ add r0, r2, #0x0
+ add r1, r4, #0x0
+ ldr r5, [r4, #0x8]
+ bl FUN_020228A4
+ mov r1, #0x82
+ lsl r1, r1, #0x2
+ add r2, r6, r1
+ ldr r1, [r4, #0x4]
+ add r0, r5, r0
+ add r1, r2, r1
+ sub r0, #0xc
+ add r1, r1, r5
+ mov r2, #0x8
+ bl FUN_02023668
+ pop {r4-r6, pc}
+ .balign 4
+_02022DF8: .word 0x00020464
+
+ thumb_func_start FUN_02022DFC
+FUN_02022DFC: ; 0x02022DFC
+ push {r3-r7, lr}
+ ldr r7, _02022E70 ; =0x00020218
+ add r4, r1, #0x0
+ mov r12, r2
+ mov r1, #0x0
+ add r2, r0, #0x0
+ add r3, r4, #0x0
+ add r6, r7, #0x0
+_02022E0C:
+ ldr r5, _02022E70 ; =0x00020218
+ add r1, r1, #0x1
+ ldr r5, [r2, r5]
+ str r5, [r3, #0x1c]
+ ldr r5, [r2, r7]
+ add r3, r3, #0x4
+ add r5, r5, #0x1
+ str r5, [r2, r6]
+ add r2, r2, #0x4
+ cmp r1, #0x2
+ blt _02022E0C
+ mov r1, #0x0
+ str r1, [r4, #0x14]
+ mov r2, r12
+ str r1, [r4, #0x0]
+ cmp r2, #0x2
+ bne _02022E58
+ ldr r2, [r0, #0xc]
+ cmp r2, #0x0
+ beq _02022E4E
+ mov r2, #0x1
+ str r2, [r4, #0x0]
+ ldr r2, _02022E74 ; =0x00020214
+ ldr r3, [r0, r2]
+ str r3, [r4, #0x18]
+ ldr r3, [r0, r2]
+ add r3, r3, #0x1
+ str r3, [r0, r2]
+ str r1, [r4, #0x4]
+ str r1, [r4, #0x8]
+ mov r0, #0x2
+ str r0, [r4, #0xc]
+ b _02022E66
+_02022E4E:
+ str r1, [r4, #0x4]
+ str r1, [r4, #0x8]
+ mov r0, #0x1
+ str r0, [r4, #0xc]
+ b _02022E66
+_02022E58:
+ mov r0, r12
+ str r0, [r4, #0x4]
+ mov r0, r12
+ str r0, [r4, #0x8]
+ mov r0, r12
+ add r0, r0, #0x1
+ str r0, [r4, #0xc]
+_02022E66:
+ mov r0, #0x1
+ bl FUN_02016444
+ pop {r3-r7, pc}
+ nop
+_02022E70: .word 0x00020218
+_02022E74: .word 0x00020214
+
+ thumb_func_start FUN_02022E78
+FUN_02022E78: ; 0x02022E78
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x14]
+ cmp r0, #0x5
+ bhi _02022F78
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02022E90: ; jump table (using 16-bit offset)
+ .short _02022E9C - _02022E90 - 2; case 0
+ .short _02022EC0 - _02022E90 - 2; case 1
+ .short _02022EDC - _02022E90 - 2; case 2
+ .short _02022F00 - _02022E90 - 2; case 3
+ .short _02022F2A - _02022E90 - 2; case 4
+ .short _02022F4E - _02022E90 - 2; case 5
+_02022E9C:
+ ldr r1, [r4, #0x8]
+ ldr r0, _02022F7C ; =0x00020220
+ add r2, r5, r1
+ ldrb r0, [r2, r0]
+ cmp r0, #0x0
+ bne _02022EAC
+ mov r2, #0x1
+ b _02022EAE
+_02022EAC:
+ mov r2, #0x0
+_02022EAE:
+ lsl r2, r2, #0x18
+ add r0, r5, #0x0
+ lsr r2, r2, #0x18
+ bl FUN_02022D54
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #0x14]
+ add r0, r0, #0x1
+ str r0, [r4, #0x14]
+_02022EC0:
+ ldr r0, [r4, #0x10]
+ add r1, sp, #0x0
+ bl FUN_020236E4
+ cmp r0, #0x0
+ beq _02022F78
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x0
+ bne _02022ED6
+ mov r0, #0x3
+ pop {r3-r5, pc}
+_02022ED6:
+ ldr r0, [r4, #0x14]
+ add r0, r0, #0x1
+ str r0, [r4, #0x14]
+_02022EDC:
+ ldr r1, [r4, #0x8]
+ ldr r0, _02022F7C ; =0x00020220
+ add r2, r5, r1
+ ldrb r0, [r2, r0]
+ cmp r0, #0x0
+ bne _02022EEC
+ mov r2, #0x1
+ b _02022EEE
+_02022EEC:
+ mov r2, #0x0
+_02022EEE:
+ lsl r2, r2, #0x18
+ add r0, r5, #0x0
+ lsr r2, r2, #0x18
+ bl FUN_02022DC8
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #0x14]
+ add r0, r0, #0x1
+ str r0, [r4, #0x14]
+_02022F00:
+ ldr r0, [r4, #0x10]
+ add r1, sp, #0x0
+ bl FUN_020236E4
+ cmp r0, #0x0
+ beq _02022F78
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x0
+ bne _02022F16
+ mov r0, #0x3
+ pop {r3-r5, pc}
+_02022F16:
+ ldr r0, [r4, #0x14]
+ add r0, r0, #0x1
+ str r0, [r4, #0x14]
+ ldr r0, [r4, #0x8]
+ add r1, r0, #0x1
+ ldr r0, [r4, #0xc]
+ cmp r1, r0
+ bne _02022F2A
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02022F2A:
+ ldr r1, [r4, #0x8]
+ ldr r0, _02022F7C ; =0x00020220
+ add r2, r5, r1
+ ldrb r0, [r2, r0]
+ cmp r0, #0x0
+ bne _02022F3A
+ mov r2, #0x1
+ b _02022F3C
+_02022F3A:
+ mov r2, #0x0
+_02022F3C:
+ lsl r2, r2, #0x18
+ add r0, r5, #0x0
+ lsr r2, r2, #0x18
+ bl FUN_02022D94
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #0x14]
+ add r0, r0, #0x1
+ str r0, [r4, #0x14]
+_02022F4E:
+ ldr r0, [r4, #0x10]
+ add r1, sp, #0x0
+ bl FUN_020236E4
+ cmp r0, #0x0
+ beq _02022F78
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x0
+ bne _02022F64
+ mov r0, #0x3
+ pop {r3-r5, pc}
+_02022F64:
+ ldr r0, [r4, #0x8]
+ add r1, r0, #0x1
+ str r1, [r4, #0x8]
+ ldr r0, [r4, #0xc]
+ cmp r1, r0
+ bne _02022F74
+ mov r0, #0x2
+ pop {r3-r5, pc}
+_02022F74:
+ mov r0, #0x0
+ str r0, [r4, #0x14]
+_02022F78:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_02022F7C: .word 0x00020220
+
+ thumb_func_start FUN_02022F80
+FUN_02022F80: ; 0x02022F80
+ push {r3-r7, lr}
+ add r3, r0, #0x0
+ add r0, r1, #0x0
+ cmp r2, #0x3
+ bne _02022FAA
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _02022F96
+ ldr r2, [r0, #0x18]
+ ldr r1, _02022FE4 ; =0x00020214
+ str r2, [r3, r1]
+_02022F96:
+ ldr r1, _02022FE8 ; =0x00020218
+ mov r4, #0x0
+_02022F9A:
+ ldr r2, [r0, #0x1c]
+ add r4, r4, #0x1
+ str r2, [r3, r1]
+ add r0, r0, #0x4
+ add r3, r3, #0x4
+ cmp r4, #0x2
+ blt _02022F9A
+ b _02022FDA
+_02022FAA:
+ ldr r6, [r0, #0x4]
+ ldr r1, [r0, #0xc]
+ cmp r6, r1
+ bge _02022FD0
+ ldr r1, _02022FEC ; =0x00020220
+ mov r7, #0x1
+ add r2, r1, #0x0
+_02022FB8:
+ add r5, r3, r6
+ ldrb r4, [r5, r2]
+ cmp r4, #0x0
+ bne _02022FC4
+ add r4, r7, #0x0
+ b _02022FC6
+_02022FC4:
+ mov r4, #0x0
+_02022FC6:
+ strb r4, [r5, r1]
+ ldr r4, [r0, #0xc]
+ add r6, r6, #0x1
+ cmp r6, r4
+ blt _02022FB8
+_02022FD0:
+ mov r0, #0x1
+ str r0, [r3, #0x4]
+ mov r0, #0x0
+ str r0, [r3, #0x8]
+ str r0, [r3, #0xc]
+_02022FDA:
+ mov r0, #0x1
+ bl FUN_02016454
+ pop {r3-r7, pc}
+ nop
+_02022FE4: .word 0x00020214
+_02022FE8: .word 0x00020218
+_02022FEC: .word 0x00020220
+
+ thumb_func_start FUN_02022FF0
+FUN_02022FF0: ; 0x02022FF0
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ ldr r1, [r4, #0x0]
+ cmp r1, #0x0
+ beq _02023000
+ ldr r2, [r4, #0x18]
+ ldr r1, _0202303C ; =0x00020214
+ str r2, [r0, r1]
+_02023000:
+ ldr r1, _02023040 ; =0x00020218
+ mov r3, #0x0
+ add r5, r4, #0x0
+_02023006:
+ ldr r2, [r5, #0x1c]
+ add r3, r3, #0x1
+ str r2, [r0, r1]
+ add r5, r5, #0x4
+ add r0, r0, #0x4
+ cmp r3, #0x2
+ blt _02023006
+ bl CARD_TryWaitBackupAsync
+ cmp r0, #0x0
+ bne _02023034
+ bl CARD_CancelBackupAsync
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl CARD_UnlockBackup
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl OS_ReleaseLockID
+_02023034:
+ mov r0, #0x1
+ bl FUN_02016454
+ pop {r3-r5, pc}
+ .balign 4
+_0202303C: .word 0x00020214
+_02023040: .word 0x00020218
+
+ thumb_func_start FUN_02023044
+FUN_02023044: ; 0x02023044
+ push {r3-r6, lr}
+ sub sp, #0x24
+ add r1, sp, #0x0
+ mov r2, #0x2
+ add r5, r0, #0x0
+ bl FUN_02022DFC
+ add r6, sp, #0x0
+_02023054:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02022E78
+ add r4, r0, #0x0
+ beq _02023054
+ cmp r4, #0x1
+ beq _02023054
+ add r0, r5, #0x0
+ add r1, sp, #0x0
+ add r2, r4, #0x0
+ bl FUN_02022F80
+ add r0, r4, #0x0
+ add sp, #0x24
+ pop {r3-r6, pc}
+
+ thumb_func_start FUN_02023074
+FUN_02023074: ; 0x02023074
+ push {r4-r5, lr}
+ sub sp, #0x14
+ add r4, r2, #0x0
+ ldr r2, _020230A8 ; =0x00020464
+ add r2, r0, r2
+ mov r0, #0xc
+ mul r0, r1
+ add r5, r2, r0
+ add r0, sp, #0x0
+ mov r1, #0xff
+ mov r2, #0x14
+ bl MI_CpuFill8
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_020228A4
+ ldr r1, [r5, #0x8]
+ mov r2, #0x14
+ add r0, r1, r0
+ sub r0, #0x14
+ add r1, sp, #0x0
+ bl FUN_020235D0
+ add sp, #0x14
+ pop {r4-r5, pc}
+ .balign 4
+_020230A8: .word 0x00020464
+
+ thumb_func_start FUN_020230AC
+FUN_020230AC: ; 0x020230AC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _020230DC ; =0x020EE6DC
+ ldr r4, _020230E0 ; =0x020EE700
+ ldr r0, [r0, #0x0]
+ cmp r5, r0
+ blt _020230BE
+ bl ErrorHandling
+_020230BE:
+ lsl r0, r5, #0x4
+ add r0, r4, r0
+ ldr r0, [r0, #0x8]
+ blx r0
+ lsr r3, r0, #0x1f
+ lsl r2, r0, #0x1e
+ sub r2, r2, r3
+ mov r1, #0x1e
+ ror r2, r1
+ add r2, r3, r2
+ mov r1, #0x4
+ sub r1, r1, r2
+ add r0, r0, r1
+ pop {r3-r5, pc}
+ nop
+_020230DC: .word 0x020EE6DC
+_020230E0: .word 0x020EE700
+
+ thumb_func_start FUN_020230E4
+FUN_020230E4: ; 0x020230E4
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ ldr r0, _02023158 ; =0x020EE6DC
+ ldr r4, _0202315C ; =0x020EE700
+ ldr r0, [r0, #0x0]
+ mov r7, #0x0
+ str r0, [sp, #0x0]
+ cmp r0, #0x24
+ beq _020230FC
+ bl ErrorHandling
+_020230FC:
+ ldr r0, [sp, #0x0]
+ mov r6, #0x0
+ cmp r0, #0x0
+ ble _02023148
+ sub r0, r0, #0x1
+ str r0, [sp, #0x4]
+_02023108:
+ ldr r0, [r4, #0x0]
+ cmp r6, r0
+ beq _02023112
+ bl ErrorHandling
+_02023112:
+ ldr r0, [r4, #0x0]
+ str r0, [r5, #0x0]
+ add r0, r6, #0x0
+ bl FUN_020230AC
+ str r0, [r5, #0x4]
+ str r7, [r5, #0x8]
+ mov r0, #0x0
+ strh r0, [r5, #0xc]
+ ldr r0, [r4, #0x4]
+ strh r0, [r5, #0xe]
+ ldr r0, [r5, #0x4]
+ add r7, r7, r0
+ ldr r0, [sp, #0x4]
+ cmp r6, r0
+ beq _0202313A
+ ldr r1, [r4, #0x4]
+ ldr r0, [r4, #0x14]
+ cmp r1, r0
+ beq _0202313C
+_0202313A:
+ add r7, #0x14
+_0202313C:
+ ldr r0, [sp, #0x0]
+ add r6, r6, #0x1
+ add r4, #0x10
+ add r5, #0x10
+ cmp r6, r0
+ blt _02023108
+_02023148:
+ mov r0, #0x2
+ lsl r0, r0, #0x10
+ cmp r7, r0
+ ble _02023154
+ bl ErrorHandling
+_02023154:
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_02023158: .word 0x020EE6DC
+_0202315C: .word 0x020EE700
+
+ thumb_func_start FUN_02023160
+FUN_02023160: ; 0x02023160
+ push {r3-r7, lr}
+ sub sp, #0x8
+ str r0, [sp, #0x0]
+ mov r0, #0x0
+ str r0, [sp, #0x4]
+ mov r12, r0
+ add r3, r0, #0x0
+ add r6, r0, #0x0
+ ldr r0, _020231EC ; =0x020EE6DC
+ ldr r4, [sp, #0x0]
+ ldr r7, [r0, #0x0]
+ add r5, r1, #0x0
+_02023178:
+ add r2, r4, #0x0
+ strb r6, [r4, #0x0]
+ mov r0, #0x0
+ str r0, [r4, #0x8]
+ add r2, #0x8
+ b _02023190
+_02023184:
+ ldr r0, [r5, #0x4]
+ ldr r1, [r2, #0x0]
+ add r5, #0x10
+ add r0, r1, r0
+ str r0, [r2, #0x0]
+ add r3, r3, #0x1
+_02023190:
+ ldrh r0, [r5, #0xe]
+ cmp r6, r0
+ bne _0202319A
+ cmp r3, r7
+ blt _02023184
+_0202319A:
+ ldr r0, [r4, #0x8]
+ add r6, r6, #0x1
+ add r0, #0x14
+ str r0, [r4, #0x8]
+ ldr r0, [sp, #0x4]
+ strb r0, [r4, #0x1]
+ mov r0, r12
+ str r0, [r4, #0x4]
+ ldr r1, [r4, #0x8]
+ ldr r0, _020231F0 ; =0x00000FFF
+ add r0, r1, r0
+ lsr r0, r0, #0xc
+ strb r0, [r4, #0x2]
+ ldrb r1, [r4, #0x2]
+ ldr r0, [sp, #0x4]
+ add r0, r0, r1
+ str r0, [sp, #0x4]
+ ldr r0, [r4, #0x8]
+ mov r1, r12
+ add r0, r1, r0
+ add r4, #0xc
+ mov r12, r0
+ cmp r6, #0x2
+ blt _02023178
+ ldr r0, [sp, #0x0]
+ ldrb r1, [r0, #0xd]
+ ldrb r0, [r0, #0xe]
+ add r1, r1, r0
+ ldr r0, [sp, #0x4]
+ cmp r0, r1
+ beq _020231DC
+ bl ErrorHandling
+_020231DC:
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x20
+ ble _020231E6
+ bl ErrorHandling
+_020231E6:
+ add sp, #0x8
+ pop {r3-r7, pc}
+ nop
+_020231EC: .word 0x020EE6DC
+_020231F0: .word 0x00000FFF
+
+ thumb_func_start FUN_020231F4
+FUN_020231F4: ; 0x020231F4
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r6, r0, #0x0
+ mov r2, #0x2
+ add r5, r1, #0x0
+ mov r0, #0x0
+ add r1, r6, #0x0
+ lsl r2, r2, #0x10
+ ldr r4, _02023240 ; =0x020EE700
+ bl MIi_CpuClearFast
+ ldr r0, _02023244 ; =0x020EE6DC
+ mov r7, #0x0
+ ldr r0, [r0, #0x0]
+ str r0, [sp, #0x0]
+ cmp r0, #0x0
+ ble _0202323A
+_02023216:
+ ldr r0, [r5, #0x8]
+ ldr r2, [r5, #0x4]
+ str r0, [sp, #0x4]
+ ldr r1, [sp, #0x4]
+ mov r0, #0x0
+ add r1, r6, r1
+ bl MIi_CpuClearFast
+ ldr r0, [sp, #0x4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, r0
+ blx r1
+ ldr r0, [sp, #0x0]
+ add r7, r7, #0x1
+ add r5, #0x10
+ add r4, #0x10
+ cmp r7, r0
+ blt _02023216
+_0202323A:
+ add sp, #0x8
+ pop {r3-r7, pc}
+ nop
+_02023240: .word 0x020EE700
+_02023244: .word 0x020EE6DC
+
+ thumb_func_start FUN_02023248
+FUN_02023248: ; 0x02023248
+ push {r3-r5, lr}
+ ldr r5, _0202326C ; =0x20060623
+ add r4, r1, r3
+ str r5, [r1, r3]
+ ldr r5, _02023270 ; =0x000204A4
+ ldr r5, [r0, r5]
+ add r0, #0x14
+ add r5, r5, #0x1
+ str r5, [r4, #0x4]
+ str r3, [r4, #0x8]
+ add r3, #0xe
+ strh r2, [r4, #0xc]
+ add r2, r3, #0x0
+ bl MATH_CalcCRC16CCITT
+ strh r0, [r4, #0xe]
+ pop {r3-r5, pc}
+ nop
+_0202326C: .word 0x20060623
+_02023270: .word 0x000204A4
+
+ thumb_func_start FUN_02023274
+FUN_02023274: ; 0x02023274
+ push {r4-r6, lr}
+ ldr r6, [r1, r3]
+ ldr r5, _020232B0 ; =0x20060623
+ add r4, r1, r3
+ cmp r6, r5
+ beq _02023284
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02023284:
+ ldr r5, [r4, #0x8]
+ cmp r5, r3
+ beq _0202328E
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0202328E:
+ ldrh r5, [r4, #0xc]
+ cmp r5, r2
+ beq _02023298
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02023298:
+ add r3, #0xe
+ add r0, #0x14
+ add r2, r3, #0x0
+ bl MATH_CalcCRC16CCITT
+ ldrh r1, [r4, #0xe]
+ cmp r1, r0
+ bne _020232AC
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_020232AC:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+_020232B0: .word 0x20060623
+
+ thumb_func_start FUN_020232B4
+FUN_020232B4: ; 0x020232B4
+ add r0, r0, r1
+ ldr r0, [r0, #0x4]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020232BC
+FUN_020232BC: ; 0x020232BC
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r7, r0, #0x0
+ mov r0, #0x1
+ add r5, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_02016444
+ ldr r0, _020233FC ; =0x020EE6D8
+ ldr r0, [r0, #0x0]
+ cmp r5, r0
+ blt _020232D8
+ bl ErrorHandling
+_020232D8:
+ ldr r1, _02023400 ; =0x020EE6E0
+ lsl r0, r5, #0x4
+ add r4, r1, r0
+ ldr r0, [r1, r0]
+ cmp r0, r5
+ beq _020232E8
+ bl ErrorHandling
+_020232E8:
+ ldr r0, [r4, #0x8]
+ blx r0
+ str r0, [sp, #0x4]
+ add r0, #0x10
+ str r0, [sp, #0x4]
+ ldr r0, _02023404 ; =0x000204A0
+ ldr r0, [r7, r0]
+ cmp r0, #0x1
+ ldr r0, [r4, #0x8]
+ bne _0202336E
+ blx r0
+ add r3, r0, #0x0
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ bl FUN_02023248
+ ldr r0, [r4, #0x4]
+ ldr r2, [sp, #0x4]
+ lsl r0, r0, #0xc
+ add r1, r6, #0x0
+ bl FUN_020235D0
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x8]
+ blx r0
+ add r3, r0, #0x0
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ bl FUN_02023274
+ cmp r0, #0x1
+ beq _02023330
+ bl ErrorHandling
+_02023330:
+ ldr r0, [r4, #0x8]
+ blx r0
+ add r3, r0, #0x0
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ bl FUN_02023248
+ ldr r0, [r4, #0x4]
+ ldr r2, [sp, #0x4]
+ add r0, #0x40
+ lsl r0, r0, #0xc
+ add r1, r6, #0x0
+ bl FUN_020235D0
+ ldr r1, [sp, #0x0]
+ orr r0, r1
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x8]
+ blx r0
+ add r3, r0, #0x0
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ bl FUN_02023274
+ cmp r0, #0x1
+ beq _020233DE
+ bl ErrorHandling
+ b _020233DE
+_0202336E:
+ blx r0
+ add r3, r0, #0x0
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ bl FUN_02023248
+ ldr r0, [r4, #0x4]
+ ldr r2, [sp, #0x4]
+ add r0, #0x40
+ lsl r0, r0, #0xc
+ add r1, r6, #0x0
+ bl FUN_020235D0
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x8]
+ blx r0
+ add r3, r0, #0x0
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ bl FUN_02023274
+ cmp r0, #0x1
+ beq _020233A4
+ bl ErrorHandling
+_020233A4:
+ ldr r0, [r4, #0x8]
+ blx r0
+ add r3, r0, #0x0
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ bl FUN_02023248
+ ldr r0, [r4, #0x4]
+ ldr r2, [sp, #0x4]
+ lsl r0, r0, #0xc
+ add r1, r6, #0x0
+ bl FUN_020235D0
+ ldr r1, [sp, #0x0]
+ orr r0, r1
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x8]
+ blx r0
+ add r3, r0, #0x0
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ bl FUN_02023274
+ cmp r0, #0x1
+ beq _020233DE
+ bl ErrorHandling
+_020233DE:
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x1
+ bne _020233F0
+ mov r0, #0x1
+ bl FUN_02016454
+ add sp, #0x8
+ mov r0, #0x2
+ pop {r3-r7, pc}
+_020233F0:
+ mov r0, #0x1
+ bl FUN_02016454
+ mov r0, #0x3
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_020233FC: .word 0x020EE6D8
+_02023400: .word 0x020EE6E0
+_02023404: .word 0x000204A0
+
+ thumb_func_start FUN_02023408
+FUN_02023408: ; 0x02023408
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0x0
+ ldr r0, _02023564 ; =0x020EE6D8
+ add r7, r2, #0x0
+ ldr r0, [r0, #0x0]
+ add r6, r1, #0x0
+ str r3, [sp, #0x0]
+ cmp r7, r0
+ blt _02023420
+ bl ErrorHandling
+_02023420:
+ ldr r1, _02023568 ; =0x020EE6E0
+ lsl r0, r7, #0x4
+ add r4, r1, r0
+ ldr r0, [r1, r0]
+ cmp r0, r7
+ beq _02023430
+ bl ErrorHandling
+_02023430:
+ ldr r0, [r4, #0x8]
+ blx r0
+ str r0, [sp, #0x10]
+ add r0, #0x10
+ str r0, [sp, #0x10]
+ ldr r1, [sp, #0x10]
+ add r0, r6, #0x0
+ bl FUN_02016998
+ add r6, r0, #0x0
+ ldr r0, [r4, #0x4]
+ ldr r2, [sp, #0x10]
+ lsl r0, r0, #0xc
+ add r1, r6, #0x0
+ bl FUN_020235EC
+ ldr r0, [r4, #0x8]
+ blx r0
+ add r3, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_02023274
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0x8]
+ blx r0
+ add r1, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_020232B4
+ str r0, [sp, #0x8]
+ ldr r0, [r4, #0x4]
+ ldr r2, [sp, #0x10]
+ add r0, #0x40
+ lsl r0, r0, #0xc
+ add r1, r6, #0x0
+ bl FUN_020235EC
+ ldr r0, [r4, #0x8]
+ blx r0
+ add r3, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_02023274
+ add r7, r0, #0x0
+ ldr r0, [r4, #0x8]
+ blx r0
+ add r1, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_020232B4
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x0]
+ mov r1, #0x1
+ str r1, [r0, #0x0]
+ ldr r0, [sp, #0xc]
+ cmp r0, #0x1
+ bne _020234CC
+ cmp r7, #0x0
+ bne _020234CC
+ ldr r0, _0202356C ; =0x000204A0
+ mov r1, #0x0
+ str r1, [r5, r0]
+ add r1, r0, #0x4
+ ldr r0, [sp, #0x8]
+ ldr r2, [sp, #0x10]
+ str r0, [r5, r1]
+ ldr r0, [r4, #0x4]
+ add r1, r6, #0x0
+ lsl r0, r0, #0xc
+ bl FUN_020235EC
+ add sp, #0x14
+ add r0, r6, #0x0
+ pop {r4-r7, pc}
+_020234CC:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0x0
+ bne _020234F6
+ cmp r7, #0x1
+ bne _020234F6
+ ldr r0, _0202356C ; =0x000204A0
+ mov r1, #0x1
+ str r1, [r5, r0]
+ add r1, r0, #0x4
+ ldr r0, [sp, #0x4]
+ ldr r2, [sp, #0x10]
+ str r0, [r5, r1]
+ ldr r0, [r4, #0x4]
+ add r1, r6, #0x0
+ add r0, #0x40
+ lsl r0, r0, #0xc
+ bl FUN_020235EC
+ add sp, #0x14
+ add r0, r6, #0x0
+ pop {r4-r7, pc}
+_020234F6:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0x1
+ bne _0202354C
+ cmp r7, #0x1
+ bne _0202354C
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0x4]
+ bl FUN_020229B8
+ mov r1, #0x0
+ mvn r1, r1
+ cmp r0, r1
+ ldr r0, _0202356C ; =0x000204A0
+ beq _0202352E
+ mov r1, #0x0
+ str r1, [r5, r0]
+ add r1, r0, #0x4
+ ldr r0, [sp, #0x8]
+ ldr r2, [sp, #0x10]
+ str r0, [r5, r1]
+ ldr r0, [r4, #0x4]
+ add r1, r6, #0x0
+ lsl r0, r0, #0xc
+ bl FUN_020235EC
+ add sp, #0x14
+ add r0, r6, #0x0
+ pop {r4-r7, pc}
+_0202352E:
+ mov r1, #0x1
+ str r1, [r5, r0]
+ add r1, r0, #0x4
+ ldr r0, [sp, #0x4]
+ ldr r2, [sp, #0x10]
+ str r0, [r5, r1]
+ ldr r0, [r4, #0x4]
+ add r1, r6, #0x0
+ add r0, #0x40
+ lsl r0, r0, #0xc
+ bl FUN_020235EC
+ add sp, #0x14
+ add r0, r6, #0x0
+ pop {r4-r7, pc}
+_0202354C:
+ ldr r0, [sp, #0x0]
+ mov r1, #0x2
+ str r1, [r0, #0x0]
+ ldr r0, _0202356C ; =0x000204A0
+ mov r1, #0x0
+ str r1, [r5, r0]
+ add r0, r0, #0x4
+ str r1, [r5, r0]
+ add r0, r6, #0x0
+ add sp, #0x14
+ pop {r4-r7, pc}
+ nop
+_02023564: .word 0x020EE6D8
+_02023568: .word 0x020EE6E0
+_0202356C: .word 0x000204A0
+
+ thumb_func_start FUN_02023570
+FUN_02023570: ; 0x02023570
+ push {r3-r5, lr}
+ bl OS_GetLockID
+ add r4, r0, #0x0
+ mov r0, #0x2
+ mvn r0, r0
+ cmp r4, r0
+ bne _02023584
+ bl ErrorHandling
+_02023584:
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ bl CARD_LockBackup
+ ldr r0, _020235C8 ; =0x00001302
+ bl CARD_IdentifyBackup
+ cmp r0, #0x0
+ beq _0202359A
+ ldr r5, _020235C8 ; =0x00001302
+ b _020235AA
+_0202359A:
+ ldr r0, _020235CC ; =0x00001202
+ bl CARD_IdentifyBackup
+ cmp r0, #0x0
+ beq _020235A8
+ ldr r5, _020235CC ; =0x00001202
+ b _020235AA
+_020235A8:
+ mov r5, #0x0
+_020235AA:
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ bl CARD_UnlockBackup
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ bl OS_ReleaseLockID
+ cmp r5, #0x0
+ beq _020235C2
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_020235C2:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ nop
+_020235C8: .word 0x00001302
+_020235CC: .word 0x00001202
+
+ thumb_func_start FUN_020235D0
+FUN_020235D0: ; 0x020235D0
+ push {r3-r5, lr}
+ bl FUN_02023668
+ add r5, r0, #0x0
+ add r4, sp, #0x0
+_020235DA:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020236E4
+ cmp r0, #0x0
+ beq _020235DA
+ ldr r0, [sp, #0x0]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020235EC
+FUN_020235EC: ; 0x020235EC
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ bl OS_GetLockID
+ add r4, r0, #0x0
+ mov r0, #0x2
+ mvn r0, r0
+ cmp r4, r0
+ bne _02023608
+ bl ErrorHandling
+_02023608:
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ bl CARD_LockBackup
+ mov r3, #0x0
+ str r3, [sp, #0x0]
+ mov r1, #0x1
+ str r1, [sp, #0x4]
+ mov r0, #0x6
+ str r0, [sp, #0x8]
+ str r1, [sp, #0xc]
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ str r3, [sp, #0x10]
+ bl CARDi_RequestStreamCommand
+ bl CARD_WaitBackupAsync
+ add r5, r0, #0x0
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ bl CARD_UnlockBackup
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ bl OS_ReleaseLockID
+ cmp r5, #0x0
+ bne _02023652
+ ldr r0, _02023658 ; =0x021C59C8
+ ldr r0, [r0, #0x0]
+ bl FUN_02016A18
+ mov r0, #0x1
+ bl FUN_02089D90
+_02023652:
+ add r0, r5, #0x0
+ add sp, #0x14
+ pop {r4-r7, pc}
+ .balign 4
+_02023658: .word 0x021C59C8
+
+ thumb_func_start FUN_0202365C
+FUN_0202365C: ; 0x0202365C
+ ldr r0, _02023664 ; =0x021C59C8
+ mov r1, #0x1
+ str r1, [r0, #0x4]
+ bx lr
+ .balign 4
+_02023664: .word 0x021C59C8
+
+ thumb_func_start FUN_02023668
+FUN_02023668: ; 0x02023668
+ push {r3-r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ bl OS_GetLockID
+ add r4, r0, #0x0
+ mov r0, #0x2
+ mvn r0, r0
+ cmp r4, r0
+ bne _02023684
+ bl ErrorHandling
+_02023684:
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ bl CARD_LockBackup
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ mov r1, #0x6
+ str r1, [sp, #0x8]
+ mov r1, #0x1
+ str r1, [sp, #0xc]
+ add r1, sp, #0x14
+ mov r2, #0x4
+ add r3, r0, #0x0
+ str r0, [sp, #0x10]
+ bl CARDi_RequestStreamCommand
+ cmp r0, #0x0
+ bne _020236B2
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_02023740
+_020236B2:
+ ldr r0, _020236DC ; =0x021C59C8
+ mov r1, #0x0
+ str r1, [r0, #0x4]
+ str r1, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ mov r0, #0x7
+ str r0, [sp, #0x8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ mov r0, #0x2
+ str r0, [sp, #0x10]
+ ldr r3, _020236E0 ; =FUN_0202365C
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ add r2, r7, #0x0
+ bl CARDi_RequestStreamCommand
+ add r0, r4, #0x0
+ add sp, #0x18
+ pop {r3-r7, pc}
+ .balign 4
+_020236DC: .word 0x021C59C8
+_020236E0: .word FUN_0202365C
+
+ thumb_func_start FUN_020236E4
+FUN_020236E4: ; 0x020236E4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _0202373C ; =0x021C59C8
+ add r4, r1, #0x0
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x1
+ bne _02023738
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ bl CARD_UnlockBackup
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ bl OS_ReleaseLockID
+ bl CARD_GetResultCode
+ cmp r0, #0x0
+ beq _02023714
+ cmp r0, #0x4
+ beq _0202371E
+ cmp r0, #0x6
+ beq _02023728
+ b _0202371A
+_02023714:
+ mov r0, #0x1
+ str r0, [r4, #0x0]
+ b _02023734
+_0202371A:
+ bl ErrorHandling
+_0202371E:
+ mov r1, #0x0
+ add r0, r5, #0x0
+ str r1, [r4, #0x0]
+ bl FUN_02023740
+_02023728:
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x1
+ bl FUN_02023740
+_02023734:
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02023738:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_0202373C: .word 0x021C59C8
+
+ thumb_func_start FUN_02023740
+FUN_02023740: ; 0x02023740
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ add r4, r1, #0x0
+ bl CARD_UnlockBackup
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ bl OS_ReleaseLockID
+ ldr r0, _02023768 ; =0x021C59C8
+ ldr r0, [r0, #0x0]
+ bl FUN_02016A18
+ mov r0, #0x1
+ add r1, r4, #0x0
+ bl FUN_0208A0B8
+ pop {r3-r5, pc}
+ .balign 4
+_02023768: .word 0x021C59C8
+
+ thumb_func_start FUN_0202376C
+FUN_0202376C: ; 0x0202376C
+ mov r0, #0x5c
+ bx lr
+
+ thumb_func_start FUN_02023770
+FUN_02023770: ; 0x02023770
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x5c
+ bl MIi_CpuClearFast
+ add r4, #0x10
+ add r0, r4, #0x0
+ bl FUN_02023840
+ pop {r4, pc}
+
+ thumb_func_start FUN_02023788
+FUN_02023788: ; 0x02023788
+ ldr r3, _02023790 ; =FUN_02022610
+ mov r1, #0x0
+ bx r3
+ nop
+_02023790: .word FUN_02022610
+
+ thumb_func_start FUN_02023794
+FUN_02023794: ; 0x02023794
+ push {r3, lr}
+ bl FUN_02023788
+ add r0, #0x10
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020237A0
+FUN_020237A0: ; 0x020237A0
+ push {r4, lr}
+ sub sp, #0x50
+ add r4, r0, #0x0
+ bl OS_GetOwnerRtcOffset
+ str r0, [r4, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x8
+ str r1, [r4, #0x4]
+ bl OS_GetMacAddress
+ add r0, sp, #0x0
+ bl OS_GetOwnerInfo
+ add r0, sp, #0x0
+ ldrb r1, [r0, #0x2]
+ strb r1, [r4, #0xe]
+ ldrb r0, [r0, #0x3]
+ strb r0, [r4, #0xf]
+ add sp, #0x50
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020237CC
+FUN_020237CC: ; 0x020237CC
+ push {r4, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ add r0, sp, #0x0
+ bl OS_GetMacAddress
+ mov r2, #0x0
+ add r3, sp, #0x0
+_020237DC:
+ add r0, r4, r2
+ ldrb r1, [r3, #0x0]
+ ldrb r0, [r0, #0x8]
+ cmp r1, r0
+ beq _020237EC
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r4, pc}
+_020237EC:
+ add r2, r2, #0x1
+ add r3, r3, #0x1
+ cmp r2, #0x6
+ blt _020237DC
+ mov r0, #0x1
+ add sp, #0x8
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020237FC
+FUN_020237FC: ; 0x020237FC
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl OS_GetOwnerRtcOffset
+ ldr r3, [r4, #0x0]
+ ldr r2, [r4, #0x4]
+ eor r0, r3
+ eor r1, r2
+ orr r0, r1
+ bne _02023814
+ mov r0, #0x1
+ pop {r4, pc}
+_02023814:
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_02023818
+FUN_02023818: ; 0x02023818
+ ldrb r0, [r0, #0xe]
+ bx lr
+
+ thumb_func_start FUN_0202381C
+FUN_0202381C: ; 0x0202381C
+ ldrb r0, [r0, #0xf]
+ bx lr
+
+ thumb_func_start FUN_02023820
+FUN_02023820: ; 0x02023820
+ add r0, #0x48
+ ldrb r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02023828
+FUN_02023828: ; 0x02023828
+ add r0, #0x48
+ strb r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02023830
+FUN_02023830: ; 0x02023830
+ ldr r0, [r0, #0x4c]
+ bx lr
+
+ thumb_func_start FUN_02023834
+FUN_02023834: ; 0x02023834
+ ldr r2, [r0, #0x4c]
+ cmp r2, #0x0
+ bne _0202383C
+ str r1, [r0, #0x4c]
+_0202383C:
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02023840
+FUN_02023840: ; 0x02023840
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x1
+ add r1, r4, #0x0
+ str r0, [r4, #0x0]
+ add r0, r4, #0x4
+ add r1, #0x14
+ bl FUN_0201265C
+ add r0, r4, #0x4
+ bl RTC_ConvertDateToDay
+ add r1, r4, #0x0
+ str r0, [r4, #0x20]
+ add r0, r4, #0x4
+ add r1, #0x14
+ bl RTC_ConvertDateTimeToSecond
+ str r0, [r4, #0x24]
+ str r1, [r4, #0x28]
+ mov r0, #0x0
+ str r0, [r4, #0x2c]
+ str r0, [r4, #0x30]
+ str r0, [r4, #0x34]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02023874
+FUN_02023874: ; 0x02023874
+ ldr r0, [r0, #0x34]
+ cmp r0, #0x0
+ beq _0202387E
+ mov r0, #0x1
+ bx lr
+_0202387E:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02023884
+FUN_02023884: ; 0x02023884
+ mov r2, #0x5a
+ ldr r3, [r0, #0x34]
+ lsl r2, r2, #0x4
+ cmp r3, r2
+ bls _02023890
+ str r2, [r0, #0x34]
+_02023890:
+ ldr r2, [r0, #0x34]
+ cmp r2, r1
+ bhs _0202389C
+ mov r1, #0x0
+ str r1, [r0, #0x34]
+ bx lr
+_0202389C:
+ sub r1, r2, r1
+ str r1, [r0, #0x34]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020238A4
+FUN_020238A4: ; 0x020238A4
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x5a
+ lsl r0, r0, #0x4
+ add r1, r4, #0x0
+ str r0, [r4, #0x34]
+ add r0, r4, #0x4
+ add r1, #0x14
+ bl FUN_0201265C
+ add r0, r4, #0x4
+ bl RTC_ConvertDateToDay
+ str r0, [r4, #0x20]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020238C4
+FUN_020238C4: ; 0x020238C4
+ mov r0, #0x2c
+ bx lr
+
+ thumb_func_start FUN_020238C8
+FUN_020238C8: ; 0x020238C8
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x2c
+ bl MIi_CpuClearFast
+ add r0, r4, #0x0
+ bl FUN_02024F50
+ add r0, r4, #0x4
+ bl FUN_02023948
+ add r0, r4, #0x0
+ add r0, #0x24
+ bl FUN_02028910
+ add r4, #0x26
+ add r0, r4, #0x0
+ bl FUN_02029E48
+ pop {r4, pc}
+
+ thumb_func_start FUN_020238F4
+FUN_020238F4: ; 0x020238F4
+ push {r3, lr}
+ mov r1, #0x1
+ bl FUN_02022610
+ add r0, r0, #0x4
+ pop {r3, pc}
+
+ thumb_func_start LoadPlayerDataAddress
+LoadPlayerDataAddress: ; 0x02023900
+ ldr r3, _02023908 ; =FUN_02022610
+ mov r1, #0x1
+ bx r3
+ nop
+_02023908: .word FUN_02022610
+
+ thumb_func_start FUN_0202390C
+FUN_0202390C: ; 0x0202390C
+ push {r3, lr}
+ mov r1, #0x1
+ bl FUN_02022610
+ add r0, #0x24
+ pop {r3, pc}
+
+ thumb_func_start FUN_02023918
+FUN_02023918: ; 0x02023918
+ push {r3, lr}
+ mov r1, #0x1
+ bl FUN_02022610
+ add r0, #0x26
+ pop {r3, pc}
+
+ thumb_func_start FUN_02023924
+FUN_02023924: ; 0x02023924
+ mov r0, #0x20
+ bx lr
+
+ thumb_func_start FUN_02023928
+FUN_02023928: ; 0x02023928
+ push {r4, lr}
+ mov r1, #0x20
+ bl FUN_02016998
+ add r4, r0, #0x0
+ bl FUN_02023948
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202393C
+FUN_0202393C: ; 0x0202393C
+ ldr r3, _02023944 ; =MI_CpuCopy8
+ mov r2, #0x20
+ bx r3
+ nop
+_02023944: .word MI_CpuCopy8
+
+ thumb_func_start FUN_02023948
+FUN_02023948: ; 0x02023948
+ push {r4, lr}
+ mov r1, #0x0
+ mov r2, #0x20
+ add r4, r0, #0x0
+ bl memset
+ mov r0, #0x2
+ strb r0, [r4, #0x19]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202395C
+FUN_0202395C: ; 0x0202395C
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl StringLength
+ cmp r0, #0x8
+ blt _02023970
+ bl ErrorHandling
+_02023970:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl StringCopy
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202397C
+FUN_0202397C: ; 0x0202397C
+ ldr r3, _02023988 ; =FUN_02021EF0
+ add r2, r0, #0x0
+ add r0, r1, #0x0
+ add r1, r2, #0x0
+ mov r2, #0x8
+ bx r3
+ .balign 4
+_02023988: .word FUN_02021EF0
+
+ thumb_func_start FUN_0202398C
+FUN_0202398C: ; 0x0202398C
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02023990
+FUN_02023990: ; 0x02023990
+ ldr r3, _0202399C ; =FUN_02021E28
+ add r2, r0, #0x0
+ add r0, r1, #0x0
+ add r1, r2, #0x0
+ bx r3
+ nop
+_0202399C: .word FUN_02021E28
+
+ thumb_func_start FUN_020239A0
+FUN_020239A0: ; 0x020239A0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r0, #0x8
+ bl FUN_020219F4
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02023990
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020239B8
+FUN_020239B8: ; 0x020239B8
+ str r1, [r0, #0x10]
+ bx lr
+
+ thumb_func_start FUN_020239BC
+FUN_020239BC: ; 0x020239BC
+ ldr r0, [r0, #0x10]
+ bx lr
+
+ thumb_func_start FUN_020239C0
+FUN_020239C0: ; 0x020239C0
+ ldr r0, [r0, #0x10]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bx lr
+
+ thumb_func_start FUN_020239C8
+FUN_020239C8: ; 0x020239C8
+ strb r1, [r0, #0x18]
+ bx lr
+
+ thumb_func_start FUN_020239CC
+FUN_020239CC: ; 0x020239CC
+ ldrb r0, [r0, #0x18]
+ bx lr
+
+ thumb_func_start FUN_020239D0
+FUN_020239D0: ; 0x020239D0
+ ldrb r3, [r0, #0x1a]
+ mov r0, #0x1
+ add r2, r0, #0x0
+ lsl r2, r1
+ add r1, r3, #0x0
+ tst r1, r2
+ bne _020239E0
+ mov r0, #0x0
+_020239E0:
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020239E4
+FUN_020239E4: ; 0x020239E4
+ ldrb r3, [r0, #0x1a]
+ mov r2, #0x1
+ lsl r2, r1
+ add r1, r3, #0x0
+ orr r1, r2
+ strb r1, [r0, #0x1a]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020239F4
+FUN_020239F4: ; 0x020239F4
+ ldrb r3, [r0, #0x1a]
+ mov r2, #0x0
+ cmp r3, #0x0
+ beq _02023A0A
+ mov r0, #0x1
+_020239FE:
+ add r1, r3, #0x0
+ tst r1, r0
+ beq _02023A06
+ add r2, r2, #0x1
+_02023A06:
+ lsr r3, r3, #0x1
+ bne _020239FE
+_02023A0A:
+ add r0, r2, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02023A10
+FUN_02023A10: ; 0x02023A10
+ ldr r0, [r0, #0x14]
+ bx lr
+
+ thumb_func_start FUN_02023A14
+FUN_02023A14: ; 0x02023A14
+ ldr r2, _02023A24 ; =0x000F423F
+ cmp r1, r2
+ bls _02023A1C
+ add r1, r2, #0x0
+_02023A1C:
+ str r1, [r0, #0x14]
+ add r0, r1, #0x0
+ bx lr
+ nop
+_02023A24: .word 0x000F423F
+
+ thumb_func_start FUN_02023A28
+FUN_02023A28: ; 0x02023A28
+ ldrb r0, [r0, #0x1b]
+ bx lr
+
+ thumb_func_start FUN_02023A2C
+FUN_02023A2C: ; 0x02023A2C
+ strb r1, [r0, #0x1b]
+ bx lr
+
+ thumb_func_start FUN_02023A30
+FUN_02023A30: ; 0x02023A30
+ ldr r2, _02023A50 ; =0x000F423F
+ cmp r1, r2
+ bls _02023A3A
+ str r2, [r0, #0x14]
+ b _02023A40
+_02023A3A:
+ ldr r2, [r0, #0x14]
+ add r1, r2, r1
+ str r1, [r0, #0x14]
+_02023A40:
+ ldr r2, [r0, #0x14]
+ ldr r1, _02023A50 ; =0x000F423F
+ cmp r2, r1
+ bls _02023A4A
+ str r1, [r0, #0x14]
+_02023A4A:
+ ldr r0, [r0, #0x14]
+ bx lr
+ nop
+_02023A50: .word 0x000F423F
+
+ thumb_func_start FUN_02023A54
+FUN_02023A54: ; 0x02023A54
+ ldr r2, [r0, #0x14]
+ cmp r2, r1
+ bhs _02023A5E
+ mov r1, #0x0
+ b _02023A60
+_02023A5E:
+ sub r1, r2, r1
+_02023A60:
+ str r1, [r0, #0x14]
+ ldr r0, [r0, #0x14]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02023A68
+FUN_02023A68: ; 0x02023A68
+ ldrb r0, [r0, #0x1c]
+ bx lr
+
+ thumb_func_start FUN_02023A6C
+FUN_02023A6C: ; 0x02023A6C
+ strb r1, [r0, #0x1c]
+ bx lr
+
+ thumb_func_start FUN_02023A70
+FUN_02023A70: ; 0x02023A70
+ ldrb r0, [r0, #0x19]
+ bx lr
+
+ thumb_func_start FUN_02023A74
+FUN_02023A74: ; 0x02023A74
+ strb r1, [r0, #0x19]
+ bx lr
+
+ thumb_func_start FUN_02023A78
+FUN_02023A78: ; 0x02023A78
+ ldrb r2, [r0, #0x1d]
+ mov r1, #0x1
+ bic r2, r1
+ mov r1, #0x1
+ orr r1, r2
+ strb r1, [r0, #0x1d]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02023A88
+FUN_02023A88: ; 0x02023A88
+ ldrb r0, [r0, #0x1d]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ bx lr
+
+ thumb_func_start FUN_02023A90
+FUN_02023A90: ; 0x02023A90
+ ldrb r2, [r0, #0x1d]
+ mov r1, #0x2
+ orr r1, r2
+ strb r1, [r0, #0x1d]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02023A9C
+FUN_02023A9C: ; 0x02023A9C
+ ldrb r0, [r0, #0x1d]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ bx lr
+
+ thumb_func_start FUN_02023AA4
+FUN_02023AA4: ; 0x02023AA4
+ push {r3-r5, lr}
+ mov r2, #0x7
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl StringNotEqualN
+ cmp r0, #0x0
+ bne _02023AC0
+ ldr r1, [r5, #0x10]
+ ldr r0, [r4, #0x10]
+ cmp r1, r0
+ bne _02023AC0
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02023AC0:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02023AC4
+FUN_02023AC4: ; 0x02023AC4
+ mov r0, #0x20
+ bx lr
+
+ thumb_func_start FUN_02023AC8
+FUN_02023AC8: ; 0x02023AC8
+ mov r0, #0x20
+ bx lr
+
+ thumb_func_start FUN_02023ACC
+FUN_02023ACC: ; 0x02023ACC
+ ldr r3, _02023AD4 ; =MI_CpuCopy8
+ mov r2, #0x20
+ bx r3
+ nop
+_02023AD4: .word MI_CpuCopy8
+
+ thumb_func_start FUN_02023AD8
+FUN_02023AD8: ; 0x02023AD8
+ ldr r3, _02023AE0 ; =memset
+ mov r1, #0x0
+ mov r2, #0x20
+ bx r3
+ .balign 4
+_02023AE0: .word memset
+
+ thumb_func_start FUN_02023AE4
+FUN_02023AE4: ; 0x02023AE4
+ ldr r3, _02023AF0 ; =FUN_02021E8C
+ add r2, r0, #0x0
+ add r0, r1, #0x0
+ add r1, r2, #0x0
+ mov r2, #0xc
+ bx r3
+ .balign 4
+_02023AF0: .word FUN_02021E8C
+
+ thumb_func_start FUN_02023AF4
+FUN_02023AF4: ; 0x02023AF4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r0, #0x18
+ bl FUN_020219F4
+ add r1, r5, #0x0
+ add r4, r0, #0x0
+ bl FUN_02021E28
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02023B0C
+FUN_02023B0C: ; 0x02023B0C
+ mov r2, #0x0
+ cmp r1, #0xc
+ bhi _02023B9E
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02023B1E: ; jump table (using 16-bit offset)
+ .short _02023B9E - _02023B1E - 2; case 0
+ .short _02023B38 - _02023B1E - 2; case 1
+ .short _02023B3C - _02023B1E - 2; case 2
+ .short _02023B40 - _02023B1E - 2; case 3
+ .short _02023B44 - _02023B1E - 2; case 4
+ .short _02023B4C - _02023B1E - 2; case 5
+ .short _02023B52 - _02023B1E - 2; case 6
+ .short _02023B66 - _02023B1E - 2; case 7
+ .short _02023B6C - _02023B1E - 2; case 8
+ .short _02023B80 - _02023B1E - 2; case 9
+ .short _02023B88 - _02023B1E - 2; case 10
+ .short _02023B90 - _02023B1E - 2; case 11
+ .short _02023B98 - _02023B1E - 2; case 12
+_02023B38:
+ ldrb r2, [r0, #0x1a]
+ b _02023B9E
+_02023B3C:
+ ldrb r2, [r0, #0x1b]
+ b _02023B9E
+_02023B40:
+ ldrh r2, [r0, #0x18]
+ b _02023B9E
+_02023B44:
+ ldrb r0, [r0, #0x1e]
+ lsl r0, r0, #0x1f
+ lsr r2, r0, #0x1f
+ b _02023B9E
+_02023B4C:
+ mov r1, #0x1c
+ ldrsb r2, [r0, r1]
+ b _02023B9E
+_02023B52:
+ mov r1, #0x1c
+ ldrsb r0, [r0, r1]
+ cmp r0, #0x0
+ ble _02023B5E
+ mov r2, #0x1
+ b _02023B9E
+_02023B5E:
+ bge _02023B9E
+ add r2, r1, #0x0
+ sub r2, #0x1d
+ b _02023B9E
+_02023B66:
+ mov r1, #0x1d
+ ldrsb r2, [r0, r1]
+ b _02023B9E
+_02023B6C:
+ mov r1, #0x1d
+ ldrsb r0, [r0, r1]
+ cmp r0, #0x0
+ ble _02023B78
+ mov r2, #0x1
+ b _02023B9E
+_02023B78:
+ bge _02023B9E
+ add r2, r1, #0x0
+ sub r2, #0x1e
+ b _02023B9E
+_02023B80:
+ ldrb r0, [r0, #0x1e]
+ lsl r0, r0, #0x1c
+ lsr r2, r0, #0x1f
+ b _02023B9E
+_02023B88:
+ ldrb r0, [r0, #0x1e]
+ lsl r0, r0, #0x1d
+ lsr r2, r0, #0x1f
+ b _02023B9E
+_02023B90:
+ ldrb r0, [r0, #0x1e]
+ lsl r0, r0, #0x1e
+ lsr r2, r0, #0x1f
+ b _02023B9E
+_02023B98:
+ ldrb r0, [r0, #0x1e]
+ lsl r0, r0, #0x1b
+ lsr r2, r0, #0x1f
+_02023B9E:
+ add r0, r2, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02023BA4
+FUN_02023BA4: ; 0x02023BA4
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r4, r0, #0x0
+ cmp r5, #0x1
+ blt _02023BB2
+ bl ErrorHandling
+_02023BB2:
+ add r0, r4, #0x0
+ mov r1, #0xd
+ bl FUN_02022610
+ add r4, r0, #0x0
+ lsl r5, r5, #0x5
+ add r0, r4, r5
+ mov r1, #0x1
+ bl FUN_02023B0C
+ cmp r0, #0x0
+ beq _02023BCE
+ add r0, r4, r5
+ pop {r3-r5, pc}
+_02023BCE:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02023BD4
+FUN_02023BD4: ; 0x02023BD4
+ push {r4, lr}
+ add r4, r1, #0x0
+ mov r1, #0xd
+ bl FUN_02022610
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02023ACC
+ pop {r4, pc}
+
+ thumb_func_start FUN_02023BE8
+FUN_02023BE8: ; 0x02023BE8
+ push {r3, lr}
+ cmp r1, #0x5
+ bhs _02023BF6
+ ldr r2, _02023C00 ; =0x02105BD4
+ lsl r0, r1, #0x5
+ add r0, r2, r0
+ pop {r3, pc}
+_02023BF6:
+ mov r1, #0xd
+ bl FUN_02022610
+ pop {r3, pc}
+ nop
+_02023C00: .word 0x02105BD4
+
+ thumb_func_start FUN_02023C04
+FUN_02023C04: ; 0x02023C04
+ push {r4-r6, lr}
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ cmp r5, #0x5
+ bhs _02023C2C
+ ldr r2, _02023C3C ; =0x0000013A
+ mov r0, #0x0
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ add r5, #0x38
+ add r6, r0, #0x0
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_0200A8E0
+ add r0, r6, #0x0
+ bl FUN_0200A8B8
+ pop {r4-r6, pc}
+_02023C2C:
+ mov r1, #0x0
+ bl FUN_02023BA4
+ add r1, r4, #0x0
+ bl FUN_02023AE4
+ pop {r4-r6, pc}
+ nop
+_02023C3C: .word 0x0000013A
+
+ thumb_func_start FUN_02023C40
+FUN_02023C40: ; 0x02023C40
+ mov r0, #0x1e
+ lsl r0, r0, #0x4
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02023C48
+FUN_02023C48: ; 0x02023C48
+ push {r4, lr}
+ mov r2, #0x1e
+ add r4, r0, #0x0
+ mov r1, #0x0
+ lsl r2, r2, #0x4
+ bl memset
+ add r0, r4, #0x0
+ bl FUN_020669A0
+ add r0, r4, #0x0
+ add r0, #0xec
+ bl FUN_020669A0
+ mov r0, #0x76
+ mov r1, #0x0
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ add r0, r0, #0x4
+ strb r1, [r4, r0]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02023C74
+FUN_02023C74: ; 0x02023C74
+ mov r2, #0xec
+ mul r2, r1
+ add r0, r0, r2
+ bx lr
+
+ thumb_func_start FUN_02023C7C
+FUN_02023C7C: ; 0x02023C7C
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02023C80
+FUN_02023C80: ; 0x02023C80
+ add r0, #0x88
+ bx lr
+
+ thumb_func_start FUN_02023C84
+FUN_02023C84: ; 0x02023C84
+ add r0, #0xe8
+ ldr r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02023C8C
+FUN_02023C8C: ; 0x02023C8C
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02023C90
+FUN_02023C90: ; 0x02023C90
+ mov r1, #0x76
+ lsl r1, r1, #0x2
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start FUN_02023C98
+FUN_02023C98: ; 0x02023C98
+ mov r1, #0x77
+ lsl r1, r1, #0x2
+ ldrb r0, [r0, r1]
+ bx lr
+
+ thumb_func_start FUN_02023CA0
+FUN_02023CA0: ; 0x02023CA0
+ add r0, #0xe8
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02023CA8
+FUN_02023CA8: ; 0x02023CA8
+ add r2, r0, #0x0
+ add r2, #0xe8
+ ldr r2, [r2, #0x0]
+ add r0, #0xe8
+ add r1, r2, r1
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02023CB8
+FUN_02023CB8: ; 0x02023CB8
+ mov r2, #0x76
+ lsl r2, r2, #0x2
+ str r1, [r0, r2]
+ bx lr
+
+ thumb_func_start FUN_02023CC0
+FUN_02023CC0: ; 0x02023CC0
+ mov r2, #0x77
+ lsl r2, r2, #0x2
+ strb r1, [r0, r2]
+ bx lr
+
+ thumb_func_start FUN_02023CC8
+FUN_02023CC8: ; 0x02023CC8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r1, #0xc
+ mov r2, #0x0
+ bl FUN_020672BC
+ add r5, #0xec
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0xc
+ mov r2, #0x0
+ bl FUN_020672BC
+ cmp r4, r0
+ beq _02023CEA
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02023CEA:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02023CF0
+FUN_02023CF0: ; 0x02023CF0
+ push {r3-r4}
+ add r4, r0, #0x0
+ add r3, r1, #0x0
+ mov r2, #0x1d
+_02023CF8:
+ ldmia r3!, {r0-r1}
+ stmia r4!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _02023CF8
+ ldr r0, [r3, #0x0]
+ str r0, [r4, #0x0]
+ pop {r3-r4}
+ bx lr
+
+ thumb_func_start FUN_02023D08
+FUN_02023D08: ; 0x02023D08
+ push {r3-r4}
+ mov r1, #0x0
+ add r2, r0, #0x0
+ add r4, r1, #0x0
+_02023D10:
+ add r1, r1, #0x1
+ strh r4, [r2, #0x38]
+ add r2, r2, #0x2
+ cmp r1, #0x8
+ blt _02023D10
+ add r3, r0, #0x0
+ mov r2, #0x0
+_02023D1E:
+ add r1, r3, #0x0
+ add r1, #0x48
+ add r4, r4, #0x1
+ add r3, r3, #0x2
+ strh r2, [r1, #0x0]
+ cmp r4, #0xb
+ blt _02023D1E
+ ldr r1, _02023D38 ; =0x0000FFFF
+ strh r1, [r0, #0x38]
+ add r0, #0x48
+ strh r1, [r0, #0x0]
+ pop {r3-r4}
+ bx lr
+ .balign 4
+_02023D38: .word 0x0000FFFF
+
+ thumb_func_start FUN_02023D3C
+FUN_02023D3C: ; 0x02023D3C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_020669A0
+ add r0, r4, #0x0
+ mov r1, #0x0
+ add r0, #0xe8
+ add r4, #0x88
+ str r1, [r0, #0x0]
+ add r0, r4, #0x0
+ bl FUN_02023D08
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02023D58
+FUN_02023D58: ; 0x02023D58
+ ldr r3, _02023D60 ; =FUN_02022610
+ mov r1, #0x8
+ bx r3
+ nop
+_02023D60: .word FUN_02022610
+
+ thumb_func_start FUN_02023D64
+FUN_02023D64: ; 0x02023D64
+ mov r0, #0x4f
+ lsl r0, r0, #0x2
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02023D6C
+FUN_02023D6C: ; 0x02023D6C
+ push {r4, lr}
+ mov r1, #0x4f
+ lsl r1, r1, #0x2
+ bl FUN_02016998
+ add r4, r0, #0x0
+ bl FUN_02024378
+ add r0, r4, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_02023D80
+FUN_02023D80: ; 0x02023D80
+ ldr r3, _02023D88 ; =MI_CpuCopy8
+ mov r2, #0x4f
+ lsl r2, r2, #0x2
+ bx r3
+ .balign 4
+_02023D88: .word MI_CpuCopy8
+
+ thumb_func_start FUN_02023D8C
+FUN_02023D8C: ; 0x02023D8C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _02023DE8 ; =0x000001A6
+ add r4, r1, #0x0
+ cmp r4, r0
+ beq _02023DA2
+ add r0, r0, #0x1
+ cmp r4, r0
+ beq _02023DA2
+ bl ErrorHandling
+_02023DA2:
+ lsl r1, r4, #0x10
+ add r0, r5, #0x0
+ lsr r1, r1, #0x10
+ bl FUN_020245F0
+ cmp r0, #0x0
+ bne _02023DB4
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_02023DB4:
+ ldr r0, _02023DE8 ; =0x000001A6
+ cmp r4, r0
+ bne _02023DBE
+ sub r0, #0x9e
+ b _02023DC0
+_02023DBE:
+ sub r0, #0x9d
+_02023DC0:
+ add r0, r5, r0
+ ldrb r1, [r0, #0x0]
+ mov r2, #0x1
+ add r0, r1, #0x0
+ tst r0, r2
+ bne _02023DCE
+ mov r2, #0x0
+_02023DCE:
+ mov r0, #0x2
+ tst r0, r1
+ beq _02023DD8
+ mov r0, #0x1
+ b _02023DDA
+_02023DD8:
+ mov r0, #0x0
+_02023DDA:
+ cmp r2, r0
+ bne _02023DE2
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02023DE2:
+ mov r0, #0x2
+ pop {r3-r5, pc}
+ nop
+_02023DE8: .word 0x000001A6
+
+ thumb_func_start FUN_02023DEC
+FUN_02023DEC: ; 0x02023DEC
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ ldr r0, _02023E6C ; =0x000001A6
+ add r6, r1, #0x0
+ add r5, r2, #0x0
+ cmp r6, r0
+ beq _02023E04
+ add r0, r0, #0x1
+ cmp r6, r0
+ beq _02023E04
+ bl ErrorHandling
+_02023E04:
+ lsl r1, r6, #0x10
+ add r0, r7, #0x0
+ lsr r1, r1, #0x10
+ bl FUN_020245F0
+ cmp r0, #0x0
+ bne _02023E16
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02023E16:
+ ldr r0, _02023E6C ; =0x000001A6
+ cmp r6, r0
+ bne _02023E20
+ sub r0, #0x9e
+ b _02023E22
+_02023E20:
+ sub r0, #0x9d
+_02023E22:
+ add r4, r7, r0
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ bl FUN_02023D8C
+ mov r6, #0x0
+ cmp r0, #0x0
+ bls _02023E66
+ mov r1, #0x1
+_02023E34:
+ add r2, r6, #0x1
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ sub r2, r2, #0x1
+ lsl r2, r2, #0x10
+ lsr r3, r2, #0x10
+ add r7, r3, #0x0
+ mov r2, #0x7
+ asr r3, r3, #0x3
+ and r7, r2
+ add r2, r1, #0x0
+ ldrb r3, [r4, r3]
+ lsl r2, r7
+ tst r2, r3
+ beq _02023E56
+ add r2, r1, #0x0
+ b _02023E58
+_02023E56:
+ mov r2, #0x0
+_02023E58:
+ cmp r2, r5
+ bne _02023E60
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02023E60:
+ add r6, r6, #0x1
+ cmp r6, r0
+ blo _02023E34
+_02023E66:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ nop
+_02023E6C: .word 0x000001A6
+
+ thumb_func_start FUN_02023E70
+FUN_02023E70: ; 0x02023E70
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ ldr r0, _02023F28 ; =0x000001A6
+ add r5, r1, #0x0
+ add r7, r2, #0x0
+ cmp r5, r0
+ beq _02023E88
+ add r0, r0, #0x1
+ cmp r5, r0
+ beq _02023E88
+ bl ErrorHandling
+_02023E88:
+ lsl r2, r7, #0x18
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ lsr r2, r2, #0x18
+ bl FUN_02023DEC
+ cmp r0, #0x0
+ bne _02023F26
+ ldr r0, _02023F28 ; =0x000001A6
+ cmp r5, r0
+ bne _02023EA2
+ sub r0, #0x9e
+ b _02023EA4
+_02023EA2:
+ sub r0, #0x9d
+_02023EA4:
+ add r4, r6, r0
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_02023D8C
+ add r5, r0, #0x0
+ cmp r5, #0x2
+ bge _02023F26
+ add r0, r5, #0x1
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ lsl r0, r7, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x2
+ blo _02023EC6
+ bl ErrorHandling
+_02023EC6:
+ sub r0, r6, #0x1
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ add r2, r1, #0x0
+ mov r0, #0x7
+ and r2, r0
+ asr r1, r1, #0x3
+ mov r3, #0x1
+ lsl r3, r2
+ ldrb r0, [r4, r1]
+ mvn r3, r3
+ and r0, r3
+ strb r0, [r4, r1]
+ lsl r0, r7, #0x18
+ lsr r6, r0, #0x18
+ add r0, r6, #0x0
+ ldrb r3, [r4, r1]
+ lsl r0, r2
+ orr r0, r3
+ strb r0, [r4, r1]
+ cmp r5, #0x0
+ bne _02023F26
+ add r0, r5, #0x2
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ cmp r6, #0x2
+ blo _02023F00
+ bl ErrorHandling
+_02023F00:
+ sub r0, r5, #0x1
+ lsl r0, r0, #0x10
+ lsr r2, r0, #0x10
+ mov r0, #0x7
+ add r1, r2, #0x0
+ and r1, r0
+ asr r0, r2, #0x3
+ mov r2, #0x1
+ lsl r2, r1
+ ldrb r3, [r4, r0]
+ mvn r2, r2
+ and r2, r3
+ strb r2, [r4, r0]
+ add r2, r6, #0x0
+ ldrb r3, [r4, r0]
+ lsl r2, r1
+ add r1, r3, #0x0
+ orr r1, r2
+ strb r1, [r4, r0]
+_02023F26:
+ pop {r3-r7, pc}
+ .balign 4
+_02023F28: .word 0x000001A6
+
+ thumb_func_start FUN_02023F2C
+FUN_02023F2C: ; 0x02023F2C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r0, #0x67
+ add r4, r1, #0x0
+ lsl r0, r0, #0x2
+ cmp r4, r0
+ beq _02023F44
+ add r0, r0, #0x1
+ cmp r4, r0
+ beq _02023F44
+ bl ErrorHandling
+_02023F44:
+ lsl r1, r4, #0x10
+ add r0, r5, #0x0
+ lsr r1, r1, #0x10
+ bl FUN_020245F0
+ cmp r0, #0x0
+ bne _02023F56
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_02023F56:
+ mov r0, #0x67
+ lsl r0, r0, #0x2
+ cmp r4, r0
+ bne _02023F62
+ sub r0, #0x92
+ b _02023F64
+_02023F62:
+ sub r0, #0x91
+_02023F64:
+ add r1, r5, r0
+ mov r0, #0x0
+ mov r3, #0x3
+_02023F6A:
+ lsl r2, r0, #0x10
+ lsr r5, r2, #0x10
+ asr r2, r5, #0x2
+ ldrb r4, [r1, r2]
+ lsl r2, r5, #0x1e
+ lsr r2, r2, #0x1d
+ asr r4, r2
+ add r2, r4, #0x0
+ and r2, r3
+ cmp r2, #0x3
+ beq _02023F86
+ add r0, r0, #0x1
+ cmp r0, #0x3
+ blt _02023F6A
+_02023F86:
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02023F88
+FUN_02023F88: ; 0x02023F88
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ mov r0, #0x67
+ add r5, r1, #0x0
+ lsl r0, r0, #0x2
+ add r4, r2, #0x0
+ cmp r5, r0
+ beq _02023FA2
+ add r0, r0, #0x1
+ cmp r5, r0
+ beq _02023FA2
+ bl ErrorHandling
+_02023FA2:
+ lsl r1, r5, #0x10
+ add r0, r6, #0x0
+ lsr r1, r1, #0x10
+ bl FUN_020245F0
+ cmp r0, #0x0
+ bne _02023FB4
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02023FB4:
+ mov r0, #0x67
+ lsl r0, r0, #0x2
+ cmp r5, r0
+ bne _02023FC0
+ sub r0, #0x92
+ b _02023FC2
+_02023FC0:
+ sub r0, #0x91
+_02023FC2:
+ add r1, r6, r0
+ mov r0, #0x0
+ mov r3, #0x3
+_02023FC8:
+ lsl r2, r0, #0x10
+ lsr r6, r2, #0x10
+ asr r2, r6, #0x2
+ ldrb r5, [r1, r2]
+ lsl r2, r6, #0x1e
+ lsr r2, r2, #0x1d
+ asr r5, r2
+ add r2, r5, #0x0
+ and r2, r3
+ cmp r2, r4
+ bne _02023FE2
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02023FE2:
+ add r0, r0, #0x1
+ cmp r0, #0x3
+ blt _02023FC8
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02023FEC
+FUN_02023FEC: ; 0x02023FEC
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ mov r0, #0x67
+ add r5, r1, #0x0
+ lsl r0, r0, #0x2
+ add r7, r2, #0x0
+ cmp r5, r0
+ beq _02024006
+ add r0, r0, #0x1
+ cmp r5, r0
+ beq _02024006
+ bl ErrorHandling
+_02024006:
+ lsl r2, r7, #0x18
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ lsr r2, r2, #0x18
+ bl FUN_02023F88
+ cmp r0, #0x0
+ bne _02024064
+ mov r0, #0x67
+ lsl r0, r0, #0x2
+ cmp r5, r0
+ bne _02024022
+ sub r0, #0x92
+ b _02024024
+_02024022:
+ sub r0, #0x91
+_02024024:
+ add r4, r6, r0
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_02023F2C
+ add r5, r0, #0x0
+ cmp r5, #0x3
+ bge _02024064
+ lsl r0, r7, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x4
+ blo _02024040
+ bl ErrorHandling
+_02024040:
+ lsl r0, r5, #0x10
+ lsr r2, r0, #0x10
+ lsl r0, r2, #0x1e
+ lsr r1, r0, #0x1d
+ asr r0, r2, #0x2
+ mov r2, #0x3
+ lsl r2, r1
+ ldrb r3, [r4, r0]
+ mvn r2, r2
+ and r2, r3
+ strb r2, [r4, r0]
+ lsl r2, r7, #0x18
+ lsr r2, r2, #0x18
+ ldrb r3, [r4, r0]
+ lsl r2, r1
+ add r1, r3, #0x0
+ orr r1, r2
+ strb r1, [r4, r0]
+_02024064:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02024068
+FUN_02024068: ; 0x02024068
+ push {r4-r6, lr}
+ add r6, r2, #0x0
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r6, #0x4
+ blo _02024078
+ bl ErrorHandling
+_02024078:
+ cmp r4, #0xf
+ bls _02024080
+ bl ErrorHandling
+_02024080:
+ cmp r6, #0x2
+ bhs _0202409E
+ lsl r0, r6, #0x2
+ add r0, #0x18
+ mov r1, #0xf
+ lsl r1, r0
+ ldr r2, [r5, #0x40]
+ mvn r1, r1
+ and r2, r1
+ add r1, r4, #0x0
+ lsl r1, r0
+ add r0, r2, #0x0
+ orr r0, r1
+ str r0, [r5, #0x40]
+ pop {r4-r6, pc}
+_0202409E:
+ sub r0, r6, #0x2
+ lsl r0, r0, #0x18
+ add r1, r5, #0x0
+ lsr r0, r0, #0x16
+ add r1, #0x80
+ ldr r2, [r1, #0x0]
+ add r0, #0x18
+ mov r1, #0xf
+ lsl r1, r0
+ mvn r1, r1
+ and r2, r1
+ add r1, r5, #0x0
+ add r1, #0x80
+ str r2, [r1, #0x0]
+ add r1, r5, #0x0
+ add r1, #0x80
+ ldr r2, [r1, #0x0]
+ add r1, r4, #0x0
+ lsl r1, r0
+ add r0, r2, #0x0
+ orr r0, r1
+ add r5, #0x80
+ str r0, [r5, #0x0]
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020240D0
+FUN_020240D0: ; 0x020240D0
+ push {r3-r6}
+ mov r3, #0xf
+ mov r1, #0x0
+ add r4, r3, #0x0
+_020240D8:
+ lsl r2, r1, #0x18
+ lsr r6, r2, #0x18
+ cmp r6, #0x2
+ bhs _020240EE
+ lsl r2, r6, #0x2
+ ldr r5, [r0, #0x40]
+ add r2, #0x18
+ lsr r5, r2
+ add r2, r5, #0x0
+ and r2, r4
+ b _02024102
+_020240EE:
+ add r2, r0, #0x0
+ add r2, #0x80
+ ldr r5, [r2, #0x0]
+ sub r2, r6, #0x2
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x16
+ add r2, #0x18
+ lsr r5, r2
+ add r2, r5, #0x0
+ and r2, r3
+_02024102:
+ cmp r2, #0xf
+ beq _0202410C
+ add r1, r1, #0x1
+ cmp r1, #0x4
+ blt _020240D8
+_0202410C:
+ add r0, r1, #0x0
+ pop {r3-r6}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02024114
+FUN_02024114: ; 0x02024114
+ push {r4-r7}
+ mov r2, #0xf
+ mov r6, #0x0
+ add r3, r2, #0x0
+_0202411C:
+ lsl r4, r6, #0x18
+ lsr r5, r4, #0x18
+ cmp r5, #0x2
+ bhs _02024134
+ ldr r7, [r0, #0x40]
+ lsl r4, r5, #0x2
+ add r4, #0x18
+ add r5, r7, #0x0
+ lsr r5, r4
+ add r4, r5, #0x0
+ and r4, r3
+ b _02024146
+_02024134:
+ add r4, r0, #0x0
+ sub r5, r5, #0x2
+ add r4, #0x80
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x16
+ ldr r4, [r4, #0x0]
+ add r5, #0x18
+ lsr r4, r5
+ and r4, r2
+_02024146:
+ cmp r1, r4
+ bne _02024150
+ mov r0, #0x1
+ pop {r4-r7}
+ bx lr
+_02024150:
+ add r6, r6, #0x1
+ cmp r6, #0x4
+ blt _0202411C
+ mov r0, #0x0
+ pop {r4-r7}
+ bx lr
+
+ thumb_func_start FUN_0202415C
+FUN_0202415C: ; 0x0202415C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r0, r2, #0x0
+ mov r1, #0x70
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ ldr r0, _02024198 ; =0x00000182
+ cmp r6, r0
+ bne _02024196
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02024114
+ cmp r0, #0x0
+ bne _02024196
+ add r0, r5, #0x0
+ bl FUN_020240D0
+ add r2, r0, #0x0
+ lsl r2, r2, #0x18
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ lsr r2, r2, #0x18
+ bl FUN_02024068
+_02024196:
+ pop {r4-r6, pc}
+ .balign 4
+_02024198: .word 0x00000182
+
+ thumb_func_start FUN_0202419C
+FUN_0202419C: ; 0x0202419C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ mov r4, #0x0
+ mov r6, #0xf
+_020241A4:
+ lsl r2, r4, #0x18
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ lsr r2, r2, #0x18
+ bl FUN_02024068
+ add r4, r4, #0x1
+ cmp r4, #0x4
+ blt _020241A4
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020241B8
+FUN_020241B8: ; 0x020241B8
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0xc9
+ bne _02024210
+ add r0, r2, #0x0
+ bl FUN_020690CC
+ lsl r1, r0, #0x18
+ lsr r3, r1, #0x18
+ mov r1, #0x43
+ mov r4, #0x0
+ add r6, r5, #0x0
+ lsl r1, r1, #0x2
+_020241D4:
+ ldrb r2, [r6, r1]
+ cmp r3, r2
+ bne _020241DE
+ mov r1, #0x1
+ b _020241E8
+_020241DE:
+ add r4, r4, #0x1
+ add r6, r6, #0x1
+ cmp r4, #0x1c
+ blt _020241D4
+ mov r1, #0x0
+_020241E8:
+ cmp r1, #0x0
+ bne _02024290
+ mov r1, #0x43
+ mov r3, #0x0
+ add r4, r5, #0x0
+ lsl r1, r1, #0x2
+_020241F4:
+ ldrb r2, [r4, r1]
+ cmp r2, #0xff
+ beq _02024202
+ add r3, r3, #0x1
+ add r4, r4, #0x1
+ cmp r3, #0x1c
+ blt _020241F4
+_02024202:
+ cmp r3, #0x1c
+ bge _02024290
+ mov r1, #0x43
+ add r2, r5, r3
+ lsl r1, r1, #0x2
+ strb r0, [r2, r1]
+ pop {r4-r6, pc}
+_02024210:
+ mov r6, #0x67
+ lsl r6, r6, #0x2
+ cmp r4, r6
+ bne _0202422E
+ add r0, r2, #0x0
+ mov r1, #0x70
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02023FEC
+ pop {r4-r6, pc}
+_0202422E:
+ add r3, r6, #0x1
+ cmp r4, r3
+ bne _0202424A
+ add r0, r2, #0x0
+ mov r1, #0x70
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02023FEC
+ pop {r4-r6, pc}
+_0202424A:
+ add r3, r6, #0x0
+ add r3, #0xa
+ cmp r4, r3
+ bne _02024268
+ add r0, r2, #0x0
+ mov r1, #0x70
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02023E70
+ pop {r4-r6, pc}
+_02024268:
+ add r3, r6, #0x0
+ add r3, #0xb
+ cmp r4, r3
+ bne _02024286
+ add r0, r2, #0x0
+ mov r1, #0x70
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02023E70
+ pop {r4-r6, pc}
+_02024286:
+ sub r6, #0x1a
+ cmp r4, r6
+ bne _02024290
+ bl FUN_0202415C
+_02024290:
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02024294
+FUN_02024294: ; 0x02024294
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ add r0, r1, #0x0
+ bl FUN_02087A50
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_02087A1C
+ cmp r4, #0xe
+ beq _020242C0
+ cmp r0, #0x6
+ beq _020242C0
+ ldr r1, _020242C4 ; =0x00000129
+ add r3, r5, r1
+ ldrb r2, [r3, r4]
+ mov r1, #0x1
+ lsl r1, r0
+ add r0, r2, #0x0
+ orr r0, r1
+ strb r0, [r3, r4]
+_020242C0:
+ pop {r4-r6, pc}
+ nop
+_020242C4: .word 0x00000129
+
+ thumb_func_start FUN_020242C8
+FUN_020242C8: ; 0x020242C8
+ push {r4-r6, lr}
+ add r6, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ mov r1, #0x12
+ add r4, r2, #0x0
+ bl FUN_02068678
+ cmp r0, #0xff
+ bne _020242EA
+ cmp r4, #0x0
+ bne _020242E4
+ mov r0, #0x2
+ pop {r4-r6, pc}
+_020242E4:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r4-r6, pc}
+_020242EA:
+ sub r0, r6, #0x1
+ lsl r0, r0, #0x10
+ lsr r2, r0, #0x10
+ mov r1, #0x1
+ mov r0, #0x7
+ add r3, r2, #0x0
+ and r3, r0
+ add r0, r1, #0x0
+ lsl r0, r3
+ asr r3, r2, #0x3
+ add r3, r5, r3
+ add r3, #0x84
+ ldrb r3, [r3, #0x0]
+ tst r0, r3
+ bne _0202430A
+ mov r1, #0x0
+_0202430A:
+ lsl r0, r1, #0x18
+ lsr r1, r0, #0x18
+ cmp r4, #0x1
+ bne _0202433A
+ add r4, r2, #0x0
+ asr r2, r2, #0x3
+ add r2, r5, r2
+ mov r0, #0x7
+ add r2, #0xc4
+ mov r3, #0x1
+ and r4, r0
+ add r0, r3, #0x0
+ ldrb r2, [r2, #0x0]
+ lsl r0, r4
+ tst r0, r2
+ bne _0202432C
+ mov r3, #0x0
+_0202432C:
+ lsl r0, r3, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, r1
+ bne _0202433C
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r4-r6, pc}
+_0202433A:
+ add r0, r1, #0x0
+_0202433C:
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02024340
+FUN_02024340: ; 0x02024340
+ push {r4-r5}
+ mov r3, #0x0
+ ldr r5, _02024360 ; =0x020EE942
+ mov r4, #0x1
+ add r1, r3, #0x0
+_0202434A:
+ ldrh r2, [r5, #0x0]
+ cmp r0, r2
+ bne _02024352
+ add r4, r1, #0x0
+_02024352:
+ add r3, r3, #0x1
+ add r5, r5, #0x2
+ cmp r3, #0xb
+ blt _0202434A
+ add r0, r4, #0x0
+ pop {r4-r5}
+ bx lr
+ .balign 4
+_02024360: .word 0x020EE942
+
+ thumb_func_start FUN_02024364
+FUN_02024364: ; 0x02024364
+ ldr r1, _02024374 ; =0x000001EA
+ mov r2, #0x1
+ cmp r0, r1
+ bne _0202436E
+ mov r2, #0x0
+_0202436E:
+ add r0, r2, #0x0
+ bx lr
+ nop
+_02024374: .word 0x000001EA
+
+ thumb_func_start FUN_02024378
+FUN_02024378: ; 0x02024378
+ push {r4, lr}
+ mov r2, #0x4f
+ mov r1, #0x0
+ lsl r2, r2, #0x2
+ add r4, r0, #0x0
+ bl memset
+ ldr r0, _020243C0 ; =0xBEEFCAFE
+ mov r1, #0x0
+ str r0, [r4, #0x0]
+ ldr r0, _020243C4 ; =0x00000139
+ mov r2, #0x1c
+ strb r1, [r4, r0]
+ sub r0, #0x2d
+ add r0, r4, r0
+ mov r1, #0xff
+ bl memset
+ mov r1, #0xff
+ add r0, r1, #0x0
+ add r0, #0x9
+ strb r1, [r4, r0]
+ add r0, r1, #0x0
+ add r0, #0xa
+ strb r1, [r4, r0]
+ add r0, r1, #0x0
+ add r0, #0xb
+ strb r1, [r4, r0]
+ add r0, r1, #0x0
+ add r0, #0xc
+ strb r1, [r4, r0]
+ add r0, r4, #0x0
+ bl FUN_0202419C
+ pop {r4, pc}
+ nop
+_020243C0: .word 0xBEEFCAFE
+_020243C4: .word 0x00000139
+
+ thumb_func_start FUN_020243C8
+FUN_020243C8: ; 0x020243C8
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ ldr r1, [r6, #0x0]
+ ldr r0, _020243FC ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _020243D8
+ bl ErrorHandling
+_020243D8:
+ ldr r7, _02024400 ; =0x000001ED
+ mov r5, #0x0
+ mov r4, #0x1
+_020243DE:
+ lsl r1, r4, #0x10
+ add r0, r6, #0x0
+ lsr r1, r1, #0x10
+ bl FUN_02024594
+ cmp r0, #0x1
+ bne _020243EE
+ add r5, r5, #0x1
+_020243EE:
+ add r4, r4, #0x1
+ cmp r4, r7
+ ble _020243DE
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ pop {r3-r7, pc}
+ nop
+_020243FC: .word 0xBEEFCAFE
+_02024400: .word 0x000001ED
+
+ thumb_func_start FUN_02024404
+FUN_02024404: ; 0x02024404
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ ldr r1, [r6, #0x0]
+ ldr r0, _02024438 ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _02024414
+ bl ErrorHandling
+_02024414:
+ ldr r7, _0202443C ; =0x000001ED
+ mov r5, #0x0
+ mov r4, #0x1
+_0202441A:
+ lsl r1, r4, #0x10
+ add r0, r6, #0x0
+ lsr r1, r1, #0x10
+ bl FUN_020245F0
+ cmp r0, #0x1
+ bne _0202442A
+ add r5, r5, #0x1
+_0202442A:
+ add r4, r4, #0x1
+ cmp r4, r7
+ ble _0202441A
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ pop {r3-r7, pc}
+ nop
+_02024438: .word 0xBEEFCAFE
+_0202443C: .word 0x000001ED
+
+ thumb_func_start FUN_02024440
+FUN_02024440: ; 0x02024440
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02024CA4
+ cmp r0, #0x0
+ beq _02024454
+ add r0, r4, #0x0
+ bl FUN_02024404
+ pop {r4, pc}
+_02024454:
+ add r0, r4, #0x0
+ bl FUN_020244A4
+ pop {r4, pc}
+
+ thumb_func_start FUN_0202445C
+FUN_0202445C: ; 0x0202445C
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ ldr r1, [r6, #0x0]
+ ldr r0, _0202449C ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _0202446C
+ bl ErrorHandling
+_0202446C:
+ ldr r7, _020244A0 ; =0x000001ED
+ mov r5, #0x0
+ mov r4, #0x1
+_02024472:
+ lsl r1, r4, #0x10
+ add r0, r6, #0x0
+ lsr r1, r1, #0x10
+ bl FUN_02024594
+ cmp r0, #0x1
+ bne _0202448E
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02069B40
+ cmp r0, #0x0
+ beq _0202448E
+ add r5, r5, #0x1
+_0202448E:
+ add r4, r4, #0x1
+ cmp r4, r7
+ ble _02024472
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ pop {r3-r7, pc}
+ nop
+_0202449C: .word 0xBEEFCAFE
+_020244A0: .word 0x000001ED
+
+ thumb_func_start FUN_020244A4
+FUN_020244A4: ; 0x020244A4
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ ldr r1, [r6, #0x0]
+ ldr r0, _020244E4 ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _020244B4
+ bl ErrorHandling
+_020244B4:
+ ldr r7, _020244E8 ; =0x000001ED
+ mov r5, #0x0
+ mov r4, #0x1
+_020244BA:
+ lsl r1, r4, #0x10
+ add r0, r6, #0x0
+ lsr r1, r1, #0x10
+ bl FUN_020245F0
+ cmp r0, #0x1
+ bne _020244D6
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02069B40
+ cmp r0, #0x0
+ beq _020244D6
+ add r5, r5, #0x1
+_020244D6:
+ add r4, r4, #0x1
+ cmp r4, r7
+ ble _020244BA
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ pop {r3-r7, pc}
+ nop
+_020244E4: .word 0xBEEFCAFE
+_020244E8: .word 0x000001ED
+
+ thumb_func_start FUN_020244EC
+FUN_020244EC: ; 0x020244EC
+ push {r3, lr}
+ bl FUN_02024518
+ ldr r1, _02024500 ; =0x000001E2
+ cmp r0, r1
+ blo _020244FC
+ mov r0, #0x1
+ pop {r3, pc}
+_020244FC:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+_02024500: .word 0x000001E2
+
+ thumb_func_start FUN_02024504
+FUN_02024504: ; 0x02024504
+ push {r3, lr}
+ bl FUN_02024550
+ cmp r0, #0x96
+ blo _02024512
+ mov r0, #0x1
+ pop {r3, pc}
+_02024512:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02024518
+FUN_02024518: ; 0x02024518
+ push {r3-r7, lr}
+ ldr r7, _0202454C ; =0x000001ED
+ add r6, r0, #0x0
+ mov r5, #0x0
+ mov r4, #0x1
+_02024522:
+ lsl r1, r4, #0x10
+ add r0, r6, #0x0
+ lsr r1, r1, #0x10
+ bl FUN_02024594
+ cmp r0, #0x1
+ bne _02024542
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02024340
+ cmp r0, #0x1
+ bne _02024542
+ add r0, r5, #0x1
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+_02024542:
+ add r4, r4, #0x1
+ cmp r4, r7
+ ble _02024522
+ add r0, r5, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_0202454C: .word 0x000001ED
+
+ thumb_func_start FUN_02024550
+FUN_02024550: ; 0x02024550
+ push {r3-r7, lr}
+ ldr r7, _02024590 ; =0x000001ED
+ add r6, r0, #0x0
+ mov r5, #0x0
+ mov r4, #0x1
+_0202455A:
+ lsl r1, r4, #0x10
+ add r0, r6, #0x0
+ lsr r1, r1, #0x10
+ bl FUN_020245F0
+ cmp r0, #0x1
+ bne _02024586
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02069B40
+ cmp r0, #0x0
+ beq _02024586
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02024364
+ cmp r0, #0x1
+ bne _02024586
+ add r0, r5, #0x1
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+_02024586:
+ add r4, r4, #0x1
+ cmp r4, r7
+ ble _0202455A
+ add r0, r5, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_02024590: .word 0x000001ED
+
+ thumb_func_start FUN_02024594
+FUN_02024594: ; 0x02024594
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _020245E8 ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _020245A6
+ bl ErrorHandling
+_020245A6:
+ cmp r4, #0x0
+ beq _020245B0
+ ldr r0, _020245EC ; =0x000001ED
+ cmp r4, r0
+ bls _020245B8
+_020245B0:
+ bl ErrorHandling
+ mov r0, #0x1
+ b _020245BA
+_020245B8:
+ mov r0, #0x0
+_020245BA:
+ cmp r0, #0x0
+ beq _020245C2
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_020245C2:
+ sub r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r2, r0, #0x10
+ mov r0, #0x1
+ mov r1, #0x7
+ and r1, r2
+ add r3, r0, #0x0
+ lsl r3, r1
+ asr r1, r2, #0x3
+ add r2, r5, r1
+ ldrb r1, [r2, #0x4]
+ tst r1, r3
+ beq _020245E4
+ add r2, #0x44
+ ldrb r1, [r2, #0x0]
+ tst r1, r3
+ bne _020245E6
+_020245E4:
+ mov r0, #0x0
+_020245E6:
+ pop {r3-r5, pc}
+ .balign 4
+_020245E8: .word 0xBEEFCAFE
+_020245EC: .word 0x000001ED
+
+ thumb_func_start FUN_020245F0
+FUN_020245F0: ; 0x020245F0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _02024640 ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _02024602
+ bl ErrorHandling
+_02024602:
+ cmp r4, #0x0
+ beq _0202460C
+ ldr r0, _02024644 ; =0x000001ED
+ cmp r4, r0
+ bls _02024614
+_0202460C:
+ bl ErrorHandling
+ mov r0, #0x1
+ b _02024616
+_02024614:
+ mov r0, #0x0
+_02024616:
+ cmp r0, #0x0
+ beq _0202461E
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0202461E:
+ sub r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r3, r0, #0x10
+ mov r0, #0x1
+ mov r1, #0x7
+ and r1, r3
+ add r2, r0, #0x0
+ lsl r2, r1
+ asr r1, r3, #0x3
+ add r1, r5, r1
+ add r1, #0x44
+ ldrb r1, [r1, #0x0]
+ tst r1, r2
+ bne _0202463C
+ mov r0, #0x0
+_0202463C:
+ pop {r3-r5, pc}
+ nop
+_02024640: .word 0xBEEFCAFE
+_02024644: .word 0x000001ED
+
+ thumb_func_start FUN_02024648
+FUN_02024648: ; 0x02024648
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _02024670 ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _0202465A
+ bl ErrorHandling
+_0202465A:
+ cmp r4, #0x0
+ bne _02024666
+ mov r0, #0x41
+ lsl r0, r0, #0x2
+ ldr r6, [r5, r0]
+ b _0202466A
+_02024666:
+ bl ErrorHandling
+_0202466A:
+ add r0, r6, #0x0
+ pop {r4-r6, pc}
+ nop
+_02024670: .word 0xBEEFCAFE
+
+ thumb_func_start FUN_02024674
+FUN_02024674: ; 0x02024674
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _020246D4 ; =0xBEEFCAFE
+ add r6, r2, #0x0
+ cmp r1, r0
+ beq _02024688
+ bl ErrorHandling
+_02024688:
+ cmp r4, #0x0
+ beq _02024692
+ ldr r0, _020246D8 ; =0x000001ED
+ cmp r4, r0
+ bls _0202469A
+_02024692:
+ bl ErrorHandling
+ mov r0, #0x1
+ b _0202469C
+_0202469A:
+ mov r0, #0x0
+_0202469C:
+ cmp r0, #0x0
+ beq _020246A6
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r4-r6, pc}
+_020246A6:
+ sub r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r2, r0, #0x10
+ add r3, r2, #0x0
+ asr r2, r2, #0x3
+ add r2, r5, r2
+ mov r0, #0x7
+ add r2, #0x44
+ mov r1, #0x1
+ and r3, r0
+ ldrb r2, [r2, #0x0]
+ lsl r1, r3
+ tst r1, r2
+ beq _020246CE
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_020242C8
+ pop {r4-r6, pc}
+_020246CE:
+ sub r0, #0x8
+ pop {r4-r6, pc}
+ nop
+_020246D4: .word 0xBEEFCAFE
+_020246D8: .word 0x000001ED
+
+ thumb_func_start FUN_020246DC
+FUN_020246DC: ; 0x020246DC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _02024718 ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _020246EE
+ bl ErrorHandling
+_020246EE:
+ mov r0, #0x43
+ mov r2, #0x0
+ lsl r0, r0, #0x2
+_020246F4:
+ add r1, r5, r2
+ ldrb r1, [r1, r0]
+ cmp r1, #0xff
+ beq _02024702
+ add r2, r2, #0x1
+ cmp r2, #0x1c
+ blt _020246F4
+_02024702:
+ cmp r2, r4
+ bgt _0202470C
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r5, pc}
+_0202470C:
+ mov r0, #0x43
+ add r1, r5, r4
+ lsl r0, r0, #0x2
+ ldrb r0, [r1, r0]
+ pop {r3-r5, pc}
+ nop
+_02024718: .word 0xBEEFCAFE
+
+ thumb_func_start FUN_0202471C
+FUN_0202471C: ; 0x0202471C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02024744 ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _0202472C
+ bl ErrorHandling
+_0202472C:
+ mov r1, #0x43
+ mov r0, #0x0
+ lsl r1, r1, #0x2
+_02024732:
+ add r2, r4, r0
+ ldrb r2, [r2, r1]
+ cmp r2, #0xff
+ beq _02024740
+ add r0, r0, #0x1
+ cmp r0, #0x1c
+ blt _02024732
+_02024740:
+ pop {r4, pc}
+ nop
+_02024744: .word 0xBEEFCAFE
+
+ thumb_func_start FUN_02024748
+FUN_02024748: ; 0x02024748
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _0202479C ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _0202475A
+ bl ErrorHandling
+_0202475A:
+ ldr r1, _020247A0 ; =0x000001A6
+ add r0, r5, #0x0
+ bl FUN_02023D8C
+ cmp r0, r4
+ bgt _0202476C
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r5, pc}
+_0202476C:
+ cmp r4, #0x2
+ blt _02024774
+ bl ErrorHandling
+_02024774:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ sub r0, r0, #0x1
+ lsl r0, r0, #0x10
+ lsr r2, r0, #0x10
+ mov r0, #0x1
+ mov r1, #0x7
+ and r1, r2
+ add r3, r0, #0x0
+ lsl r3, r1
+ asr r1, r2, #0x3
+ add r2, r5, r1
+ mov r1, #0x42
+ lsl r1, r1, #0x2
+ ldrb r1, [r2, r1]
+ tst r1, r3
+ bne _0202479A
+ mov r0, #0x0
+_0202479A:
+ pop {r3-r5, pc}
+ .balign 4
+_0202479C: .word 0xBEEFCAFE
+_020247A0: .word 0x000001A6
+
+ thumb_func_start FUN_020247A4
+FUN_020247A4: ; 0x020247A4
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _020247C0 ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _020247B4
+ bl ErrorHandling
+_020247B4:
+ ldr r1, _020247C4 ; =0x000001A6
+ add r0, r4, #0x0
+ bl FUN_02023D8C
+ pop {r4, pc}
+ nop
+_020247C0: .word 0xBEEFCAFE
+_020247C4: .word 0x000001A6
+
+ thumb_func_start FUN_020247C8
+FUN_020247C8: ; 0x020247C8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _0202481C ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _020247DA
+ bl ErrorHandling
+_020247DA:
+ ldr r1, _02024820 ; =0x000001A7
+ add r0, r5, #0x0
+ bl FUN_02023D8C
+ cmp r0, r4
+ bgt _020247EC
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r5, pc}
+_020247EC:
+ cmp r4, #0x2
+ blt _020247F4
+ bl ErrorHandling
+_020247F4:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ sub r0, r0, #0x1
+ lsl r0, r0, #0x10
+ lsr r2, r0, #0x10
+ mov r0, #0x1
+ mov r1, #0x7
+ and r1, r2
+ add r3, r0, #0x0
+ lsl r3, r1
+ asr r1, r2, #0x3
+ add r2, r5, r1
+ ldr r1, _02024824 ; =0x00000109
+ ldrb r1, [r2, r1]
+ tst r1, r3
+ bne _02024818
+ mov r0, #0x0
+_02024818:
+ pop {r3-r5, pc}
+ nop
+_0202481C: .word 0xBEEFCAFE
+_02024820: .word 0x000001A7
+_02024824: .word 0x00000109
+
+ thumb_func_start FUN_02024828
+FUN_02024828: ; 0x02024828
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02024844 ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _02024838
+ bl ErrorHandling
+_02024838:
+ ldr r1, _02024848 ; =0x000001A7
+ add r0, r4, #0x0
+ bl FUN_02023D8C
+ pop {r4, pc}
+ nop
+_02024844: .word 0xBEEFCAFE
+_02024848: .word 0x000001A7
+
+ thumb_func_start FUN_0202484C
+FUN_0202484C: ; 0x0202484C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _02024894 ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _0202485E
+ bl ErrorHandling
+_0202485E:
+ mov r1, #0x67
+ add r0, r5, #0x0
+ lsl r1, r1, #0x2
+ bl FUN_02023F2C
+ cmp r0, r4
+ bgt _02024872
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r5, pc}
+_02024872:
+ cmp r4, #0x3
+ blt _0202487A
+ bl ErrorHandling
+_0202487A:
+ lsl r0, r4, #0x10
+ lsr r2, r0, #0x10
+ asr r0, r2, #0x2
+ add r1, r5, r0
+ ldr r0, _02024898 ; =0x0000010A
+ ldrb r1, [r1, r0]
+ lsl r0, r2, #0x1e
+ lsr r0, r0, #0x1d
+ asr r1, r0
+ mov r0, #0x3
+ and r0, r1
+ pop {r3-r5, pc}
+ nop
+_02024894: .word 0xBEEFCAFE
+_02024898: .word 0x0000010A
+
+ thumb_func_start FUN_0202489C
+FUN_0202489C: ; 0x0202489C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _020248B8 ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _020248AC
+ bl ErrorHandling
+_020248AC:
+ mov r1, #0x67
+ add r0, r4, #0x0
+ lsl r1, r1, #0x2
+ bl FUN_02023F2C
+ pop {r4, pc}
+ .balign 4
+_020248B8: .word 0xBEEFCAFE
+
+ thumb_func_start FUN_020248BC
+FUN_020248BC: ; 0x020248BC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _02024900 ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _020248CE
+ bl ErrorHandling
+_020248CE:
+ ldr r1, _02024904 ; =0x0000019D
+ add r0, r5, #0x0
+ bl FUN_02023F2C
+ cmp r0, r4
+ bgt _020248E0
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r5, pc}
+_020248E0:
+ cmp r4, #0x3
+ blt _020248E8
+ bl ErrorHandling
+_020248E8:
+ lsl r0, r4, #0x10
+ lsr r2, r0, #0x10
+ asr r0, r2, #0x2
+ add r1, r5, r0
+ ldr r0, _02024908 ; =0x0000010B
+ ldrb r1, [r1, r0]
+ lsl r0, r2, #0x1e
+ lsr r0, r0, #0x1d
+ asr r1, r0
+ mov r0, #0x3
+ and r0, r1
+ pop {r3-r5, pc}
+ .balign 4
+_02024900: .word 0xBEEFCAFE
+_02024904: .word 0x0000019D
+_02024908: .word 0x0000010B
+
+ thumb_func_start FUN_0202490C
+FUN_0202490C: ; 0x0202490C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02024928 ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _0202491C
+ bl ErrorHandling
+_0202491C:
+ ldr r1, _0202492C ; =0x0000019D
+ add r0, r4, #0x0
+ bl FUN_02023F2C
+ pop {r4, pc}
+ nop
+_02024928: .word 0xBEEFCAFE
+_0202492C: .word 0x0000019D
+
+ thumb_func_start FUN_02024930
+FUN_02024930: ; 0x02024930
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _0202496C ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _02024942
+ bl ErrorHandling
+_02024942:
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x2
+ bhs _02024958
+ lsl r0, r0, #0x2
+ ldr r1, [r5, #0x40]
+ add r0, #0x18
+ lsr r1, r0
+ mov r0, #0xf
+ and r0, r1
+ pop {r3-r5, pc}
+_02024958:
+ add r5, #0x80
+ sub r0, r0, #0x2
+ lsl r0, r0, #0x18
+ ldr r1, [r5, #0x0]
+ lsr r0, r0, #0x16
+ add r0, #0x18
+ lsr r1, r0
+ mov r0, #0xf
+ and r0, r1
+ pop {r3-r5, pc}
+ .balign 4
+_0202496C: .word 0xBEEFCAFE
+
+ thumb_func_start FUN_02024970
+FUN_02024970: ; 0x02024970
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02024988 ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _02024980
+ bl ErrorHandling
+_02024980:
+ add r0, r4, #0x0
+ bl FUN_020240D0
+ pop {r4, pc}
+ .balign 4
+_02024988: .word 0xBEEFCAFE
+
+ thumb_func_start FUN_0202498C
+FUN_0202498C: ; 0x0202498C
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ str r1, [sp, #0x0]
+ add r0, r1, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x4]
+ mov r1, #0x0
+ ldr r0, [sp, #0x0]
+ add r2, r1, #0x0
+ bl FUN_020671BC
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x0]
+ bl FUN_020689E0
+ add r6, r0, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _02024AE4 ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _020249C4
+ bl ErrorHandling
+_020249C4:
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _020249D0
+ ldr r1, _02024AE8 ; =0x000001ED
+ cmp r0, r1
+ bls _020249D8
+_020249D0:
+ bl ErrorHandling
+ mov r0, #0x1
+ b _020249DA
+_020249D8:
+ mov r0, #0x0
+_020249DA:
+ cmp r0, #0x0
+ bne _02024ADE
+ ldr r0, [sp, #0x4]
+ mov r2, #0x1
+ sub r0, r0, #0x1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ mov r0, #0x7
+ and r0, r4
+ add r1, r2, #0x0
+ lsl r1, r0
+ asr r0, r4, #0x3
+ add r3, r5, r0
+ add r3, #0x44
+ ldrb r3, [r3, #0x0]
+ tst r3, r1
+ bne _02024A70
+ ldr r1, _02024AEC ; =0x00000147
+ ldr r0, [sp, #0x4]
+ cmp r0, r1
+ bne _02024A08
+ sub r1, #0x43
+ str r7, [r5, r1]
+_02024A08:
+ lsl r0, r6, #0x18
+ lsr r6, r0, #0x18
+ cmp r6, #0x2
+ bls _02024A14
+ bl ErrorHandling
+_02024A14:
+ cmp r6, #0x2
+ bne _02024A1A
+ mov r6, #0x0
+_02024A1A:
+ cmp r6, #0x2
+ blo _02024A22
+ bl ErrorHandling
+_02024A22:
+ add r2, r5, #0x0
+ mov r0, #0x7
+ add r3, r4, #0x0
+ and r3, r0
+ mov r0, #0x1
+ lsl r0, r3
+ add r2, #0xc4
+ asr r1, r4, #0x3
+ ldrb r7, [r2, r1]
+ mvn r0, r0
+ and r0, r7
+ strb r0, [r2, r1]
+ add r0, r6, #0x0
+ ldrb r7, [r2, r1]
+ lsl r0, r3
+ orr r0, r7
+ strb r0, [r2, r1]
+ cmp r6, #0x2
+ blo _02024A4C
+ bl ErrorHandling
+_02024A4C:
+ add r1, r5, #0x0
+ mov r0, #0x7
+ add r2, r4, #0x0
+ and r2, r0
+ mov r3, #0x1
+ lsl r3, r2
+ add r1, #0x84
+ asr r0, r4, #0x3
+ ldrb r7, [r1, r0]
+ mvn r3, r3
+ lsl r6, r2
+ and r3, r7
+ strb r3, [r1, r0]
+ ldrb r3, [r1, r0]
+ add r2, r3, #0x0
+ orr r2, r6
+ strb r2, [r1, r0]
+ b _02024AC0
+_02024A70:
+ add r0, r5, r0
+ add r0, #0x84
+ ldrb r0, [r0, #0x0]
+ tst r0, r1
+ bne _02024A7C
+ mov r2, #0x0
+_02024A7C:
+ lsl r0, r2, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, r6
+ beq _02024AC0
+ lsl r0, r6, #0x18
+ lsr r6, r0, #0x18
+ cmp r6, #0x2
+ bls _02024A90
+ bl ErrorHandling
+_02024A90:
+ cmp r6, #0x2
+ bne _02024A96
+ mov r6, #0x0
+_02024A96:
+ cmp r6, #0x2
+ blo _02024A9E
+ bl ErrorHandling
+_02024A9E:
+ add r1, r5, #0x0
+ mov r0, #0x7
+ add r2, r4, #0x0
+ and r2, r0
+ mov r3, #0x1
+ lsl r3, r2
+ add r1, #0xc4
+ asr r0, r4, #0x3
+ ldrb r7, [r1, r0]
+ mvn r3, r3
+ lsl r6, r2
+ and r3, r7
+ strb r3, [r1, r0]
+ ldrb r3, [r1, r0]
+ add r2, r3, #0x0
+ orr r2, r6
+ strb r2, [r1, r0]
+_02024AC0:
+ ldr r1, [sp, #0x4]
+ ldr r2, [sp, #0x0]
+ add r0, r5, #0x0
+ bl FUN_020241B8
+ mov r1, #0x7
+ add r5, #0x44
+ asr r0, r4, #0x3
+ ldrb r3, [r5, r0]
+ mov r2, #0x1
+ and r1, r4
+ lsl r2, r1
+ add r1, r3, #0x0
+ orr r1, r2
+ strb r1, [r5, r0]
+_02024ADE:
+ add sp, #0x8
+ pop {r3-r7, pc}
+ nop
+_02024AE4: .word 0xBEEFCAFE
+_02024AE8: .word 0x000001ED
+_02024AEC: .word 0x00000147
+
+ thumb_func_start FUN_02024AF0
+FUN_02024AF0: ; 0x02024AF0
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r4, r0, #0x0
+ str r1, [sp, #0x0]
+ add r0, r1, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ ldr r0, [sp, #0x0]
+ mov r1, #0xc
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x8]
+ mov r1, #0x0
+ ldr r0, [sp, #0x0]
+ add r2, r1, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x0]
+ bl FUN_020689E0
+ add r7, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02024C78 ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _02024B32
+ bl ErrorHandling
+_02024B32:
+ cmp r6, #0x0
+ beq _02024B3C
+ ldr r0, _02024C7C ; =0x000001ED
+ cmp r6, r0
+ bls _02024B44
+_02024B3C:
+ bl ErrorHandling
+ mov r0, #0x1
+ b _02024B46
+_02024B44:
+ mov r0, #0x0
+_02024B46:
+ cmp r0, #0x0
+ beq _02024B4C
+ b _02024C72
+_02024B4C:
+ sub r0, r6, #0x1
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ mov r0, #0x1
+ mov r1, #0x7
+ and r1, r5
+ add r2, r0, #0x0
+ asr r3, r5, #0x3
+ lsl r2, r1
+ add r1, r4, r3
+ add r1, #0x44
+ ldrb r1, [r1, #0x0]
+ tst r1, r2
+ bne _02024BEA
+ ldr r1, _02024C80 ; =0x00000147
+ cmp r6, r1
+ bne _02024B74
+ ldr r0, [sp, #0x4]
+ sub r1, #0x43
+ str r0, [r4, r1]
+_02024B74:
+ lsl r0, r7, #0x18
+ lsr r7, r0, #0x18
+ cmp r7, #0x2
+ bls _02024B80
+ bl ErrorHandling
+_02024B80:
+ cmp r7, #0x2
+ bne _02024B86
+ mov r7, #0x0
+_02024B86:
+ cmp r7, #0x2
+ blo _02024B8E
+ bl ErrorHandling
+_02024B8E:
+ mov r0, #0x7
+ and r0, r5
+ str r0, [sp, #0x10]
+ add r0, r4, #0x0
+ add r0, #0xc4
+ asr r3, r5, #0x3
+ ldrb r1, [r0, r3]
+ mov r2, #0x1
+ str r1, [sp, #0xc]
+ ldr r1, [sp, #0x10]
+ lsl r2, r1
+ ldr r1, [sp, #0xc]
+ mvn r2, r2
+ and r1, r2
+ strb r1, [r0, r3]
+ ldrb r1, [r0, r3]
+ add r2, r7, #0x0
+ mov r12, r1
+ ldr r1, [sp, #0x10]
+ lsl r2, r1
+ mov r1, r12
+ orr r1, r2
+ strb r1, [r0, r3]
+ cmp r7, #0x2
+ blo _02024BC4
+ bl ErrorHandling
+_02024BC4:
+ add r1, r4, #0x0
+ mov r0, #0x7
+ add r2, r5, #0x0
+ and r2, r0
+ mov r3, #0x1
+ lsl r3, r2
+ add r1, #0x84
+ asr r0, r5, #0x3
+ ldrb r5, [r1, r0]
+ mvn r3, r3
+ and r3, r5
+ strb r3, [r1, r0]
+ add r5, r7, #0x0
+ ldrb r3, [r1, r0]
+ lsl r5, r2
+ add r2, r3, #0x0
+ orr r2, r5
+ strb r2, [r1, r0]
+ b _02024C3C
+_02024BEA:
+ add r1, r4, r3
+ add r1, #0x84
+ ldrb r1, [r1, #0x0]
+ tst r1, r2
+ bne _02024BF6
+ mov r0, #0x0
+_02024BF6:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, r7
+ beq _02024C3C
+ lsl r0, r7, #0x18
+ lsr r7, r0, #0x18
+ cmp r7, #0x2
+ bls _02024C0A
+ bl ErrorHandling
+_02024C0A:
+ cmp r7, #0x2
+ bne _02024C10
+ mov r7, #0x0
+_02024C10:
+ cmp r7, #0x2
+ blo _02024C18
+ bl ErrorHandling
+_02024C18:
+ add r1, r4, #0x0
+ mov r0, #0x7
+ add r2, r5, #0x0
+ and r2, r0
+ mov r3, #0x1
+ lsl r3, r2
+ add r1, #0xc4
+ asr r0, r5, #0x3
+ ldrb r5, [r1, r0]
+ mvn r3, r3
+ and r3, r5
+ strb r3, [r1, r0]
+ add r5, r7, #0x0
+ ldrb r3, [r1, r0]
+ lsl r5, r2
+ add r2, r3, #0x0
+ orr r2, r5
+ strb r2, [r1, r0]
+_02024C3C:
+ ldr r2, [sp, #0x0]
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ bl FUN_020241B8
+ ldr r2, [sp, #0x8]
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ bl FUN_02024294
+ sub r0, r6, #0x1
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ add r1, r4, #0x4
+ asr r0, r6, #0x3
+ mov r2, #0x7
+ ldrb r5, [r1, r0]
+ mov r3, #0x1
+ and r2, r6
+ lsl r3, r2
+ add r2, r5, #0x0
+ orr r2, r3
+ add r4, #0x44
+ strb r2, [r1, r0]
+ ldrb r1, [r4, r0]
+ orr r1, r3
+ strb r1, [r4, r0]
+_02024C72:
+ add sp, #0x14
+ pop {r4-r7, pc}
+ nop
+_02024C78: .word 0xBEEFCAFE
+_02024C7C: .word 0x000001ED
+_02024C80: .word 0x00000147
+
+ thumb_func_start FUN_02024C84
+FUN_02024C84: ; 0x02024C84
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02024C9C ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _02024C94
+ bl ErrorHandling
+_02024C94:
+ ldr r0, _02024CA0 ; =0x00000139
+ mov r1, #0x1
+ strb r1, [r4, r0]
+ pop {r4, pc}
+ .balign 4
+_02024C9C: .word 0xBEEFCAFE
+_02024CA0: .word 0x00000139
+
+ thumb_func_start FUN_02024CA4
+FUN_02024CA4: ; 0x02024CA4
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02024CBC ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _02024CB4
+ bl ErrorHandling
+_02024CB4:
+ ldr r0, _02024CC0 ; =0x00000139
+ ldrb r0, [r4, r0]
+ pop {r4, pc}
+ nop
+_02024CBC: .word 0xBEEFCAFE
+_02024CC0: .word 0x00000139
+
+ thumb_func_start FUN_02024CC4
+FUN_02024CC4: ; 0x02024CC4
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02024CDC ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _02024CD4
+ bl ErrorHandling
+_02024CD4:
+ mov r0, #0x4a
+ lsl r0, r0, #0x2
+ ldrb r0, [r4, r0]
+ pop {r4, pc}
+ .balign 4
+_02024CDC: .word 0xBEEFCAFE
+
+ thumb_func_start FUN_02024CE0
+FUN_02024CE0: ; 0x02024CE0
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02024CFC ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _02024CF0
+ bl ErrorHandling
+_02024CF0:
+ mov r0, #0x4a
+ mov r1, #0x1
+ lsl r0, r0, #0x2
+ strb r1, [r4, r0]
+ pop {r4, pc}
+ nop
+_02024CFC: .word 0xBEEFCAFE
+
+ thumb_func_start FUN_02024D00
+FUN_02024D00: ; 0x02024D00
+ push {r4-r6, lr}
+ add r6, r2, #0x0
+ add r4, r0, #0x0
+ add r5, r1, #0x0
+ cmp r6, #0x8
+ blo _02024D10
+ bl ErrorHandling
+_02024D10:
+ ldr r1, [r4, #0x0]
+ ldr r0, _02024D44 ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _02024D1C
+ bl ErrorHandling
+_02024D1C:
+ add r0, r5, #0x0
+ bl FUN_02087A50
+ add r5, r0, #0x0
+ cmp r5, #0xe
+ bne _02024D2C
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02024D2C:
+ add r0, r6, #0x0
+ bl FUN_02087A1C
+ mov r1, #0x1
+ add r2, r1, #0x0
+ lsl r2, r0
+ ldr r0, _02024D48 ; =0x00000129
+ add r1, r4, r5
+ ldrb r0, [r1, r0]
+ and r0, r2
+ pop {r4-r6, pc}
+ nop
+_02024D44: .word 0xBEEFCAFE
+_02024D48: .word 0x00000129
+
+ thumb_func_start FUN_02024D4C
+FUN_02024D4C: ; 0x02024D4C
+ ldr r1, _02024D54 ; =0x00000137
+ mov r2, #0x1
+ strb r2, [r0, r1]
+ bx lr
+ .balign 4
+_02024D54: .word 0x00000137
+
+ thumb_func_start FUN_02024D58
+FUN_02024D58: ; 0x02024D58
+ ldr r1, _02024D60 ; =0x00000137
+ ldrb r0, [r0, r1]
+ bx lr
+ nop
+_02024D60: .word 0x00000137
+
+ thumb_func_start FUN_02024D64
+FUN_02024D64: ; 0x02024D64
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02024D7C ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _02024D74
+ bl ErrorHandling
+_02024D74:
+ mov r0, #0x4e
+ lsl r0, r0, #0x2
+ ldrb r0, [r4, r0]
+ pop {r4, pc}
+ .balign 4
+_02024D7C: .word 0xBEEFCAFE
+
+ thumb_func_start FUN_02024D80
+FUN_02024D80: ; 0x02024D80
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02024D9C ; =0xBEEFCAFE
+ cmp r1, r0
+ beq _02024D90
+ bl ErrorHandling
+_02024D90:
+ mov r0, #0x4e
+ mov r1, #0x1
+ lsl r0, r0, #0x2
+ strb r1, [r4, r0]
+ pop {r4, pc}
+ nop
+_02024D9C: .word 0xBEEFCAFE
+
+ thumb_func_start FUN_02024DA0
+FUN_02024DA0: ; 0x02024DA0
+ ldr r3, _02024DA8 ; =FUN_02022610
+ mov r1, #0x7
+ bx r3
+ nop
+_02024DA8: .word FUN_02022610
+
+ thumb_func_start FUN_02024DAC
+FUN_02024DAC: ; 0x02024DAC
+ push {r3-r5, lr}
+ add r4, r2, #0x0
+ ldr r2, _02024E60 ; =0x0000019D
+ add r5, r0, #0x0
+ cmp r1, r2
+ bgt _02024DD6
+ sub r3, r2, #0x1
+ cmp r1, r3
+ blt _02024DC6
+ beq _02024E24
+ cmp r1, r2
+ beq _02024E36
+ b _02024E5A
+_02024DC6:
+ cmp r1, #0xc9
+ bgt _02024DCE
+ beq _02024DEE
+ b _02024E5A
+_02024DCE:
+ sub r2, #0x1b
+ cmp r1, r2
+ beq _02024E48
+ b _02024E5A
+_02024DD6:
+ add r3, r2, #0x0
+ add r3, #0x9
+ cmp r1, r3
+ bgt _02024DE6
+ add r2, #0x9
+ cmp r1, r2
+ beq _02024E00
+ b _02024E5A
+_02024DE6:
+ add r2, #0xa
+ cmp r1, r2
+ beq _02024E12
+ b _02024E5A
+_02024DEE:
+ bl FUN_0202471C
+ cmp r4, r0
+ bhs _02024E5A
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020246DC
+ pop {r3-r5, pc}
+_02024E00:
+ bl FUN_020247A4
+ cmp r4, r0
+ bhs _02024E5A
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02024748
+ pop {r3-r5, pc}
+_02024E12:
+ bl FUN_02024828
+ cmp r4, r0
+ bhs _02024E5A
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020247C8
+ pop {r3-r5, pc}
+_02024E24:
+ bl FUN_0202489C
+ cmp r4, r0
+ bhs _02024E5A
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0202484C
+ pop {r3-r5, pc}
+_02024E36:
+ bl FUN_0202490C
+ cmp r4, r0
+ bhs _02024E5A
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020248BC
+ pop {r3-r5, pc}
+_02024E48:
+ bl FUN_02024970
+ cmp r4, r0
+ bhs _02024E5A
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02024930
+ pop {r3-r5, pc}
+_02024E5A:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ nop
+_02024E60: .word 0x0000019D
+
+ thumb_func_start FUN_02024E64
+FUN_02024E64: ; 0x02024E64
+ ldr r0, _02024E68 ; =0x0000074C
+ bx lr
+ .balign 4
+_02024E68: .word 0x0000074C
+
+ thumb_func_start FUN_02024E6C
+FUN_02024E6C: ; 0x02024E6C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r2, _02024EA4 ; =0x0000074C
+ mov r0, #0x0
+ add r1, r4, #0x0
+ bl MIi_CpuClearFast
+ add r0, r4, #0x0
+ bl FUN_020250A4
+ mov r0, #0x7
+ lsl r0, r0, #0x8
+ add r0, r4, r0
+ bl FUN_02025484
+ ldr r1, _02024EA8 ; =0x00000724
+ ldr r0, _02024EAC ; =0x0000FFFF
+ add r1, r4, r1
+ mov r2, #0x8
+ bl MIi_CpuClear16
+ ldr r1, _02024EB0 ; =0x00000734
+ ldr r0, _02024EAC ; =0x0000FFFF
+ add r1, r4, r1
+ mov r2, #0xb
+ bl MIi_CpuClear16
+ pop {r4, pc}
+ .balign 4
+_02024EA4: .word 0x0000074C
+_02024EA8: .word 0x00000724
+_02024EAC: .word 0x0000FFFF
+_02024EB0: .word 0x00000734
+
+ thumb_func_start FUN_02024EB4
+FUN_02024EB4: ; 0x02024EB4
+ ldr r3, _02024EBC ; =FUN_02022610
+ mov r1, #0xa
+ bx r3
+ nop
+_02024EBC: .word FUN_02022610
+
+ thumb_func_start FUN_02024EC0
+FUN_02024EC0: ; 0x02024EC0
+ ldr r3, _02024EC8 ; =FUN_02022634
+ mov r1, #0xa
+ bx r3
+ nop
+_02024EC8: .word FUN_02022634
+
+ thumb_func_start FUN_02024ECC
+FUN_02024ECC: ; 0x02024ECC
+ ldr r3, _02024ED4 ; =FUN_02022610
+ mov r1, #0xa
+ bx r3
+ nop
+_02024ED4: .word FUN_02022610
+
+ thumb_func_start FUN_02024ED8
+FUN_02024ED8: ; 0x02024ED8
+ push {r3, lr}
+ mov r1, #0xa
+ bl FUN_02022610
+ mov r1, #0x7
+ lsl r1, r1, #0x8
+ add r0, r0, r1
+ pop {r3, pc}
+
+ thumb_func_start FUN_02024EE8
+FUN_02024EE8: ; 0x02024EE8
+ ldr r1, _02024EF0 ; =0x00000724
+ add r0, r0, r1
+ bx lr
+ nop
+_02024EF0: .word 0x00000724
+
+ thumb_func_start FUN_02024EF4
+FUN_02024EF4: ; 0x02024EF4
+ add r2, r0, #0x0
+ add r0, r1, #0x0
+ ldr r1, _02024F04 ; =0x00000724
+ ldr r3, _02024F08 ; =FUN_02021EF0
+ add r1, r2, r1
+ mov r2, #0x8
+ bx r3
+ nop
+_02024F04: .word 0x00000724
+_02024F08: .word FUN_02021EF0
+
+ thumb_func_start FUN_02024F0C
+FUN_02024F0C: ; 0x02024F0C
+ ldr r1, _02024F14 ; =0x00000734
+ add r0, r0, r1
+ bx lr
+ nop
+_02024F14: .word 0x00000734
+
+ thumb_func_start FUN_02024F18
+FUN_02024F18: ; 0x02024F18
+ add r2, r0, #0x0
+ add r0, r1, #0x0
+ ldr r1, _02024F28 ; =0x00000734
+ ldr r3, _02024F2C ; =FUN_02021EF0
+ add r1, r2, r1
+ mov r2, #0xb
+ bx r3
+ nop
+_02024F28: .word 0x00000734
+_02024F2C: .word FUN_02021EF0
+
+ thumb_func_start FUN_02024F30
+FUN_02024F30: ; 0x02024F30
+ push {r4, lr}
+ mov r1, #0x2
+ bl FUN_02016998
+ add r4, r0, #0x0
+ bl FUN_02024F50
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02024F44
+FUN_02024F44: ; 0x02024F44
+ ldr r3, _02024F4C ; =MI_CpuCopy8
+ mov r2, #0x2
+ bx r3
+ nop
+_02024F4C: .word MI_CpuCopy8
+
+ thumb_func_start FUN_02024F50
+FUN_02024F50: ; 0x02024F50
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x2
+ bl MI_CpuFill8
+ ldrh r1, [r4, #0x0]
+ mov r0, #0xf
+ bic r1, r0
+ mov r0, #0x1
+ orr r0, r1
+ strh r0, [r4, #0x0]
+ ldrh r1, [r4, #0x0]
+ mov r0, #0x30
+ bic r1, r0
+ strh r1, [r4, #0x0]
+ ldrh r1, [r4, #0x0]
+ mov r0, #0x40
+ bic r1, r0
+ strh r1, [r4, #0x0]
+ ldrh r1, [r4, #0x0]
+ mov r0, #0x80
+ bic r1, r0
+ strh r1, [r4, #0x0]
+ ldrh r1, [r4, #0x0]
+ ldr r0, _02024F94 ; =0xFFFFFCFF
+ and r0, r1
+ strh r0, [r4, #0x0]
+ ldrh r1, [r4, #0x0]
+ ldr r0, _02024F98 ; =0xFFFF83FF
+ and r0, r1
+ strh r0, [r4, #0x0]
+ pop {r4, pc}
+ nop
+_02024F94: .word 0xFFFFFCFF
+_02024F98: .word 0xFFFF83FF
+
+ thumb_func_start FUN_02024F9C
+FUN_02024F9C: ; 0x02024F9C
+ push {r3, lr}
+ cmp r0, #0x0
+ beq _02024FAC
+ bl LoadPlayerDataAddress
+ bl FUN_02025064
+ add r1, r0, #0x0
+_02024FAC:
+ cmp r1, #0x0
+ beq _02024FCA
+ cmp r1, #0x1
+ beq _02024FBA
+ cmp r1, #0x2
+ beq _02024FC2
+ b _02024FCA
+_02024FBA:
+ ldr r0, _02024FD4 ; =0x021C48B8
+ mov r1, #0x1
+ str r1, [r0, #0x34]
+ pop {r3, pc}
+_02024FC2:
+ ldr r0, _02024FD4 ; =0x021C48B8
+ mov r1, #0x3
+ str r1, [r0, #0x34]
+ pop {r3, pc}
+_02024FCA:
+ ldr r0, _02024FD4 ; =0x021C48B8
+ mov r1, #0x0
+ str r1, [r0, #0x34]
+ pop {r3, pc}
+ nop
+_02024FD4: .word 0x021C48B8
+
+ thumb_func_start FUN_02024FD8
+FUN_02024FD8: ; 0x02024FD8
+ ldrh r0, [r0, #0x0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ bx lr
+
+ thumb_func_start FUN_02024FE0
+FUN_02024FE0: ; 0x02024FE0
+ ldrh r3, [r0, #0x0]
+ mov r2, #0xf
+ lsl r1, r1, #0x10
+ bic r3, r2
+ lsr r2, r1, #0x10
+ mov r1, #0xf
+ and r1, r2
+ orr r1, r3
+ strh r1, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02024FF4
+FUN_02024FF4: ; 0x02024FF4
+ push {r3, lr}
+ bl FUN_02024FD8
+ cmp r0, #0x0
+ bne _02025002
+ mov r0, #0x8
+ pop {r3, pc}
+_02025002:
+ cmp r0, #0x1
+ bne _0202500A
+ mov r0, #0x4
+ pop {r3, pc}
+_0202500A:
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02025010
+FUN_02025010: ; 0x02025010
+ ldrh r0, [r0, #0x0]
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1e
+ bx lr
+
+ thumb_func_start FUN_02025018
+FUN_02025018: ; 0x02025018
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ lsl r1, r1, #0x1e
+ ldrh r3, [r0, #0x0]
+ mov r2, #0x30
+ lsr r1, r1, #0x1a
+ bic r3, r2
+ orr r1, r3
+ strh r1, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_0202502C
+FUN_0202502C: ; 0x0202502C
+ ldrh r0, [r0, #0x0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1f
+ bx lr
+
+ thumb_func_start FUN_02025034
+FUN_02025034: ; 0x02025034
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ lsl r1, r1, #0x1f
+ ldrh r3, [r0, #0x0]
+ mov r2, #0x80
+ lsr r1, r1, #0x18
+ bic r3, r2
+ orr r1, r3
+ strh r1, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02025048
+FUN_02025048: ; 0x02025048
+ ldrh r0, [r0, #0x0]
+ lsl r0, r0, #0x19
+ lsr r0, r0, #0x1f
+ bx lr
+
+ thumb_func_start FUN_02025050
+FUN_02025050: ; 0x02025050
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ lsl r1, r1, #0x1f
+ ldrh r3, [r0, #0x0]
+ mov r2, #0x40
+ lsr r1, r1, #0x19
+ bic r3, r2
+ orr r1, r3
+ strh r1, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02025064
+FUN_02025064: ; 0x02025064
+ ldrh r0, [r0, #0x0]
+ lsl r0, r0, #0x16
+ lsr r0, r0, #0x1e
+ bx lr
+
+ thumb_func_start FUN_0202506C
+FUN_0202506C: ; 0x0202506C
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ lsl r1, r1, #0x1e
+ ldrh r3, [r0, #0x0]
+ ldr r2, _02025080 ; =0xFFFFFCFF
+ lsr r1, r1, #0x16
+ and r2, r3
+ orr r1, r2
+ strh r1, [r0, #0x0]
+ bx lr
+ .balign 4
+_02025080: .word 0xFFFFFCFF
+
+ thumb_func_start FUN_02025084
+FUN_02025084: ; 0x02025084
+ ldrh r0, [r0, #0x0]
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x1b
+ bx lr
+
+ thumb_func_start FUN_0202508C
+FUN_0202508C: ; 0x0202508C
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ lsl r1, r1, #0x1b
+ ldrh r3, [r0, #0x0]
+ ldr r2, _020250A0 ; =0xFFFF83FF
+ lsr r1, r1, #0x11
+ and r2, r3
+ orr r1, r2
+ strh r1, [r0, #0x0]
+ bx lr
+ .balign 4
+_020250A0: .word 0xFFFF83FF
+
+ thumb_func_start FUN_020250A4
+FUN_020250A4: ; 0x020250A4
+ push {r4, lr}
+ mov r2, #0x7
+ mov r1, #0x0
+ lsl r2, r2, #0x8
+ add r4, r0, #0x0
+ bl MI_CpuFill8
+ mov r1, #0x0
+ add r0, r1, #0x0
+_020250B6:
+ strb r0, [r4, #0x1]
+ strb r0, [r4, #0x0]
+ add r1, r1, #0x1
+ add r4, #0xe
+ cmp r1, #0x80
+ blt _020250B6
+ pop {r4, pc}
+
+ thumb_func_start FUN_020250C4
+FUN_020250C4: ; 0x020250C4
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ str r2, [sp, #0x0]
+ str r3, [sp, #0x4]
+ bl FUN_02025128
+ mov r4, #0x0
+ str r0, [sp, #0x8]
+ add r6, r4, #0x0
+ b _02025112
+_020250DC:
+ add r0, r5, #0x0
+ bl FUN_02025184
+ ldr r0, [sp, #0x0]
+ lsl r1, r6, #0x1
+ add r7, r0, r1
+ ldrh r0, [r0, r1]
+ sub r0, #0x94
+ strb r0, [r5, #0x0]
+ mov r0, #0x5
+ strb r0, [r5, #0x1]
+ ldrb r1, [r5, #0x0]
+ ldrb r2, [r5, #0xc]
+ ldr r0, [sp, #0x8]
+ bl FUN_020251B0
+ lsl r0, r0, #0x2
+ strh r0, [r5, #0x2]
+ ldrh r0, [r7, #0x2]
+ add r6, r6, #0x2
+ add r4, r4, #0x1
+ strh r0, [r5, #0x8]
+ mov r0, #0x64
+ strb r0, [r5, #0xa]
+ mov r0, #0x3
+ strb r0, [r5, #0xb]
+ add r5, #0xe
+_02025112:
+ cmp r4, #0x80
+ blt _020250DC
+ ldr r0, [sp, #0x4]
+ cmp r4, r0
+ blt _020250DC
+ ldr r0, [sp, #0x8]
+ bl FUN_02016A18
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02025128
+FUN_02025128: ; 0x02025128
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r7, r0, #0x0
+ bl FUN_02085258
+ str r0, [sp, #0x0]
+ add r0, r7, #0x0
+ mov r1, #0xc0
+ bl FUN_02016998
+ str r0, [sp, #0x4]
+ mov r6, #0x0
+ add r5, r0, #0x0
+_02025142:
+ ldr r0, [sp, #0x0]
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_02085264
+ add r4, r0, #0x0
+ mov r1, #0x3
+ bl FUN_02085290
+ strb r0, [r5, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x4
+ bl FUN_02085290
+ strb r0, [r5, #0x1]
+ add r0, r4, #0x0
+ mov r1, #0x2
+ bl FUN_02085290
+ strb r0, [r5, #0x2]
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add r6, r6, #0x1
+ add r5, r5, #0x3
+ cmp r6, #0x40
+ blt _02025142
+ ldr r0, [sp, #0x0]
+ bl FUN_0208526C
+ ldr r0, [sp, #0x4]
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02025184
+FUN_02025184: ; 0x02025184
+ mov r1, #0x0
+ strb r1, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ strh r1, [r0, #0x2]
+ strh r1, [r0, #0x4]
+ strb r1, [r0, #0x6]
+ strh r1, [r0, #0x8]
+ strb r1, [r0, #0xa]
+ strb r1, [r0, #0xb]
+ strb r1, [r0, #0xc]
+ strb r1, [r0, #0xd]
+ bx lr
+
+ thumb_func_start FUN_0202519C
+FUN_0202519C: ; 0x0202519C
+ ldrb r2, [r0, #0xb]
+ ldrb r0, [r0, #0x0]
+ sub r3, r0, #0x1
+ lsl r0, r3, #0x1
+ add r0, r3, r0
+ add r0, r1, r0
+ ldrb r0, [r0, #0x2]
+ mul r0, r2
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020251B0
+FUN_020251B0: ; 0x020251B0
+ sub r3, r1, #0x1
+ lsl r1, r3, #0x1
+ add r1, r3, r1
+ ldrb r1, [r0, r1]
+ mov r0, #0x3c
+ mul r0, r1
+ cmp r2, #0x1
+ bne _020251CE
+ lsl r1, r0, #0x1
+ add r1, r0, r1
+ asr r0, r1, #0x1
+ lsr r0, r0, #0x1e
+ add r0, r1, r0
+ asr r0, r0, #0x2
+ bx lr
+_020251CE:
+ cmp r2, #0x2
+ bne _020251DA
+ lsr r1, r0, #0x1f
+ add r1, r0, r1
+ asr r1, r1, #0x1
+ add r0, r0, r1
+_020251DA:
+ bx lr
+
+ thumb_func_start FUN_020251DC
+FUN_020251DC: ; 0x020251DC
+ sub r3, r1, #0x1
+ lsl r1, r3, #0x1
+ add r1, r3, r1
+ add r0, r0, r1
+ ldrb r0, [r0, #0x1]
+ cmp r2, #0x2
+ bne _020251F2
+ lsr r1, r0, #0x1f
+ add r1, r0, r1
+ asr r0, r1, #0x1
+ bx lr
+_020251F2:
+ cmp r2, #0x1
+ bne _020251FE
+ lsr r1, r0, #0x1f
+ add r1, r0, r1
+ asr r1, r1, #0x1
+ add r0, r0, r1
+_020251FE:
+ bx lr
+
+ thumb_func_start FUN_02025200
+FUN_02025200: ; 0x02025200
+ ldrb r0, [r0, #0xc]
+ cmp r0, #0x3
+ bne _0202520A
+ mov r0, #0x6
+ bx lr
+_0202520A:
+ mov r0, #0x4
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02025210
+FUN_02025210: ; 0x02025210
+ ldrb r0, [r0, #0xc]
+ cmp r0, #0x4
+ bne _0202521A
+ mov r0, #0xf
+ bx lr
+_0202521A:
+ mov r0, #0xa
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02025220
+FUN_02025220: ; 0x02025220
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02025200
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02025210
+ add r1, r4, #0x3
+ mul r0, r1
+ add r0, r0, #0x1
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02025238
+FUN_02025238: ; 0x02025238
+ mov r2, #0xe
+ mul r2, r1
+ add r0, r0, r2
+ ldrb r0, [r0, #0x1]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02025244
+FUN_02025244: ; 0x02025244
+ mov r2, #0xe
+ mul r2, r1
+ ldrb r0, [r0, r2]
+ bx lr
+
+ thumb_func_start FUN_0202524C
+FUN_0202524C: ; 0x0202524C
+ mov r2, #0xe
+ mul r2, r1
+ add r0, r0, r2
+ ldrb r0, [r0, #0xa]
+ cmp r0, #0x0
+ bne _0202525C
+ mov r0, #0x0
+ bx lr
+_0202525C:
+ cmp r0, #0x32
+ bgt _02025264
+ mov r0, #0x1
+ bx lr
+_02025264:
+ mov r0, #0x2
+ bx lr
+
+ thumb_func_start FUN_02025268
+FUN_02025268: ; 0x02025268
+ mov r2, #0xe
+ mul r2, r1
+ add r0, r0, r2
+ ldrb r0, [r0, #0xb]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02025274
+FUN_02025274: ; 0x02025274
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ mov r0, #0xe
+ mul r4, r0
+ strb r3, [r5, r4]
+ mov r0, #0x1
+ add r6, r5, r4
+ strb r0, [r6, #0x1]
+ add r0, r2, #0x0
+ ldrb r2, [r6, #0xc]
+ add r1, r3, #0x0
+ bl FUN_020251B0
+ add r1, r6, #0x0
+ strh r0, [r1, #0x2]
+ mov r0, #0x0
+ strh r0, [r1, #0x4]
+ strb r0, [r1, #0x6]
+ strh r0, [r1, #0x8]
+ mov r0, #0x64
+ strb r0, [r1, #0xa]
+ mov r0, #0x5
+ strb r0, [r1, #0xb]
+ mov r0, #0x1
+ strb r0, [r1, #0xd]
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020252AC
+FUN_020252AC: ; 0x020252AC
+ mov r2, #0xe
+ mul r2, r1
+ mov r3, #0x64
+ add r0, r0, r2
+ strb r3, [r0, #0xa]
+ bx lr
+
+ thumb_func_start FUN_020252B8
+FUN_020252B8: ; 0x020252B8
+ mov r2, #0xe
+ mul r2, r1
+ add r0, r0, r2
+ ldrb r0, [r0, #0xd]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020252C4
+FUN_020252C4: ; 0x020252C4
+ mov r3, #0xe
+ mul r3, r1
+ add r0, r0, r3
+ strb r2, [r0, #0xd]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020252D0
+FUN_020252D0: ; 0x020252D0
+ mov r2, #0xe
+ mul r2, r1
+ add r0, r0, r2
+ ldrb r0, [r0, #0xc]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020252DC
+FUN_020252DC: ; 0x020252DC
+ mov r3, #0xe
+ mul r3, r1
+ add r0, r0, r3
+ strb r2, [r0, #0xc]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020252E8
+FUN_020252E8: ; 0x020252E8
+ mov r2, #0xe
+ mul r2, r1
+ add r0, r0, r2
+ ldrh r0, [r0, #0x8]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020252F4
+FUN_020252F4: ; 0x020252F4
+ push {r4, lr}
+ mov r2, #0xe
+ mul r2, r1
+ add r0, r0, r2
+ ldrh r4, [r0, #0x8]
+ bl FUN_02025184
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02025308
+FUN_02025308: ; 0x02025308
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldrb r2, [r4, #0x1]
+ cmp r2, #0x5
+ bhi _02025370
+ add r3, r2, r2
+ add r3, pc
+ ldrh r3, [r3, #0x6]
+ lsl r3, r3, #0x10
+ asr r3, r3, #0x10
+ add pc, r3
+_0202531E: ; jump table (using 16-bit offset)
+ .short _0202532A - _0202531E - 2; case 0
+ .short _02025330 - _0202531E - 2; case 1
+ .short _02025330 - _0202531E - 2; case 2
+ .short _02025330 - _0202531E - 2; case 3
+ .short _02025336 - _0202531E - 2; case 4
+ .short _0202534E - _0202531E - 2; case 5
+_0202532A:
+ bl ErrorHandling
+ pop {r4, pc}
+_02025330:
+ add r0, r2, #0x1
+ strb r0, [r4, #0x1]
+ pop {r4, pc}
+_02025336:
+ bl FUN_0202519C
+ strh r0, [r4, #0x8]
+ ldrh r0, [r4, #0x8]
+ cmp r0, #0x2
+ bhs _02025346
+ mov r0, #0x2
+ strh r0, [r4, #0x8]
+_02025346:
+ ldrb r0, [r4, #0x1]
+ add r0, r0, #0x1
+ strb r0, [r4, #0x1]
+ pop {r4, pc}
+_0202534E:
+ mov r1, #0x0
+ strh r1, [r4, #0x8]
+ mov r1, #0x2
+ strb r1, [r4, #0x1]
+ mov r1, #0x5
+ strb r1, [r4, #0xb]
+ ldrb r1, [r4, #0x6]
+ add r1, r1, #0x1
+ strb r1, [r4, #0x6]
+ bl FUN_02025210
+ ldrb r1, [r4, #0x6]
+ cmp r1, r0
+ bne _02025370
+ add r0, r4, #0x0
+ bl FUN_02025184
+_02025370:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02025374
+FUN_02025374: ; 0x02025374
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldrb r0, [r5, #0x1]
+ add r7, r2, #0x0
+ cmp r0, #0x5
+ beq _020253DE
+ add r0, r1, #0x0
+ ldrb r1, [r5, #0x0]
+ ldrb r2, [r5, #0xc]
+ bl FUN_020251DC
+ add r6, r0, #0x0
+ ldrh r0, [r5, #0x4]
+ mov r1, #0x3c
+ str r0, [sp, #0x0]
+ add r0, r7, r0
+ bl _s32_div_f
+ add r4, r0, #0x0
+ ldr r0, [sp, #0x0]
+ mov r1, #0x3c
+ add r0, r7, r0
+ bl _s32_div_f
+ strh r1, [r5, #0x4]
+ cmp r4, #0x0
+ beq _020253DE
+ ldrb r1, [r5, #0xa]
+ add r0, r6, #0x0
+ mul r0, r4
+ cmp r1, r0
+ blt _020253BA
+ sub r0, r1, r0
+ strb r0, [r5, #0xa]
+ pop {r3-r7, pc}
+_020253BA:
+ cmp r1, #0x0
+ beq _020253CE
+ sub r0, r6, #0x1
+ add r0, r1, r0
+ add r1, r6, #0x0
+ bl _s32_div_f
+ sub r4, r4, r0
+ mov r0, #0x0
+ strb r0, [r5, #0xa]
+_020253CE:
+ ldrb r0, [r5, #0xb]
+ cmp r0, r4
+ ble _020253DA
+ sub r0, r0, r4
+ strb r0, [r5, #0xb]
+ pop {r3-r7, pc}
+_020253DA:
+ mov r0, #0x0
+ strb r0, [r5, #0xb]
+_020253DE:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020253E0
+FUN_020253E0: ; 0x020253E0
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ mov r0, #0x0
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ str r0, [sp, #0x0]
+_020253EC:
+ ldrb r1, [r5, #0x0]
+ cmp r1, #0x0
+ beq _02025474
+ ldrb r0, [r5, #0x1]
+ cmp r0, #0x0
+ beq _02025474
+ ldrb r0, [r5, #0xd]
+ cmp r0, #0x0
+ beq _02025474
+ ldrb r2, [r5, #0xc]
+ add r0, r6, #0x0
+ bl FUN_020251B0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02025220
+ mul r0, r4
+ cmp r7, r0
+ blt _0202541C
+ add r0, r5, #0x0
+ bl FUN_02025184
+ b _02025474
+_0202541C:
+ add r4, r7, #0x0
+ b _0202546A
+_02025420:
+ ldrh r2, [r5, #0x2]
+ cmp r2, r4
+ ble _02025438
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ bl FUN_02025374
+ ldrh r0, [r5, #0x2]
+ sub r0, r0, r4
+ strh r0, [r5, #0x2]
+ b _02025474
+_02025438:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02025374
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02025308
+ ldrh r0, [r5, #0x2]
+ ldrb r1, [r5, #0x0]
+ ldrb r2, [r5, #0xc]
+ sub r4, r4, r0
+ add r0, r6, #0x0
+ bl FUN_020251B0
+ strh r0, [r5, #0x2]
+ ldrb r0, [r5, #0x1]
+ cmp r0, #0x5
+ bne _0202546A
+ add r0, r5, #0x0
+ bl FUN_02025200
+ ldrh r1, [r5, #0x2]
+ mul r0, r1
+ strh r0, [r5, #0x2]
+_0202546A:
+ ldrb r0, [r5, #0x1]
+ cmp r0, #0x0
+ beq _02025474
+ cmp r4, #0x0
+ bne _02025420
+_02025474:
+ ldr r0, [sp, #0x0]
+ add r5, #0xe
+ add r0, r0, #0x1
+ str r0, [sp, #0x0]
+ cmp r0, #0x80
+ blt _020253EC
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02025484
+FUN_02025484: ; 0x02025484
+ ldr r3, _0202548C ; =MI_CpuFill8
+ mov r1, #0x0
+ mov r2, #0x24
+ bx r3
+ .balign 4
+_0202548C: .word MI_CpuFill8
+
+ thumb_func_start FUN_02025490
+FUN_02025490: ; 0x02025490
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02025484
+ str r4, [r5, #0x0]
+ add r0, r5, #0x4
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020254A0
+FUN_020254A0: ; 0x020254A0
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, r1
+ beq _020254AE
+ bl ErrorHandling
+_020254AE:
+ add r0, r4, #0x4
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020254B4
+FUN_020254B4: ; 0x020254B4
+ ldr r0, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_020254B8
+FUN_020254B8: ; 0x020254B8
+ mov r0, #0x22
+ lsl r0, r0, #0x6
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020254C0
+FUN_020254C0: ; 0x020254C0
+ ldr r3, _020254C8 ; =FUN_02022610
+ mov r1, #0x9
+ bx r3
+ nop
+_020254C8: .word FUN_02022610
+
+ thumb_func_start FUN_020254CC
+FUN_020254CC: ; 0x020254CC
+ push {r3-r7, lr}
+ mov r4, #0x0
+ ldr r6, _020254EC ; =0x0000FFFF
+ add r5, r0, #0x0
+ add r7, r4, #0x0
+_020254D6:
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ mov r2, #0x88
+ bl memset
+ strh r6, [r5, #0x0]
+ add r4, r4, #0x1
+ add r5, #0x88
+ cmp r4, #0x10
+ blt _020254D6
+ pop {r3-r7, pc}
+ .balign 4
+_020254EC: .word 0x0000FFFF
+
+ thumb_func_start FUN_020254F0
+FUN_020254F0: ; 0x020254F0
+ mov r2, #0x88
+ mul r2, r1
+ add r0, r0, r2
+ bx lr
+
+ thumb_func_start FUN_020254F8
+FUN_020254F8: ; 0x020254F8
+ add r0, r0, r1
+ add r0, #0x68
+ ldrb r0, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02025500
+FUN_02025500: ; 0x02025500
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl StringNotEqual
+ cmp r0, #0x0
+ bne _0202551A
+ ldr r1, [r5, #0x10]
+ ldr r0, [r4, #0x10]
+ cmp r1, r0
+ bne _0202551A
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0202551A:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02025520
+FUN_02025520: ; 0x02025520
+ push {r4-r7, lr}
+ sub sp, #0x2c
+ str r1, [sp, #0x4]
+ mov r1, #0x22
+ str r0, [sp, #0x0]
+ add r0, r3, #0x0
+ lsl r1, r1, #0x6
+ str r2, [sp, #0x8]
+ bl FUN_02016998
+ str r0, [sp, #0x10]
+ bl FUN_020254CC
+ mov r0, #0x0
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x0
+ ble _02025578
+ ldr r7, [sp, #0x4]
+ add r6, sp, #0x18
+_02025548:
+ mov r0, #0x0
+ mvn r0, r0
+ ldr r5, [sp, #0x0]
+ str r0, [r6, #0x0]
+ mov r4, #0x0
+_02025552:
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ bl FUN_02025500
+ cmp r0, #0x0
+ beq _02025560
+ str r4, [r6, #0x0]
+_02025560:
+ add r4, r4, #0x1
+ add r5, #0x88
+ cmp r4, #0x10
+ blt _02025552
+ ldr r0, [sp, #0x14]
+ add r6, r6, #0x4
+ add r1, r0, #0x1
+ ldr r0, [sp, #0x8]
+ add r7, #0x88
+ str r1, [sp, #0x14]
+ cmp r1, r0
+ blt _02025548
+_02025578:
+ ldr r0, [sp, #0x8]
+ mov r4, #0x0
+ str r4, [sp, #0xc]
+ cmp r0, #0x0
+ ble _020255BE
+ ldr r5, [sp, #0x10]
+ add r6, sp, #0x18
+_02025586:
+ ldr r3, [sp, #0x4]
+ add r7, r5, #0x0
+ mov r2, #0x11
+_0202558C:
+ ldmia r3!, {r0-r1}
+ stmia r7!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _0202558C
+ ldr r1, [r6, #0x0]
+ cmp r1, #0x0
+ blt _020255A6
+ add r2, r1, #0x0
+ mov r0, #0x88
+ mul r2, r0
+ ldr r1, _02025610 ; =0x0000FFFF
+ ldr r0, [sp, #0x0]
+ strh r1, [r0, r2]
+_020255A6:
+ ldr r0, [sp, #0x4]
+ add r5, #0x88
+ add r0, #0x88
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0xc]
+ add r4, r4, #0x1
+ add r1, r0, #0x1
+ ldr r0, [sp, #0x8]
+ add r6, r6, #0x4
+ str r1, [sp, #0xc]
+ cmp r1, r0
+ blt _02025586
+_020255BE:
+ mov r0, #0x0
+ mov r12, r0
+ mov r0, #0x88
+ add r1, r4, #0x0
+ mul r1, r0
+ ldr r0, [sp, #0x10]
+ ldr r3, [sp, #0x0]
+ add r5, r0, r1
+_020255CE:
+ ldrh r1, [r3, #0x0]
+ ldr r0, _02025610 ; =0x0000FFFF
+ cmp r1, r0
+ beq _020255EC
+ add r6, r3, #0x0
+ add r7, r5, #0x0
+ mov r2, #0x11
+_020255DC:
+ ldmia r6!, {r0-r1}
+ stmia r7!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _020255DC
+ add r4, r4, #0x1
+ add r5, #0x88
+ cmp r4, #0x10
+ bge _020255F8
+_020255EC:
+ mov r0, r12
+ add r0, r0, #0x1
+ add r3, #0x88
+ mov r12, r0
+ cmp r0, #0x10
+ blt _020255CE
+_020255F8:
+ mov r2, #0x22
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x10]
+ lsl r2, r2, #0x6
+ bl memcpy
+ ldr r0, [sp, #0x10]
+ bl FUN_02016A18
+ add sp, #0x2c
+ pop {r4-r7, pc}
+ nop
+_02025610: .word 0x0000FFFF
+
+ thumb_func_start FUN_02025614
+FUN_02025614: ; 0x02025614
+ push {r3-r6}
+ mov r3, #0x0
+ add r4, r0, #0x0
+_0202561A:
+ ldr r2, [r4, #0x10]
+ cmp r1, r2
+ bne _02025626
+ mov r0, #0x1
+ pop {r3-r6}
+ bx lr
+_02025626:
+ add r3, r3, #0x1
+ add r4, #0x88
+ cmp r3, #0x10
+ blt _0202561A
+ mov r6, #0x0
+ add r3, r6, #0x0
+_02025632:
+ add r4, r3, #0x0
+ add r5, r0, #0x0
+_02025636:
+ ldr r2, [r5, #0x18]
+ cmp r1, r2
+ bne _02025642
+ add r0, r6, #0x2
+ pop {r3-r6}
+ bx lr
+_02025642:
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, #0x10
+ blt _02025636
+ add r6, r6, #0x1
+ add r0, #0x88
+ cmp r6, #0x10
+ blt _02025632
+ mov r0, #0x0
+ pop {r3-r6}
+ bx lr
+
+ thumb_func_start FUN_02025658
+FUN_02025658: ; 0x02025658
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ strb r0, [r4, #0x4]
+ ldr r0, _020256A0 ; =0x020ECAC4
+ mov r1, #0x8
+ ldrb r0, [r0, #0x0]
+ strb r0, [r4, #0x5]
+ ldr r0, _020256A4 ; =0x020ECAC0
+ ldrb r0, [r0, #0x0]
+ strb r0, [r4, #0x6]
+ mov r0, #0xff
+ strb r0, [r4, #0x7]
+ add r0, r4, #0x0
+ add r0, #0x8
+ bl StringFillEOS
+ ldr r0, _020256A8 ; =0x0000FFFF
+ mov r1, #0x0
+ add r2, r4, #0x0
+_02025682:
+ add r1, r1, #0x1
+ strh r0, [r2, #0x18]
+ add r2, r2, #0x2
+ cmp r1, #0x3
+ blt _02025682
+ mov r5, #0x0
+ add r4, #0x20
+_02025690:
+ add r0, r4, #0x0
+ bl FUN_02013724
+ add r5, r5, #0x1
+ add r4, #0x8
+ cmp r5, #0x3
+ blt _02025690
+ pop {r3-r5, pc}
+ .balign 4
+_020256A0: .word 0x020ECAC4
+_020256A4: .word 0x020ECAC0
+_020256A8: .word 0x0000FFFF
+
+ thumb_func_start FUN_020256AC
+FUN_020256AC: ; 0x020256AC
+ ldrb r0, [r0, #0x7]
+ cmp r0, #0xb
+ bhi _020256B6
+ mov r0, #0x1
+ bx lr
+_020256B6:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020256BC
+FUN_020256BC: ; 0x020256BC
+ push {r4, lr}
+ mov r1, #0x38
+ bl FUN_020169D8
+ add r4, r0, #0x0
+ bl FUN_02025658
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020256D0
+FUN_020256D0: ; 0x020256D0
+ ldr r3, _020256D8 ; =MI_CpuCopy8
+ mov r2, #0x38
+ bx r3
+ nop
+_020256D8: .word MI_CpuCopy8
+
+ thumb_func_start FUN_020256DC
+FUN_020256DC: ; 0x020256DC
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r7, r3, #0x0
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r4, r2, #0x0
+ bl FUN_02025658
+ add r0, r7, #0x0
+ strb r6, [r5, #0x7]
+ bl FUN_0206BB1C
+ str r0, [sp, #0x0]
+ add r0, r7, #0x0
+ bl FUN_020238F4
+ add r6, r0, #0x0
+ bl FUN_0202398C
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ add r0, #0x8
+ bl StringCopy
+ add r0, r6, #0x0
+ bl FUN_020239CC
+ strb r0, [r5, #0x4]
+ add r0, r6, #0x0
+ bl FUN_020239BC
+ str r0, [r5, #0x0]
+ ldr r0, [sp, #0x0]
+ mov r6, #0x0
+ bl FUN_0206B9AC
+ cmp r4, r0
+ bge _020257AE
+ add r5, #0x18
+_0202572A:
+ ldr r0, [sp, #0x0]
+ add r1, r4, #0x0
+ bl FUN_0206B9B0
+ mov r1, #0x5
+ mov r2, #0x0
+ add r7, r0, #0x0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x4]
+ add r0, r7, #0x0
+ mov r1, #0x4c
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0x8]
+ add r0, r7, #0x0
+ mov r1, #0x70
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [sp, #0xc]
+ add r0, r7, #0x0
+ bl FUN_0206B6C8
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x4]
+ ldr r1, [sp, #0xc]
+ ldr r2, [sp, #0x8]
+ bl FUN_0206B7BC
+ lsl r3, r6, #0x1
+ ldrh r1, [r5, r3]
+ add r7, r0, #0x0
+ ldr r0, _020257B4 ; =0xFFFFF000
+ add r2, r1, #0x0
+ and r2, r0
+ ldr r0, [sp, #0x10]
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ ldr r0, _020257B8 ; =0x00000FFF
+ and r0, r1
+ orr r0, r2
+ strh r0, [r5, r3]
+ add r0, r6, #0x1
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ ldrh r1, [r5, r3]
+ ldr r0, _020257BC ; =0xFFFF0FFF
+ and r0, r1
+ lsl r1, r7, #0x1c
+ lsr r1, r1, #0x10
+ orr r0, r1
+ strh r0, [r5, r3]
+ cmp r6, #0x3
+ bhs _020257AE
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ ldr r0, [sp, #0x0]
+ bl FUN_0206B9AC
+ cmp r4, r0
+ blt _0202572A
+_020257AE:
+ add sp, #0x14
+ pop {r4-r7, pc}
+ nop
+_020257B4: .word 0xFFFFF000
+_020257B8: .word 0x00000FFF
+_020257BC: .word 0xFFFF0FFF
+
+ thumb_func_start FUN_020257C0
+FUN_020257C0: ; 0x020257C0
+ ldr r0, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_020257C4
+FUN_020257C4: ; 0x020257C4
+ add r0, #0x8
+ bx lr
+
+ thumb_func_start FUN_020257C8
+FUN_020257C8: ; 0x020257C8
+ ldrb r0, [r0, #0x4]
+ bx lr
+
+ thumb_func_start FUN_020257CC
+FUN_020257CC: ; 0x020257CC
+ ldrb r0, [r0, #0x7]
+ bx lr
+
+ thumb_func_start FUN_020257D0
+FUN_020257D0: ; 0x020257D0
+ cmp r1, #0xc
+ bhs _020257D6
+ strb r1, [r0, #0x7]
+_020257D6:
+ bx lr
+
+ thumb_func_start FUN_020257D8
+FUN_020257D8: ; 0x020257D8
+ ldrb r0, [r0, #0x5]
+ bx lr
+
+ thumb_func_start FUN_020257DC
+FUN_020257DC: ; 0x020257DC
+ ldrb r0, [r0, #0x6]
+ bx lr
+
+ thumb_func_start FUN_020257E0
+FUN_020257E0: ; 0x020257E0
+ cmp r1, #0x3
+ bhs _02025810
+ cmp r2, #0x0
+ beq _020257F0
+ cmp r2, #0x1
+ beq _020257FC
+ cmp r2, #0x2
+ b _02025808
+_020257F0:
+ lsl r1, r1, #0x1
+ add r0, r0, r1
+ ldrh r0, [r0, #0x18]
+ lsl r0, r0, #0x14
+ lsr r0, r0, #0x14
+ bx lr
+_020257FC:
+ lsl r1, r1, #0x1
+ add r0, r0, r1
+ ldrh r0, [r0, #0x18]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x1c
+ bx lr
+_02025808:
+ lsl r1, r1, #0x1
+ add r0, r0, r1
+ ldrh r0, [r0, #0x18]
+ bx lr
+_02025810:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02025814
+FUN_02025814: ; 0x02025814
+ cmp r1, #0x3
+ bhs _02025820
+ add r0, #0x20
+ lsl r1, r1, #0x3
+ add r0, r0, r1
+ bx lr
+_02025820:
+ add r0, #0x20
+ bx lr
+
+ thumb_func_start FUN_02025824
+FUN_02025824: ; 0x02025824
+ push {r3, lr}
+ cmp r2, #0x3
+ bhs _02025834
+ add r0, #0x20
+ lsl r2, r2, #0x3
+ add r0, r0, r2
+ bl FUN_02013960
+_02025834:
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02025838
+FUN_02025838: ; 0x02025838
+ ldr r3, _02025840 ; =FUN_02022610
+ mov r1, #0xf
+ bx r3
+ nop
+_02025840: .word FUN_02022610
+
+ thumb_func_start FUN_02025844
+FUN_02025844: ; 0x02025844
+ mov r0, #0x46
+ lsl r0, r0, #0x4
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202584C
+FUN_0202584C: ; 0x0202584C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r4, #0x0
+_02025852:
+ add r0, r5, #0x0
+ bl FUN_02025658
+ add r4, r4, #0x1
+ add r5, #0x38
+ cmp r4, #0x14
+ blt _02025852
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02025864
+FUN_02025864: ; 0x02025864
+ push {r3, lr}
+ cmp r1, #0x0
+ bne _02025872
+ mov r1, #0x14
+ bl FUN_020258F0
+ pop {r3, pc}
+_02025872:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3, pc}
+
+ thumb_func_start FUN_02025878
+FUN_02025878: ; 0x02025878
+ push {r3, lr}
+ bl FUN_02025940
+ cmp r0, #0x0
+ beq _02025886
+ bl FUN_02025658
+_02025886:
+ pop {r3, pc}
+
+ thumb_func_start FUN_02025888
+FUN_02025888: ; 0x02025888
+ push {r4, lr}
+ add r4, r3, #0x0
+ bl FUN_02025940
+ add r1, r0, #0x0
+ beq _0202589A
+ add r0, r4, #0x0
+ bl FUN_020256D0
+_0202589A:
+ pop {r4, pc}
+
+ thumb_func_start FUN_0202589C
+FUN_0202589C: ; 0x0202589C
+ push {r3, lr}
+ cmp r1, #0x0
+ bne _020258AA
+ mov r1, #0x14
+ bl FUN_02025918
+ pop {r3, pc}
+_020258AA:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020258B0
+FUN_020258B0: ; 0x020258B0
+ push {r3-r5, lr}
+ add r5, r3, #0x0
+ bl FUN_02025940
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020256BC
+ add r5, r0, #0x0
+ cmp r4, #0x0
+ beq _020258CE
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_020256D0
+_020258CE:
+ add r0, r5, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020258D4
+FUN_020258D4: ; 0x020258D4
+ push {r4, lr}
+ add r4, r3, #0x0
+ bl FUN_02025940
+ cmp r0, #0x0
+ bne _020258E8
+ add r0, r4, #0x0
+ bl FUN_02025658
+ pop {r4, pc}
+_020258E8:
+ add r1, r4, #0x0
+ bl FUN_020256D0
+ pop {r4, pc}
+
+ thumb_func_start FUN_020258F0
+FUN_020258F0: ; 0x020258F0
+ push {r4-r6, lr}
+ add r6, r1, #0x0
+ add r5, r0, #0x0
+ mov r4, #0x0
+ cmp r6, #0x0
+ ble _02025912
+_020258FC:
+ add r0, r5, #0x0
+ bl FUN_020256AC
+ cmp r0, #0x0
+ bne _0202590A
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+_0202590A:
+ add r4, r4, #0x1
+ add r5, #0x38
+ cmp r4, r6
+ blt _020258FC
+_02025912:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02025918
+FUN_02025918: ; 0x02025918
+ push {r3-r7, lr}
+ mov r4, #0x0
+ add r7, r1, #0x0
+ add r5, r0, #0x0
+ add r6, r4, #0x0
+ cmp r7, #0x0
+ ble _0202593A
+_02025926:
+ add r0, r5, #0x0
+ bl FUN_020256AC
+ cmp r0, #0x0
+ beq _02025932
+ add r4, r4, #0x1
+_02025932:
+ add r6, r6, #0x1
+ add r5, #0x38
+ cmp r6, r7
+ blt _02025926
+_0202593A:
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02025940
+FUN_02025940: ; 0x02025940
+ mov r3, #0x0
+ cmp r1, #0x0
+ bne _02025950
+ cmp r2, #0x14
+ bge _02025950
+ mov r1, #0x38
+ mul r1, r2
+ add r3, r0, r1
+_02025950:
+ add r0, r3, #0x0
+ bx lr
+
+ thumb_func_start FUN_02025954
+FUN_02025954: ; 0x02025954
+ ldr r0, _02025958 ; =0x000009B4
+ bx lr
+ .balign 4
+_02025958: .word 0x000009B4
+
+ thumb_func_start FUN_0202595C
+FUN_0202595C: ; 0x0202595C
+ mov r0, #0x94
+ bx lr
+
+ thumb_func_start FUN_02025960
+FUN_02025960: ; 0x02025960
+ mov r0, #0x3c
+ bx lr
+
+ thumb_func_start FUN_02025964
+FUN_02025964: ; 0x02025964
+ push {r4, lr}
+ mov r1, #0x3c
+ bl FUN_02016998
+ mov r1, #0x0
+ mov r2, #0x3c
+ add r4, r0, #0x0
+ bl MI_CpuFill8
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202597C
+FUN_0202597C: ; 0x0202597C
+ push {r4-r7, lr}
+ sub sp, #0x1c
+ add r4, r0, #0x0
+ add r0, sp, #0xc
+ add r1, sp, #0x0
+ bl FUN_0201265C
+ ldr r0, _020259D8 ; =0x021C48B8
+ ldr r6, [sp, #0xc]
+ ldr r1, [sp, #0x8]
+ ldr r0, [r0, #0x2c]
+ lsl r6, r6, #0x5
+ add r5, r1, r0
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ add r0, r0, r6
+ lsl r0, r0, #0x5
+ add r0, r1, r0
+ mov r7, #0x0
+ ldr r2, [sp, #0x0]
+ lsl r0, r0, #0x5
+ add r0, r2, r0
+ ldr r3, [sp, #0x4]
+ lsl r0, r0, #0x5
+ add r0, r3, r0
+ lsl r0, r0, #0x5
+ add r5, r5, r0
+ ldr r2, _020259DC ; =0x000009B4
+ add r0, r4, #0x0
+ add r1, r7, #0x0
+ bl MI_CpuFill8
+ add r0, r4, #0x0
+ add r0, #0x94
+ mov r1, #0x9b
+ str r5, [r0, #0x0]
+ lsl r1, r1, #0x4
+ ldrb r2, [r4, r1]
+ mov r0, #0xf
+ bic r2, r0
+ mov r0, #0x1
+ orr r0, r2
+ strb r0, [r4, r1]
+ add sp, #0x1c
+ pop {r4-r7, pc}
+ nop
+_020259D8: .word 0x021C48B8
+_020259DC: .word 0x000009B4
+
+ thumb_func_start FUN_020259E0
+FUN_020259E0: ; 0x020259E0
+ mov r1, #0x9
+ mov r3, #0x0
+ lsl r1, r1, #0x8
+_020259E6:
+ add r2, r0, r3
+ ldrb r2, [r2, r1]
+ cmp r2, #0x0
+ bne _020259F2
+ add r0, r3, #0x0
+ bx lr
+_020259F2:
+ add r3, r3, #0x1
+ cmp r3, #0x28
+ blt _020259E6
+ mov r0, #0x0
+ mvn r0, r0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02025A00
+FUN_02025A00: ; 0x02025A00
+ mov r1, #0x95
+ mov r3, #0x0
+ lsl r1, r1, #0x4
+_02025A06:
+ add r2, r0, r3
+ ldrb r2, [r2, r1]
+ cmp r2, #0x0
+ bne _02025A12
+ add r0, r3, #0x0
+ bx lr
+_02025A12:
+ add r3, r3, #0x1
+ cmp r3, #0x28
+ blt _02025A06
+ mov r0, #0x0
+ mvn r0, r0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02025A20
+FUN_02025A20: ; 0x02025A20
+ ldr r1, _02025A3C ; =0x00000928
+ mov r3, #0x0
+_02025A24:
+ add r2, r0, r3
+ ldrb r2, [r2, r1]
+ cmp r2, #0x0
+ bne _02025A30
+ add r0, r3, #0x0
+ bx lr
+_02025A30:
+ add r3, r3, #0x1
+ cmp r3, #0x28
+ blt _02025A24
+ mov r0, #0x0
+ mvn r0, r0
+ bx lr
+ .balign 4
+_02025A3C: .word 0x00000928
+
+ thumb_func_start FUN_02025A40
+FUN_02025A40: ; 0x02025A40
+ ldr r1, _02025A5C ; =0x000008D8
+ mov r3, #0x0
+_02025A44:
+ add r2, r0, r3
+ ldrb r2, [r2, r1]
+ cmp r2, #0x0
+ bne _02025A50
+ add r0, r3, #0x0
+ bx lr
+_02025A50:
+ add r3, r3, #0x1
+ cmp r3, #0x28
+ blt _02025A44
+ mov r0, #0x0
+ mvn r0, r0
+ bx lr
+ .balign 4
+_02025A5C: .word 0x000008D8
+
+ thumb_func_start FUN_02025A60
+FUN_02025A60: ; 0x02025A60
+ push {r4-r7, lr}
+ sub sp, #0x14
+ str r1, [sp, #0x0]
+ bl FUN_02026CC4
+ ldr r1, _02025B50 ; =0x020EE958
+ add r6, r0, #0x0
+ ldrb r2, [r1, #0x0]
+ add r0, sp, #0x8
+ strb r2, [r0, #0x6]
+ ldrb r2, [r1, #0x1]
+ strb r2, [r0, #0x7]
+ ldrb r2, [r1, #0x2]
+ strb r2, [r0, #0x8]
+ ldrb r2, [r1, #0x3]
+ strb r2, [r0, #0x9]
+ ldrb r2, [r1, #0x4]
+ strb r2, [r0, #0xa]
+ ldrb r2, [r1, #0x5]
+ strb r2, [r0, #0xb]
+ ldrb r2, [r1, #0x6]
+ strb r2, [r0, #0x0]
+ ldrb r2, [r1, #0x7]
+ strb r2, [r0, #0x1]
+ ldrb r2, [r1, #0x8]
+ strb r2, [r0, #0x2]
+ ldrb r2, [r1, #0x9]
+ strb r2, [r0, #0x3]
+ ldrb r2, [r1, #0xa]
+ strb r2, [r0, #0x4]
+ ldrb r1, [r1, #0xb]
+ strb r1, [r0, #0x5]
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x0
+ ble _02025B4C
+ str r0, [sp, #0x4]
+ cmp r0, #0x63
+ ble _02025AB0
+ mov r0, #0x63
+ str r0, [sp, #0x4]
+_02025AB0:
+ add r0, r6, #0x0
+ add r0, #0x94
+ ldr r3, [r0, #0x0]
+ mov r0, #0x0
+ mov r12, r0
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ ble _02025B28
+ add r7, sp, #0xc
+ add r7, #0x2
+_02025AC4:
+ mov r2, #0x0
+_02025AC6:
+ ldr r0, _02025B54 ; =0x0000055C
+ add r4, r6, r2
+ ldrb r5, [r4, r0]
+ cmp r5, #0x0
+ beq _02025B16
+ ldr r0, _02025B58 ; =0x5D588B65
+ ldrb r1, [r7, r5]
+ mul r0, r3
+ ldr r3, _02025B5C ; =0x00269EC3
+ add r3, r0, r3
+ cmp r1, #0x0
+ bne _02025AE2
+ lsr r0, r3, #0x10
+ b _02025AE8
+_02025AE2:
+ lsr r0, r3, #0x10
+ mul r1, r0
+ lsr r0, r1, #0x10
+_02025AE8:
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ add r0, sp, #0x8
+ ldrb r0, [r0, r5]
+ add r0, r0, r1
+ mov r1, #0x17
+ lsl r1, r1, #0x6
+ ldrb r1, [r4, r1]
+ add r1, r0, r1
+ cmp r1, #0x63
+ bge _02025B0E
+ mov r1, #0x17
+ lsl r1, r1, #0x6
+ ldrb r1, [r4, r1]
+ add r1, r1, r0
+ mov r0, #0x17
+ lsl r0, r0, #0x6
+ strb r1, [r4, r0]
+ b _02025B16
+_02025B0E:
+ mov r0, #0x17
+ mov r1, #0x63
+ lsl r0, r0, #0x6
+ strb r1, [r4, r0]
+_02025B16:
+ add r2, r2, #0x1
+ cmp r2, #0x64
+ blt _02025AC6
+ mov r0, r12
+ add r1, r0, #0x1
+ ldr r0, [sp, #0x4]
+ mov r12, r1
+ cmp r1, r0
+ blt _02025AC4
+_02025B28:
+ add r0, r6, #0x0
+ add r0, #0x94
+ ldr r1, [r0, #0x0]
+ ldr r0, [sp, #0x0]
+ add r0, r1, r0
+ bl rand_ALT
+ add r1, r6, #0x0
+ add r1, #0x94
+ str r0, [r1, #0x0]
+ mov r1, #0x9b
+ lsl r1, r1, #0x4
+ ldrb r2, [r6, r1]
+ mov r0, #0xf
+ bic r2, r0
+ mov r0, #0x1
+ orr r0, r2
+ strb r0, [r6, r1]
+_02025B4C:
+ add sp, #0x14
+ pop {r4-r7, pc}
+ .balign 4
+_02025B50: .word 0x020EE958
+_02025B54: .word 0x0000055C
+_02025B58: .word 0x5D588B65
+_02025B5C: .word 0x00269EC3
+
+ thumb_func_start FUN_02025B60
+FUN_02025B60: ; 0x02025B60
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r2, #0x0
+ bl FUN_02026CC4
+ cmp r4, #0x0
+ blt _02025B90
+ cmp r5, #0x0
+ bne _02025B90
+ add r1, r0, #0x0
+ add r1, #0x98
+ ldr r1, [r1, #0x0]
+ cmp r1, r4
+ bge _02025B84
+ mov r1, #0x0
+ add r0, #0x98
+ str r1, [r0, #0x0]
+ pop {r3-r5, pc}
+_02025B84:
+ add r1, r0, #0x0
+ add r1, #0x98
+ ldr r1, [r1, #0x0]
+ add r0, #0x98
+ sub r1, r1, r4
+ str r1, [r0, #0x0]
+_02025B90:
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02025B94
+FUN_02025B94: ; 0x02025B94
+ push {r3, lr}
+ bl FUN_02026CC4
+ add r1, r0, #0x0
+ add r1, #0x98
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ bne _02025BB6
+ add r1, r0, #0x0
+ add r1, #0x9c
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x2
+ bne _02025BB6
+ add r1, r0, #0x0
+ mov r2, #0x0
+ add r1, #0x9c
+ strb r2, [r1, #0x0]
+_02025BB6:
+ add r1, r0, #0x0
+ add r1, #0x98
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ bne _02025BD4
+ add r1, r0, #0x0
+ add r1, #0x9c
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x1
+ bne _02025BD4
+ mov r2, #0x5a
+ add r1, r0, #0x0
+ lsl r2, r2, #0x4
+ add r1, #0x98
+ str r2, [r1, #0x0]
+_02025BD4:
+ add r1, r0, #0x0
+ add r1, #0x9c
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x1
+ bne _02025BE4
+ mov r1, #0x2
+ add r0, #0x9c
+ strb r1, [r0, #0x0]
+_02025BE4:
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02025BE8
+FUN_02025BE8: ; 0x02025BE8
+ push {r3, lr}
+ bl FUN_02026CC4
+ add r1, r0, #0x0
+ add r1, #0x9c
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x0
+ bne _02025BFE
+ mov r1, #0x1
+ add r0, #0x9c
+ strb r1, [r0, #0x0]
+_02025BFE:
+ pop {r3, pc}
+
+ thumb_func_start FUN_02025C00
+FUN_02025C00: ; 0x02025C00
+ push {r3, lr}
+ bl FUN_02026CC4
+ add r1, r0, #0x0
+ add r1, #0x9c
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x1
+ bne _02025C16
+ mov r1, #0x0
+ add r0, #0x9c
+ strb r1, [r0, #0x0]
+_02025C16:
+ pop {r3, pc}
+
+ thumb_func_start FUN_02025C18
+FUN_02025C18: ; 0x02025C18
+ push {r3, lr}
+ bl FUN_02026CC4
+ add r0, #0x9c
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x2
+ beq _02025C2A
+ mov r0, #0x1
+ pop {r3, pc}
+_02025C2A:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02025C30
+FUN_02025C30: ; 0x02025C30
+ mov r1, #0x1
+ add r0, #0x9d
+ strb r1, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02025C38
+FUN_02025C38: ; 0x02025C38
+ add r0, #0x9d
+ ldrb r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02025C40
+FUN_02025C40: ; 0x02025C40
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ ldr r0, _02025CD0 ; =0x0000010E
+ add r6, r1, #0x0
+ ldrb r0, [r7, r0]
+ mov r4, #0x0
+ add r5, r7, #0x0
+ str r0, [sp, #0x0]
+_02025C50:
+ add r0, r6, #0x0
+ bl FUN_020239BC
+ add r1, r5, #0x0
+ add r1, #0xa0
+ ldr r1, [r1, #0x0]
+ cmp r1, r0
+ beq _02025CCC
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, #0x5
+ blt _02025C50
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x5
+ blt _02025C72
+ bl ErrorHandling
+_02025C72:
+ add r0, r6, #0x0
+ bl FUN_0202398C
+ ldr r1, [sp, #0x0]
+ add r2, r7, #0x0
+ add r2, #0xb4
+ lsl r1, r1, #0x4
+ add r1, r2, r1
+ mov r2, #0x10
+ bl MI_CpuCopy8
+ add r0, r6, #0x0
+ bl FUN_020239BC
+ ldr r1, [sp, #0x0]
+ lsl r1, r1, #0x2
+ add r1, r7, r1
+ add r1, #0xa0
+ str r0, [r1, #0x0]
+ add r0, r6, #0x0
+ bl FUN_02023A70
+ ldr r1, [sp, #0x0]
+ add r2, r7, r1
+ mov r1, #0x41
+ lsl r1, r1, #0x2
+ strb r0, [r2, r1]
+ add r0, r6, #0x0
+ bl FUN_02023A68
+ ldr r1, [sp, #0x0]
+ add r2, r7, r1
+ ldr r1, _02025CD4 ; =0x00000109
+ strb r0, [r2, r1]
+ add r0, r1, #0x5
+ ldrb r0, [r7, r0]
+ add r2, r0, #0x1
+ add r0, r1, #0x5
+ strb r2, [r7, r0]
+ ldrb r0, [r7, r0]
+ cmp r0, #0x5
+ blo _02025CCC
+ mov r2, #0x0
+ add r0, r1, #0x5
+ strb r2, [r7, r0]
+_02025CCC:
+ pop {r3-r7, pc}
+ nop
+_02025CD0: .word 0x0000010E
+_02025CD4: .word 0x00000109
+
+ thumb_func_start FUN_02025CD8
+FUN_02025CD8: ; 0x02025CD8
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r0, _02025D38 ; =0x0000010E
+ ldrb r0, [r5, r0]
+ sub r0, r0, r2
+ sub r4, r0, #0x1
+ bpl _02025CE8
+ add r4, r4, #0x5
+_02025CE8:
+ add r7, r5, #0x0
+ lsl r0, r4, #0x4
+ add r7, #0xb4
+ str r0, [sp, #0x0]
+ ldrh r0, [r7, r0]
+ cmp r0, #0x0
+ beq _02025D32
+ add r0, r1, #0x0
+ bl FUN_02023928
+ ldr r1, [sp, #0x0]
+ add r6, r0, #0x0
+ add r1, r7, r1
+ bl FUN_0202395C
+ ldr r1, _02025D3C ; =0x00000109
+ add r2, r5, r4
+ ldrb r1, [r2, r1]
+ add r0, r6, #0x0
+ bl FUN_02023A6C
+ mov r1, #0x41
+ add r2, r5, r4
+ lsl r1, r1, #0x2
+ ldrb r1, [r2, r1]
+ add r0, r6, #0x0
+ bl FUN_02023A74
+ lsl r1, r4, #0x2
+ add r1, r5, r1
+ add r1, #0xa0
+ ldr r1, [r1, #0x0]
+ add r0, r6, #0x0
+ bl FUN_020239B8
+ add r0, r6, #0x0
+ pop {r3-r7, pc}
+_02025D32:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ nop
+_02025D38: .word 0x0000010E
+_02025D3C: .word 0x00000109
+
+ thumb_func_start FUN_02025D40
+FUN_02025D40: ; 0x02025D40
+ add r0, #0x94
+ ldr r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02025D48
+FUN_02025D48: ; 0x02025D48
+ push {r4, lr}
+ add r4, r0, #0x0
+ cmp r4, #0xb
+ bge _02025D54
+ bl ErrorHandling
+_02025D54:
+ cmp r4, #0x3c
+ blt _02025D5C
+ bl ErrorHandling
+_02025D5C:
+ sub r4, #0xb
+ ldr r0, _02025D68 ; =0x02105C74
+ lsl r1, r4, #0x1
+ ldrh r0, [r0, r1]
+ pop {r4, pc}
+ nop
+_02025D68: .word 0x02105C74
+
+ thumb_func_start FUN_02025D6C
+FUN_02025D6C: ; 0x02025D6C
+ push {r4-r5}
+ mov r2, #0x81
+ mov r5, #0x0
+ lsl r2, r2, #0x4
+_02025D74:
+ add r4, r0, r5
+ ldrb r3, [r4, r2]
+ cmp r3, #0x0
+ bne _02025D88
+ mov r0, #0x81
+ lsl r0, r0, #0x4
+ strb r1, [r4, r0]
+ mov r0, #0x1
+ pop {r4-r5}
+ bx lr
+_02025D88:
+ add r5, r5, #0x1
+ cmp r5, #0xc8
+ blt _02025D74
+ mov r0, #0x0
+ pop {r4-r5}
+ bx lr
+
+ thumb_func_start FUN_02025D94
+FUN_02025D94: ; 0x02025D94
+ mov r1, #0x81
+ mov r3, #0x0
+ lsl r1, r1, #0x4
+_02025D9A:
+ add r2, r0, r3
+ ldrb r2, [r2, r1]
+ cmp r2, #0x0
+ bne _02025DA6
+ mov r0, #0x1
+ bx lr
+_02025DA6:
+ add r3, r3, #0x1
+ cmp r3, #0xc8
+ blt _02025D9A
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02025DB0
+FUN_02025DB0: ; 0x02025DB0
+ mov r1, #0x81
+ mov r3, #0x0
+ lsl r1, r1, #0x4
+_02025DB6:
+ add r2, r0, r3
+ ldrb r2, [r2, r1]
+ cmp r2, #0x0
+ beq _02025DC4
+ add r3, r3, #0x1
+ cmp r3, #0xc8
+ blt _02025DB6
+_02025DC4:
+ add r0, r3, #0x0
+ bx lr
+
+ thumb_func_start FUN_02025DC8
+FUN_02025DC8: ; 0x02025DC8
+ add r1, r0, r1
+ mov r0, #0x81
+ lsl r0, r0, #0x4
+ ldrb r0, [r1, r0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02025DD4
+FUN_02025DD4: ; 0x02025DD4
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02025F0C
+ cmp r0, #0x0
+ beq _02025DE6
+ bl ErrorHandling
+_02025DE6:
+ mov r0, #0x81
+ add r1, r5, r4
+ lsl r0, r0, #0x4
+ add r6, r4, #0x0
+ ldrb r7, [r1, r0]
+ cmp r4, #0xc7
+ bge _02025E06
+ mov r1, #0x81
+ add r0, r0, #0x1
+ lsl r1, r1, #0x4
+_02025DFA:
+ add r3, r5, r6
+ ldrb r2, [r3, r0]
+ add r6, r6, #0x1
+ cmp r6, #0xc7
+ strb r2, [r3, r1]
+ blt _02025DFA
+_02025E06:
+ ldr r0, _02025E1C ; =0x000008D7
+ mov r2, #0x0
+ strb r2, [r5, r0]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ sub r2, r2, #0x1
+ bl FUN_02025F58
+ add r0, r7, #0x0
+ pop {r3-r7, pc}
+ nop
+_02025E1C: .word 0x000008D7
+
+ thumb_func_start FUN_02025E20
+FUN_02025E20: ; 0x02025E20
+ push {r4-r7, lr}
+ sub sp, #0xd4
+ mov r4, #0x0
+ add r5, r0, #0x0
+ sub r0, r4, #0x1
+ str r0, [sp, #0x4]
+ mov r0, #0x81
+ lsl r0, r0, #0x4
+ str r1, [sp, #0x8]
+ str r2, [sp, #0x0]
+ add r0, r5, r0
+ add r1, sp, #0xc
+ mov r2, #0xc8
+ bl MI_CpuCopy8
+ ldr r2, [sp, #0x8]
+ add r1, sp, #0xc
+ add r0, r4, #0x0
+ add r7, r1, r2
+_02025E46:
+ ldr r2, [sp, #0x8]
+ cmp r0, r2
+ beq _02025E58
+ ldrb r6, [r1, #0x0]
+ mov r2, #0x81
+ add r3, r5, r4
+ lsl r2, r2, #0x4
+ strb r6, [r3, r2]
+ add r4, r4, #0x1
+_02025E58:
+ ldr r2, [sp, #0x0]
+ cmp r0, r2
+ bne _02025E6A
+ ldrb r6, [r7, #0x0]
+ mov r2, #0x81
+ add r3, r5, r4
+ lsl r2, r2, #0x4
+ strb r6, [r3, r2]
+ add r4, r4, #0x1
+_02025E6A:
+ add r0, r0, #0x1
+ add r1, r1, #0x1
+ cmp r0, #0xc8
+ blt _02025E46
+ ldr r0, [sp, #0x8]
+ mov r3, #0x0
+ add r2, r0, #0x1
+ mov r0, #0x9a
+ lsl r0, r0, #0x4
+_02025E7C:
+ add r1, r5, r3
+ ldrb r1, [r1, r0]
+ cmp r2, r1
+ bne _02025E88
+ str r3, [sp, #0x4]
+ b _02025E8E
+_02025E88:
+ add r3, r3, #0x1
+ cmp r3, #0xf
+ blt _02025E7C
+_02025E8E:
+ ldr r1, [sp, #0x0]
+ add r0, r5, #0x0
+ mov r2, #0x1
+ bl FUN_02025F58
+ mov r2, #0x0
+ ldr r1, [sp, #0x8]
+ add r0, r5, #0x0
+ mvn r2, r2
+ bl FUN_02025F58
+ mov r1, #0x0
+ ldr r0, [sp, #0x4]
+ mvn r1, r1
+ cmp r0, r1
+ beq _02025ED6
+ ldr r1, [sp, #0x0]
+ ldr r0, [sp, #0x8]
+ cmp r0, r1
+ bge _02025EC8
+ add r0, r1, #0x0
+ add r2, r0, #0x1
+ ldr r0, [sp, #0x4]
+ add sp, #0xd4
+ add r1, r5, r0
+ mov r0, #0x9a
+ lsl r0, r0, #0x4
+ strb r2, [r1, r0]
+ pop {r4-r7, pc}
+_02025EC8:
+ add r0, r1, #0x0
+ add r2, r0, #0x2
+ ldr r0, [sp, #0x4]
+ add r1, r5, r0
+ mov r0, #0x9a
+ lsl r0, r0, #0x4
+ strb r2, [r1, r0]
+_02025ED6:
+ add sp, #0xd4
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02025EDC
+FUN_02025EDC: ; 0x02025EDC
+ push {r4-r6, lr}
+ add r6, r2, #0x0
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r6, #0x1
+ bge _02025EEC
+ bl ErrorHandling
+_02025EEC:
+ cmp r6, #0xf
+ ble _02025EF4
+ bl ErrorHandling
+_02025EF4:
+ sub r0, r6, #0x1
+ add r1, r5, r0
+ mov r0, #0x9a
+ add r2, r4, #0x1
+ lsl r0, r0, #0x4
+ strb r2, [r1, r0]
+ mov r0, #0x81
+ add r1, r5, r4
+ lsl r0, r0, #0x4
+ ldrb r0, [r1, r0]
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02025F0C
+FUN_02025F0C: ; 0x02025F0C
+ push {r3-r4}
+ add r3, r1, #0x1
+ mov r1, #0x9a
+ mov r4, #0x0
+ lsl r1, r1, #0x4
+_02025F16:
+ add r2, r0, r4
+ ldrb r2, [r2, r1]
+ cmp r3, r2
+ bne _02025F24
+ mov r0, #0x1
+ pop {r3-r4}
+ bx lr
+_02025F24:
+ add r4, r4, #0x1
+ cmp r4, #0xf
+ blt _02025F16
+ mov r0, #0x0
+ pop {r3-r4}
+ bx lr
+
+ thumb_func_start FUN_02025F30
+FUN_02025F30: ; 0x02025F30
+ sub r1, r1, #0x1
+ cmp r1, #0xf
+ bge _02025F40
+ add r1, r0, r1
+ mov r0, #0x9a
+ mov r2, #0x0
+ lsl r0, r0, #0x4
+ strb r2, [r1, r0]
+_02025F40:
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02025F44
+FUN_02025F44: ; 0x02025F44
+ mov r1, #0x9a
+ lsl r1, r1, #0x4
+ add r0, r0, r1
+ ldr r3, _02025F54 ; =MI_CpuFill8
+ mov r1, #0x0
+ mov r2, #0xf
+ bx r3
+ nop
+_02025F54: .word MI_CpuFill8
+
+ thumb_func_start FUN_02025F58
+FUN_02025F58: ; 0x02025F58
+ push {r4-r7}
+ mov r6, #0x9a
+ lsl r6, r6, #0x4
+ mov r4, #0x0
+ add r1, r1, #0x1
+ add r7, r6, #0x0
+_02025F64:
+ add r3, r0, r4
+ ldrb r5, [r3, r7]
+ cmp r5, r1
+ ble _02025F76
+ mov r5, #0x9a
+ lsl r5, r5, #0x4
+ ldrb r5, [r3, r5]
+ add r5, r5, r2
+ strb r5, [r3, r6]
+_02025F76:
+ add r4, r4, #0x1
+ cmp r4, #0xf
+ blt _02025F64
+ pop {r4-r7}
+ bx lr
+
+ thumb_func_start FUN_02025F80
+FUN_02025F80: ; 0x02025F80
+ mov r1, #0x9
+ mov r3, #0x0
+ lsl r1, r1, #0x8
+_02025F86:
+ add r2, r0, r3
+ ldrb r2, [r2, r1]
+ cmp r2, #0x0
+ beq _02025F94
+ add r3, r3, #0x1
+ cmp r3, #0x28
+ blt _02025F86
+_02025F94:
+ add r0, r3, #0x0
+ bx lr
+
+ thumb_func_start FUN_02025F98
+FUN_02025F98: ; 0x02025F98
+ add r1, r0, r1
+ mov r0, #0x9
+ lsl r0, r0, #0x8
+ ldrb r0, [r1, r0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02025FA4
+FUN_02025FA4: ; 0x02025FA4
+ push {r3-r6}
+ mov r2, #0x9
+ add r3, r0, r1
+ lsl r2, r2, #0x8
+ ldrb r2, [r3, r2]
+ cmp r1, #0x27
+ bge _02025FC2
+ ldr r3, _02025FD0 ; =0x00000901
+ sub r4, r3, #0x1
+_02025FB6:
+ add r6, r0, r1
+ ldrb r5, [r6, r3]
+ add r1, r1, #0x1
+ cmp r1, #0x27
+ strb r5, [r6, r4]
+ blt _02025FB6
+_02025FC2:
+ ldr r1, _02025FD4 ; =0x00000927
+ mov r3, #0x0
+ strb r3, [r0, r1]
+ add r0, r2, #0x0
+ pop {r3-r6}
+ bx lr
+ nop
+_02025FD0: .word 0x00000901
+_02025FD4: .word 0x00000927
+
+ thumb_func_start FUN_02025FD8
+FUN_02025FD8: ; 0x02025FD8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_020259E0
+ mov r1, #0x0
+ mvn r1, r1
+ cmp r0, r1
+ beq _02025FF6
+ add r1, r5, r0
+ mov r0, #0x9
+ lsl r0, r0, #0x8
+ strb r4, [r1, r0]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02025FF6:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02025FFC
+FUN_02025FFC: ; 0x02025FFC
+ push {r3-r7, lr}
+ sub sp, #0x30
+ add r5, r0, #0x0
+ mov r0, #0x9
+ lsl r0, r0, #0x8
+ str r1, [sp, #0x4]
+ str r2, [sp, #0x0]
+ add r0, r5, r0
+ add r1, sp, #0x8
+ mov r2, #0x28
+ mov r4, #0x0
+ bl MI_CpuCopy8
+ ldr r2, [sp, #0x4]
+ add r1, sp, #0x8
+ add r0, r4, #0x0
+ add r7, r1, r2
+_0202601E:
+ ldr r2, [sp, #0x4]
+ cmp r0, r2
+ beq _02026030
+ ldrb r6, [r1, #0x0]
+ mov r2, #0x9
+ add r3, r5, r4
+ lsl r2, r2, #0x8
+ strb r6, [r3, r2]
+ add r4, r4, #0x1
+_02026030:
+ ldr r2, [sp, #0x0]
+ cmp r0, r2
+ bne _02026042
+ ldrb r6, [r7, #0x0]
+ mov r2, #0x9
+ add r3, r5, r4
+ lsl r2, r2, #0x8
+ strb r6, [r3, r2]
+ add r4, r4, #0x1
+_02026042:
+ add r0, r0, #0x1
+ add r1, r1, #0x1
+ cmp r0, #0x28
+ blt _0202601E
+ add sp, #0x30
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02026050
+FUN_02026050: ; 0x02026050
+ mov r1, #0x95
+ mov r3, #0x0
+ lsl r1, r1, #0x4
+_02026056:
+ add r2, r0, r3
+ ldrb r2, [r2, r1]
+ cmp r2, #0x0
+ beq _02026064
+ add r3, r3, #0x1
+ cmp r3, #0x28
+ blt _02026056
+_02026064:
+ add r0, r3, #0x0
+ bx lr
+
+ thumb_func_start FUN_02026068
+FUN_02026068: ; 0x02026068
+ add r1, r0, r1
+ mov r0, #0x95
+ lsl r0, r0, #0x4
+ ldrb r0, [r1, r0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02026074
+FUN_02026074: ; 0x02026074
+ add r1, r0, r1
+ ldr r0, _0202607C ; =0x00000978
+ ldrb r0, [r1, r0]
+ bx lr
+ .balign 4
+_0202607C: .word 0x00000978
+
+ thumb_func_start FUN_02026080
+FUN_02026080: ; 0x02026080
+ push {r4-r7}
+ add r2, r0, #0x0
+ mov r0, #0x95
+ add r3, r2, r1
+ lsl r0, r0, #0x4
+ ldrb r0, [r3, r0]
+ cmp r1, #0x27
+ mov r12, r0
+ bge _020260AE
+ ldr r7, _020260BC ; =0x00000951
+ add r4, r7, #0x0
+ add r5, r7, #0x0
+ sub r3, r7, #0x1
+ add r4, #0x28
+ add r5, #0x27
+_0202609E:
+ add r0, r2, r1
+ ldrb r6, [r0, r7]
+ add r1, r1, #0x1
+ cmp r1, #0x27
+ strb r6, [r0, r3]
+ ldrb r6, [r0, r4]
+ strb r6, [r0, r5]
+ blt _0202609E
+_020260AE:
+ ldr r0, _020260C0 ; =0x00000977
+ mov r1, #0x0
+ strb r1, [r2, r0]
+ mov r0, r12
+ pop {r4-r7}
+ bx lr
+ nop
+_020260BC: .word 0x00000951
+_020260C0: .word 0x00000977
+
+ thumb_func_start FUN_020260C4
+FUN_020260C4: ; 0x020260C4
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_02025A00
+ mov r1, #0x0
+ mvn r1, r1
+ cmp r0, r1
+ beq _020260E8
+ add r1, r5, r0
+ mov r0, #0x95
+ lsl r0, r0, #0x4
+ strb r4, [r1, r0]
+ add r0, #0x28
+ strb r6, [r1, r0]
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_020260E8:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020260EC
+FUN_020260EC: ; 0x020260EC
+ push {r4-r7, lr}
+ sub sp, #0x5c
+ add r7, r0, #0x0
+ mov r0, #0x95
+ lsl r0, r0, #0x4
+ str r1, [sp, #0x0]
+ str r2, [sp, #0x4]
+ add r0, r7, r0
+ add r1, sp, #0x34
+ mov r2, #0x28
+ mov r4, #0x0
+ bl MI_CpuCopy8
+ ldr r0, _02026168 ; =0x00000978
+ add r1, sp, #0xc
+ add r0, r7, r0
+ mov r2, #0x28
+ bl MI_CpuCopy8
+ ldr r3, [sp, #0x0]
+ add r1, sp, #0x34
+ add r3, r1, r3
+ mov r12, r3
+ ldr r3, [sp, #0x0]
+ add r2, sp, #0xc
+ add r3, r2, r3
+ add r0, r4, #0x0
+ str r3, [sp, #0x8]
+_02026124:
+ ldr r3, [sp, #0x0]
+ cmp r0, r3
+ beq _0202613C
+ ldrb r5, [r1, #0x0]
+ mov r3, #0x95
+ add r6, r7, r4
+ lsl r3, r3, #0x4
+ strb r5, [r6, r3]
+ ldrb r5, [r2, #0x0]
+ add r3, #0x28
+ add r4, r4, #0x1
+ strb r5, [r6, r3]
+_0202613C:
+ ldr r3, [sp, #0x4]
+ cmp r0, r3
+ bne _02026158
+ mov r3, r12
+ ldrb r5, [r3, #0x0]
+ mov r3, #0x95
+ add r6, r7, r4
+ lsl r3, r3, #0x4
+ strb r5, [r6, r3]
+ ldr r3, [sp, #0x8]
+ add r4, r4, #0x1
+ ldrb r5, [r3, #0x0]
+ ldr r3, _02026168 ; =0x00000978
+ strb r5, [r6, r3]
+_02026158:
+ add r0, r0, #0x1
+ add r1, r1, #0x1
+ add r2, r2, #0x1
+ cmp r0, #0x28
+ blt _02026124
+ add sp, #0x5c
+ pop {r4-r7, pc}
+ nop
+_02026168: .word 0x00000978
+
+ thumb_func_start FUN_0202616C
+FUN_0202616C: ; 0x0202616C
+ ldr r1, _02026184 ; =0x00000928
+ mov r3, #0x0
+_02026170:
+ add r2, r0, r3
+ ldrb r2, [r2, r1]
+ cmp r2, #0x0
+ beq _0202617E
+ add r3, r3, #0x1
+ cmp r3, #0x28
+ blt _02026170
+_0202617E:
+ add r0, r3, #0x0
+ bx lr
+ nop
+_02026184: .word 0x00000928
+
+ thumb_func_start FUN_02026188
+FUN_02026188: ; 0x02026188
+ add r1, r0, r1
+ ldr r0, _02026190 ; =0x00000928
+ ldrb r0, [r1, r0]
+ bx lr
+ .balign 4
+_02026190: .word 0x00000928
+
+ thumb_func_start FUN_02026194
+FUN_02026194: ; 0x02026194
+ push {r3-r6}
+ ldr r2, _020261BC ; =0x00000928
+ add r3, r0, r1
+ ldrb r2, [r3, r2]
+ cmp r1, #0x27
+ bge _020261B0
+ ldr r3, _020261C0 ; =0x00000929
+ sub r4, r3, #0x1
+_020261A4:
+ add r6, r0, r1
+ ldrb r5, [r6, r3]
+ add r1, r1, #0x1
+ cmp r1, #0x27
+ strb r5, [r6, r4]
+ blt _020261A4
+_020261B0:
+ ldr r1, _020261C4 ; =0x0000094F
+ mov r3, #0x0
+ strb r3, [r0, r1]
+ add r0, r2, #0x0
+ pop {r3-r6}
+ bx lr
+ .balign 4
+_020261BC: .word 0x00000928
+_020261C0: .word 0x00000929
+_020261C4: .word 0x0000094F
+
+ thumb_func_start FUN_020261C8
+FUN_020261C8: ; 0x020261C8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02025A20
+ mov r1, #0x0
+ mvn r1, r1
+ cmp r0, r1
+ beq _020261E4
+ add r1, r5, r0
+ ldr r0, _020261E8 ; =0x00000928
+ strb r4, [r1, r0]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_020261E4:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_020261E8: .word 0x00000928
+
+ thumb_func_start FUN_020261EC
+FUN_020261EC: ; 0x020261EC
+ push {r3-r7, lr}
+ sub sp, #0x30
+ add r5, r0, #0x0
+ ldr r0, _02026238 ; =0x00000928
+ str r1, [sp, #0x4]
+ str r2, [sp, #0x0]
+ add r0, r5, r0
+ add r1, sp, #0x8
+ mov r2, #0x28
+ mov r4, #0x0
+ bl MI_CpuCopy8
+ ldr r2, [sp, #0x4]
+ add r1, sp, #0x8
+ add r0, r4, #0x0
+ add r7, r1, r2
+_0202620C:
+ ldr r2, [sp, #0x4]
+ cmp r0, r2
+ beq _0202621C
+ ldrb r6, [r1, #0x0]
+ ldr r2, _02026238 ; =0x00000928
+ add r3, r5, r4
+ strb r6, [r3, r2]
+ add r4, r4, #0x1
+_0202621C:
+ ldr r2, [sp, #0x0]
+ cmp r0, r2
+ bne _0202622C
+ ldrb r6, [r7, #0x0]
+ ldr r2, _02026238 ; =0x00000928
+ add r3, r5, r4
+ strb r6, [r3, r2]
+ add r4, r4, #0x1
+_0202622C:
+ add r0, r0, #0x1
+ add r1, r1, #0x1
+ cmp r0, #0x28
+ blt _0202620C
+ add sp, #0x30
+ pop {r3-r7, pc}
+ .balign 4
+_02026238: .word 0x00000928
+
+ thumb_func_start FUN_0202623C
+FUN_0202623C: ; 0x0202623C
+ ldr r1, _02026254 ; =0x000008D8
+ mov r3, #0x0
+_02026240:
+ add r2, r0, r3
+ ldrb r2, [r2, r1]
+ cmp r2, #0x0
+ beq _0202624E
+ add r3, r3, #0x1
+ cmp r3, #0x28
+ blt _02026240
+_0202624E:
+ add r0, r3, #0x0
+ bx lr
+ nop
+_02026254: .word 0x000008D8
+
+ thumb_func_start FUN_02026258
+FUN_02026258: ; 0x02026258
+ add r1, r0, r1
+ ldr r0, _02026260 ; =0x000008D8
+ ldrb r0, [r1, r0]
+ bx lr
+ .balign 4
+_02026260: .word 0x000008D8
+
+ thumb_func_start FUN_02026264
+FUN_02026264: ; 0x02026264
+ push {r3-r6}
+ ldr r2, _0202628C ; =0x000008D8
+ add r3, r0, r1
+ ldrb r2, [r3, r2]
+ cmp r1, #0x27
+ bge _02026280
+ ldr r3, _02026290 ; =0x000008D9
+ sub r4, r3, #0x1
+_02026274:
+ add r6, r0, r1
+ ldrb r5, [r6, r3]
+ add r1, r1, #0x1
+ cmp r1, #0x27
+ strb r5, [r6, r4]
+ blt _02026274
+_02026280:
+ ldr r1, _02026294 ; =0x000008FF
+ mov r3, #0x0
+ strb r3, [r0, r1]
+ add r0, r2, #0x0
+ pop {r3-r6}
+ bx lr
+ .balign 4
+_0202628C: .word 0x000008D8
+_02026290: .word 0x000008D9
+_02026294: .word 0x000008FF
+
+ thumb_func_start FUN_02026298
+FUN_02026298: ; 0x02026298
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02025A40
+ mov r1, #0x0
+ mvn r1, r1
+ cmp r0, r1
+ beq _020262B4
+ add r1, r5, r0
+ ldr r0, _020262B8 ; =0x000008D8
+ strb r4, [r1, r0]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_020262B4:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_020262B8: .word 0x000008D8
+
+ thumb_func_start FUN_020262BC
+FUN_020262BC: ; 0x020262BC
+ push {r3-r7, lr}
+ sub sp, #0x30
+ add r5, r0, #0x0
+ ldr r0, _02026308 ; =0x000008D8
+ str r1, [sp, #0x4]
+ str r2, [sp, #0x0]
+ add r0, r5, r0
+ add r1, sp, #0x8
+ mov r2, #0x28
+ mov r4, #0x0
+ bl MI_CpuCopy8
+ ldr r2, [sp, #0x4]
+ add r1, sp, #0x8
+ add r0, r4, #0x0
+ add r7, r1, r2
+_020262DC:
+ ldr r2, [sp, #0x4]
+ cmp r0, r2
+ beq _020262EC
+ ldrb r6, [r1, #0x0]
+ ldr r2, _02026308 ; =0x000008D8
+ add r3, r5, r4
+ strb r6, [r3, r2]
+ add r4, r4, #0x1
+_020262EC:
+ ldr r2, [sp, #0x0]
+ cmp r0, r2
+ bne _020262FC
+ ldrb r6, [r7, #0x0]
+ ldr r2, _02026308 ; =0x000008D8
+ add r3, r5, r4
+ strb r6, [r3, r2]
+ add r4, r4, #0x1
+_020262FC:
+ add r0, r0, #0x1
+ add r1, r1, #0x1
+ cmp r0, #0x28
+ blt _020262DC
+ add sp, #0x30
+ pop {r3-r7, pc}
+ .balign 4
+_02026308: .word 0x000008D8
+
+ thumb_func_start FUN_0202630C
+FUN_0202630C: ; 0x0202630C
+ push {r3-r7, lr}
+ add r4, r2, #0x0
+ add r5, r0, #0x0
+ add r7, r1, #0x0
+ add r6, r3, #0x0
+ cmp r4, #0x40
+ blt _0202631E
+ bl ErrorHandling
+_0202631E:
+ ldr r0, _02026350 ; =0x0000010F
+ add r1, r5, r4
+ strb r7, [r1, r0]
+ lsl r1, r4, #0x1
+ add r1, r4, r1
+ add r2, r0, #0x0
+ add r1, r5, r1
+ add r2, #0x40
+ strb r6, [r1, r2]
+ mov r2, #0xf
+ lsl r2, r2, #0x8
+ add r3, r6, #0x0
+ and r3, r2
+ asr r4, r3, #0x8
+ ldr r3, [sp, #0x18]
+ and r2, r3
+ asr r2, r2, #0x4
+ add r4, r4, r2
+ add r2, r0, #0x0
+ add r2, #0x41
+ strb r4, [r1, r2]
+ add r0, #0x42
+ strb r3, [r1, r0]
+ pop {r3-r7, pc}
+ nop
+_02026350: .word 0x0000010F
+
+ thumb_func_start FUN_02026354
+FUN_02026354: ; 0x02026354
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x40
+ blt _02026362
+ bl ErrorHandling
+_02026362:
+ ldr r0, _0202636C ; =0x0000010F
+ add r1, r5, r4
+ ldrb r0, [r1, r0]
+ pop {r3-r5, pc}
+ nop
+_0202636C: .word 0x0000010F
+
+ thumb_func_start FUN_02026370
+FUN_02026370: ; 0x02026370
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x40
+ blt _0202637E
+ bl ErrorHandling
+_0202637E:
+ lsl r0, r4, #0x1
+ add r0, r4, r0
+ add r1, r5, r0
+ ldr r0, _02026398 ; =0x0000014F
+ ldrb r2, [r1, r0]
+ add r0, r0, #0x1
+ ldrb r0, [r1, r0]
+ lsl r1, r0, #0x8
+ mov r0, #0xf
+ lsl r0, r0, #0x8
+ and r0, r1
+ add r0, r2, r0
+ pop {r3-r5, pc}
+ .balign 4
+_02026398: .word 0x0000014F
+
+ thumb_func_start FUN_0202639C
+FUN_0202639C: ; 0x0202639C
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x40
+ blt _020263AA
+ bl ErrorHandling
+_020263AA:
+ lsl r0, r4, #0x1
+ add r0, r4, r0
+ add r1, r5, r0
+ ldr r0, _020263C4 ; =0x00000151
+ ldrb r2, [r1, r0]
+ sub r0, r0, #0x1
+ ldrb r0, [r1, r0]
+ lsl r1, r0, #0x4
+ mov r0, #0xf
+ lsl r0, r0, #0x8
+ and r0, r1
+ add r0, r2, r0
+ pop {r3-r5, pc}
+ .balign 4
+_020263C4: .word 0x00000151
+
+ thumb_func_start FUN_020263C8
+FUN_020263C8: ; 0x020263C8
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x40
+ blt _020263D6
+ bl ErrorHandling
+_020263D6:
+ ldr r0, _020263F0 ; =0x0000010F
+ mov r1, #0x0
+ add r2, r5, r4
+ strb r1, [r2, r0]
+ add r0, #0x40
+ add r2, r5, r0
+ lsl r0, r4, #0x1
+ add r0, r4, r0
+ add r0, r2, r0
+ mov r2, #0x3
+ bl MI_CpuFill8
+ pop {r3-r5, pc}
+ .balign 4
+_020263F0: .word 0x0000010F
+
+ thumb_func_start FUN_020263F4
+FUN_020263F4: ; 0x020263F4
+ push {r3-r7, lr}
+ add r4, r2, #0x0
+ add r5, r0, #0x0
+ add r7, r1, #0x0
+ add r6, r3, #0x0
+ cmp r4, #0x10
+ blt _02026406
+ bl ErrorHandling
+_02026406:
+ lsl r2, r4, #0x1
+ ldr r1, _02026440 ; =0x0000050C
+ add r0, r5, r4
+ add r2, r4, r2
+ add r4, r5, r2
+ add r2, r1, #0x0
+ mov r5, #0xf
+ strb r7, [r0, r1]
+ add r2, #0x10
+ strb r6, [r4, r2]
+ lsl r5, r5, #0x8
+ add r2, r6, #0x0
+ and r2, r5
+ asr r3, r2, #0x8
+ ldr r2, [sp, #0x18]
+ and r5, r2
+ asr r5, r5, #0x4
+ add r5, r3, r5
+ add r3, r1, #0x0
+ add r3, #0x11
+ strb r5, [r4, r3]
+ add r3, r1, #0x0
+ add r3, #0x12
+ strb r2, [r4, r3]
+ ldr r2, [sp, #0x1c]
+ add r1, #0x40
+ strb r2, [r0, r1]
+ pop {r3-r7, pc}
+ nop
+_02026440: .word 0x0000050C
+
+ thumb_func_start FUN_02026444
+FUN_02026444: ; 0x02026444
+ add r1, r0, r1
+ ldr r0, _0202644C ; =0x0000050C
+ ldrb r0, [r1, r0]
+ bx lr
+ .balign 4
+_0202644C: .word 0x0000050C
+
+ thumb_func_start FUN_02026450
+FUN_02026450: ; 0x02026450
+ lsl r2, r1, #0x1
+ add r1, r1, r2
+ add r1, r0, r1
+ ldr r0, _0202646C ; =0x0000051C
+ ldrb r2, [r1, r0]
+ add r0, r0, #0x1
+ ldrb r0, [r1, r0]
+ lsl r1, r0, #0x8
+ mov r0, #0xf
+ lsl r0, r0, #0x8
+ and r0, r1
+ add r0, r2, r0
+ bx lr
+ nop
+_0202646C: .word 0x0000051C
+
+ thumb_func_start FUN_02026470
+FUN_02026470: ; 0x02026470
+ lsl r2, r1, #0x1
+ add r1, r1, r2
+ add r1, r0, r1
+ ldr r0, _0202648C ; =0x0000051E
+ ldrb r2, [r1, r0]
+ sub r0, r0, #0x1
+ ldrb r0, [r1, r0]
+ lsl r1, r0, #0x4
+ mov r0, #0xf
+ lsl r0, r0, #0x8
+ and r0, r1
+ add r0, r2, r0
+ bx lr
+ nop
+_0202648C: .word 0x0000051E
+
+ thumb_func_start FUN_02026490
+FUN_02026490: ; 0x02026490
+ add r1, r0, r1
+ ldr r0, _02026498 ; =0x0000054C
+ ldrb r0, [r1, r0]
+ bx lr
+ .balign 4
+_02026498: .word 0x0000054C
+
+ thumb_func_start FUN_0202649C
+FUN_0202649C: ; 0x0202649C
+ push {r3-r7, lr}
+ add r4, r2, #0x0
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r7, r3, #0x0
+ cmp r4, #0x64
+ blt _020264AE
+ bl ErrorHandling
+_020264AE:
+ ldr r1, _020264E8 ; =0x0000055C
+ add r0, r5, r4
+ strb r6, [r0, r1]
+ lsl r1, r4, #0x1
+ add r1, r4, r1
+ add r4, r5, r1
+ mov r5, #0xf
+ lsl r5, r5, #0x8
+ add r2, r7, #0x0
+ and r2, r5
+ asr r3, r2, #0x8
+ ldr r2, [sp, #0x18]
+ ldr r1, _020264EC ; =0x00000688
+ and r5, r2
+ asr r5, r5, #0x4
+ add r5, r3, r5
+ strb r7, [r4, r1]
+ add r3, r1, #0x1
+ strb r5, [r4, r3]
+ add r3, r1, #0x2
+ strb r2, [r4, r3]
+ add r2, r1, #0x0
+ ldr r3, [sp, #0x1c]
+ sub r2, #0x64
+ strb r3, [r0, r2]
+ ldr r2, [sp, #0x20]
+ sub r1, #0xc8
+ strb r2, [r0, r1]
+ pop {r3-r7, pc}
+ .balign 4
+_020264E8: .word 0x0000055C
+_020264EC: .word 0x00000688
+
+ thumb_func_start FUN_020264F0
+FUN_020264F0: ; 0x020264F0
+ add r1, r0, r1
+ ldr r0, _020264F8 ; =0x0000055C
+ ldrb r0, [r1, r0]
+ bx lr
+ .balign 4
+_020264F8: .word 0x0000055C
+
+ thumb_func_start FUN_020264FC
+FUN_020264FC: ; 0x020264FC
+ lsl r2, r1, #0x1
+ add r1, r1, r2
+ add r1, r0, r1
+ ldr r0, _02026518 ; =0x00000688
+ ldrb r2, [r1, r0]
+ add r0, r0, #0x1
+ ldrb r0, [r1, r0]
+ lsl r1, r0, #0x8
+ mov r0, #0xf
+ lsl r0, r0, #0x8
+ and r0, r1
+ add r0, r2, r0
+ bx lr
+ nop
+_02026518: .word 0x00000688
+
+ thumb_func_start FUN_0202651C
+FUN_0202651C: ; 0x0202651C
+ lsl r2, r1, #0x1
+ add r1, r1, r2
+ add r1, r0, r1
+ ldr r0, _02026538 ; =0x0000068A
+ ldrb r2, [r1, r0]
+ sub r0, r0, #0x1
+ ldrb r0, [r1, r0]
+ lsl r1, r0, #0x4
+ mov r0, #0xf
+ lsl r0, r0, #0x8
+ and r0, r1
+ add r0, r2, r0
+ bx lr
+ nop
+_02026538: .word 0x0000068A
+
+ thumb_func_start FUN_0202653C
+FUN_0202653C: ; 0x0202653C
+ add r1, r0, r1
+ ldr r0, _02026544 ; =0x00000624
+ ldrb r0, [r1, r0]
+ bx lr
+ .balign 4
+_02026544: .word 0x00000624
+
+ thumb_func_start FUN_02026548
+FUN_02026548: ; 0x02026548
+ add r1, r0, r1
+ mov r0, #0x17
+ lsl r0, r0, #0x6
+ ldrb r0, [r1, r0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02026554
+FUN_02026554: ; 0x02026554
+ push {r4-r7}
+ ldr r3, _020265B0 ; =0x00000211
+ add r7, r0, #0x0
+ mov r12, r1
+ mov r0, #0x0
+ add r1, r7, #0x0
+ sub r4, r3, #0x1
+ sub r5, r3, #0x2
+_02026564:
+ ldrb r6, [r1, r5]
+ cmp r6, #0x0
+ bne _020265A0
+ ldrb r6, [r1, r4]
+ cmp r6, #0x0
+ bne _020265A0
+ ldrb r6, [r1, r3]
+ cmp r6, #0x0
+ bne _020265A0
+ lsl r1, r0, #0x1
+ add r1, r0, r1
+ mov r5, #0xf
+ ldr r4, _020265B4 ; =0x0000020F
+ add r1, r7, r1
+ mov r3, r12
+ strb r3, [r1, r4]
+ lsl r5, r5, #0x8
+ mov r3, r12
+ and r3, r5
+ asr r6, r3, #0x8
+ add r3, r2, #0x0
+ and r3, r5
+ asr r3, r3, #0x4
+ add r5, r6, r3
+ add r3, r4, #0x1
+ strb r5, [r1, r3]
+ add r3, r4, #0x2
+ strb r2, [r1, r3]
+ pop {r4-r7}
+ bx lr
+_020265A0:
+ add r0, r0, #0x1
+ add r1, r1, #0x3
+ cmp r0, #0xff
+ blt _02026564
+ mov r0, #0x0
+ pop {r4-r7}
+ bx lr
+ nop
+_020265B0: .word 0x00000211
+_020265B4: .word 0x0000020F
+
+ thumb_func_start FUN_020265B8
+FUN_020265B8: ; 0x020265B8
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0xff
+ blt _020265C6
+ bl ErrorHandling
+_020265C6:
+ ldr r0, _020265DC ; =0x0000020F
+ mov r2, #0x3
+ add r1, r5, r0
+ lsl r0, r4, #0x1
+ add r0, r4, r0
+ add r0, r1, r0
+ mov r1, #0x0
+ bl MI_CpuFill8
+ pop {r3-r5, pc}
+ nop
+_020265DC: .word 0x0000020F
+
+ thumb_func_start FUN_020265E0
+FUN_020265E0: ; 0x020265E0
+ lsl r2, r1, #0x1
+ add r1, r1, r2
+ add r1, r0, r1
+ ldr r0, _020265FC ; =0x0000020F
+ ldrb r2, [r1, r0]
+ add r0, r0, #0x1
+ ldrb r0, [r1, r0]
+ lsl r1, r0, #0x8
+ mov r0, #0xf
+ lsl r0, r0, #0x8
+ and r0, r1
+ add r0, r2, r0
+ bx lr
+ nop
+_020265FC: .word 0x0000020F
+
+ thumb_func_start FUN_02026600
+FUN_02026600: ; 0x02026600
+ lsl r2, r1, #0x1
+ add r1, r1, r2
+ add r1, r0, r1
+ ldr r0, _0202661C ; =0x00000211
+ ldrb r2, [r1, r0]
+ sub r0, r0, #0x1
+ ldrb r0, [r1, r0]
+ lsl r1, r0, #0x4
+ mov r0, #0xf
+ lsl r0, r0, #0x8
+ and r0, r1
+ add r0, r2, r0
+ bx lr
+ nop
+_0202661C: .word 0x00000211
+
+ thumb_func_start FUN_02026620
+FUN_02026620: ; 0x02026620
+ mov r1, #0x9b
+ lsl r1, r1, #0x4
+ ldrb r0, [r0, r1]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1c
+ bne _02026630
+ mov r0, #0x1
+ bx lr
+_02026630:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_02026634
+FUN_02026634: ; 0x02026634
+ mov r2, #0x9b
+ lsl r2, r2, #0x4
+ ldrb r3, [r0, r2]
+ mov r1, #0xf0
+ bic r3, r1
+ mov r1, #0x10
+ orr r1, r3
+ strb r1, [r0, r2]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02026648
+FUN_02026648: ; 0x02026648
+ mov r1, #0x9b
+ lsl r1, r1, #0x4
+ ldrb r0, [r0, r1]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ bx lr
+
+ thumb_func_start FUN_02026654
+FUN_02026654: ; 0x02026654
+ mov r2, #0x9b
+ lsl r2, r2, #0x4
+ ldrb r3, [r0, r2]
+ mov r1, #0xf
+ bic r3, r1
+ strb r3, [r0, r2]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02026664
+FUN_02026664: ; 0x02026664
+ push {r3-r4}
+ cmp r1, #0x2c
+ blt _0202667E
+ cmp r1, #0x3b
+ bgt _0202667E
+ ldr r2, _02026684 ; =0x0000080C
+ mov r3, #0x1
+ sub r1, #0x2c
+ ldr r4, [r0, r2]
+ lsl r3, r1
+ add r1, r4, #0x0
+ orr r1, r3
+ str r1, [r0, r2]
+_0202667E:
+ pop {r3-r4}
+ bx lr
+ nop
+_02026684: .word 0x0000080C
+
+ thumb_func_start FUN_02026688
+FUN_02026688: ; 0x02026688
+ cmp r1, #0x2c
+ blt _02026690
+ cmp r1, #0x3b
+ ble _02026694
+_02026690:
+ mov r0, #0x1
+ bx lr
+_02026694:
+ ldr r2, _020266AC ; =0x0000080C
+ sub r1, #0x2c
+ ldr r3, [r0, r2]
+ mov r0, #0x1
+ add r2, r0, #0x0
+ lsl r2, r1
+ add r1, r3, #0x0
+ tst r1, r2
+ beq _020266A8
+ mov r0, #0x0
+_020266A8:
+ bx lr
+ nop
+_020266AC: .word 0x0000080C
+
+ thumb_func_start FUN_020266B0
+FUN_020266B0: ; 0x020266B0
+ ldr r1, _020266C4 ; =0x000009AF
+ ldrb r2, [r0, r1]
+ cmp r2, #0x63
+ blo _020266BE
+ mov r2, #0x0
+ strb r2, [r0, r1]
+ bx lr
+_020266BE:
+ add r2, r2, #0x1
+ strb r2, [r0, r1]
+ bx lr
+ .balign 4
+_020266C4: .word 0x000009AF
+
+ thumb_func_start FUN_020266C8
+FUN_020266C8: ; 0x020266C8
+ ldr r1, _020266D0 ; =0x000009AF
+ ldrb r0, [r0, r1]
+ bx lr
+ nop
+_020266D0: .word 0x000009AF
+
+ thumb_func_start FUN_020266D4
+FUN_020266D4: ; 0x020266D4
+ ldr r3, _020266DC ; =MI_CpuFill8
+ mov r1, #0x0
+ mov r2, #0x94
+ bx r3
+ .balign 4
+_020266DC: .word MI_CpuFill8
+
+ thumb_func_start FUN_020266E0
+FUN_020266E0: ; 0x020266E0
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x2d
+ bl MI_CpuFill8
+ add r0, r4, #0x0
+ add r0, #0x2d
+ mov r1, #0x0
+ mov r2, #0x20
+ bl MI_CpuFill8
+ add r0, r4, #0x0
+ mov r1, #0x0
+ add r0, #0x8c
+ strh r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x8e
+ strh r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x90
+ strb r1, [r0, #0x0]
+ add r4, #0x91
+ strb r1, [r4, #0x0]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02026714
+FUN_02026714: ; 0x02026714
+ mov r1, #0x0
+ add r0, #0x91
+ strb r1, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_0202671C
+FUN_0202671C: ; 0x0202671C
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r7, r2, #0x0
+ add r6, r3, #0x0
+ cmp r4, #0x20
+ blt _0202672E
+ bl ErrorHandling
+_0202672E:
+ cmp r6, #0x20
+ blt _02026736
+ bl ErrorHandling
+_02026736:
+ ldr r0, [sp, #0x18]
+ cmp r0, #0x20
+ blt _02026740
+ bl ErrorHandling
+_02026740:
+ cmp r5, #0x0
+ bne _02026748
+ bl ErrorHandling
+_02026748:
+ cmp r4, #0x0
+ beq _02026774
+ cmp r4, #0x10
+ bge _02026762
+ sub r1, r4, #0x1
+ lsl r0, r1, #0x1
+ add r0, r1, r0
+ strb r6, [r5, r0]
+ ldr r1, [sp, #0x18]
+ add r0, r5, r0
+ strb r1, [r0, #0x1]
+ strb r7, [r0, #0x2]
+ pop {r3-r7, pc}
+_02026762:
+ sub r4, #0x10
+ lsl r2, r4, #0x1
+ add r0, r5, r2
+ add r0, #0x2d
+ strb r6, [r0, #0x0]
+ add r0, r5, r2
+ ldr r1, [sp, #0x18]
+ add r0, #0x2e
+ strb r1, [r0, #0x0]
+_02026774:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02026778
+FUN_02026778: ; 0x02026778
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ add r4, r3, #0x0
+ bl FUN_020267C4
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r3, r7, #0x0
+ str r4, [sp, #0x0]
+ bl FUN_0202671C
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02026798
+FUN_02026798: ; 0x02026798
+ add r0, #0x88
+ ldr r0, [r0, #0x0]
+ lsl r0, r0, #0xc
+ lsr r0, r0, #0xc
+ cmp r0, #0x32
+ blt _020267A8
+ mov r0, #0x5
+ bx lr
+_020267A8:
+ cmp r0, #0xa
+ blt _020267B0
+ mov r0, #0x4
+ bx lr
+_020267B0:
+ cmp r0, #0x3
+ blt _020267B8
+ mov r0, #0x3
+ bx lr
+_020267B8:
+ cmp r0, #0x1
+ blt _020267C0
+ mov r0, #0x2
+ bx lr
+_020267C0:
+ mov r0, #0x1
+ bx lr
+
+ thumb_func_start FUN_020267C4
+FUN_020267C4: ; 0x020267C4
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r4, r0, #0x0
+ cmp r5, #0x20
+ blt _020267D2
+ bl ErrorHandling
+_020267D2:
+ cmp r5, #0x0
+ bne _020267DE
+ add r0, r4, #0x0
+ bl FUN_02026798
+ pop {r3-r5, pc}
+_020267DE:
+ cmp r5, #0x10
+ bge _020267EE
+ sub r1, r5, #0x1
+ lsl r0, r1, #0x1
+ add r0, r1, r0
+ add r0, r4, r0
+ ldrb r0, [r0, #0x2]
+ pop {r3-r5, pc}
+_020267EE:
+ sub r5, #0x10
+ lsl r1, r5, #0x1
+ add r0, r4, r1
+ add r0, #0x2d
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0202680A
+ add r0, r4, r1
+ add r0, #0x2e
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0202680A
+ mov r0, #0x6
+ pop {r3-r5, pc}
+_0202680A:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02026810
+FUN_02026810: ; 0x02026810
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r4, r0, #0x0
+ cmp r5, #0x20
+ blt _0202681E
+ bl ErrorHandling
+_0202681E:
+ cmp r5, #0x0
+ bne _02026826
+ mov r0, #0xf
+ pop {r3-r5, pc}
+_02026826:
+ cmp r5, #0x10
+ bge _02026834
+ sub r1, r5, #0x1
+ lsl r0, r1, #0x1
+ add r0, r1, r0
+ ldrb r0, [r4, r0]
+ pop {r3-r5, pc}
+_02026834:
+ sub r5, #0x10
+ lsl r0, r5, #0x1
+ add r0, r4, r0
+ add r0, #0x2d
+ ldrb r0, [r0, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02026840
+FUN_02026840: ; 0x02026840
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r4, r0, #0x0
+ cmp r5, #0x20
+ blt _0202684E
+ bl ErrorHandling
+_0202684E:
+ cmp r5, #0x0
+ bne _02026856
+ mov r0, #0xc
+ pop {r3-r5, pc}
+_02026856:
+ cmp r5, #0x10
+ bge _02026866
+ sub r1, r5, #0x1
+ lsl r0, r1, #0x1
+ add r0, r1, r0
+ add r0, r4, r0
+ ldrb r0, [r0, #0x1]
+ pop {r3-r5, pc}
+_02026866:
+ sub r5, #0x10
+ lsl r0, r5, #0x1
+ add r0, r4, r0
+ add r0, #0x2e
+ ldrb r0, [r0, #0x0]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02026874
+FUN_02026874: ; 0x02026874
+ add r0, #0x88
+ ldr r0, [r0, #0x0]
+ lsl r0, r0, #0xc
+ lsr r0, r0, #0xc
+ cmp r0, #0x32
+ blo _02026884
+ mov r0, #0x0
+ bx lr
+_02026884:
+ cmp r0, #0xa
+ blo _0202688C
+ mov r0, #0x6
+ bx lr
+_0202688C:
+ cmp r0, #0x3
+ blo _02026894
+ mov r0, #0xb
+ bx lr
+_02026894:
+ cmp r0, #0x1
+ blo _0202689C
+ mov r0, #0xf
+ bx lr
+_0202689C:
+ mov r0, #0x10
+ bx lr
+
+ thumb_func_start FUN_020268A0
+FUN_020268A0: ; 0x020268A0
+ add r0, #0x88
+ ldr r0, [r0, #0x0]
+ lsl r0, r0, #0xc
+ lsr r0, r0, #0xc
+ cmp r0, #0x32
+ blo _020268B0
+ mov r0, #0xf
+ bx lr
+_020268B0:
+ cmp r0, #0xa
+ blo _020268B8
+ mov r0, #0xf
+ bx lr
+_020268B8:
+ cmp r0, #0x3
+ blo _020268C0
+ mov r0, #0xf
+ bx lr
+_020268C0:
+ cmp r0, #0x1
+ blo _020268C8
+ mov r0, #0xc
+ bx lr
+_020268C8:
+ mov r0, #0xa
+ bx lr
+
+ thumb_func_start FUN_020268CC
+FUN_020268CC: ; 0x020268CC
+ ldr r0, [r0, #0x0]
+ lsl r0, r0, #0xc
+ lsr r0, r0, #0xc
+ bx lr
+
+ thumb_func_start FUN_020268D4
+FUN_020268D4: ; 0x020268D4
+ push {r3, lr}
+ bl FUN_020269A0
+ cmp r0, #0x4
+ bne _020268E2
+ mov r0, #0x1
+ pop {r3, pc}
+_020268E2:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020268E8
+FUN_020268E8: ; 0x020268E8
+ ldr r3, [r0, #0x0]
+ ldr r2, _020268F8 ; =0xFFF00000
+ and r3, r2
+ ldr r2, _020268FC ; =0x000FFFFF
+ and r1, r2
+ orr r1, r3
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+_020268F8: .word 0xFFF00000
+_020268FC: .word 0x000FFFFF
+
+ thumb_func_start FUN_02026900
+FUN_02026900: ; 0x02026900
+ ldr r0, [r0, #0x4]
+ lsl r0, r0, #0xc
+ lsr r0, r0, #0xc
+ bx lr
+
+ thumb_func_start FUN_02026908
+FUN_02026908: ; 0x02026908
+ push {r3-r4}
+ ldr r2, [r0, #0x4]
+ lsl r1, r2, #0xc
+ lsr r4, r1, #0xc
+ ldr r1, _0202692C ; =0x000F423F
+ cmp r4, r1
+ bhs _02026926
+ ldr r1, _02026930 ; =0xFFF00000
+ add r3, r2, #0x0
+ and r3, r1
+ ldr r1, _02026934 ; =0x000FFFFF
+ add r2, r4, #0x1
+ and r1, r2
+ orr r1, r3
+ str r1, [r0, #0x4]
+_02026926:
+ pop {r3-r4}
+ bx lr
+ nop
+_0202692C: .word 0x000F423F
+_02026930: .word 0xFFF00000
+_02026934: .word 0x000FFFFF
+
+ thumb_func_start FUN_02026938
+FUN_02026938: ; 0x02026938
+ ldr r0, [r0, #0x8]
+ lsl r0, r0, #0xc
+ lsr r0, r0, #0xc
+ bx lr
+
+ thumb_func_start FUN_02026940
+FUN_02026940: ; 0x02026940
+ push {r3-r4}
+ ldr r2, [r0, #0x8]
+ lsl r1, r2, #0xc
+ lsr r4, r1, #0xc
+ ldr r1, _02026964 ; =0x000F423F
+ cmp r4, r1
+ bhs _0202695E
+ ldr r1, _02026968 ; =0xFFF00000
+ add r3, r2, #0x0
+ and r3, r1
+ ldr r1, _0202696C ; =0x000FFFFF
+ add r2, r4, #0x1
+ and r1, r2
+ orr r1, r3
+ str r1, [r0, #0x8]
+_0202695E:
+ pop {r3-r4}
+ bx lr
+ nop
+_02026964: .word 0x000F423F
+_02026968: .word 0xFFF00000
+_0202696C: .word 0x000FFFFF
+
+ thumb_func_start FUN_02026970
+FUN_02026970: ; 0x02026970
+ push {r3-r4}
+ ldr r2, [r0, #0xc]
+ lsl r1, r2, #0xc
+ lsr r4, r1, #0xc
+ ldr r1, _02026994 ; =0x000F423F
+ cmp r4, r1
+ bhs _0202698E
+ ldr r1, _02026998 ; =0xFFF00000
+ add r3, r2, #0x0
+ and r3, r1
+ ldr r1, _0202699C ; =0x000FFFFF
+ add r2, r4, #0x1
+ and r1, r2
+ orr r1, r3
+ str r1, [r0, #0xc]
+_0202698E:
+ pop {r3-r4}
+ bx lr
+ nop
+_02026994: .word 0x000F423F
+_02026998: .word 0xFFF00000
+_0202699C: .word 0x000FFFFF
+
+ thumb_func_start FUN_020269A0
+FUN_020269A0: ; 0x020269A0
+ ldr r0, [r0, #0x38]
+ lsl r0, r0, #0xc
+ lsr r0, r0, #0xc
+ cmp r0, #0x32
+ blt _020269AE
+ mov r0, #0x4
+ bx lr
+_020269AE:
+ cmp r0, #0xa
+ blt _020269B6
+ mov r0, #0x3
+ bx lr
+_020269B6:
+ cmp r0, #0x3
+ blt _020269BE
+ mov r0, #0x2
+ bx lr
+_020269BE:
+ cmp r0, #0x1
+ blt _020269C6
+ mov r0, #0x1
+ bx lr
+_020269C6:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020269CC
+FUN_020269CC: ; 0x020269CC
+ ldr r0, [r0, #0x38]
+ lsl r0, r0, #0xc
+ lsr r0, r0, #0xc
+ bx lr
+
+ thumb_func_start FUN_020269D4
+FUN_020269D4: ; 0x020269D4
+ push {r3-r4}
+ ldr r2, [r0, #0x38]
+ lsl r1, r2, #0xc
+ lsr r4, r1, #0xc
+ ldr r1, _020269F8 ; =0x000F423F
+ cmp r4, r1
+ bhs _020269F2
+ ldr r1, _020269FC ; =0xFFF00000
+ add r3, r2, #0x0
+ and r3, r1
+ ldr r1, _02026A00 ; =0x000FFFFF
+ add r2, r4, #0x1
+ and r1, r2
+ orr r1, r3
+ str r1, [r0, #0x38]
+_020269F2:
+ pop {r3-r4}
+ bx lr
+ nop
+_020269F8: .word 0x000F423F
+_020269FC: .word 0xFFF00000
+_02026A00: .word 0x000FFFFF
+
+ thumb_func_start FUN_02026A04
+FUN_02026A04: ; 0x02026A04
+ ldr r0, [r0, #0x10]
+ lsl r0, r0, #0xc
+ lsr r0, r0, #0xc
+ bx lr
+
+ thumb_func_start FUN_02026A0C
+FUN_02026A0C: ; 0x02026A0C
+ push {r4-r5}
+ cmp r1, #0x0
+ ble _02026A2C
+ ldr r4, [r0, #0x10]
+ lsl r2, r4, #0xc
+ lsr r5, r2, #0xc
+ ldr r2, _02026A44 ; =0x000F423F
+ sub r3, r2, r1
+ cmp r5, r3
+ bls _02026A2C
+ ldr r1, _02026A48 ; =0xFFF00000
+ and r1, r4
+ orr r1, r2
+ str r1, [r0, #0x10]
+ pop {r4-r5}
+ bx lr
+_02026A2C:
+ ldr r3, [r0, #0x10]
+ ldr r2, _02026A48 ; =0xFFF00000
+ and r2, r3
+ lsl r3, r3, #0xc
+ lsr r3, r3, #0xc
+ add r3, r3, r1
+ ldr r1, _02026A4C ; =0x000FFFFF
+ and r1, r3
+ orr r1, r2
+ str r1, [r0, #0x10]
+ pop {r4-r5}
+ bx lr
+ .balign 4
+_02026A44: .word 0x000F423F
+_02026A48: .word 0xFFF00000
+_02026A4C: .word 0x000FFFFF
+
+ thumb_func_start FUN_02026A50
+FUN_02026A50: ; 0x02026A50
+ ldr r0, [r0, #0x14]
+ lsl r0, r0, #0xc
+ lsr r0, r0, #0xc
+ bx lr
+
+ thumb_func_start FUN_02026A58
+FUN_02026A58: ; 0x02026A58
+ push {r4-r5}
+ cmp r1, #0x0
+ ble _02026A78
+ ldr r4, [r0, #0x14]
+ lsl r2, r4, #0xc
+ lsr r5, r2, #0xc
+ ldr r2, _02026A90 ; =0x000F423F
+ sub r3, r2, r1
+ cmp r5, r3
+ bls _02026A78
+ ldr r1, _02026A94 ; =0xFFF00000
+ and r1, r4
+ orr r1, r2
+ str r1, [r0, #0x14]
+ pop {r4-r5}
+ bx lr
+_02026A78:
+ ldr r3, [r0, #0x14]
+ ldr r2, _02026A94 ; =0xFFF00000
+ and r2, r3
+ lsl r3, r3, #0xc
+ lsr r3, r3, #0xc
+ add r3, r3, r1
+ ldr r1, _02026A98 ; =0x000FFFFF
+ and r1, r3
+ orr r1, r2
+ str r1, [r0, #0x14]
+ pop {r4-r5}
+ bx lr
+ .balign 4
+_02026A90: .word 0x000F423F
+_02026A94: .word 0xFFF00000
+_02026A98: .word 0x000FFFFF
+
+ thumb_func_start FUN_02026A9C
+FUN_02026A9C: ; 0x02026A9C
+ push {r4-r5}
+ cmp r1, #0x0
+ ble _02026ABC
+ ldr r4, [r0, #0x18]
+ lsl r2, r4, #0xc
+ lsr r5, r2, #0xc
+ ldr r2, _02026AD4 ; =0x000F423F
+ sub r3, r2, r1
+ cmp r5, r3
+ bls _02026ABC
+ ldr r1, _02026AD8 ; =0xFFF00000
+ and r1, r4
+ orr r1, r2
+ str r1, [r0, #0x18]
+ pop {r4-r5}
+ bx lr
+_02026ABC:
+ ldr r3, [r0, #0x18]
+ ldr r2, _02026AD8 ; =0xFFF00000
+ and r2, r3
+ lsl r3, r3, #0xc
+ lsr r3, r3, #0xc
+ add r3, r3, r1
+ ldr r1, _02026ADC ; =0x000FFFFF
+ and r1, r3
+ orr r1, r2
+ str r1, [r0, #0x18]
+ pop {r4-r5}
+ bx lr
+ .balign 4
+_02026AD4: .word 0x000F423F
+_02026AD8: .word 0xFFF00000
+_02026ADC: .word 0x000FFFFF
+
+ thumb_func_start FUN_02026AE0
+FUN_02026AE0: ; 0x02026AE0
+ ldr r0, [r0, #0x1c]
+ lsl r0, r0, #0xc
+ lsr r0, r0, #0xc
+ bx lr
+
+ thumb_func_start FUN_02026AE8
+FUN_02026AE8: ; 0x02026AE8
+ push {r3-r4}
+ ldr r2, [r0, #0x1c]
+ lsl r1, r2, #0xc
+ lsr r4, r1, #0xc
+ ldr r1, _02026B0C ; =0x000F423F
+ cmp r4, r1
+ bhs _02026B06
+ ldr r1, _02026B10 ; =0xFFF00000
+ add r3, r2, #0x0
+ and r3, r1
+ ldr r1, _02026B14 ; =0x000FFFFF
+ add r2, r4, #0x1
+ and r1, r2
+ orr r1, r3
+ str r1, [r0, #0x1c]
+_02026B06:
+ pop {r3-r4}
+ bx lr
+ nop
+_02026B0C: .word 0x000F423F
+_02026B10: .word 0xFFF00000
+_02026B14: .word 0x000FFFFF
+
+ thumb_func_start FUN_02026B18
+FUN_02026B18: ; 0x02026B18
+ ldr r0, [r0, #0x20]
+ lsl r0, r0, #0xc
+ lsr r0, r0, #0xc
+ bx lr
+
+ thumb_func_start FUN_02026B20
+FUN_02026B20: ; 0x02026B20
+ push {r3-r4}
+ ldr r2, [r0, #0x20]
+ lsl r1, r2, #0xc
+ lsr r4, r1, #0xc
+ ldr r1, _02026B44 ; =0x000F423F
+ cmp r4, r1
+ bhs _02026B3E
+ ldr r1, _02026B48 ; =0xFFF00000
+ add r3, r2, #0x0
+ and r3, r1
+ ldr r1, _02026B4C ; =0x000FFFFF
+ add r2, r4, #0x1
+ and r1, r2
+ orr r1, r3
+ str r1, [r0, #0x20]
+_02026B3E:
+ pop {r3-r4}
+ bx lr
+ nop
+_02026B44: .word 0x000F423F
+_02026B48: .word 0xFFF00000
+_02026B4C: .word 0x000FFFFF
+
+ thumb_func_start FUN_02026B50
+FUN_02026B50: ; 0x02026B50
+ ldr r0, [r0, #0x24]
+ lsl r0, r0, #0xc
+ lsr r0, r0, #0xc
+ bx lr
+
+ thumb_func_start FUN_02026B58
+FUN_02026B58: ; 0x02026B58
+ push {r3-r4}
+ ldr r2, [r0, #0x24]
+ lsl r1, r2, #0xc
+ lsr r4, r1, #0xc
+ ldr r1, _02026B7C ; =0x000F423F
+ cmp r4, r1
+ bhs _02026B76
+ ldr r1, _02026B80 ; =0xFFF00000
+ add r3, r2, #0x0
+ and r3, r1
+ ldr r1, _02026B84 ; =0x000FFFFF
+ add r2, r4, #0x1
+ and r1, r2
+ orr r1, r3
+ str r1, [r0, #0x24]
+_02026B76:
+ pop {r3-r4}
+ bx lr
+ nop
+_02026B7C: .word 0x000F423F
+_02026B80: .word 0xFFF00000
+_02026B84: .word 0x000FFFFF
+
+ thumb_func_start FUN_02026B88
+FUN_02026B88: ; 0x02026B88
+ ldr r0, [r0, #0x28]
+ lsl r0, r0, #0xc
+ lsr r0, r0, #0xc
+ bx lr
+
+ thumb_func_start FUN_02026B90
+FUN_02026B90: ; 0x02026B90
+ push {r3-r4}
+ ldr r2, [r0, #0x28]
+ lsl r1, r2, #0xc
+ lsr r4, r1, #0xc
+ ldr r1, _02026BB4 ; =0x000F423F
+ cmp r4, r1
+ bhs _02026BAE
+ ldr r1, _02026BB8 ; =0xFFF00000
+ add r3, r2, #0x0
+ and r3, r1
+ ldr r1, _02026BBC ; =0x000FFFFF
+ add r2, r4, #0x1
+ and r1, r2
+ orr r1, r3
+ str r1, [r0, #0x28]
+_02026BAE:
+ pop {r3-r4}
+ bx lr
+ nop
+_02026BB4: .word 0x000F423F
+_02026BB8: .word 0xFFF00000
+_02026BBC: .word 0x000FFFFF
+
+ thumb_func_start FUN_02026BC0
+FUN_02026BC0: ; 0x02026BC0
+ ldr r0, [r0, #0x2c]
+ lsl r0, r0, #0xc
+ lsr r0, r0, #0xc
+ bx lr
+
+ thumb_func_start FUN_02026BC8
+FUN_02026BC8: ; 0x02026BC8
+ push {r3-r4}
+ ldr r2, [r0, #0x2c]
+ lsl r1, r2, #0xc
+ lsr r4, r1, #0xc
+ ldr r1, _02026BEC ; =0x000F423F
+ cmp r4, r1
+ bhs _02026BE6
+ ldr r1, _02026BF0 ; =0xFFF00000
+ add r3, r2, #0x0
+ and r3, r1
+ ldr r1, _02026BF4 ; =0x000FFFFF
+ add r2, r4, #0x1
+ and r1, r2
+ orr r1, r3
+ str r1, [r0, #0x2c]
+_02026BE6:
+ pop {r3-r4}
+ bx lr
+ nop
+_02026BEC: .word 0x000F423F
+_02026BF0: .word 0xFFF00000
+_02026BF4: .word 0x000FFFFF
+
+ thumb_func_start FUN_02026BF8
+FUN_02026BF8: ; 0x02026BF8
+ ldr r0, [r0, #0x30]
+ lsl r0, r0, #0xc
+ lsr r0, r0, #0xc
+ bx lr
+
+ thumb_func_start FUN_02026C00
+FUN_02026C00: ; 0x02026C00
+ push {r3-r4}
+ ldr r2, [r0, #0x30]
+ lsl r1, r2, #0xc
+ lsr r4, r1, #0xc
+ ldr r1, _02026C24 ; =0x000F423F
+ cmp r4, r1
+ bhs _02026C1E
+ ldr r1, _02026C28 ; =0xFFF00000
+ add r3, r2, #0x0
+ and r3, r1
+ ldr r1, _02026C2C ; =0x000FFFFF
+ add r2, r4, #0x1
+ and r1, r2
+ orr r1, r3
+ str r1, [r0, #0x30]
+_02026C1E:
+ pop {r3-r4}
+ bx lr
+ nop
+_02026C24: .word 0x000F423F
+_02026C28: .word 0xFFF00000
+_02026C2C: .word 0x000FFFFF
+
+ thumb_func_start FUN_02026C30
+FUN_02026C30: ; 0x02026C30
+ ldr r0, [r0, #0x34]
+ lsl r0, r0, #0xc
+ lsr r0, r0, #0xc
+ bx lr
+
+ thumb_func_start FUN_02026C38
+FUN_02026C38: ; 0x02026C38
+ push {r3-r4}
+ ldr r2, [r0, #0x34]
+ lsl r1, r2, #0xc
+ lsr r4, r1, #0xc
+ ldr r1, _02026C5C ; =0x000F423F
+ cmp r4, r1
+ bhs _02026C56
+ ldr r1, _02026C60 ; =0xFFF00000
+ add r3, r2, #0x0
+ and r3, r1
+ ldr r1, _02026C64 ; =0x000FFFFF
+ add r2, r4, #0x1
+ and r1, r2
+ orr r1, r3
+ str r1, [r0, #0x34]
+_02026C56:
+ pop {r3-r4}
+ bx lr
+ nop
+_02026C5C: .word 0x000F423F
+_02026C60: .word 0xFFF00000
+_02026C64: .word 0x000FFFFF
+
+ thumb_func_start FUN_02026C68
+FUN_02026C68: ; 0x02026C68
+ push {r3-r4}
+ add r4, r0, #0x0
+ add r4, #0x8c
+ strh r1, [r4, #0x0]
+ add r1, r0, #0x0
+ add r1, #0x8e
+ strh r2, [r1, #0x0]
+ add r1, r0, #0x0
+ add r1, #0x90
+ strb r3, [r1, #0x0]
+ mov r1, #0x1
+ add r0, #0x91
+ strb r1, [r0, #0x0]
+ pop {r3-r4}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02026C88
+FUN_02026C88: ; 0x02026C88
+ add r0, #0x8c
+ ldrh r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02026C90
+FUN_02026C90: ; 0x02026C90
+ add r0, #0x8e
+ ldrh r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02026C98
+FUN_02026C98: ; 0x02026C98
+ add r0, #0x90
+ ldrb r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02026CA0
+FUN_02026CA0: ; 0x02026CA0
+ add r0, #0x91
+ ldrb r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02026CA8
+FUN_02026CA8: ; 0x02026CA8
+ ldr r3, _02026CB0 ; =FUN_02022610
+ mov r1, #0xc
+ bx r3
+ nop
+_02026CB0: .word FUN_02022610
+
+ thumb_func_start FUN_02026CB4
+FUN_02026CB4: ; 0x02026CB4
+ push {r3, lr}
+ mov r1, #0xc
+ bl FUN_02022610
+ add r0, #0x50
+ pop {r3, pc}
+
+ thumb_func_start FUN_02026CC0
+FUN_02026CC0: ; 0x02026CC0
+ add r0, #0x50
+ bx lr
+
+ thumb_func_start FUN_02026CC4
+FUN_02026CC4: ; 0x02026CC4
+ ldr r3, _02026CCC ; =FUN_02022610
+ mov r1, #0xc
+ bx r3
+ nop
+_02026CCC: .word FUN_02022610
+
+ thumb_func_start FUN_02026CD0
+FUN_02026CD0: ; 0x02026CD0
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ add r7, r3, #0x0
+ bl FUN_020671BC
+ add r2, r5, #0x0
+ strh r0, [r5, #0x8]
+ add r0, r4, #0x0
+ mov r1, #0x74
+ add r2, #0xa
+ bl FUN_020671BC
+ mov r1, #0x0
+ add r0, r4, #0x0
+ add r2, r1, #0x0
+ bl FUN_020671BC
+ str r0, [r5, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x7
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [r5, #0x4]
+ add r0, r4, #0x0
+ mov r1, #0x70
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r1, r5, #0x0
+ add r1, #0x33
+ strb r0, [r1, #0x0]
+ add r0, r5, #0x0
+ add r0, #0x31
+ strb r6, [r0, #0x0]
+ add r0, r5, #0x0
+ add r0, #0x32
+ strb r7, [r0, #0x0]
+ add r1, sp, #0x8
+ mov r0, #0x10
+ ldrsb r0, [r1, r0]
+ add r5, #0x30
+ strb r0, [r5, #0x0]
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02026D34
+FUN_02026D34: ; 0x02026D34
+ push {r3-r6, lr}
+ sub sp, #0xc
+ add r4, r2, #0x0
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r0, r4, #0x0
+ add r1, sp, #0x4
+ add r2, sp, #0x8
+ bl MOD17_021DB858
+ add r0, r4, #0x0
+ bl MOD17_021DB7E8
+ add r4, r0, #0x0
+ mov r0, #0x1
+ ldr r1, [sp, #0x4]
+ lsl r0, r0, #0x8
+ cmp r1, r0
+ blt _02026D5E
+ bl ErrorHandling
+_02026D5E:
+ mov r0, #0x1
+ ldr r1, [sp, #0x8]
+ lsl r0, r0, #0x8
+ cmp r1, r0
+ blt _02026D6C
+ bl ErrorHandling
+_02026D6C:
+ mov r0, #0x7f
+ mvn r0, r0
+ cmp r4, r0
+ bgt _02026D78
+ bl ErrorHandling
+_02026D78:
+ lsl r0, r4, #0x18
+ asr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ ldr r2, [sp, #0x4]
+ ldr r3, [sp, #0x8]
+ lsl r2, r2, #0x18
+ lsl r3, r3, #0x18
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02026CD0
+ add sp, #0xc
+ pop {r3-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02026D98
+FUN_02026D98: ; 0x02026D98
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ add r1, r5, #0x0
+ add r4, r2, #0x0
+ add r1, #0x20
+ mov r2, #0x8
+ bl FUN_02021EF0
+ add r5, #0x34
+ strb r4, [r5, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02026DB0
+FUN_02026DB0: ; 0x02026DB0
+ strb r1, [r0, #0x0]
+ ldr r1, _02026DC0 ; =0xFFFFFFF0
+ strb r2, [r0, #0x1]
+ strb r3, [r0, #0x2]
+ add r1, sp
+ ldrb r1, [r1, #0x10]
+ strb r1, [r0, #0x3]
+ bx lr
+ .balign 4
+_02026DC0: .word 0xFFFFFFF0
+
+ thumb_func_start FUN_02026DC4
+FUN_02026DC4: ; 0x02026DC4
+ push {r4-r6, lr}
+ add r4, r2, #0x0
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ cmp r4, #0x3d
+ blo _02026DD4
+ bl ErrorHandling
+_02026DD4:
+ lsr r2, r4, #0x1f
+ lsl r1, r4, #0x1d
+ sub r1, r1, r2
+ mov r0, #0x1d
+ ror r1, r0
+ add r0, r2, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x1a
+ lsr r1, r0, #0x18
+ lsr r0, r4, #0x3
+ lsl r0, r0, #0x18
+ mov r2, #0xf
+ lsr r0, r0, #0x16
+ lsl r2, r1
+ ldr r3, [r5, r0]
+ mvn r2, r2
+ and r2, r3
+ str r2, [r5, r0]
+ add r2, r6, #0x0
+ ldr r3, [r5, r0]
+ lsl r2, r1
+ add r1, r3, #0x0
+ orr r1, r2
+ str r1, [r5, r0]
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02026E08
+FUN_02026E08: ; 0x02026E08
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x3d
+ blo _02026E16
+ bl ErrorHandling
+_02026E16:
+ lsr r3, r4, #0x1f
+ lsl r2, r4, #0x1d
+ lsr r0, r4, #0x3
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x16
+ sub r2, r2, r3
+ mov r1, #0x1d
+ ror r2, r1
+ add r1, r3, r2
+ lsl r1, r1, #0x18
+ ldr r0, [r5, r0]
+ lsr r1, r1, #0x18
+ lsl r1, r1, #0x1a
+ add r2, r0, #0x0
+ lsr r1, r1, #0x18
+ lsr r2, r1
+ mov r0, #0xf
+ and r0, r2
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x9
+ bls _02026E44
+ mov r0, #0x9
+_02026E44:
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02026E48
+FUN_02026E48: ; 0x02026E48
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ cmp r4, #0x2
+ blo _02026E58
+ bl ErrorHandling
+_02026E58:
+ lsr r2, r6, #0x1f
+ lsl r1, r6, #0x1b
+ sub r1, r1, r2
+ mov r0, #0x1b
+ ror r1, r0
+ add r0, r2, r1
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ lsr r0, r6, #0x5
+ lsl r0, r0, #0x18
+ mov r2, #0x1
+ lsr r0, r0, #0x16
+ lsl r2, r1
+ ldr r3, [r5, r0]
+ mvn r2, r2
+ and r2, r3
+ str r2, [r5, r0]
+ add r2, r4, #0x0
+ ldr r3, [r5, r0]
+ lsl r2, r1
+ add r1, r3, #0x0
+ orr r1, r2
+ str r1, [r5, r0]
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02026E88
+FUN_02026E88: ; 0x02026E88
+ lsr r2, r1, #0x5
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x16
+ ldr r3, [r0, r2]
+ lsr r2, r1, #0x1f
+ lsl r1, r1, #0x1b
+ sub r1, r1, r2
+ mov r0, #0x1b
+ ror r1, r0
+ add r0, r2, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ add r1, r3, #0x0
+ lsr r1, r0
+ mov r0, #0x1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02026EB0
+FUN_02026EB0: ; 0x02026EB0
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ cmp r4, #0x12
+ bls _02026EC0
+ bl ErrorHandling
+_02026EC0:
+ lsr r2, r6, #0x1f
+ lsl r1, r6, #0x1e
+ sub r1, r1, r2
+ mov r0, #0x1e
+ ror r1, r0
+ add r0, r2, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x1b
+ lsr r1, r0, #0x18
+ lsr r0, r6, #0x2
+ lsl r0, r0, #0x18
+ mov r2, #0xff
+ lsr r0, r0, #0x16
+ lsl r2, r1
+ ldr r3, [r5, r0]
+ mvn r2, r2
+ and r2, r3
+ str r2, [r5, r0]
+ add r2, r4, #0x0
+ ldr r3, [r5, r0]
+ lsl r2, r1
+ add r1, r3, #0x0
+ orr r1, r2
+ str r1, [r5, r0]
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02026EF4
+FUN_02026EF4: ; 0x02026EF4
+ lsr r2, r1, #0x2
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x16
+ ldr r0, [r0, r2]
+ lsr r3, r1, #0x1f
+ lsl r2, r1, #0x1e
+ sub r2, r2, r3
+ mov r1, #0x1e
+ ror r2, r1
+ add r1, r3, r2
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x18
+ lsr r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+
+ thumb_func_start FUN_02026F18
+FUN_02026F18: ; 0x02026F18
+ push {r4-r6, lr}
+ mov r5, #0x0
+ add r6, r0, #0x0
+ add r4, r5, #0x0
+_02026F20:
+ lsl r1, r4, #0x18
+ add r0, r6, #0x0
+ lsr r1, r1, #0x18
+ bl FUN_02026EF4
+ cmp r0, #0x12
+ beq _02026F30
+ add r5, r5, #0x1
+_02026F30:
+ add r4, r4, #0x1
+ cmp r4, #0x12
+ blt _02026F20
+ lsl r0, r5, #0x18
+ lsr r0, r0, #0x18
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02026F3C
+FUN_02026F3C: ; 0x02026F3C
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ mov r1, #0x2
+ add r4, r2, #0x0
+ bl FUN_02068E14
+ mov r1, #0x80
+ strb r1, [r5, #0x0]
+ mov r1, #0x28
+ sub r1, r1, r0
+ mov r0, #0x8d
+ sub r0, r0, r1
+ strb r0, [r4, #0x0]
+ ldrb r0, [r4, #0x0]
+ add r0, #0x28
+ strb r0, [r4, #0x0]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02026F60
+FUN_02026F60: ; 0x02026F60
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ ldr r6, _02026FC8 ; =0x00001234
+ mov r4, #0x0
+ add r5, r7, #0x0
+_02026F6A:
+ add r0, r5, #0x0
+ mov r1, #0x0
+ mov r2, #0x74
+ bl memset
+ str r6, [r5, #0x0]
+ add r4, r4, #0x1
+ add r5, #0x74
+ cmp r4, #0xb
+ blt _02026F6A
+ ldr r0, _02026FCC ; =0x000004FC
+ mov r6, #0x0
+ add r4, r7, r0
+ add r5, r7, #0x0
+_02026F86:
+ add r0, r4, #0x0
+ mov r1, #0x0
+ mov r2, #0x98
+ bl memset
+ ldr r1, _02026FC8 ; =0x00001234
+ ldr r0, _02026FCC ; =0x000004FC
+ add r6, r6, #0x1
+ str r1, [r5, r0]
+ add r4, #0x98
+ add r5, #0x98
+ cmp r6, #0x5
+ blt _02026F86
+ ldr r0, _02026FD0 ; =0x000007F4
+ mov r1, #0x0
+ add r0, r7, r0
+ mov r2, #0x40
+ bl memset
+ ldr r5, _02026FD4 ; =0x0000081C
+ mov r4, #0x0
+ mov r6, #0x12
+_02026FB2:
+ lsl r2, r4, #0x18
+ add r0, r7, r5
+ add r1, r6, #0x0
+ lsr r2, r2, #0x18
+ bl FUN_02026EB0
+ add r4, r4, #0x1
+ cmp r4, #0x12
+ blt _02026FB2
+ pop {r3-r7, pc}
+ nop
+_02026FC8: .word 0x00001234
+_02026FCC: .word 0x000004FC
+_02026FD0: .word 0x000007F4
+_02026FD4: .word 0x0000081C
+
+ thumb_func_start FUN_02026FD8
+FUN_02026FD8: ; 0x02026FD8
+ ldr r0, _02026FDC ; =0x00000834
+ bx lr
+ .balign 4
+_02026FDC: .word 0x00000834
+
+ thumb_func_start FUN_02026FE0
+FUN_02026FE0: ; 0x02026FE0
+ mov r0, #0x74
+ bx lr
+
+ thumb_func_start FUN_02026FE4
+FUN_02026FE4: ; 0x02026FE4
+ mov r0, #0x98
+ bx lr
+
+ thumb_func_start FUN_02026FE8
+FUN_02026FE8: ; 0x02026FE8
+ push {r4, lr}
+ mov r1, #0x98
+ bl FUN_02016998
+ mov r1, #0x0
+ mov r2, #0x98
+ add r4, r0, #0x0
+ bl memset
+ ldr r0, _02027004 ; =0x00001234
+ str r0, [r4, #0x0]
+ add r0, r4, #0x0
+ pop {r4, pc}
+ nop
+_02027004: .word 0x00001234
+
+ thumb_func_start FUN_02027008
+FUN_02027008: ; 0x02027008
+ push {r4-r6, lr}
+ add r6, r1, #0x0
+ add r5, r0, #0x0
+ cmp r6, #0xb
+ blt _02027016
+ bl ErrorHandling
+_02027016:
+ mov r0, #0x74
+ add r4, r6, #0x0
+ mul r4, r0
+ ldr r1, [r5, r4]
+ ldr r0, _0202703C ; =0x00001234
+ cmp r1, r0
+ beq _0202702A
+ ldr r0, _02027040 ; =0x00002345
+ cmp r1, r0
+ bne _0202702E
+_0202702A:
+ mov r0, #0x1
+ b _02027030
+_0202702E:
+ mov r0, #0x0
+_02027030:
+ cmp r0, #0x0
+ bne _02027038
+ bl ErrorHandling
+_02027038:
+ add r0, r5, r4
+ pop {r4-r6, pc}
+ .balign 4
+_0202703C: .word 0x00001234
+_02027040: .word 0x00002345
+
+ thumb_func_start FUN_02027044
+FUN_02027044: ; 0x02027044
+ push {r4-r6, lr}
+ add r6, r1, #0x0
+ add r5, r0, #0x0
+ cmp r6, #0x5
+ blt _02027052
+ bl ErrorHandling
+_02027052:
+ mov r0, #0x98
+ add r4, r6, #0x0
+ mul r4, r0
+ ldr r0, _02027080 ; =0x000004FC
+ add r1, r5, r4
+ ldr r1, [r1, r0]
+ ldr r0, _02027084 ; =0x00001234
+ cmp r1, r0
+ beq _0202706A
+ ldr r0, _02027088 ; =0x00002345
+ cmp r1, r0
+ bne _0202706E
+_0202706A:
+ mov r0, #0x1
+ b _02027070
+_0202706E:
+ mov r0, #0x0
+_02027070:
+ cmp r0, #0x0
+ bne _02027078
+ bl ErrorHandling
+_02027078:
+ ldr r0, _02027080 ; =0x000004FC
+ add r0, r5, r0
+ add r0, r0, r4
+ pop {r4-r6, pc}
+ .balign 4
+_02027080: .word 0x000004FC
+_02027084: .word 0x00001234
+_02027088: .word 0x00002345
+
+ thumb_func_start FUN_0202708C
+FUN_0202708C: ; 0x0202708C
+ ldr r1, _02027094 ; =0x000007F4
+ add r0, r0, r1
+ bx lr
+ nop
+_02027094: .word 0x000007F4
+
+ thumb_func_start FUN_02027098
+FUN_02027098: ; 0x02027098
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0xb
+ blt _020270A6
+ bl ErrorHandling
+_020270A6:
+ mov r0, #0x74
+ mul r0, r4
+ add r0, r5, r0
+ bl FUN_0202729C
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020270B4
+FUN_020270B4: ; 0x020270B4
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x5
+ blt _020270C2
+ bl ErrorHandling
+_020270C2:
+ ldr r0, _020270D4 ; =0x000004FC
+ add r1, r5, r0
+ mov r0, #0x98
+ mul r0, r4
+ add r0, r1, r0
+ bl FUN_020276D8
+ pop {r3-r5, pc}
+ nop
+_020270D4: .word 0x000004FC
+
+ thumb_func_start FUN_020270D8
+FUN_020270D8: ; 0x020270D8
+ push {r4-r6, lr}
+ add r6, r1, #0x0
+ add r5, r2, #0x0
+ mov r4, #0x1
+ bl FUN_02027114
+ cmp r6, #0x3d
+ bhs _020270F2
+ add r0, r0, r5
+ cmp r0, #0x9
+ bls _020270FA
+ mov r4, #0x0
+ b _020270FA
+_020270F2:
+ add r0, r0, r5
+ cmp r0, #0x1
+ bls _020270FA
+ mov r4, #0x0
+_020270FA:
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02027100
+FUN_02027100: ; 0x02027100
+ push {r3, lr}
+ bl FUN_0202714C
+ cmp r0, #0x12
+ beq _0202710E
+ mov r0, #0x1
+ pop {r3, pc}
+_0202710E:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02027114
+FUN_02027114: ; 0x02027114
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r4, r0, #0x0
+ cmp r5, #0x64
+ blo _02027122
+ bl ErrorHandling
+_02027122:
+ cmp r5, #0x3d
+ bhs _02027132
+ lsl r1, r5, #0x18
+ add r0, r4, #0x0
+ lsr r1, r1, #0x18
+ bl FUN_02026E08
+ pop {r3-r5, pc}
+_02027132:
+ bhs _02027138
+ bl ErrorHandling
+_02027138:
+ sub r5, #0x3d
+ lsl r0, r5, #0x18
+ lsr r1, r0, #0x18
+ add r4, #0x20
+ lsl r1, r1, #0x18
+ add r0, r4, #0x0
+ lsr r1, r1, #0x18
+ bl FUN_02026E88
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0202714C
+FUN_0202714C: ; 0x0202714C
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x12
+ blo _0202715A
+ bl ErrorHandling
+_0202715A:
+ add r5, #0x28
+ lsl r1, r4, #0x18
+ add r0, r5, #0x0
+ lsr r1, r1, #0x18
+ bl FUN_02026EF4
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02027168
+FUN_02027168: ; 0x02027168
+ push {r4-r6, lr}
+ mov r5, #0x0
+ add r6, r0, #0x0
+ add r4, r5, #0x0
+_02027170:
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_02027114
+ add r4, r4, #0x1
+ add r5, r5, r0
+ cmp r4, #0x64
+ blt _02027170
+ add r0, r5, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02027184
+FUN_02027184: ; 0x02027184
+ push {r4-r6, lr}
+ mov r5, #0x0
+ add r6, r0, #0x0
+ add r4, r5, #0x0
+_0202718C:
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_0202714C
+ cmp r0, #0x12
+ beq _0202719A
+ add r5, r5, #0x1
+_0202719A:
+ add r4, r4, #0x1
+ cmp r4, #0x12
+ blt _0202718C
+ add r0, r5, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020271A4
+FUN_020271A4: ; 0x020271A4
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ cmp r4, #0x64
+ blo _020271B4
+ bl ErrorHandling
+_020271B4:
+ cmp r4, #0x3d
+ bhs _020271DA
+ lsl r1, r4, #0x18
+ add r0, r5, #0x0
+ lsr r1, r1, #0x18
+ bl FUN_02026E08
+ add r0, r0, r6
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ cmp r1, #0x9
+ bls _020271CE
+ mov r1, #0x9
+_020271CE:
+ lsl r2, r4, #0x18
+ add r0, r5, #0x0
+ lsr r2, r2, #0x18
+ bl FUN_02026DC4
+ pop {r4-r6, pc}
+_020271DA:
+ add r0, r5, #0x0
+ lsl r1, r4, #0x18
+ add r0, #0x20
+ lsr r1, r1, #0x18
+ bl FUN_02026E88
+ add r0, r0, r6
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ cmp r6, #0x1
+ bls _020271F2
+ mov r6, #0x1
+_020271F2:
+ cmp r4, #0x3d
+ bhs _020271FA
+ bl ErrorHandling
+_020271FA:
+ sub r4, #0x3d
+ lsl r0, r4, #0x18
+ lsr r2, r0, #0x18
+ add r5, #0x20
+ lsl r2, r2, #0x18
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ lsr r2, r2, #0x18
+ bl FUN_02026E48
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02027210
+FUN_02027210: ; 0x02027210
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ cmp r4, #0x64
+ blo _02027220
+ bl ErrorHandling
+_02027220:
+ cmp r4, #0x3d
+ bhs _02027248
+ lsl r1, r4, #0x18
+ add r0, r5, #0x0
+ lsr r1, r1, #0x18
+ bl FUN_02026E08
+ cmp r0, r6
+ bls _0202723A
+ sub r0, r0, r6
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ b _0202723C
+_0202723A:
+ mov r1, #0x0
+_0202723C:
+ lsl r2, r4, #0x18
+ add r0, r5, #0x0
+ lsr r2, r2, #0x18
+ bl FUN_02026DC4
+ pop {r4-r6, pc}
+_02027248:
+ bhs _0202724E
+ bl ErrorHandling
+_0202724E:
+ sub r4, #0x3d
+ lsl r0, r4, #0x18
+ lsr r2, r0, #0x18
+ add r5, #0x20
+ lsl r2, r2, #0x18
+ add r0, r5, #0x0
+ mov r1, #0x0
+ lsr r2, r2, #0x18
+ bl FUN_02026E48
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02027264
+FUN_02027264: ; 0x02027264
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x12
+ blo _02027272
+ bl ErrorHandling
+_02027272:
+ add r0, r5, #0x0
+ lsl r1, r4, #0x18
+ add r0, #0x28
+ lsr r1, r1, #0x18
+ bl FUN_02026EF4
+ cmp r0, #0x12
+ bne _02027298
+ add r0, r5, #0x0
+ add r0, #0x28
+ bl FUN_02026F18
+ lsl r2, r4, #0x18
+ add r5, #0x28
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ lsr r2, r2, #0x18
+ bl FUN_02026EB0
+_02027298:
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202729C
+FUN_0202729C: ; 0x0202729C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _020272CC ; =0x00001234
+ cmp r1, r0
+ beq _020272AE
+ ldr r0, _020272D0 ; =0x00002345
+ cmp r1, r0
+ bne _020272B2
+_020272AE:
+ mov r0, #0x1
+ b _020272B4
+_020272B2:
+ mov r0, #0x0
+_020272B4:
+ cmp r0, #0x0
+ bne _020272BC
+ bl ErrorHandling
+_020272BC:
+ ldr r1, [r4, #0x0]
+ ldr r0, _020272D0 ; =0x00002345
+ cmp r1, r0
+ bne _020272C8
+ mov r0, #0x1
+ pop {r4, pc}
+_020272C8:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+_020272CC: .word 0x00001234
+_020272D0: .word 0x00002345
+
+ thumb_func_start FUN_020272D4
+FUN_020272D4: ; 0x020272D4
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02027304 ; =0x00001234
+ cmp r1, r0
+ beq _020272E6
+ ldr r0, _02027308 ; =0x00002345
+ cmp r1, r0
+ bne _020272EA
+_020272E6:
+ mov r0, #0x1
+ b _020272EC
+_020272EA:
+ mov r0, #0x0
+_020272EC:
+ cmp r0, #0x0
+ bne _020272F4
+ bl ErrorHandling
+_020272F4:
+ ldr r0, _02027308 ; =0x00002345
+ str r0, [r4, #0x0]
+ ldr r0, _0202730C ; =0x020ECAC4
+ add r4, #0x71
+ ldrb r0, [r0, #0x0]
+ strb r0, [r4, #0x0]
+ pop {r4, pc}
+ nop
+_02027304: .word 0x00001234
+_02027308: .word 0x00002345
+_0202730C: .word 0x020ECAC4
+
+ thumb_func_start FUN_02027310
+FUN_02027310: ; 0x02027310
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02027340 ; =0x00001234
+ cmp r1, r0
+ beq _02027322
+ ldr r0, _02027344 ; =0x00002345
+ cmp r1, r0
+ bne _02027326
+_02027322:
+ mov r0, #0x1
+ b _02027328
+_02027326:
+ mov r0, #0x0
+_02027328:
+ cmp r0, #0x0
+ bne _02027330
+ bl ErrorHandling
+_02027330:
+ add r0, r4, #0x0
+ mov r1, #0x0
+ mov r2, #0x74
+ bl memset
+ ldr r0, _02027340 ; =0x00001234
+ str r0, [r4, #0x0]
+ pop {r4, pc}
+ .balign 4
+_02027340: .word 0x00001234
+_02027344: .word 0x00002345
+
+ thumb_func_start FUN_02027348
+FUN_02027348: ; 0x02027348
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _02027378 ; =0x00001234
+ add r6, r2, #0x0
+ cmp r1, r0
+ beq _0202735E
+ ldr r0, _0202737C ; =0x00002345
+ cmp r1, r0
+ bne _02027362
+_0202735E:
+ mov r0, #0x1
+ b _02027364
+_02027362:
+ mov r0, #0x0
+_02027364:
+ cmp r0, #0x0
+ bne _0202736C
+ bl ErrorHandling
+_0202736C:
+ add r0, r5, #0x4
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_02026D34
+ pop {r4-r6, pc}
+ .balign 4
+_02027378: .word 0x00001234
+_0202737C: .word 0x00002345
+
+ thumb_func_start FUN_02027380
+FUN_02027380: ; 0x02027380
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x4]
+ add r6, r2, #0x0
+ bl FUN_02013ECC
+ add r1, sp, #0xc
+ strh r0, [r1, #0x0]
+ lsr r0, r0, #0x10
+ strh r0, [r1, #0x2]
+ ldrh r0, [r1, #0x0]
+ strh r0, [r1, #0x4]
+ ldrh r0, [r1, #0x2]
+ strh r0, [r1, #0x6]
+ ldr r0, [r4, #0x4]
+ bl FUN_02013F00
+ str r0, [sp, #0x8]
+ cmp r6, #0xa
+ blt _020273B0
+ bl ErrorHandling
+_020273B0:
+ add r1, sp, #0xc
+ mov r0, #0x4
+ ldrsh r1, [r1, r0]
+ add r0, #0xfc
+ cmp r1, r0
+ blt _020273C0
+ bl ErrorHandling
+_020273C0:
+ add r1, sp, #0xc
+ mov r0, #0x6
+ ldrsh r7, [r1, r0]
+ add r0, #0xfa
+ cmp r7, r0
+ blt _020273D0
+ bl ErrorHandling
+_020273D0:
+ mov r1, #0x7f
+ ldr r0, [sp, #0x8]
+ mvn r1, r1
+ cmp r0, r1
+ bgt _020273DE
+ bl ErrorHandling
+_020273DE:
+ mov r0, #0x1
+ lsl r0, r6
+ ldr r1, [r5, #0x3c]
+ str r0, [sp, #0x4]
+ tst r0, r1
+ beq _020273EE
+ bl ErrorHandling
+_020273EE:
+ ldr r1, [r5, #0x0]
+ ldr r0, _02027440 ; =0x00001234
+ cmp r1, r0
+ beq _020273FC
+ ldr r0, _02027444 ; =0x00002345
+ cmp r1, r0
+ bne _02027400
+_020273FC:
+ mov r0, #0x1
+ b _02027402
+_02027400:
+ mov r0, #0x0
+_02027402:
+ cmp r0, #0x0
+ bne _0202740A
+ bl ErrorHandling
+_0202740A:
+ ldr r0, [sp, #0x8]
+ add r1, r5, #0x0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ add r3, sp, #0xc
+ mov r2, #0x4
+ ldrsh r2, [r3, r2]
+ lsl r3, r7, #0x18
+ add r1, #0x48
+ lsl r0, r6, #0x2
+ add r0, r1, r0
+ ldr r1, [r4, #0x0]
+ lsl r2, r2, #0x18
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02026DB0
+ ldr r1, [r5, #0x3c]
+ ldr r0, [sp, #0x4]
+ orr r0, r1
+ str r0, [r5, #0x3c]
+ add sp, #0x14
+ pop {r4-r7, pc}
+ nop
+_02027440: .word 0x00001234
+_02027444: .word 0x00002345
+
+ thumb_func_start FUN_02027448
+FUN_02027448: ; 0x02027448
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _02027470 ; =0x00001234
+ cmp r1, r0
+ beq _0202745C
+ ldr r0, _02027474 ; =0x00002345
+ cmp r1, r0
+ bne _02027460
+_0202745C:
+ mov r0, #0x1
+ b _02027462
+_02027460:
+ mov r0, #0x0
+_02027462:
+ cmp r0, #0x0
+ bne _0202746A
+ bl ErrorHandling
+_0202746A:
+ add r5, #0x70
+ strb r4, [r5, #0x0]
+ pop {r3-r5, pc}
+ .balign 4
+_02027470: .word 0x00001234
+_02027474: .word 0x00002345
+
+ thumb_func_start FUN_02027478
+FUN_02027478: ; 0x02027478
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _020274B0 ; =0x00001234
+ cmp r1, r0
+ beq _0202748C
+ ldr r0, _020274B4 ; =0x00002345
+ cmp r1, r0
+ bne _02027490
+_0202748C:
+ mov r0, #0x1
+ b _02027492
+_02027490:
+ mov r0, #0x0
+_02027492:
+ cmp r0, #0x0
+ bne _0202749A
+ bl ErrorHandling
+_0202749A:
+ add r0, r5, #0x0
+ add r0, #0x40
+ bl FUN_02013724
+ add r5, #0x40
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r2, r4, #0x0
+ bl FUN_02013998
+ pop {r3-r5, pc}
+ .balign 4
+_020274B0: .word 0x00001234
+_020274B4: .word 0x00002345
+
+ thumb_func_start FUN_020274B8
+FUN_020274B8: ; 0x020274B8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _020274E8 ; =0x00001234
+ cmp r1, r0
+ beq _020274CC
+ ldr r0, _020274EC ; =0x00002345
+ cmp r1, r0
+ bne _020274D0
+_020274CC:
+ mov r0, #0x1
+ b _020274D2
+_020274D0:
+ mov r0, #0x0
+_020274D2:
+ cmp r0, #0x0
+ bne _020274DA
+ bl ErrorHandling
+_020274DA:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x74
+ bl memcpy
+ pop {r3-r5, pc}
+ nop
+_020274E8: .word 0x00001234
+_020274EC: .word 0x00002345
+
+ thumb_func_start FUN_020274F0
+FUN_020274F0: ; 0x020274F0
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _02027520 ; =0x00001234
+ add r6, r2, #0x0
+ cmp r1, r0
+ beq _02027506
+ ldr r0, _02027524 ; =0x00002345
+ cmp r1, r0
+ bne _0202750A
+_02027506:
+ mov r0, #0x1
+ b _0202750C
+_0202750A:
+ mov r0, #0x0
+_0202750C:
+ cmp r0, #0x0
+ bne _02027514
+ bl ErrorHandling
+_02027514:
+ add r0, r5, #0x4
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_02026D98
+ pop {r4-r6, pc}
+ .balign 4
+_02027520: .word 0x00001234
+_02027524: .word 0x00002345
+
+ thumb_func_start FUN_02027528
+FUN_02027528: ; 0x02027528
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0xa
+ blt _02027536
+ bl ErrorHandling
+_02027536:
+ ldr r1, [r5, #0x0]
+ ldr r0, _0202755C ; =0x00001234
+ cmp r1, r0
+ beq _02027544
+ ldr r0, _02027560 ; =0x00002345
+ cmp r1, r0
+ bne _02027548
+_02027544:
+ mov r0, #0x1
+ b _0202754A
+_02027548:
+ mov r0, #0x0
+_0202754A:
+ cmp r0, #0x0
+ bne _02027552
+ bl ErrorHandling
+_02027552:
+ mov r0, #0x1
+ ldr r1, [r5, #0x3c]
+ lsl r0, r4
+ and r0, r1
+ pop {r3-r5, pc}
+ .balign 4
+_0202755C: .word 0x00001234
+_02027560: .word 0x00002345
+
+ thumb_func_start FUN_02027564
+FUN_02027564: ; 0x02027564
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02027588 ; =0x00001234
+ cmp r1, r0
+ beq _02027576
+ ldr r0, _0202758C ; =0x00002345
+ cmp r1, r0
+ bne _0202757A
+_02027576:
+ mov r0, #0x1
+ b _0202757C
+_0202757A:
+ mov r0, #0x0
+_0202757C:
+ cmp r0, #0x0
+ bne _02027584
+ bl ErrorHandling
+_02027584:
+ add r0, r4, #0x4
+ pop {r4, pc}
+ .balign 4
+_02027588: .word 0x00001234
+_0202758C: .word 0x00002345
+
+ thumb_func_start FUN_02027590
+FUN_02027590: ; 0x02027590
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0xa
+ blt _0202759E
+ bl ErrorHandling
+_0202759E:
+ mov r0, #0x1
+ ldr r1, [r5, #0x3c]
+ lsl r0, r4
+ tst r0, r1
+ bne _020275AC
+ bl ErrorHandling
+_020275AC:
+ ldr r1, [r5, #0x0]
+ ldr r0, _020275D0 ; =0x00001234
+ cmp r1, r0
+ beq _020275BA
+ ldr r0, _020275D4 ; =0x00002345
+ cmp r1, r0
+ bne _020275BE
+_020275BA:
+ mov r0, #0x1
+ b _020275C0
+_020275BE:
+ mov r0, #0x0
+_020275C0:
+ cmp r0, #0x0
+ bne _020275C8
+ bl ErrorHandling
+_020275C8:
+ add r5, #0x48
+ lsl r0, r4, #0x2
+ add r0, r5, r0
+ pop {r3-r5, pc}
+ .balign 4
+_020275D0: .word 0x00001234
+_020275D4: .word 0x00002345
+
+ thumb_func_start FUN_020275D8
+FUN_020275D8: ; 0x020275D8
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02027600 ; =0x00001234
+ cmp r1, r0
+ beq _020275EA
+ ldr r0, _02027604 ; =0x00002345
+ cmp r1, r0
+ bne _020275EE
+_020275EA:
+ mov r0, #0x1
+ b _020275F0
+_020275EE:
+ mov r0, #0x0
+_020275F0:
+ cmp r0, #0x0
+ bne _020275F8
+ bl ErrorHandling
+_020275F8:
+ add r0, r4, #0x4
+ bl FUN_02027C84
+ pop {r4, pc}
+ .balign 4
+_02027600: .word 0x00001234
+_02027604: .word 0x00002345
+
+ thumb_func_start FUN_02027608
+FUN_02027608: ; 0x02027608
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _02027634 ; =0x00001234
+ cmp r1, r0
+ beq _0202761C
+ ldr r0, _02027638 ; =0x00002345
+ cmp r1, r0
+ bne _02027620
+_0202761C:
+ mov r0, #0x1
+ b _02027622
+_02027620:
+ mov r0, #0x0
+_02027622:
+ cmp r0, #0x0
+ bne _0202762A
+ bl ErrorHandling
+_0202762A:
+ add r0, r5, #0x4
+ add r1, r4, #0x0
+ bl FUN_02027C88
+ pop {r3-r5, pc}
+ .balign 4
+_02027634: .word 0x00001234
+_02027638: .word 0x00002345
+
+ thumb_func_start FUN_0202763C
+FUN_0202763C: ; 0x0202763C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02027664 ; =0x00001234
+ cmp r1, r0
+ beq _0202764E
+ ldr r0, _02027668 ; =0x00002345
+ cmp r1, r0
+ bne _02027652
+_0202764E:
+ mov r0, #0x1
+ b _02027654
+_02027652:
+ mov r0, #0x0
+_02027654:
+ cmp r0, #0x0
+ bne _0202765C
+ bl ErrorHandling
+_0202765C:
+ add r0, r4, #0x4
+ bl FUN_02027C98
+ pop {r4, pc}
+ .balign 4
+_02027664: .word 0x00001234
+_02027668: .word 0x00002345
+
+ thumb_func_start FUN_0202766C
+FUN_0202766C: ; 0x0202766C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02027694 ; =0x00001234
+ cmp r1, r0
+ beq _0202767E
+ ldr r0, _02027698 ; =0x00002345
+ cmp r1, r0
+ bne _02027682
+_0202767E:
+ mov r0, #0x1
+ b _02027684
+_02027682:
+ mov r0, #0x0
+_02027684:
+ cmp r0, #0x0
+ bne _0202768C
+ bl ErrorHandling
+_0202768C:
+ add r4, #0x70
+ ldrb r0, [r4, #0x0]
+ pop {r4, pc}
+ nop
+_02027694: .word 0x00001234
+_02027698: .word 0x00002345
+
+ thumb_func_start FUN_0202769C
+FUN_0202769C: ; 0x0202769C
+ ldr r3, _020276A4 ; =FUN_02013918
+ add r0, #0x40
+ mov r1, #0x0
+ bx r3
+ .balign 4
+_020276A4: .word FUN_02013918
+
+ thumb_func_start FUN_020276A8
+FUN_020276A8: ; 0x020276A8
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _020276D0 ; =0x00001234
+ cmp r1, r0
+ beq _020276BA
+ ldr r0, _020276D4 ; =0x00002345
+ cmp r1, r0
+ bne _020276BE
+_020276BA:
+ mov r0, #0x1
+ b _020276C0
+_020276BE:
+ mov r0, #0x0
+_020276C0:
+ cmp r0, #0x0
+ bne _020276C8
+ bl ErrorHandling
+_020276C8:
+ add r4, #0x71
+ ldrb r0, [r4, #0x0]
+ pop {r4, pc}
+ nop
+_020276D0: .word 0x00001234
+_020276D4: .word 0x00002345
+
+ thumb_func_start FUN_020276D8
+FUN_020276D8: ; 0x020276D8
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02027708 ; =0x00001234
+ cmp r1, r0
+ beq _020276EA
+ ldr r0, _0202770C ; =0x00002345
+ cmp r1, r0
+ bne _020276EE
+_020276EA:
+ mov r0, #0x1
+ b _020276F0
+_020276EE:
+ mov r0, #0x0
+_020276F0:
+ cmp r0, #0x0
+ bne _020276F8
+ bl ErrorHandling
+_020276F8:
+ ldr r1, [r4, #0x0]
+ ldr r0, _0202770C ; =0x00002345
+ cmp r1, r0
+ bne _02027704
+ mov r0, #0x1
+ pop {r4, pc}
+_02027704:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+_02027708: .word 0x00001234
+_0202770C: .word 0x00002345
+
+ thumb_func_start FUN_02027710
+FUN_02027710: ; 0x02027710
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02027738 ; =0x00001234
+ cmp r1, r0
+ beq _02027722
+ ldr r0, _0202773C ; =0x00002345
+ cmp r1, r0
+ bne _02027726
+_02027722:
+ mov r0, #0x1
+ b _02027728
+_02027726:
+ mov r0, #0x0
+_02027728:
+ cmp r0, #0x0
+ bne _02027730
+ bl ErrorHandling
+_02027730:
+ ldr r0, _0202773C ; =0x00002345
+ str r0, [r4, #0x0]
+ pop {r4, pc}
+ nop
+_02027738: .word 0x00001234
+_0202773C: .word 0x00002345
+
+ thumb_func_start FUN_02027740
+FUN_02027740: ; 0x02027740
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02027770 ; =0x00001234
+ cmp r1, r0
+ beq _02027752
+ ldr r0, _02027774 ; =0x00002345
+ cmp r1, r0
+ bne _02027756
+_02027752:
+ mov r0, #0x1
+ b _02027758
+_02027756:
+ mov r0, #0x0
+_02027758:
+ cmp r0, #0x0
+ bne _02027760
+ bl ErrorHandling
+_02027760:
+ add r0, r4, #0x0
+ mov r1, #0x0
+ mov r2, #0x98
+ bl memset
+ ldr r0, _02027770 ; =0x00001234
+ str r0, [r4, #0x0]
+ pop {r4, pc}
+ .balign 4
+_02027770: .word 0x00001234
+_02027774: .word 0x00002345
+
+ thumb_func_start FUN_02027778
+FUN_02027778: ; 0x02027778
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _020277AC ; =0x00001234
+ add r6, r2, #0x0
+ cmp r1, r0
+ beq _0202778E
+ ldr r0, _020277B0 ; =0x00002345
+ cmp r1, r0
+ bne _02027792
+_0202778E:
+ mov r0, #0x1
+ b _02027794
+_02027792:
+ mov r0, #0x0
+_02027794:
+ cmp r0, #0x0
+ bne _0202779C
+ bl ErrorHandling
+_0202779C:
+ add r5, #0x8
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_02026D34
+ pop {r4-r6, pc}
+ nop
+_020277AC: .word 0x00001234
+_020277B0: .word 0x00002345
+
+ thumb_func_start FUN_020277B4
+FUN_020277B4: ; 0x020277B4
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x4]
+ add r6, r2, #0x0
+ bl FUN_02013ECC
+ add r1, sp, #0xc
+ strh r0, [r1, #0x0]
+ lsr r0, r0, #0x10
+ strh r0, [r1, #0x2]
+ ldrh r0, [r1, #0x0]
+ strh r0, [r1, #0x4]
+ ldrh r0, [r1, #0x2]
+ strh r0, [r1, #0x6]
+ ldr r0, [r4, #0x4]
+ bl FUN_02013F00
+ str r0, [sp, #0x8]
+ cmp r6, #0x14
+ blt _020277E4
+ bl ErrorHandling
+_020277E4:
+ add r1, sp, #0xc
+ mov r0, #0x4
+ ldrsh r1, [r1, r0]
+ add r0, #0xfc
+ cmp r1, r0
+ blt _020277F4
+ bl ErrorHandling
+_020277F4:
+ add r1, sp, #0xc
+ mov r0, #0x6
+ ldrsh r7, [r1, r0]
+ add r0, #0xfa
+ cmp r7, r0
+ blt _02027804
+ bl ErrorHandling
+_02027804:
+ mov r1, #0x7f
+ ldr r0, [sp, #0x8]
+ mvn r1, r1
+ cmp r0, r1
+ bgt _02027812
+ bl ErrorHandling
+_02027812:
+ mov r0, #0x1
+ lsl r0, r6
+ ldr r1, [r5, #0x40]
+ str r0, [sp, #0x4]
+ tst r0, r1
+ beq _02027822
+ bl ErrorHandling
+_02027822:
+ ldr r1, [r5, #0x0]
+ ldr r0, _02027874 ; =0x00001234
+ cmp r1, r0
+ beq _02027830
+ ldr r0, _02027878 ; =0x00002345
+ cmp r1, r0
+ bne _02027834
+_02027830:
+ mov r0, #0x1
+ b _02027836
+_02027834:
+ mov r0, #0x0
+_02027836:
+ cmp r0, #0x0
+ bne _0202783E
+ bl ErrorHandling
+_0202783E:
+ ldr r0, [sp, #0x8]
+ add r1, r5, #0x0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ add r3, sp, #0xc
+ mov r2, #0x4
+ ldrsh r2, [r3, r2]
+ lsl r3, r7, #0x18
+ add r1, #0x44
+ lsl r0, r6, #0x2
+ add r0, r1, r0
+ ldr r1, [r4, #0x0]
+ lsl r2, r2, #0x18
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02026DB0
+ ldr r1, [r5, #0x40]
+ ldr r0, [sp, #0x4]
+ orr r0, r1
+ str r0, [r5, #0x40]
+ add sp, #0x14
+ pop {r4-r7, pc}
+ nop
+_02027874: .word 0x00001234
+_02027878: .word 0x00002345
+
+ thumb_func_start FUN_0202787C
+FUN_0202787C: ; 0x0202787C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _020278A4 ; =0x00001234
+ cmp r1, r0
+ beq _02027890
+ ldr r0, _020278A8 ; =0x00002345
+ cmp r1, r0
+ bne _02027894
+_02027890:
+ mov r0, #0x1
+ b _02027896
+_02027894:
+ mov r0, #0x0
+_02027896:
+ cmp r0, #0x0
+ bne _0202789E
+ bl ErrorHandling
+_0202789E:
+ add r5, #0x94
+ strb r4, [r5, #0x0]
+ pop {r3-r5, pc}
+ .balign 4
+_020278A4: .word 0x00001234
+_020278A8: .word 0x00002345
+
+ thumb_func_start FUN_020278AC
+FUN_020278AC: ; 0x020278AC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _020278D4 ; =0x00001234
+ cmp r1, r0
+ beq _020278C0
+ ldr r0, _020278D8 ; =0x00002345
+ cmp r1, r0
+ bne _020278C4
+_020278C0:
+ mov r0, #0x1
+ b _020278C6
+_020278C4:
+ mov r0, #0x0
+_020278C6:
+ cmp r0, #0x0
+ bne _020278CE
+ bl ErrorHandling
+_020278CE:
+ str r4, [r5, #0x4]
+ pop {r3-r5, pc}
+ nop
+_020278D4: .word 0x00001234
+_020278D8: .word 0x00002345
+
+ thumb_func_start FUN_020278DC
+FUN_020278DC: ; 0x020278DC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _0202790C ; =0x00001234
+ cmp r1, r0
+ beq _020278F0
+ ldr r0, _02027910 ; =0x00002345
+ cmp r1, r0
+ bne _020278F4
+_020278F0:
+ mov r0, #0x1
+ b _020278F6
+_020278F4:
+ mov r0, #0x0
+_020278F6:
+ cmp r0, #0x0
+ bne _020278FE
+ bl ErrorHandling
+_020278FE:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x98
+ bl memcpy
+ pop {r3-r5, pc}
+ nop
+_0202790C: .word 0x00001234
+_02027910: .word 0x00002345
+
+ thumb_func_start FUN_02027914
+FUN_02027914: ; 0x02027914
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _0202795C ; =0x00001234
+ add r6, r2, #0x0
+ cmp r1, r0
+ beq _0202792C
+ ldr r0, _02027960 ; =0x00002345
+ cmp r1, r0
+ bne _02027930
+_0202792C:
+ mov r0, #0x1
+ b _02027932
+_02027930:
+ mov r0, #0x0
+_02027932:
+ cmp r0, #0x0
+ bne _0202793A
+ bl ErrorHandling
+_0202793A:
+ add r1, sp, #0x4
+ add r0, r4, #0x0
+ add r1, #0x1
+ add r2, sp, #0x4
+ bl FUN_02026F3C
+ add r5, #0x8
+ str r6, [sp, #0x0]
+ add r3, sp, #0x4
+ ldrb r2, [r3, #0x1]
+ ldrb r3, [r3, #0x0]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02026CD0
+ add sp, #0x8
+ pop {r4-r6, pc}
+ .balign 4
+_0202795C: .word 0x00001234
+_02027960: .word 0x00002345
+
+ thumb_func_start FUN_02027964
+FUN_02027964: ; 0x02027964
+ push {r4-r7, lr}
+ sub sp, #0xc
+ str r3, [sp, #0x4]
+ add r6, r1, #0x0
+ add r5, r0, #0x0
+ add r7, r2, #0x0
+ ldr r4, [sp, #0x24]
+ cmp r6, #0x14
+ blo _0202797A
+ bl ErrorHandling
+_0202797A:
+ cmp r7, #0x64
+ blo _02027982
+ bl ErrorHandling
+_02027982:
+ mov r1, #0x1
+ ldr r0, [sp, #0x4]
+ lsl r1, r1, #0x8
+ cmp r0, r1
+ blt _02027990
+ bl ErrorHandling
+_02027990:
+ add r0, sp, #0x10
+ ldrb r1, [r0, #0x10]
+ mov r0, #0x1
+ lsl r0, r0, #0x8
+ cmp r1, r0
+ blt _020279A0
+ bl ErrorHandling
+_020279A0:
+ mov r0, #0x7f
+ mvn r0, r0
+ cmp r4, r0
+ bgt _020279AC
+ bl ErrorHandling
+_020279AC:
+ mov r0, #0x1
+ lsl r0, r6
+ ldr r1, [r5, #0x40]
+ str r0, [sp, #0x8]
+ tst r0, r1
+ beq _020279BC
+ bl ErrorHandling
+_020279BC:
+ ldr r1, [r5, #0x0]
+ ldr r0, _02027A0C ; =0x00001234
+ cmp r1, r0
+ beq _020279CA
+ ldr r0, _02027A10 ; =0x00002345
+ cmp r1, r0
+ bne _020279CE
+_020279CA:
+ mov r0, #0x1
+ b _020279D0
+_020279CE:
+ mov r0, #0x0
+_020279D0:
+ cmp r0, #0x0
+ bne _020279D8
+ bl ErrorHandling
+_020279D8:
+ mov r0, #0x38
+ ldrsb r0, [r5, r0]
+ cmp r0, r4
+ blt _020279E6
+ add r0, r0, #0x1
+ lsl r0, r0, #0x18
+ asr r4, r0, #0x18
+_020279E6:
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x0]
+ add r3, sp, #0x10
+ add r1, r5, #0x0
+ ldrb r3, [r3, #0x10]
+ add r1, #0x44
+ lsl r0, r6, #0x2
+ add r0, r1, r0
+ ldr r2, [sp, #0x4]
+ add r1, r7, #0x0
+ bl FUN_02026DB0
+ ldr r1, [r5, #0x40]
+ ldr r0, [sp, #0x8]
+ orr r0, r1
+ str r0, [r5, #0x40]
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_02027A0C: .word 0x00001234
+_02027A10: .word 0x00002345
+
+ thumb_func_start FUN_02027A14
+FUN_02027A14: ; 0x02027A14
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x14
+ blt _02027A22
+ bl ErrorHandling
+_02027A22:
+ ldr r1, [r5, #0x0]
+ ldr r0, _02027A50 ; =0x00001234
+ cmp r1, r0
+ beq _02027A30
+ ldr r0, _02027A54 ; =0x00002345
+ cmp r1, r0
+ bne _02027A34
+_02027A30:
+ mov r0, #0x1
+ b _02027A36
+_02027A34:
+ mov r0, #0x0
+_02027A36:
+ cmp r0, #0x0
+ bne _02027A3E
+ bl ErrorHandling
+_02027A3E:
+ mov r0, #0x1
+ add r1, r0, #0x0
+ ldr r2, [r5, #0x40]
+ lsl r1, r4
+ tst r1, r2
+ bne _02027A4C
+ mov r0, #0x0
+_02027A4C:
+ pop {r3-r5, pc}
+ nop
+_02027A50: .word 0x00001234
+_02027A54: .word 0x00002345
+
+ thumb_func_start FUN_02027A58
+FUN_02027A58: ; 0x02027A58
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _02027A8C ; =0x00001234
+ add r6, r2, #0x0
+ cmp r1, r0
+ beq _02027A6E
+ ldr r0, _02027A90 ; =0x00002345
+ cmp r1, r0
+ bne _02027A72
+_02027A6E:
+ mov r0, #0x1
+ b _02027A74
+_02027A72:
+ mov r0, #0x0
+_02027A74:
+ cmp r0, #0x0
+ bne _02027A7C
+ bl ErrorHandling
+_02027A7C:
+ add r5, #0x8
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_02026D98
+ pop {r4-r6, pc}
+ nop
+_02027A8C: .word 0x00001234
+_02027A90: .word 0x00002345
+
+ thumb_func_start FUN_02027A94
+FUN_02027A94: ; 0x02027A94
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02027ABC ; =0x00001234
+ cmp r1, r0
+ beq _02027AA6
+ ldr r0, _02027AC0 ; =0x00002345
+ cmp r1, r0
+ bne _02027AAA
+_02027AA6:
+ mov r0, #0x1
+ b _02027AAC
+_02027AAA:
+ mov r0, #0x0
+_02027AAC:
+ cmp r0, #0x0
+ bne _02027AB4
+ bl ErrorHandling
+_02027AB4:
+ add r4, #0x8
+ add r0, r4, #0x0
+ pop {r4, pc}
+ nop
+_02027ABC: .word 0x00001234
+_02027AC0: .word 0x00002345
+
+ thumb_func_start FUN_02027AC4
+FUN_02027AC4: ; 0x02027AC4
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x14
+ blt _02027AD2
+ bl ErrorHandling
+_02027AD2:
+ mov r0, #0x1
+ ldr r1, [r5, #0x40]
+ lsl r0, r4
+ tst r0, r1
+ bne _02027AE0
+ bl ErrorHandling
+_02027AE0:
+ ldr r1, [r5, #0x0]
+ ldr r0, _02027B04 ; =0x00001234
+ cmp r1, r0
+ beq _02027AEE
+ ldr r0, _02027B08 ; =0x00002345
+ cmp r1, r0
+ bne _02027AF2
+_02027AEE:
+ mov r0, #0x1
+ b _02027AF4
+_02027AF2:
+ mov r0, #0x0
+_02027AF4:
+ cmp r0, #0x0
+ bne _02027AFC
+ bl ErrorHandling
+_02027AFC:
+ add r5, #0x44
+ lsl r0, r4, #0x2
+ add r0, r5, r0
+ pop {r3-r5, pc}
+ .balign 4
+_02027B04: .word 0x00001234
+_02027B08: .word 0x00002345
+
+ thumb_func_start FUN_02027B0C
+FUN_02027B0C: ; 0x02027B0C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _02027B3C ; =0x00001234
+ cmp r1, r0
+ beq _02027B20
+ ldr r0, _02027B40 ; =0x00002345
+ cmp r1, r0
+ bne _02027B24
+_02027B20:
+ mov r0, #0x1
+ b _02027B26
+_02027B24:
+ mov r0, #0x0
+_02027B26:
+ cmp r0, #0x0
+ bne _02027B2E
+ bl ErrorHandling
+_02027B2E:
+ add r5, #0x8
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02027C88
+ pop {r3-r5, pc}
+ nop
+_02027B3C: .word 0x00001234
+_02027B40: .word 0x00002345
+
+ thumb_func_start FUN_02027B44
+FUN_02027B44: ; 0x02027B44
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02027B70 ; =0x00001234
+ cmp r1, r0
+ beq _02027B56
+ ldr r0, _02027B74 ; =0x00002345
+ cmp r1, r0
+ bne _02027B5A
+_02027B56:
+ mov r0, #0x1
+ b _02027B5C
+_02027B5A:
+ mov r0, #0x0
+_02027B5C:
+ cmp r0, #0x0
+ bne _02027B64
+ bl ErrorHandling
+_02027B64:
+ add r4, #0x8
+ add r0, r4, #0x0
+ bl FUN_02027C98
+ pop {r4, pc}
+ nop
+_02027B70: .word 0x00001234
+_02027B74: .word 0x00002345
+
+ thumb_func_start FUN_02027B78
+FUN_02027B78: ; 0x02027B78
+ push {r3-r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldr r1, [r5, #0x0]
+ ldr r0, _02027BD4 ; =0x00001234
+ cmp r1, r0
+ beq _02027B8E
+ ldr r0, _02027BD8 ; =0x00002345
+ cmp r1, r0
+ bne _02027B92
+_02027B8E:
+ mov r0, #0x1
+ b _02027B94
+_02027B92:
+ mov r0, #0x0
+_02027B94:
+ cmp r0, #0x0
+ bne _02027B9C
+ bl ErrorHandling
+_02027B9C:
+ mov r1, #0x1
+ str r1, [sp, #0x0]
+ ldr r0, [r5, #0x8]
+ mov r2, #0x0
+ str r0, [sp, #0x4]
+ str r1, [sp, #0x8]
+ ldr r0, [r5, #0xc]
+ add r3, r2, #0x0
+ str r0, [sp, #0xc]
+ ldrh r1, [r5, #0x10]
+ add r0, r4, #0x0
+ bl FUN_02066ACC
+ add r2, r5, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x74
+ add r2, #0x12
+ bl FUN_02067830
+ add r5, #0x3b
+ add r0, r4, #0x0
+ mov r1, #0x70
+ add r2, r5, #0x0
+ bl FUN_02067830
+ add sp, #0x10
+ pop {r3-r5, pc}
+ nop
+_02027BD4: .word 0x00001234
+_02027BD8: .word 0x00002345
+
+ thumb_func_start FUN_02027BDC
+FUN_02027BDC: ; 0x02027BDC
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x14
+ blt _02027BEA
+ bl ErrorHandling
+_02027BEA:
+ mov r0, #0x1
+ ldr r1, [r5, #0x40]
+ lsl r0, r4
+ tst r0, r1
+ bne _02027BF8
+ bl ErrorHandling
+_02027BF8:
+ ldr r1, [r5, #0x0]
+ ldr r0, _02027C20 ; =0x00001234
+ cmp r1, r0
+ beq _02027C06
+ ldr r0, _02027C24 ; =0x00002345
+ cmp r1, r0
+ bne _02027C0A
+_02027C06:
+ mov r0, #0x1
+ b _02027C0C
+_02027C0A:
+ mov r0, #0x0
+_02027C0C:
+ cmp r0, #0x0
+ bne _02027C14
+ bl ErrorHandling
+_02027C14:
+ add r5, #0x44
+ lsl r0, r4, #0x2
+ add r0, r5, r0
+ bl FUN_02027CF8
+ pop {r3-r5, pc}
+ .balign 4
+_02027C20: .word 0x00001234
+_02027C24: .word 0x00002345
+
+ thumb_func_start FUN_02027C28
+FUN_02027C28: ; 0x02027C28
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02027C50 ; =0x00001234
+ cmp r1, r0
+ beq _02027C3A
+ ldr r0, _02027C54 ; =0x00002345
+ cmp r1, r0
+ bne _02027C3E
+_02027C3A:
+ mov r0, #0x1
+ b _02027C40
+_02027C3E:
+ mov r0, #0x0
+_02027C40:
+ cmp r0, #0x0
+ bne _02027C48
+ bl ErrorHandling
+_02027C48:
+ add r4, #0x94
+ ldrb r0, [r4, #0x0]
+ pop {r4, pc}
+ nop
+_02027C50: .word 0x00001234
+_02027C54: .word 0x00002345
+
+ thumb_func_start FUN_02027C58
+FUN_02027C58: ; 0x02027C58
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ ldr r0, _02027C7C ; =0x00001234
+ cmp r1, r0
+ beq _02027C6A
+ ldr r0, _02027C80 ; =0x00002345
+ cmp r1, r0
+ bne _02027C6E
+_02027C6A:
+ mov r0, #0x1
+ b _02027C70
+_02027C6E:
+ mov r0, #0x0
+_02027C70:
+ cmp r0, #0x0
+ bne _02027C78
+ bl ErrorHandling
+_02027C78:
+ ldr r0, [r4, #0x4]
+ pop {r4, pc}
+ .balign 4
+_02027C7C: .word 0x00001234
+_02027C80: .word 0x00002345
+
+ thumb_func_start FUN_02027C84
+FUN_02027C84: ; 0x02027C84
+ ldrh r0, [r0, #0x8]
+ bx lr
+
+ thumb_func_start FUN_02027C88
+FUN_02027C88: ; 0x02027C88
+ add r2, r0, #0x0
+ ldr r3, _02027C94 ; =FUN_02021E28
+ add r2, #0x20
+ add r0, r1, #0x0
+ add r1, r2, #0x0
+ bx r3
+ .balign 4
+_02027C94: .word FUN_02021E28
+
+ thumb_func_start FUN_02027C98
+FUN_02027C98: ; 0x02027C98
+ add r0, #0x34
+ ldrb r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02027CA0
+FUN_02027CA0: ; 0x02027CA0
+ mov r1, #0x30
+ ldrsb r0, [r0, r1]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02027CA8
+FUN_02027CA8: ; 0x02027CA8
+ add r0, #0x31
+ ldrb r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02027CB0
+FUN_02027CB0: ; 0x02027CB0
+ add r0, #0x32
+ ldrb r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02027CB8
+FUN_02027CB8: ; 0x02027CB8
+ push {r3-r5, lr}
+ sub sp, #0x10
+ add r4, r1, #0x0
+ mov r1, #0x1
+ add r5, r0, #0x0
+ str r1, [sp, #0x0]
+ ldr r0, [r5, #0x0]
+ mov r2, #0x0
+ str r0, [sp, #0x4]
+ str r1, [sp, #0x8]
+ ldr r0, [r5, #0x4]
+ add r3, r2, #0x0
+ str r0, [sp, #0xc]
+ ldrh r1, [r5, #0x8]
+ add r0, r4, #0x0
+ bl FUN_02066ACC
+ add r2, r5, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x74
+ add r2, #0xa
+ bl FUN_02067830
+ add r5, #0x33
+ add r0, r4, #0x0
+ mov r1, #0x70
+ add r2, r5, #0x0
+ bl FUN_02067830
+ add sp, #0x10
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02027CF8
+FUN_02027CF8: ; 0x02027CF8
+ ldrb r0, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02027CFC
+FUN_02027CFC: ; 0x02027CFC
+ ldrb r0, [r0, #0x1]
+ bx lr
+
+ thumb_func_start FUN_02027D00
+FUN_02027D00: ; 0x02027D00
+ ldrb r0, [r0, #0x2]
+ bx lr
+
+ thumb_func_start FUN_02027D04
+FUN_02027D04: ; 0x02027D04
+ mov r1, #0x3
+ ldrsb r0, [r0, r1]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02027D0C
+FUN_02027D0C: ; 0x02027D0C
+ push {r4-r7, lr}
+ sub sp, #0x1fc
+ sub sp, #0x1fc
+ sub sp, #0xc
+ add r7, r0, #0x0
+ mov r0, #0x1
+ add r4, r1, #0x0
+ str r0, [sp, #0x0]
+ add r0, r4, #0x0
+ bl FUN_0202729C
+ cmp r0, #0x1
+ bne _02027D6A
+ ldr r1, _02027D78 ; =0xEDB88320
+ add r0, sp, #0x4
+ bl MATHi_CRC32InitTableRev
+ add r0, sp, #0x4
+ add r1, r4, #0x0
+ mov r2, #0x74
+ bl MATH_CalcCRC32
+ add r6, r0, #0x0
+ mov r5, #0x0
+_02027D3C:
+ add r0, r7, #0x0
+ add r1, r5, #0x0
+ bl FUN_02027008
+ add r4, r0, #0x0
+ ldr r1, _02027D78 ; =0xEDB88320
+ add r0, sp, #0x4
+ bl MATHi_CRC32InitTableRev
+ add r0, sp, #0x4
+ add r1, r4, #0x0
+ mov r2, #0x74
+ bl MATH_CalcCRC32
+ cmp r0, r6
+ bne _02027D62
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ b _02027D6E
+_02027D62:
+ add r5, r5, #0x1
+ cmp r5, #0xb
+ blt _02027D3C
+ b _02027D6E
+_02027D6A:
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+_02027D6E:
+ ldr r0, [sp, #0x0]
+ add sp, #0x1fc
+ add sp, #0x1fc
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_02027D78: .word 0xEDB88320
+
+ thumb_func_start FUN_02027D7C
+FUN_02027D7C: ; 0x02027D7C
+ push {r4-r7, lr}
+ sub sp, #0xc
+ str r0, [sp, #0x0]
+ mov r7, #0x0
+ ldr r0, [sp, #0x0]
+ str r1, [sp, #0x4]
+ add r5, r2, #0x0
+ add r6, r7, #0x0
+ str r3, [sp, #0x8]
+ cmp r0, #0x0
+ ble _02027DB6
+ add r4, r3, #0x0
+_02027D94:
+ ldr r0, [sp, #0x4]
+ cmp r6, r0
+ beq _02027DAC
+ ldr r1, [r4, #0x0]
+ cmp r1, #0x0
+ beq _02027DAC
+ add r0, r5, #0x0
+ bl FUN_02027D0C
+ cmp r0, #0x1
+ bne _02027DAC
+ add r7, r7, #0x1
+_02027DAC:
+ ldr r0, [sp, #0x0]
+ add r6, r6, #0x1
+ add r4, r4, #0x4
+ cmp r6, r0
+ blt _02027D94
+_02027DB6:
+ mov r4, #0xa
+_02027DB8:
+ add r1, r4, r7
+ cmp r1, #0xb
+ bge _02027DD6
+ add r0, r5, #0x0
+ bl FUN_02027008
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02027008
+ add r1, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_020274B8
+_02027DD6:
+ sub r4, r4, #0x1
+ cmp r4, #0x1
+ bge _02027DB8
+ ldr r0, [sp, #0x0]
+ mov r6, #0x1
+ mov r4, #0x0
+ cmp r0, #0x0
+ ble _02027E1E
+_02027DE6:
+ ldr r0, [sp, #0x4]
+ cmp r4, r0
+ beq _02027E10
+ ldr r0, [sp, #0x8]
+ ldr r7, [r0, #0x0]
+ cmp r7, #0x0
+ beq _02027E10
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ bl FUN_02027D0C
+ cmp r0, #0x1
+ bne _02027E10
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02027008
+ add r1, r7, #0x0
+ add r6, r6, #0x1
+ bl FUN_020274B8
+_02027E10:
+ ldr r0, [sp, #0x8]
+ add r4, r4, #0x1
+ add r0, r0, #0x4
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x0]
+ cmp r4, r0
+ blt _02027DE6
+_02027E1E:
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02027E24
+FUN_02027E24: ; 0x02027E24
+ ldr r3, _02027E2C ; =FUN_02022610
+ mov r1, #0xe
+ bx r3
+ nop
+_02027E2C: .word FUN_02022610
+
+ thumb_func_start FUN_02027E30
+FUN_02027E30: ; 0x02027E30
+ mov r0, #0x8
+ bx lr
+
+ thumb_func_start FUN_02027E34
+FUN_02027E34: ; 0x02027E34
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x1e
+ beq _02027E3E
+ mov r0, #0x1
+ bx lr
+_02027E3E:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02027E44
+FUN_02027E44: ; 0x02027E44
+ mov r1, #0x1e
+ strb r1, [r0, #0x0]
+ mov r1, #0x0
+ strb r1, [r0, #0x1]
+ strb r1, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ strb r1, [r0, #0x4]
+ strb r1, [r0, #0x5]
+ strb r1, [r0, #0x6]
+ strb r1, [r0, #0x7]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02027E5C
+FUN_02027E5C: ; 0x02027E5C
+ push {r4, lr}
+ mov r1, #0x8
+ bl FUN_020169D8
+ add r4, r0, #0x0
+ bl FUN_02027E44
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02027E70
+FUN_02027E70: ; 0x02027E70
+ ldrb r2, [r0, #0x0]
+ strb r2, [r1, #0x0]
+ ldrb r2, [r0, #0x1]
+ strb r2, [r1, #0x1]
+ ldrb r2, [r0, #0x2]
+ strb r2, [r1, #0x2]
+ ldrb r2, [r0, #0x3]
+ strb r2, [r1, #0x3]
+ ldrb r2, [r0, #0x4]
+ strb r2, [r1, #0x4]
+ ldrb r2, [r0, #0x5]
+ strb r2, [r1, #0x5]
+ ldrb r2, [r0, #0x6]
+ strb r2, [r1, #0x6]
+ ldrb r0, [r0, #0x7]
+ strb r0, [r1, #0x7]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02027E94
+FUN_02027E94: ; 0x02027E94
+ cmp r1, #0x6
+ bhi _02027ECA
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02027EA4: ; jump table (using 16-bit offset)
+ .short _02027EB2 - _02027EA4 - 2; case 0
+ .short _02027EB6 - _02027EA4 - 2; case 1
+ .short _02027EBA - _02027EA4 - 2; case 2
+ .short _02027EBE - _02027EA4 - 2; case 3
+ .short _02027EC2 - _02027EA4 - 2; case 4
+ .short _02027EC6 - _02027EA4 - 2; case 5
+ .short _02027ECA - _02027EA4 - 2; case 6
+_02027EB2:
+ ldrb r0, [r0, #0x0]
+ bx lr
+_02027EB6:
+ ldrb r0, [r0, #0x1]
+ bx lr
+_02027EBA:
+ ldrb r0, [r0, #0x2]
+ bx lr
+_02027EBE:
+ ldrb r0, [r0, #0x3]
+ bx lr
+_02027EC2:
+ ldrb r0, [r0, #0x4]
+ bx lr
+_02027EC6:
+ ldrb r0, [r0, #0x5]
+ bx lr
+_02027ECA:
+ ldrb r0, [r0, #0x6]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02027ED0
+FUN_02027ED0: ; 0x02027ED0
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ str r1, [sp, #0x0]
+ mov r4, #0x0
+ mov r6, #0x2
+ mov r7, #0x5
+_02027EDC:
+ bl rand_LC
+ add r1, r7, #0x0
+ bl _s32_div_f
+ lsl r0, r1, #0x18
+ lsr r0, r0, #0x18
+ add r1, r5, r0
+ ldrb r0, [r1, #0x1]
+ cmp r0, #0x0
+ bne _02027EF6
+ strb r6, [r1, #0x1]
+ add r4, r4, #0x1
+_02027EF6:
+ cmp r4, #0x3
+ blt _02027EDC
+ mov r0, #0x1b
+ strb r0, [r5, #0x0]
+ ldr r0, [sp, #0x0]
+ strb r0, [r5, #0x6]
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02027F04
+FUN_02027F04: ; 0x02027F04
+ push {r3-r7, lr}
+ sub sp, #0x8
+ mov r12, r2
+ mov r2, #0x0
+ add r6, r2, #0x0
+ mov r5, #0x1b
+ cmp r3, #0x0
+ beq _02027F20
+ mov r1, r12
+ bl FUN_02027ED0
+ add sp, #0x8
+ add r0, r5, #0x0
+ pop {r3-r7, pc}
+_02027F20:
+ add r4, r2, #0x0
+ add r7, sp, #0x0
+_02027F24:
+ ldrb r3, [r1, r4]
+ cmp r3, #0x0
+ beq _02027F34
+ cmp r3, #0x32
+ blo _02027F30
+ mov r6, #0x1
+_02027F30:
+ strb r4, [r7, r2]
+ add r2, r2, #0x1
+_02027F34:
+ add r4, r4, #0x1
+ cmp r4, #0x5
+ blt _02027F24
+ cmp r2, #0x5
+ bhi _02027F9C
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_02027F4A: ; jump table (using 16-bit offset)
+ .short _02027F56 - _02027F4A - 2; case 0
+ .short _02027F62 - _02027F4A - 2; case 1
+ .short _02027F70 - _02027F4A - 2; case 2
+ .short _02027F96 - _02027F4A - 2; case 3
+ .short _02027F9A - _02027F4A - 2; case 4
+ .short _02027F9A - _02027F4A - 2; case 5
+_02027F56:
+ mov r1, r12
+ bl FUN_02027ED0
+ add sp, #0x8
+ mov r0, #0x1b
+ pop {r3-r7, pc}
+_02027F62:
+ add r2, sp, #0x0
+ ldrb r3, [r2, #0x0]
+ mov r2, #0x6
+ mul r2, r3
+ lsl r2, r2, #0x18
+ lsr r5, r2, #0x18
+ b _02027F9C
+_02027F70:
+ add r2, sp, #0x0
+ ldrb r3, [r2, #0x1]
+ ldrb r2, [r2, #0x0]
+ ldrb r4, [r1, r3]
+ ldrb r5, [r1, r2]
+ cmp r5, r4
+ blo _02027F8A
+ lsl r4, r2, #0x2
+ add r2, r2, r4
+ add r2, r3, r2
+ lsl r2, r2, #0x18
+ lsr r5, r2, #0x18
+ b _02027F9C
+_02027F8A:
+ lsl r4, r3, #0x2
+ add r3, r3, r4
+ add r2, r2, r3
+ lsl r2, r2, #0x18
+ lsr r5, r2, #0x18
+ b _02027F9C
+_02027F96:
+ mov r5, #0x19
+ b _02027F9C
+_02027F9A:
+ mov r5, #0x1a
+_02027F9C:
+ cmp r6, #0x0
+ beq _02027FA2
+ mov r5, #0x1c
+_02027FA2:
+ mov r4, #0x0
+_02027FA4:
+ ldrb r3, [r1, r4]
+ add r2, r0, r4
+ add r4, r4, #0x1
+ strb r3, [r2, #0x1]
+ cmp r4, #0x5
+ blt _02027FA4
+ strb r5, [r0, #0x0]
+ mov r1, r12
+ strb r1, [r0, #0x6]
+ add r0, r5, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02027FBC
+FUN_02027FBC: ; 0x02027FBC
+ ldrb r2, [r0, #0x0]
+ strb r2, [r1, #0x0]
+ ldrb r2, [r0, #0x1]
+ strb r2, [r1, #0x1]
+ ldrb r2, [r0, #0x2]
+ strb r2, [r1, #0x2]
+ ldrb r2, [r0, #0x3]
+ strb r2, [r1, #0x3]
+ ldrb r2, [r0, #0x4]
+ strb r2, [r1, #0x4]
+ ldrb r2, [r0, #0x5]
+ strb r2, [r1, #0x5]
+ ldrb r0, [r0, #0x6]
+ strb r0, [r1, #0x6]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02027FDC
+FUN_02027FDC: ; 0x02027FDC
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldrb r0, [r4, #0x0]
+ mov r1, #0x5
+ bl _s32_div_f
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x5
+ bhi _0202801C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02027FFC: ; jump table (using 16-bit offset)
+ .short _02028008 - _02027FFC - 2; case 0
+ .short _0202800C - _02027FFC - 2; case 1
+ .short _02028010 - _02027FFC - 2; case 2
+ .short _02028014 - _02027FFC - 2; case 3
+ .short _02028018 - _02027FFC - 2; case 4
+ .short _0202801C - _02027FFC - 2; case 5
+_02028008:
+ ldrb r0, [r4, #0x1]
+ b _0202803E
+_0202800C:
+ ldrb r0, [r4, #0x2]
+ b _0202803E
+_02028010:
+ ldrb r0, [r4, #0x3]
+ b _0202803E
+_02028014:
+ ldrb r0, [r4, #0x4]
+ b _0202803E
+_02028018:
+ ldrb r0, [r4, #0x5]
+ b _0202803E
+_0202801C:
+ ldrb r0, [r4, #0x1]
+ ldrb r1, [r4, #0x2]
+ cmp r0, r1
+ bhs _02028026
+ add r0, r1, #0x0
+_02028026:
+ ldrb r1, [r4, #0x3]
+ cmp r0, r1
+ bhs _0202802E
+ add r0, r1, #0x0
+_0202802E:
+ ldrb r1, [r4, #0x4]
+ cmp r0, r1
+ bhs _02028036
+ add r0, r1, #0x0
+_02028036:
+ ldrb r1, [r4, #0x5]
+ cmp r0, r1
+ bhs _0202803E
+ add r0, r1, #0x0
+_0202803E:
+ cmp r0, #0x63
+ bls _02028044
+ mov r0, #0x63
+_02028044:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02028048
+FUN_02028048: ; 0x02028048
+ ldr r3, _02028050 ; =FUN_02022610
+ mov r1, #0x10
+ bx r3
+ nop
+_02028050: .word FUN_02022610
+
+ thumb_func_start FUN_02028054
+FUN_02028054: ; 0x02028054
+ mov r0, #0x32
+ lsl r0, r0, #0x4
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202805C
+FUN_0202805C: ; 0x0202805C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r4, #0x0
+_02028062:
+ add r0, r5, #0x0
+ bl FUN_02027E44
+ add r4, r4, #0x1
+ add r5, #0x8
+ cmp r4, #0x64
+ blt _02028062
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02028074
+FUN_02028074: ; 0x02028074
+ mov r2, #0x0
+_02028076:
+ lsl r1, r2, #0x3
+ ldrb r1, [r0, r1]
+ cmp r1, #0x1e
+ bne _02028082
+ add r0, r2, #0x0
+ bx lr
+_02028082:
+ add r1, r2, #0x1
+ lsl r1, r1, #0x10
+ lsr r2, r1, #0x10
+ cmp r2, #0x64
+ blo _02028076
+ ldr r0, _02028090 ; =0x0000FFFF
+ bx lr
+ .balign 4
+_02028090: .word 0x0000FFFF
+
+ thumb_func_start FUN_02028094
+FUN_02028094: ; 0x02028094
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ bl FUN_02028074
+ ldr r1, _020280B4 ; =0x0000FFFF
+ add r4, r0, #0x0
+ cmp r4, r1
+ beq _020280B2
+ lsl r1, r4, #0x3
+ add r0, r6, #0x0
+ add r1, r5, r1
+ bl FUN_02027E70
+ add r0, r4, #0x0
+_020280B2:
+ pop {r4-r6, pc}
+ .balign 4
+_020280B4: .word 0x0000FFFF
+
+ thumb_func_start FUN_020280B8
+FUN_020280B8: ; 0x020280B8
+ push {r3, lr}
+ cmp r1, #0x64
+ blo _020280C2
+ mov r0, #0x0
+ pop {r3, pc}
+_020280C2:
+ lsl r1, r1, #0x3
+ add r0, r0, r1
+ bl FUN_02027E44
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020280D0
+FUN_020280D0: ; 0x020280D0
+ cmp r1, #0x64
+ bhs _020280EA
+_020280D4:
+ lsl r2, r1, #0x3
+ ldrb r2, [r0, r2]
+ cmp r2, #0x1e
+ beq _020280E0
+ add r0, r1, #0x0
+ bx lr
+_020280E0:
+ add r1, r1, #0x1
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ cmp r1, #0x64
+ blo _020280D4
+_020280EA:
+ ldr r0, _020280F0 ; =0x0000FFFF
+ bx lr
+ nop
+_020280F0: .word 0x0000FFFF
+
+ thumb_func_start FUN_020280F4
+FUN_020280F4: ; 0x020280F4
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ mov r0, #0x0
+ mov r7, #0x64
+ str r0, [sp, #0x4]
+_02028100:
+ ldr r0, [sp, #0x4]
+ lsl r0, r0, #0x3
+ ldrb r0, [r5, r0]
+ cmp r0, #0x1e
+ bne _0202815C
+ ldr r6, [sp, #0x4]
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_020280D0
+ add r4, r0, #0x0
+ ldr r0, _02028170 ; =0x0000FFFF
+ cmp r4, r0
+ beq _0202816A
+ ldr r0, [sp, #0x4]
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x0]
+ cmp r4, r7
+ bhs _02028154
+ cmp r4, r7
+ bhs _02028154
+_0202812E:
+ lsl r0, r4, #0x3
+ lsl r1, r6, #0x3
+ str r0, [sp, #0x8]
+ add r0, r5, r0
+ add r1, r5, r1
+ bl FUN_02027E70
+ ldr r0, [sp, #0x8]
+ add r0, r5, r0
+ bl FUN_02027E44
+ add r0, r6, #0x1
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, r7
+ blo _0202812E
+_02028154:
+ ldr r0, [sp, #0x0]
+ sub r0, r7, r0
+ lsl r0, r0, #0x10
+ lsr r7, r0, #0x10
+_0202815C:
+ ldr r0, [sp, #0x4]
+ add r0, r0, #0x1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x4]
+ cmp r0, r7
+ blo _02028100
+_0202816A:
+ add sp, #0xc
+ pop {r4-r7, pc}
+ nop
+_02028170: .word 0x0000FFFF
+
+ thumb_func_start FUN_02028174
+FUN_02028174: ; 0x02028174
+ push {r3, lr}
+ cmp r1, #0x64
+ blo _02028182
+ add r0, r2, #0x0
+ bl FUN_02027E44
+ pop {r3, pc}
+_02028182:
+ lsl r1, r1, #0x3
+ add r0, r0, r1
+ add r1, r2, #0x0
+ bl FUN_02027E70
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02028190
+FUN_02028190: ; 0x02028190
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, r2, #0x0
+ add r4, r1, #0x0
+ bl FUN_02027E5C
+ add r6, r0, #0x0
+ cmp r4, #0x64
+ blo _020281AA
+ bl FUN_02027E44
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_020281AA:
+ lsl r0, r4, #0x3
+ add r0, r5, r0
+ add r1, r6, #0x0
+ bl FUN_02027E70
+ add r0, r6, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020281B8
+FUN_020281B8: ; 0x020281B8
+ push {r4-r6, lr}
+ mov r4, #0x0
+ add r6, r0, #0x0
+ add r5, r4, #0x0
+_020281C0:
+ lsl r0, r5, #0x3
+ add r0, r6, r0
+ bl FUN_02027E34
+ cmp r0, #0x0
+ beq _020281D2
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_020281D2:
+ add r0, r5, #0x1
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ cmp r5, #0x64
+ blo _020281C0
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_020281E0
+FUN_020281E0: ; 0x020281E0
+ mov r0, #0x1f
+ lsl r0, r0, #0x6
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020281E8
+FUN_020281E8: ; 0x020281E8
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ mov r2, #0x1f
+ mov r0, #0x0
+ add r1, r7, #0x0
+ lsl r2, r2, #0x6
+ bl MIi_CpuClearFast
+ mov r0, #0x1d
+ lsl r0, r0, #0x4
+ add r1, r0, #0x0
+ add r2, r0, #0x0
+ ldr r4, _02028224 ; =0x0000FFFF
+ mov r5, #0x0
+ add r6, r7, #0x0
+ mov r3, #0x2
+ sub r1, #0x10
+ add r2, #0x1e
+_0202820C:
+ strh r4, [r6, r0]
+ strh r4, [r6, r1]
+ strb r3, [r6, r2]
+ add r5, r5, #0x1
+ add r6, #0x30
+ cmp r5, #0x20
+ blt _0202820C
+ add r0, r7, #0x0
+ bl FUN_0203380C
+ pop {r3-r7, pc}
+ nop
+_02028224: .word 0x0000FFFF
+
+ thumb_func_start FUN_02028228
+FUN_02028228: ; 0x02028228
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202822C
+FUN_0202822C: ; 0x0202822C
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r7, r2, #0x0
+ cmp r4, #0x20
+ blt _0202823C
+ bl ErrorHandling
+_0202823C:
+ cmp r7, #0x8
+ bhi _020282D0
+ add r0, r7, r7
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0202824C: ; jump table (using 16-bit offset)
+ .short _0202825E - _0202824C - 2; case 0
+ .short _0202826C - _0202824C - 2; case 1
+ .short _0202827A - _0202824C - 2; case 2
+ .short _02028286 - _0202824C - 2; case 3
+ .short _02028294 - _0202824C - 2; case 4
+ .short _020282A0 - _0202824C - 2; case 5
+ .short _020282AE - _0202824C - 2; case 6
+ .short _020282C6 - _0202824C - 2; case 7
+ .short _020282BA - _0202824C - 2; case 8
+_0202825E:
+ mov r0, #0x30
+ mul r0, r4
+ add r1, r5, r0
+ mov r0, #0x1e
+ lsl r0, r0, #0x4
+ ldr r6, [r1, r0]
+ b _020282D0
+_0202826C:
+ mov r0, #0x30
+ mul r0, r4
+ add r1, r5, r0
+ mov r0, #0x79
+ lsl r0, r0, #0x2
+ ldrh r6, [r1, r0]
+ b _020282D0
+_0202827A:
+ mov r0, #0x30
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _020282D4 ; =0x000001E6
+ ldrh r6, [r1, r0]
+ b _020282D0
+_02028286:
+ mov r0, #0x30
+ mul r0, r4
+ add r1, r5, r0
+ mov r0, #0x7a
+ lsl r0, r0, #0x2
+ ldrh r6, [r1, r0]
+ b _020282D0
+_02028294:
+ mov r0, #0x30
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _020282D8 ; =0x000001EA
+ ldrh r6, [r1, r0]
+ b _020282D0
+_020282A0:
+ mov r0, #0x30
+ mul r0, r4
+ add r1, r5, r0
+ mov r0, #0x7b
+ lsl r0, r0, #0x2
+ ldrb r6, [r1, r0]
+ b _020282D0
+_020282AE:
+ mov r0, #0x30
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _020282DC ; =0x000001ED
+ ldrb r6, [r1, r0]
+ b _020282D0
+_020282BA:
+ mov r0, #0x30
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _020282E0 ; =0x000001EE
+ ldrb r6, [r1, r0]
+ b _020282D0
+_020282C6:
+ mov r0, #0x30
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _020282E4 ; =0x000001EF
+ ldrb r6, [r1, r0]
+_020282D0:
+ add r0, r6, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_020282D4: .word 0x000001E6
+_020282D8: .word 0x000001EA
+_020282DC: .word 0x000001ED
+_020282E0: .word 0x000001EE
+_020282E4: .word 0x000001EF
+
+ thumb_func_start FUN_020282E8
+FUN_020282E8: ; 0x020282E8
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r7, r2, #0x0
+ add r6, r3, #0x0
+ cmp r4, #0x20
+ blt _020282FA
+ bl ErrorHandling
+_020282FA:
+ cmp r7, #0x8
+ bhi _02028378
+ add r0, r7, r7
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0202830A: ; jump table (using 16-bit offset)
+ .short _0202831C - _0202830A - 2; case 0
+ .short _0202832A - _0202830A - 2; case 1
+ .short _02028330 - _0202830A - 2; case 2
+ .short _02028336 - _0202830A - 2; case 3
+ .short _0202833C - _0202830A - 2; case 4
+ .short _02028348 - _0202830A - 2; case 5
+ .short _02028356 - _0202830A - 2; case 6
+ .short _0202836E - _0202830A - 2; case 7
+ .short _02028362 - _0202830A - 2; case 8
+_0202831C:
+ mov r0, #0x30
+ mul r0, r4
+ add r1, r5, r0
+ mov r0, #0x1e
+ lsl r0, r0, #0x4
+ str r6, [r1, r0]
+ pop {r3-r7, pc}
+_0202832A:
+ bl ErrorHandling
+ pop {r3-r7, pc}
+_02028330:
+ bl ErrorHandling
+ pop {r3-r7, pc}
+_02028336:
+ bl ErrorHandling
+ pop {r3-r7, pc}
+_0202833C:
+ mov r0, #0x30
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _0202837C ; =0x000001EA
+ strh r6, [r1, r0]
+ pop {r3-r7, pc}
+_02028348:
+ mov r0, #0x30
+ mul r0, r4
+ add r1, r5, r0
+ mov r0, #0x7b
+ lsl r0, r0, #0x2
+ strb r6, [r1, r0]
+ pop {r3-r7, pc}
+_02028356:
+ mov r0, #0x30
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _02028380 ; =0x000001ED
+ strb r6, [r1, r0]
+ pop {r3-r7, pc}
+_02028362:
+ mov r0, #0x30
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _02028384 ; =0x000001EE
+ strb r6, [r1, r0]
+ pop {r3-r7, pc}
+_0202836E:
+ mov r0, #0x30
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _02028388 ; =0x000001EF
+ strb r6, [r1, r0]
+_02028378:
+ pop {r3-r7, pc}
+ nop
+_0202837C: .word 0x000001EA
+_02028380: .word 0x000001ED
+_02028384: .word 0x000001EE
+_02028388: .word 0x000001EF
+
+ thumb_func_start FUN_0202838C
+FUN_0202838C: ; 0x0202838C
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x20
+ blt _0202839A
+ bl ErrorHandling
+_0202839A:
+ mov r0, #0xc
+ add r5, #0x40
+ mul r0, r4
+ add r0, r5, r0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020283A4
+FUN_020283A4: ; 0x020283A4
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x20
+ blt _020283B2
+ bl ErrorHandling
+_020283B2:
+ mov r0, #0x1d
+ lsl r0, r0, #0x4
+ add r1, r5, r0
+ mov r0, #0x30
+ mul r0, r4
+ add r0, r1, r0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020283C0
+FUN_020283C0: ; 0x020283C0
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ cmp r4, #0x20
+ blt _020283D0
+ bl ErrorHandling
+_020283D0:
+ mov r1, #0x1d
+ lsl r1, r1, #0x4
+ add r2, r5, r1
+ mov r1, #0x30
+ mul r1, r4
+ add r1, r2, r1
+ add r0, r6, #0x0
+ mov r2, #0x10
+ bl FUN_02021EF0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020283E8
+FUN_020283E8: ; 0x020283E8
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x20
+ blt _020283F6
+ bl ErrorHandling
+_020283F6:
+ mov r0, #0x7
+ lsl r0, r0, #0x6
+ add r1, r5, r0
+ mov r0, #0x30
+ mul r0, r4
+ add r0, r1, r0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02028404
+FUN_02028404: ; 0x02028404
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ cmp r4, #0x20
+ blt _02028414
+ bl ErrorHandling
+_02028414:
+ mov r1, #0x7
+ lsl r1, r1, #0x6
+ add r2, r5, r1
+ mov r1, #0x30
+ mul r1, r4
+ add r1, r2, r1
+ add r0, r6, #0x0
+ mov r2, #0x10
+ bl FUN_02021EF0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202842C
+FUN_0202842C: ; 0x0202842C
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x20
+ blt _0202843A
+ bl ErrorHandling
+_0202843A:
+ mov r0, #0xc
+ add r5, #0x40
+ mul r0, r4
+ add r0, r5, r0
+ bl FUN_0209700C
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02028448
+FUN_02028448: ; 0x02028448
+ push {r4-r6, lr}
+ mov r5, #0x0
+ add r6, r0, #0x0
+ add r4, r5, #0x0
+_02028450:
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_0202842C
+ cmp r0, #0x0
+ beq _0202845E
+ add r5, r5, #0x1
+_0202845E:
+ add r4, r4, #0x1
+ cmp r4, #0x20
+ blt _02028450
+ add r0, r5, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02028468
+FUN_02028468: ; 0x02028468
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0x0
+ str r0, [sp, #0x0]
+ cmp r5, #0x20
+ blt _02028478
+ bl ErrorHandling
+_02028478:
+ cmp r5, #0x1f
+ bge _020284D2
+ mov r1, #0x7
+ ldr r0, [sp, #0x0]
+ lsl r1, r1, #0x6
+ add r0, r0, r1
+ str r0, [sp, #0x4]
+ mov r0, #0x30
+ add r1, r5, #0x0
+ mul r1, r0
+ ldr r0, [sp, #0x4]
+ add r6, r0, r1
+ ldr r0, [sp, #0x0]
+ add r1, r5, #0x0
+ str r0, [sp, #0x8]
+ add r0, #0x40
+ str r0, [sp, #0x8]
+ mov r0, #0xc
+ mul r1, r0
+ ldr r0, [sp, #0x8]
+ add r4, r0, r1
+_020284A2:
+ add r7, r5, #0x1
+ mov r0, #0x30
+ add r1, r7, #0x0
+ mul r1, r0
+ ldr r0, [sp, #0x4]
+ mov r2, #0x30
+ add r0, r0, r1
+ add r1, r6, #0x0
+ bl MI_CpuCopy8
+ mov r0, #0xc
+ add r1, r7, #0x0
+ mul r1, r0
+ ldr r0, [sp, #0x8]
+ mov r2, #0xc
+ add r0, r0, r1
+ add r1, r4, #0x0
+ bl MI_CpuCopy8
+ add r5, r5, #0x1
+ add r6, #0x30
+ add r4, #0xc
+ cmp r5, #0x1f
+ blt _020284A2
+_020284D2:
+ mov r2, #0x7
+ ldr r1, [sp, #0x0]
+ lsl r2, r2, #0x6
+ add r2, r1, r2
+ mov r1, #0x5d
+ lsl r1, r1, #0x4
+ add r1, r2, r1
+ mov r0, #0x0
+ mov r2, #0x30
+ bl MIi_CpuClearFast
+ ldr r2, [sp, #0x0]
+ mov r1, #0x5d
+ add r2, #0x40
+ lsl r1, r1, #0x2
+ add r1, r2, r1
+ mov r0, #0x0
+ mov r2, #0xc
+ bl MIi_CpuClearFast
+ mov r2, #0x7a
+ lsl r2, r2, #0x4
+ add r1, r2, #0x0
+ ldr r3, _02028514 ; =0x0000FFFF
+ ldr r0, [sp, #0x0]
+ sub r1, #0x10
+ strh r3, [r0, r2]
+ strh r3, [r0, r1]
+ mov r1, #0x2
+ add r2, #0x1e
+ strb r1, [r0, r2]
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_02028514: .word 0x0000FFFF
+
+ thumb_func_start FUN_02028518
+FUN_02028518: ; 0x02028518
+ push {r4-r7, lr}
+ sub sp, #0xc
+ str r2, [sp, #0x4]
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x4]
+ mov r2, #0x30
+ add r5, r0, #0x0
+ mov r0, #0x7
+ lsl r0, r0, #0x6
+ add r3, r1, #0x0
+ mul r5, r2
+ add r4, r7, r0
+ mul r3, r2
+ str r1, [sp, #0x0]
+ add r0, r4, r5
+ add r1, r4, r3
+ bl MI_CpuCopy8
+ ldr r0, [sp, #0x4]
+ add r6, r7, #0x0
+ mov r3, #0xc
+ add r1, r0, #0x0
+ mul r1, r3
+ add r6, #0x40
+ str r1, [sp, #0x8]
+ add r0, r6, r1
+ ldr r1, [sp, #0x0]
+ add r2, r1, #0x0
+ mul r2, r3
+ add r1, r6, r2
+ add r2, r3, #0x0
+ bl MI_CpuCopy8
+ mov r0, #0x0
+ add r1, r4, r5
+ mov r2, #0x30
+ bl MIi_CpuClearFast
+ ldr r1, [sp, #0x8]
+ mov r0, #0x0
+ add r1, r6, r1
+ mov r2, #0xc
+ bl MIi_CpuClearFast
+ mov r0, #0x1d
+ ldr r1, _02028588 ; =0x0000FFFF
+ add r2, r7, r5
+ lsl r0, r0, #0x4
+ strh r1, [r2, r0]
+ strh r1, [r4, r5]
+ mov r1, #0x2
+ add r0, #0x1e
+ strb r1, [r2, r0]
+ add sp, #0xc
+ pop {r4-r7, pc}
+ nop
+_02028588: .word 0x0000FFFF
+
+ thumb_func_start FUN_0202858C
+FUN_0202858C: ; 0x0202858C
+ push {r3-r7, lr}
+ mov r5, #0x0
+ mvn r5, r5
+ add r6, r0, #0x0
+ mov r4, #0x0
+ add r7, r5, #0x0
+_02028598:
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_0202842C
+ cmp r0, #0x0
+ beq _020285BC
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r5, r0
+ beq _020285C6
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_02028518
+ add r4, r7, #0x0
+ add r5, r7, #0x0
+ b _020285C6
+_020285BC:
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r5, r0
+ bne _020285C6
+ add r5, r4, #0x0
+_020285C6:
+ add r4, r4, #0x1
+ cmp r4, #0x20
+ blt _02028598
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020285D0
+FUN_020285D0: ; 0x020285D0
+ push {r3-r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r0, sp, #0x0
+ bl FUN_020126B4
+ mov r0, #0x30
+ add r2, r4, #0x0
+ mul r2, r0
+ mov r0, #0x7d
+ ldr r1, [sp, #0x0]
+ lsl r0, r0, #0x4
+ add r1, r1, r0
+ ldr r0, _02028604 ; =0x000001EA
+ add r3, r5, r2
+ strh r1, [r3, r0]
+ add r1, r0, #0x2
+ ldr r2, [sp, #0x4]
+ add r0, r0, #0x3
+ strb r2, [r3, r1]
+ ldr r1, [sp, #0x8]
+ strb r1, [r3, r0]
+ add sp, #0x10
+ pop {r3-r5, pc}
+ nop
+_02028604: .word 0x000001EA
+
+ thumb_func_start FUN_02028608
+FUN_02028608: ; 0x02028608
+ push {r4-r6, lr}
+ mov r5, #0x79
+ add r4, r0, #0x0
+ mov r0, #0x30
+ lsl r5, r5, #0x2
+ mul r0, r1
+ add r5, r4, r5
+ ldrh r6, [r5, r0]
+ add r2, r6, r2
+ strh r2, [r5, r0]
+ ldrh r6, [r5, r0]
+ ldr r2, _0202865C ; =0x0000270F
+ cmp r6, r2
+ bls _02028626
+ strh r2, [r5, r0]
+_02028626:
+ ldr r2, _02028660 ; =0x000001E6
+ add r2, r4, r2
+ ldrh r5, [r2, r0]
+ add r3, r5, r3
+ strh r3, [r2, r0]
+ ldrh r5, [r2, r0]
+ ldr r3, _0202865C ; =0x0000270F
+ cmp r5, r3
+ bls _0202863A
+ strh r3, [r2, r0]
+_0202863A:
+ mov r2, #0x7a
+ lsl r2, r2, #0x2
+ add r2, r4, r2
+ ldrh r5, [r2, r0]
+ ldr r3, [sp, #0x10]
+ add r3, r5, r3
+ strh r3, [r2, r0]
+ ldrh r5, [r2, r0]
+ ldr r3, _0202865C ; =0x0000270F
+ cmp r5, r3
+ bls _02028652
+ strh r3, [r2, r0]
+_02028652:
+ add r0, r4, #0x0
+ bl FUN_020285D0
+ pop {r4-r6, pc}
+ nop
+_0202865C: .word 0x0000270F
+_02028660: .word 0x000001E6
+
+ thumb_func_start FUN_02028664
+FUN_02028664: ; 0x02028664
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ mov r3, #0x79
+ mov r0, #0x30
+ add r4, r1, #0x0
+ mul r4, r0
+ lsl r3, r3, #0x2
+ mul r0, r2
+ add r2, r5, r3
+ add r6, r5, r4
+ ldrh r1, [r2, r0]
+ ldrh r3, [r6, r3]
+ add r1, r1, r3
+ strh r1, [r2, r0]
+ ldrh r3, [r2, r0]
+ ldr r1, _020286E0 ; =0x0000270F
+ cmp r3, r1
+ bls _0202868A
+ strh r1, [r2, r0]
+_0202868A:
+ ldr r3, _020286E4 ; =0x000001E6
+ add r6, r5, r4
+ add r2, r5, r3
+ ldrh r1, [r2, r0]
+ ldrh r3, [r6, r3]
+ add r1, r1, r3
+ strh r1, [r2, r0]
+ ldrh r3, [r2, r0]
+ ldr r1, _020286E0 ; =0x0000270F
+ cmp r3, r1
+ bls _020286A2
+ strh r1, [r2, r0]
+_020286A2:
+ mov r3, #0x7a
+ lsl r3, r3, #0x2
+ add r2, r5, r3
+ add r6, r5, r4
+ ldrh r1, [r2, r0]
+ ldrh r3, [r6, r3]
+ add r1, r1, r3
+ strh r1, [r2, r0]
+ ldrh r3, [r2, r0]
+ ldr r1, _020286E0 ; =0x0000270F
+ cmp r3, r1
+ bls _020286BC
+ strh r1, [r2, r0]
+_020286BC:
+ mov r0, #0x7
+ lsl r0, r0, #0x6
+ add r6, r5, r0
+ mov r0, #0x0
+ add r1, r6, r4
+ mov r2, #0x30
+ bl MIi_CpuClearFast
+ mov r0, #0x1d
+ ldr r1, _020286E8 ; =0x0000FFFF
+ add r2, r5, r4
+ lsl r0, r0, #0x4
+ strh r1, [r2, r0]
+ strh r1, [r6, r4]
+ mov r1, #0x2
+ add r0, #0x1e
+ strb r1, [r2, r0]
+ pop {r4-r6, pc}
+ .balign 4
+_020286E0: .word 0x0000270F
+_020286E4: .word 0x000001E6
+_020286E8: .word 0x0000FFFF
+
+ thumb_func_start FUN_020286EC
+FUN_020286EC: ; 0x020286EC
+ ldr r3, _020286F4 ; =FUN_02022610
+ mov r1, #0x1d
+ bx r3
+ nop
+_020286F4: .word FUN_02022610
+
+ thumb_func_start FUN_020286F8
+FUN_020286F8: ; 0x020286F8
+ mov r0, #0x42
+ lsl r0, r0, #0x2
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02028700
+FUN_02028700: ; 0x02028700
+ push {r4-r5}
+ add r5, r2, #0x0
+ mov r3, #0x2c
+ add r2, r1, #0x0
+ mul r2, r3
+ mul r5, r3
+ add r4, r0, r2
+ add r3, r0, r5
+ mov r2, #0x5
+_02028712:
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _02028712
+ ldr r0, [r4, #0x0]
+ str r0, [r3, #0x0]
+ pop {r4-r5}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02028724
+FUN_02028724: ; 0x02028724
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r2, #0x42
+ mov r0, #0x0
+ add r1, r4, #0x0
+ lsl r2, r2, #0x2
+ bl MIi_CpuClearFast
+ ldr r0, _0202874C ; =0x0000FFFF
+ mov r1, #0x0
+ add r2, r4, #0x0
+_0202873A:
+ strh r0, [r2, #0x0]
+ strh r0, [r2, #0x10]
+ add r1, r1, #0x1
+ add r2, #0x2c
+ cmp r1, #0x6
+ blt _0202873A
+ ldr r0, _02028750 ; =0x021C59D0
+ str r4, [r0, #0x0]
+ pop {r4, pc}
+ .balign 4
+_0202874C: .word 0x0000FFFF
+_02028750: .word 0x021C59D0
+
+ thumb_func_start FUN_02028754
+FUN_02028754: ; 0x02028754
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ mov r7, #0x0
+_0202875C:
+ mov r4, #0x0
+ cmp r6, #0x0
+ bls _02028770
+_02028762:
+ ldr r0, [r5, #0x28]
+ bl rand_ALT
+ add r4, r4, #0x1
+ str r0, [r5, #0x28]
+ cmp r4, r6
+ blo _02028762
+_02028770:
+ add r7, r7, #0x1
+ add r5, #0x2c
+ cmp r7, #0x6
+ blo _0202875C
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202877C
+FUN_0202877C: ; 0x0202877C
+ mov r2, #0x2c
+ mul r2, r1
+ add r0, r0, r2
+ ldr r0, [r0, #0x24]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02028788
+FUN_02028788: ; 0x02028788
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r0, #0x2c
+ add r4, r1, #0x0
+ mul r4, r0
+ add r0, r5, r4
+ str r2, [r0, #0x24]
+ add r0, r2, #0x0
+ bl rand_ALT
+ add r1, r5, r4
+ str r0, [r1, #0x28]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020287A4
+FUN_020287A4: ; 0x020287A4
+ ldr r0, [r0, #0x54]
+ bx lr
+
+ thumb_func_start FUN_020287A8
+FUN_020287A8: ; 0x020287A8
+ cmp r2, #0x0
+ bne _020287B4
+ mov r2, #0x2c
+ mul r2, r1
+ add r0, r0, r2
+ bx lr
+_020287B4:
+ mov r2, #0x2c
+ mul r2, r1
+ add r0, r0, r2
+ add r0, #0x10
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020287C0
+FUN_020287C0: ; 0x020287C0
+ push {r4, lr}
+ add r4, r0, #0x0
+ cmp r2, #0x0
+ bne _020287D8
+ mov r2, #0x2c
+ mul r2, r1
+ add r1, r4, r2
+ add r0, r3, #0x0
+ mov r2, #0x8
+ bl FUN_02021EF0
+ pop {r4, pc}
+_020287D8:
+ mov r2, #0x2c
+ mul r2, r1
+ add r1, r4, r2
+ add r0, r3, #0x0
+ add r1, #0x10
+ mov r2, #0x8
+ bl FUN_02021EF0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020287EC
+FUN_020287EC: ; 0x020287EC
+ mov r3, #0x2c
+ mul r3, r1
+ add r0, r0, r3
+ add r0, #0x20
+ strb r2, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_020287F8
+FUN_020287F8: ; 0x020287F8
+ mov r2, #0x2c
+ mul r2, r1
+ add r0, r0, r2
+ add r0, #0x20
+ ldrb r0, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02028804
+FUN_02028804: ; 0x02028804
+ mov r2, #0x2c
+ mul r2, r1
+ add r0, r0, r2
+ add r0, #0x21
+ ldrb r0, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02028810
+FUN_02028810: ; 0x02028810
+ mov r3, #0x2c
+ mul r3, r1
+ add r0, r0, r3
+ add r0, #0x21
+ strb r2, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_0202881C
+FUN_0202881C: ; 0x0202881C
+ ldr r3, _02028824 ; =FUN_02022610
+ mov r1, #0x11
+ bx r3
+ nop
+_02028824: .word FUN_02022610
+
+ thumb_func_start FUN_02028828
+FUN_02028828: ; 0x02028828
+ push {r3, lr}
+ mov r2, #0x2c
+ mul r2, r1
+ add r0, r0, r2
+ bl FUN_0202888C
+ cmp r0, #0x0
+ bne _0202883C
+ mov r0, #0x1
+ pop {r3, pc}
+_0202883C:
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_02028840
+FUN_02028840: ; 0x02028840
+ mov r2, #0x2c
+ add r3, r0, #0x0
+ mul r2, r1
+ add r1, r3, r2
+ ldr r3, _02028850 ; =FUN_020288AC
+ add r0, #0x2c
+ bx r3
+ nop
+_02028850: .word FUN_020288AC
+
+ thumb_func_start FUN_02028854
+FUN_02028854: ; 0x02028854
+ push {r3-r7, lr}
+ add r6, r1, #0x0
+ ldrh r1, [r6, #0x0]
+ add r5, r0, #0x0
+ ldr r0, _02028888 ; =0x0000FFFF
+ cmp r1, r0
+ bne _02028866
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02028866:
+ mov r4, #0x0
+ mov r7, #0x8
+_0202886A:
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ add r2, r7, #0x0
+ bl StringNotEqualN
+ cmp r0, #0x0
+ bne _0202887C
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0202887C:
+ add r4, r4, #0x1
+ add r5, #0x2c
+ cmp r4, #0x6
+ blt _0202886A
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_02028888: .word 0x0000FFFF
+
+ thumb_func_start FUN_0202888C
+FUN_0202888C: ; 0x0202888C
+ ldrh r2, [r0, #0x0]
+ ldr r1, _020288A8 ; =0x0000FFFF
+ cmp r2, r1
+ bne _02028898
+ mov r0, #0x1
+ bx lr
+_02028898:
+ ldrh r0, [r0, #0x10]
+ cmp r0, r1
+ bne _020288A2
+ mov r0, #0x1
+ bx lr
+_020288A2:
+ mov r0, #0x0
+ bx lr
+ nop
+_020288A8: .word 0x0000FFFF
+
+ thumb_func_start FUN_020288AC
+FUN_020288AC: ; 0x020288AC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r0, #0x10
+ add r1, #0x10
+ mov r2, #0x8
+ bl StringNotEqualN
+ cmp r0, #0x0
+ beq _020288C4
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_020288C4:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x8
+ bl StringNotEqualN
+ cmp r0, #0x0
+ beq _020288D6
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_020288D6:
+ add r0, r5, #0x0
+ add r0, #0x20
+ ldrb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x20
+ ldrb r0, [r0, #0x0]
+ cmp r1, r0
+ beq _020288EA
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_020288EA:
+ add r0, r5, #0x0
+ add r0, #0x21
+ ldrb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x21
+ ldrb r0, [r0, #0x0]
+ cmp r1, r0
+ beq _020288FE
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_020288FE:
+ ldr r1, [r5, #0x24]
+ ldr r0, [r4, #0x24]
+ cmp r1, r0
+ bne _0202890A
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0202890A:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02028910
+FUN_02028910: ; 0x02028910
+ mov r1, #0x0
+ strh r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02028918
+FUN_02028918: ; 0x02028918
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _0202892C ; =0x0000C350
+ add r4, r1, #0x0
+ cmp r4, r0
+ bls _02028928
+ bl ErrorHandling
+_02028928:
+ strh r4, [r5, #0x0]
+ pop {r3-r5, pc}
+ .balign 4
+_0202892C: .word 0x0000C350
+
+ thumb_func_start FUN_02028930
+FUN_02028930: ; 0x02028930
+ ldrh r0, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02028934
+FUN_02028934: ; 0x02028934
+ ldrh r3, [r0, #0x0]
+ ldr r2, _02028950 ; =0x0000C350
+ cmp r3, r2
+ blo _02028940
+ mov r0, #0x0
+ bx lr
+_02028940:
+ add r1, r3, r1
+ strh r1, [r0, #0x0]
+ ldrh r1, [r0, #0x0]
+ cmp r1, r2
+ bls _0202894C
+ strh r2, [r0, #0x0]
+_0202894C:
+ mov r0, #0x1
+ bx lr
+ .balign 4
+_02028950: .word 0x0000C350
+
+ thumb_func_start FUN_02028954
+FUN_02028954: ; 0x02028954
+ ldrh r0, [r0, #0x0]
+ add r1, r1, r0
+ ldr r0, _02028968 ; =0x0000C350
+ cmp r1, r0
+ bhi _02028962
+ mov r0, #0x1
+ bx lr
+_02028962:
+ mov r0, #0x0
+ bx lr
+ nop
+_02028968: .word 0x0000C350
+
+ thumb_func_start FUN_0202896C
+FUN_0202896C: ; 0x0202896C
+ ldrh r2, [r0, #0x0]
+ cmp r2, r1
+ bhs _02028976
+ mov r0, #0x0
+ bx lr
+_02028976:
+ sub r1, r2, r1
+ strh r1, [r0, #0x0]
+ mov r0, #0x1
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02028980
+FUN_02028980: ; 0x02028980
+ mov r0, #0x46
+ lsl r0, r0, #0x4
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02028988
+FUN_02028988: ; 0x02028988
+ ldr r3, _02028990 ; =memset
+ mov r1, #0x0
+ mov r2, #0x70
+ bx r3
+ .balign 4
+_02028990: .word memset
+
+ thumb_func_start FUN_02028994
+FUN_02028994: ; 0x02028994
+ ldr r3, _020289A0 ; =memset
+ mov r2, #0x46
+ mov r1, #0x0
+ lsl r2, r2, #0x4
+ bx r3
+ nop
+_020289A0: .word memset
+
+ thumb_func_start FUN_020289A4
+FUN_020289A4: ; 0x020289A4
+ ldr r3, _020289AC ; =FUN_02022610
+ mov r1, #0x12
+ bx r3
+ nop
+_020289AC: .word FUN_02022610
+
+ thumb_func_start FUN_020289B0
+FUN_020289B0: ; 0x020289B0
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r7, r0, #0x0
+ cmp r1, #0x1
+ beq _020289C0
+ add sp, #0x10
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_020289C0:
+ add r0, sp, #0x0
+ bl FUN_020126B4
+ ldr r0, [r7, #0x0]
+ lsl r1, r0, #0x15
+ lsr r3, r1, #0x1c
+ beq _02028A18
+ lsl r1, r0, #0x19
+ lsr r2, r1, #0x19
+ ldr r1, [sp, #0x0]
+ cmp r2, r1
+ bne _020289F2
+ ldr r1, [sp, #0x4]
+ cmp r3, r1
+ bne _020289F2
+ lsl r1, r0, #0xd
+ lsr r2, r1, #0x1b
+ ldr r1, [sp, #0x8]
+ cmp r2, r1
+ bne _020289F2
+ lsl r0, r0, #0x12
+ lsr r1, r0, #0x1d
+ ldr r0, [sp, #0xc]
+ cmp r1, r0
+ beq _02028A18
+_020289F2:
+ mov r0, #0x3f
+ lsl r0, r0, #0x4
+ mov r5, #0x9
+ add r6, r7, r0
+_020289FA:
+ add r4, r6, #0x0
+ sub r4, #0x70
+ add r3, r6, #0x0
+ mov r2, #0xe
+_02028A02:
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _02028A02
+ sub r5, r5, #0x1
+ sub r6, #0x70
+ cmp r5, #0x1
+ bge _020289FA
+ add r0, r7, #0x0
+ bl FUN_02028988
+_02028A18:
+ add r0, r7, #0x0
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02028A20
+FUN_02028A20: ; 0x02028A20
+ push {r4, lr}
+ sub sp, #0x20
+ add r4, r0, #0x0
+ cmp r1, #0x1
+ beq _02028A30
+ add sp, #0x20
+ mov r0, #0x0
+ pop {r4, pc}
+_02028A30:
+ add r0, sp, #0x0
+ bl FUN_020126B4
+ ldr r0, [r4, #0x0]
+ lsl r0, r0, #0x19
+ lsr r0, r0, #0x19
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x0]
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x1c
+ str r0, [sp, #0x14]
+ ldr r0, [r4, #0x0]
+ lsl r0, r0, #0xd
+ lsr r0, r0, #0x1b
+ str r0, [sp, #0x18]
+ ldr r0, [r4, #0x0]
+ lsl r0, r0, #0x12
+ lsr r0, r0, #0x1d
+ str r0, [sp, #0x1c]
+ add r0, sp, #0x0
+ bl FUN_02012710
+ add r4, r0, #0x0
+ add r0, sp, #0x10
+ bl FUN_02012710
+ ldr r2, [sp, #0x4]
+ sub r0, r4, r0
+ cmp r2, #0xc
+ bne _02028A7E
+ ldr r1, [sp, #0x8]
+ cmp r1, #0x1f
+ bne _02028A7E
+ ldr r1, [sp, #0x14]
+ cmp r1, #0x1
+ bne _02028A7E
+ ldr r1, [sp, #0x18]
+ cmp r1, #0x1
+ beq _02028A94
+_02028A7E:
+ cmp r2, #0x1
+ bne _02028AAC
+ ldr r1, [sp, #0x8]
+ cmp r1, #0x1
+ bne _02028AAC
+ ldr r1, [sp, #0x14]
+ cmp r1, #0xc
+ bne _02028AAC
+ ldr r1, [sp, #0x18]
+ cmp r1, #0x1f
+ bne _02028AAC
+_02028A94:
+ ldr r1, [sp, #0x0]
+ ldr r0, [sp, #0x10]
+ sub r1, r1, r0
+ cmp r1, #0x2
+ bge _02028AA6
+ mov r0, #0x1
+ mvn r0, r0
+ cmp r1, r0
+ bgt _02028ACC
+_02028AA6:
+ add sp, #0x20
+ mov r0, #0x1
+ pop {r4, pc}
+_02028AAC:
+ mov r1, #0x1
+ mvn r1, r1
+ cmp r0, r1
+ ble _02028AB8
+ cmp r0, #0x2
+ blt _02028ABE
+_02028AB8:
+ add sp, #0x20
+ mov r0, #0x1
+ pop {r4, pc}
+_02028ABE:
+ ldr r1, [sp, #0x0]
+ ldr r0, [sp, #0x10]
+ cmp r1, r0
+ beq _02028ACC
+ add sp, #0x20
+ mov r0, #0x1
+ pop {r4, pc}
+_02028ACC:
+ mov r0, #0x0
+ add sp, #0x20
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02028AD4
+FUN_02028AD4: ; 0x02028AD4
+ push {r4, lr}
+ add r4, r1, #0x0
+ cmp r0, #0x0
+ beq _02028B12
+ cmp r2, #0x4
+ bhi _02028B12
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_02028AEC: ; jump table (using 16-bit offset)
+ .short _02028AF6 - _02028AEC - 2; case 0
+ .short _02028AFC - _02028AEC - 2; case 1
+ .short _02028B02 - _02028AEC - 2; case 2
+ .short _02028B08 - _02028AEC - 2; case 3
+ .short _02028B0E - _02028AEC - 2; case 4
+_02028AF6:
+ bl FUN_02028B1C
+ b _02028B12
+_02028AFC:
+ bl FUN_02028B5C
+ b _02028B12
+_02028B02:
+ bl FUN_02028BF0
+ b _02028B12
+_02028B08:
+ bl FUN_02028BFC
+ b _02028B12
+_02028B0E:
+ bl FUN_02028C08
+_02028B12:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02028B1C
+FUN_02028B1C: ; 0x02028B1C
+ push {r4-r5}
+ ldr r3, [r0, #0x0]
+ lsl r2, r3, #0x19
+ lsr r5, r2, #0x19
+ ldr r2, [r1, #0x0]
+ lsl r4, r2, #0x19
+ lsr r4, r4, #0x19
+ cmp r5, r4
+ bne _02028B52
+ lsl r4, r3, #0x15
+ lsr r5, r4, #0x1c
+ lsl r4, r2, #0x15
+ lsr r4, r4, #0x1c
+ cmp r5, r4
+ bne _02028B52
+ lsl r4, r3, #0xd
+ lsr r5, r4, #0x1b
+ lsl r4, r2, #0xd
+ lsr r4, r4, #0x1b
+ cmp r5, r4
+ bne _02028B52
+ lsl r3, r3, #0x12
+ lsl r2, r2, #0x12
+ lsr r3, r3, #0x1d
+ lsr r2, r2, #0x1d
+ cmp r3, r2
+ beq _02028B56
+_02028B52:
+ ldr r1, [r1, #0x0]
+ str r1, [r0, #0x0]
+_02028B56:
+ pop {r4-r5}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02028B5C
+FUN_02028B5C: ; 0x02028B5C
+ push {r3, lr}
+ ldrb r2, [r1, #0x0]
+ cmp r2, #0x23
+ bhi _02028BEE
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_02028B70: ; jump table (using 16-bit offset)
+ .short _02028BEE - _02028B70 - 2; case 0
+ .short _02028BB8 - _02028B70 - 2; case 1
+ .short _02028BB8 - _02028B70 - 2; case 2
+ .short _02028BB8 - _02028B70 - 2; case 3
+ .short _02028BB8 - _02028B70 - 2; case 4
+ .short _02028BB8 - _02028B70 - 2; case 5
+ .short _02028BB8 - _02028B70 - 2; case 6
+ .short _02028BB8 - _02028B70 - 2; case 7
+ .short _02028BB8 - _02028B70 - 2; case 8
+ .short _02028BC0 - _02028B70 - 2; case 9
+ .short _02028BC0 - _02028B70 - 2; case 10
+ .short _02028BC8 - _02028B70 - 2; case 11
+ .short _02028BD0 - _02028B70 - 2; case 12
+ .short _02028BD8 - _02028B70 - 2; case 13
+ .short _02028BD8 - _02028B70 - 2; case 14
+ .short _02028BD8 - _02028B70 - 2; case 15
+ .short _02028BB8 - _02028B70 - 2; case 16
+ .short _02028BB8 - _02028B70 - 2; case 17
+ .short _02028BE0 - _02028B70 - 2; case 18
+ .short _02028BE8 - _02028B70 - 2; case 19
+ .short _02028BE8 - _02028B70 - 2; case 20
+ .short _02028BE8 - _02028B70 - 2; case 21
+ .short _02028BE8 - _02028B70 - 2; case 22
+ .short _02028BE8 - _02028B70 - 2; case 23
+ .short _02028BE8 - _02028B70 - 2; case 24
+ .short _02028BE8 - _02028B70 - 2; case 25
+ .short _02028BE8 - _02028B70 - 2; case 26
+ .short _02028BE8 - _02028B70 - 2; case 27
+ .short _02028BE8 - _02028B70 - 2; case 28
+ .short _02028BE8 - _02028B70 - 2; case 29
+ .short _02028BE8 - _02028B70 - 2; case 30
+ .short _02028BEE - _02028B70 - 2; case 31
+ .short _02028BE8 - _02028B70 - 2; case 32
+ .short _02028BE8 - _02028B70 - 2; case 33
+ .short _02028BB8 - _02028B70 - 2; case 34
+ .short _02028BB8 - _02028B70 - 2; case 35
+_02028BB8:
+ add r0, r0, #0x4
+ bl FUN_02028CE8
+ pop {r3, pc}
+_02028BC0:
+ add r0, r0, #0x4
+ bl FUN_02028D98
+ pop {r3, pc}
+_02028BC8:
+ add r0, r0, #0x4
+ bl FUN_02028D44
+ pop {r3, pc}
+_02028BD0:
+ add r0, r0, #0x4
+ bl FUN_02028D24
+ pop {r3, pc}
+_02028BD8:
+ add r0, r0, #0x4
+ bl FUN_02028DFC
+ pop {r3, pc}
+_02028BE0:
+ add r0, r0, #0x4
+ bl FUN_02028E44
+ pop {r3, pc}
+_02028BE8:
+ add r0, r0, #0x4
+ bl FUN_02028E8C
+_02028BEE:
+ pop {r3, pc}
+
+ thumb_func_start FUN_02028BF0
+FUN_02028BF0: ; 0x02028BF0
+ ldrh r2, [r1, #0x0]
+ strh r2, [r0, #0x14]
+ ldrh r1, [r1, #0x2]
+ strh r1, [r0, #0x16]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02028BFC
+FUN_02028BFC: ; 0x02028BFC
+ ldrh r2, [r1, #0x0]
+ strh r2, [r0, #0x18]
+ ldrh r1, [r1, #0x2]
+ strh r1, [r0, #0x1a]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02028C08
+FUN_02028C08: ; 0x02028C08
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ bl FUN_02028CA8
+ ldrb r1, [r4, #0x0]
+ cmp r1, #0x10
+ bhi _02028C6E
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02028C24: ; jump table (using 16-bit offset)
+ .short _02028C6E - _02028C24 - 2; case 0
+ .short _02028C46 - _02028C24 - 2; case 1
+ .short _02028C46 - _02028C24 - 2; case 2
+ .short _02028C46 - _02028C24 - 2; case 3
+ .short _02028C46 - _02028C24 - 2; case 4
+ .short _02028C46 - _02028C24 - 2; case 5
+ .short _02028C4E - _02028C24 - 2; case 6
+ .short _02028C56 - _02028C24 - 2; case 7
+ .short _02028C5E - _02028C24 - 2; case 8
+ .short _02028C56 - _02028C24 - 2; case 9
+ .short _02028C5E - _02028C24 - 2; case 10
+ .short _02028C46 - _02028C24 - 2; case 11
+ .short _02028C5E - _02028C24 - 2; case 12
+ .short _02028C68 - _02028C24 - 2; case 13
+ .short _02028C5E - _02028C24 - 2; case 14
+ .short _02028C56 - _02028C24 - 2; case 15
+ .short _02028C5E - _02028C24 - 2; case 16
+_02028C46:
+ add r1, r4, #0x0
+ bl FUN_02028ED4
+ pop {r3-r5, pc}
+_02028C4E:
+ add r1, r4, #0x0
+ bl FUN_02028F10
+ pop {r3-r5, pc}
+_02028C56:
+ add r1, r4, #0x0
+ bl FUN_02028F2C
+ pop {r3-r5, pc}
+_02028C5E:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02028F60
+ pop {r3-r5, pc}
+_02028C68:
+ add r1, r4, #0x0
+ bl FUN_02028F94
+_02028C6E:
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02028C70
+FUN_02028C70: ; 0x02028C70
+ push {r3-r4}
+ mov r3, #0x0
+ add r4, r0, #0x0
+ mov r1, #0x3f
+_02028C78:
+ ldr r2, [r4, #0x0]
+ tst r2, r1
+ bne _02028C86
+ lsl r1, r3, #0x2
+ add r0, r0, r1
+ pop {r3-r4}
+ bx lr
+_02028C86:
+ add r3, r3, #0x1
+ add r4, r4, #0x4
+ cmp r3, #0x4
+ blo _02028C78
+ mov r3, #0x0
+ add r2, r0, #0x0
+_02028C92:
+ ldr r1, [r2, #0x4]
+ add r3, r3, #0x1
+ stmia r2!, {r1}
+ cmp r3, #0x3
+ blo _02028C92
+ lsl r2, r3, #0x2
+ mov r1, #0x0
+ str r1, [r0, r2]
+ add r0, r0, r2
+ pop {r3-r4}
+ bx lr
+
+ thumb_func_start FUN_02028CA8
+FUN_02028CA8: ; 0x02028CA8
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r1, #0x0
+ add r2, r4, #0x0
+_02028CB0:
+ ldrb r0, [r2, #0x1c]
+ cmp r0, #0x0
+ bne _02028CC0
+ mov r0, #0x2a
+ add r4, #0x1c
+ mul r0, r1
+ add r0, r4, r0
+ pop {r4, pc}
+_02028CC0:
+ add r1, r1, #0x1
+ add r2, #0x2a
+ cmp r1, #0x2
+ blo _02028CB0
+ add r0, r4, #0x0
+ add r1, r4, #0x0
+ add r0, #0x1c
+ add r1, #0x46
+ mov r2, #0x2a
+ bl memcpy
+ add r4, #0x46
+ add r0, r4, #0x0
+ mov r1, #0x0
+ mov r2, #0x2a
+ bl memset
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02028CE8
+FUN_02028CE8: ; 0x02028CE8
+ push {r4, lr}
+ add r4, r1, #0x0
+ mov r2, #0x0
+ add r3, r0, #0x0
+_02028CF0:
+ ldr r1, [r3, #0x0]
+ cmp r1, #0x0
+ beq _02028CFE
+ add r2, r2, #0x1
+ add r3, r3, #0x4
+ cmp r2, #0x4
+ blo _02028CF0
+_02028CFE:
+ cmp r2, #0x0
+ beq _02028D14
+ lsl r2, r2, #0x2
+ add r2, r0, r2
+ sub r2, r2, #0x4
+ ldr r3, [r2, #0x0]
+ mov r2, #0x3f
+ ldrb r1, [r4, #0x0]
+ and r2, r3
+ cmp r1, r2
+ beq _02028D20
+_02028D14:
+ bl FUN_02028C70
+ ldrb r2, [r4, #0x0]
+ mov r1, #0x3f
+ and r1, r2
+ str r1, [r0, #0x0]
+_02028D20:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02028D24
+FUN_02028D24: ; 0x02028D24
+ push {r4, lr}
+ add r4, r1, #0x0
+ bl FUN_02028C70
+ ldrb r2, [r4, #0x0]
+ mov r1, #0x3f
+ and r1, r2
+ ldrh r2, [r4, #0x2]
+ lsl r3, r2, #0x10
+ ldrh r2, [r4, #0x4]
+ lsl r2, r2, #0x16
+ lsr r2, r2, #0x10
+ orr r2, r3
+ orr r1, r2
+ str r1, [r0, #0x0]
+ pop {r4, pc}
+
+ thumb_func_start FUN_02028D44
+FUN_02028D44: ; 0x02028D44
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ mov r2, #0x0
+ mov r3, #0x3f
+_02028D4C:
+ lsl r1, r2, #0x2
+ ldr r5, [r0, r1]
+ and r5, r3
+ cmp r5, #0xb
+ bne _02028D72
+ mov r3, #0x0
+ str r3, [r0, r1]
+ cmp r2, #0x3
+ bhs _02028D7C
+_02028D5E:
+ lsl r3, r2, #0x2
+ add r1, r0, r3
+ ldr r1, [r1, #0x4]
+ str r1, [r0, r3]
+ add r1, r2, #0x1
+ lsl r1, r1, #0x10
+ lsr r2, r1, #0x10
+ cmp r2, #0x3
+ blo _02028D5E
+ b _02028D7C
+_02028D72:
+ add r1, r2, #0x1
+ lsl r1, r1, #0x10
+ lsr r2, r1, #0x10
+ cmp r2, #0x4
+ blo _02028D4C
+_02028D7C:
+ bl FUN_02028C70
+ ldrb r2, [r4, #0x0]
+ mov r1, #0x3f
+ and r1, r2
+ ldrh r2, [r4, #0x2]
+ lsl r3, r2, #0x10
+ ldrh r2, [r4, #0x4]
+ lsl r2, r2, #0x16
+ lsr r2, r2, #0x10
+ orr r2, r3
+ orr r1, r2
+ str r1, [r0, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02028D98
+FUN_02028D98: ; 0x02028D98
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ mov r6, #0x0
+ mov r1, #0x3f
+_02028DA0:
+ lsl r5, r6, #0x2
+ ldr r3, [r0, r5]
+ add r2, r3, #0x0
+ and r2, r1
+ cmp r2, #0x9
+ bne _02028DD4
+ lsr r3, r3, #0x10
+ lsl r3, r3, #0x10
+ ldrh r2, [r4, #0x2]
+ lsr r3, r3, #0x10
+ cmp r2, r3
+ bne _02028DD4
+ mov r1, #0x0
+ str r1, [r0, r5]
+ cmp r6, #0x3
+ bhs _02028DDE
+_02028DC0:
+ lsl r2, r6, #0x2
+ add r1, r0, r2
+ ldr r1, [r1, #0x4]
+ str r1, [r0, r2]
+ add r1, r6, #0x1
+ lsl r1, r1, #0x10
+ lsr r6, r1, #0x10
+ cmp r6, #0x3
+ blo _02028DC0
+ b _02028DDE
+_02028DD4:
+ add r2, r6, #0x1
+ lsl r2, r2, #0x10
+ lsr r6, r2, #0x10
+ cmp r6, #0x4
+ blo _02028DA0
+_02028DDE:
+ bl FUN_02028C70
+ ldrb r2, [r4, #0x0]
+ mov r1, #0x3f
+ and r1, r2
+ ldrh r2, [r4, #0x2]
+ lsl r3, r2, #0x10
+ ldrh r2, [r4, #0x4]
+ lsl r2, r2, #0x16
+ lsr r2, r2, #0x10
+ orr r2, r3
+ orr r1, r2
+ str r1, [r0, #0x0]
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02028DFC
+FUN_02028DFC: ; 0x02028DFC
+ push {r4, lr}
+ add r4, r1, #0x0
+ mov r2, #0x0
+ add r3, r0, #0x0
+_02028E04:
+ ldr r1, [r3, #0x0]
+ cmp r1, #0x0
+ beq _02028E12
+ add r2, r2, #0x1
+ add r3, r3, #0x4
+ cmp r2, #0x4
+ blo _02028E04
+_02028E12:
+ cmp r2, #0x0
+ beq _02028E30
+ lsl r1, r2, #0x2
+ add r1, r0, r1
+ sub r1, r1, #0x4
+ ldr r3, [r1, #0x0]
+ mov r1, #0x3f
+ ldrb r2, [r4, #0x0]
+ and r1, r3
+ cmp r2, r1
+ bne _02028E30
+ ldrh r2, [r4, #0x2]
+ lsr r1, r3, #0x10
+ cmp r2, r1
+ beq _02028E42
+_02028E30:
+ bl FUN_02028C70
+ ldrh r1, [r4, #0x2]
+ ldrb r2, [r4, #0x0]
+ lsl r3, r1, #0x10
+ mov r1, #0x3f
+ and r1, r2
+ orr r1, r3
+ str r1, [r0, #0x0]
+_02028E42:
+ pop {r4, pc}
+
+ thumb_func_start FUN_02028E44
+FUN_02028E44: ; 0x02028E44
+ push {r4, lr}
+ add r4, r1, #0x0
+ mov r2, #0x0
+ add r3, r0, #0x0
+_02028E4C:
+ ldr r1, [r3, #0x0]
+ cmp r1, #0x0
+ beq _02028E5A
+ add r2, r2, #0x1
+ add r3, r3, #0x4
+ cmp r2, #0x4
+ blo _02028E4C
+_02028E5A:
+ cmp r2, #0x0
+ beq _02028E78
+ lsl r1, r2, #0x2
+ add r1, r0, r1
+ sub r1, r1, #0x4
+ ldr r3, [r1, #0x0]
+ mov r1, #0x3f
+ ldrb r2, [r4, #0x0]
+ and r1, r3
+ cmp r2, r1
+ bne _02028E78
+ ldrh r2, [r4, #0x6]
+ lsr r1, r3, #0x10
+ cmp r2, r1
+ beq _02028E8A
+_02028E78:
+ bl FUN_02028C70
+ ldrh r1, [r4, #0x6]
+ ldrb r2, [r4, #0x0]
+ lsl r3, r1, #0x10
+ mov r1, #0x3f
+ and r1, r2
+ orr r1, r3
+ str r1, [r0, #0x0]
+_02028E8A:
+ pop {r4, pc}
+
+ thumb_func_start FUN_02028E8C
+FUN_02028E8C: ; 0x02028E8C
+ push {r4, lr}
+ add r4, r1, #0x0
+ mov r2, #0x0
+ add r3, r0, #0x0
+_02028E94:
+ ldr r1, [r3, #0x0]
+ cmp r1, #0x0
+ beq _02028EA2
+ add r2, r2, #0x1
+ add r3, r3, #0x4
+ cmp r2, #0x4
+ blo _02028E94
+_02028EA2:
+ cmp r2, #0x0
+ beq _02028EC0
+ lsl r1, r2, #0x2
+ add r1, r0, r1
+ sub r1, r1, #0x4
+ ldr r3, [r1, #0x0]
+ mov r1, #0x3f
+ ldrb r2, [r4, #0x0]
+ and r1, r3
+ cmp r2, r1
+ bne _02028EC0
+ ldrh r2, [r4, #0x2]
+ lsr r1, r3, #0x10
+ cmp r2, r1
+ beq _02028ED2
+_02028EC0:
+ bl FUN_02028C70
+ ldrh r1, [r4, #0x2]
+ ldrb r2, [r4, #0x0]
+ lsl r3, r1, #0x10
+ mov r1, #0x3f
+ and r1, r2
+ orr r1, r3
+ str r1, [r0, #0x0]
+_02028ED2:
+ pop {r4, pc}
+
+ thumb_func_start FUN_02028ED4
+FUN_02028ED4: ; 0x02028ED4
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldrb r0, [r4, #0x0]
+ strb r0, [r5, #0x0]
+ ldrb r3, [r4, #0x1]
+ lsl r1, r3, #0x1c
+ lsr r2, r1, #0x1a
+ lsl r1, r3, #0x1b
+ lsr r1, r1, #0x1f
+ lsl r0, r3, #0x1a
+ lsl r1, r1, #0x1
+ orr r1, r2
+ lsr r0, r0, #0x1f
+ orr r0, r1
+ strb r0, [r5, #0x1]
+ add r0, r4, #0x2
+ add r1, r5, #0x2
+ mov r2, #0x8
+ bl FUN_020292D4
+ add r4, #0x12
+ add r5, #0x12
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ mov r2, #0x8
+ bl FUN_020292D4
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02028F10
+FUN_02028F10: ; 0x02028F10
+ add r2, r0, #0x0
+ ldrb r0, [r1, #0x0]
+ ldr r3, _02028F28 ; =FUN_020292D4
+ strb r0, [r2, #0x0]
+ ldrb r0, [r1, #0x1]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1f
+ strb r0, [r2, #0x1]
+ add r0, r1, #0x2
+ add r1, r2, #0x2
+ mov r2, #0x8
+ bx r3
+ .balign 4
+_02028F28: .word FUN_020292D4
+
+ thumb_func_start FUN_02028F2C
+FUN_02028F2C: ; 0x02028F2C
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldrb r0, [r4, #0x0]
+ mov r2, #0x8
+ strb r0, [r5, #0x0]
+ ldrb r0, [r4, #0x1]
+ lsl r1, r0, #0x1b
+ lsr r1, r1, #0x1f
+ lsl r0, r0, #0x18
+ lsl r1, r1, #0x2
+ lsr r0, r0, #0x1e
+ orr r0, r1
+ strb r0, [r5, #0x1]
+ add r0, r4, #0x2
+ add r1, r5, #0x2
+ bl FUN_020292D4
+ add r4, #0x22
+ add r5, #0x12
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ mov r2, #0xc
+ bl FUN_020292D4
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02028F60
+FUN_02028F60: ; 0x02028F60
+ push {r4, lr}
+ add r4, r1, #0x0
+ mov r3, #0x0
+ add r2, r0, #0x0
+_02028F68:
+ ldrb r1, [r2, #0x1c]
+ cmp r1, #0x0
+ beq _02028F76
+ add r3, r3, #0x1
+ add r2, #0x2a
+ cmp r3, #0x2
+ blo _02028F68
+_02028F76:
+ cmp r3, #0x0
+ beq _02028F8A
+ mov r1, #0x2a
+ mul r1, r3
+ add r1, r0, r1
+ sub r1, #0xe
+ ldrb r2, [r4, #0x0]
+ ldrb r1, [r1, #0x0]
+ cmp r2, r1
+ beq _02028F92
+_02028F8A:
+ bl FUN_02028CA8
+ ldrb r1, [r4, #0x0]
+ strb r1, [r0, #0x0]
+_02028F92:
+ pop {r4, pc}
+
+ thumb_func_start FUN_02028F94
+FUN_02028F94: ; 0x02028F94
+ ldrb r2, [r1, #0x0]
+ strb r2, [r0, #0x0]
+ ldrb r1, [r1, #0x1]
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ strb r1, [r0, #0x1]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02028FA4
+FUN_02028FA4: ; 0x02028FA4
+ push {r3-r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ mov r1, #0x4
+ bl FUN_02016998
+ add r4, r0, #0x0
+ add r0, sp, #0x0
+ bl FUN_020126B4
+ ldr r2, [r4, #0x0]
+ mov r0, #0x7f
+ bic r2, r0
+ ldr r1, [sp, #0x0]
+ mov r0, #0x7f
+ and r0, r1
+ add r1, r2, #0x0
+ orr r1, r0
+ str r1, [r4, #0x0]
+ add r2, r1, #0x0
+ ldr r1, [sp, #0x4]
+ ldr r0, _02029008 ; =0xFFFFF87F
+ lsl r1, r1, #0x1c
+ and r2, r0
+ lsr r1, r1, #0x15
+ orr r2, r1
+ ldr r1, _0202900C ; =0xFFF83FFF
+ str r2, [r4, #0x0]
+ and r2, r1
+ ldr r1, [sp, #0x8]
+ lsr r0, r0, #0xd
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0xd
+ orr r2, r1
+ ldr r1, _02029010 ; =0xFFFFC7FF
+ str r2, [r4, #0x0]
+ and r2, r1
+ ldr r1, [sp, #0xc]
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #0x12
+ orr r1, r2
+ and r1, r0
+ lsl r0, r5, #0x13
+ orr r0, r1
+ str r0, [r4, #0x0]
+ add r0, r4, #0x0
+ add sp, #0x10
+ pop {r3-r5, pc}
+ nop
+_02029008: .word 0xFFFFF87F
+_0202900C: .word 0xFFF83FFF
+_02029010: .word 0xFFFFC7FF
+
+ thumb_func_start FUN_02029014
+FUN_02029014: ; 0x02029014
+ push {r3, lr}
+ mov r1, #0x8
+ bl FUN_02016998
+ mov r1, #0x0
+ strb r1, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ strb r1, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ strb r1, [r0, #0x4]
+ strb r1, [r0, #0x5]
+ strb r1, [r0, #0x6]
+ strb r1, [r0, #0x7]
+ pop {r3, pc}
+
+ thumb_func_start FUN_02029030
+FUN_02029030: ; 0x02029030
+ push {r3, lr}
+ bl FUN_02029014
+ mov r1, #0x1
+ strb r1, [r0, #0x0]
+ pop {r3, pc}
+
+ thumb_func_start FUN_0202903C
+FUN_0202903C: ; 0x0202903C
+ push {r3, lr}
+ bl FUN_02029014
+ mov r1, #0x2
+ strb r1, [r0, #0x0]
+ pop {r3, pc}
+
+ thumb_func_start FUN_02029048
+FUN_02029048: ; 0x02029048
+ push {r3, lr}
+ bl FUN_02029014
+ mov r1, #0x3
+ strb r1, [r0, #0x0]
+ pop {r3, pc}
+
+ thumb_func_start FUN_02029054
+FUN_02029054: ; 0x02029054
+ push {r3, lr}
+ bl FUN_02029014
+ mov r1, #0x4
+ strb r1, [r0, #0x0]
+ pop {r3, pc}
+
+ thumb_func_start FUN_02029060
+FUN_02029060: ; 0x02029060
+ push {r3, lr}
+ bl FUN_02029014
+ mov r1, #0x5
+ strb r1, [r0, #0x0]
+ pop {r3, pc}
+
+ thumb_func_start FUN_0202906C
+FUN_0202906C: ; 0x0202906C
+ push {r3, lr}
+ bl FUN_02029014
+ mov r1, #0x6
+ strb r1, [r0, #0x0]
+ pop {r3, pc}
+
+ thumb_func_start FUN_02029078
+FUN_02029078: ; 0x02029078
+ push {r3, lr}
+ bl FUN_02029014
+ mov r1, #0x7
+ strb r1, [r0, #0x0]
+ pop {r3, pc}
+
+ thumb_func_start FUN_02029084
+FUN_02029084: ; 0x02029084
+ push {r3, lr}
+ bl FUN_02029014
+ mov r1, #0x8
+ strb r1, [r0, #0x0]
+ pop {r3, pc}
+
+ thumb_func_start FUN_02029090
+FUN_02029090: ; 0x02029090
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_02029014
+ mov r1, #0x9
+ strb r1, [r0, #0x0]
+ strh r4, [r0, #0x2]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020290A4
+FUN_020290A4: ; 0x020290A4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, r2, #0x0
+ add r4, r1, #0x0
+ bl FUN_02029014
+ mov r1, #0xa
+ strb r1, [r0, #0x0]
+ strh r5, [r0, #0x2]
+ strh r4, [r0, #0x4]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020290BC
+FUN_020290BC: ; 0x020290BC
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_02029014
+ mov r1, #0xb
+ strb r1, [r0, #0x0]
+ strh r4, [r0, #0x4]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020290D0
+FUN_020290D0: ; 0x020290D0
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_02029014
+ mov r1, #0xc
+ strb r1, [r0, #0x0]
+ strh r4, [r0, #0x4]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020290E4
+FUN_020290E4: ; 0x020290E4
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_02029014
+ mov r1, #0xd
+ strb r1, [r0, #0x0]
+ strh r4, [r0, #0x2]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020290F8
+FUN_020290F8: ; 0x020290F8
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_02029014
+ mov r1, #0xe
+ strb r1, [r0, #0x0]
+ strh r4, [r0, #0x2]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202910C
+FUN_0202910C: ; 0x0202910C
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_02029014
+ mov r1, #0xf
+ strb r1, [r0, #0x0]
+ strh r4, [r0, #0x2]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02029120
+FUN_02029120: ; 0x02029120
+ push {r3, lr}
+ bl FUN_02029014
+ mov r1, #0x10
+ strb r1, [r0, #0x0]
+ pop {r3, pc}
+
+ thumb_func_start FUN_0202912C
+FUN_0202912C: ; 0x0202912C
+ push {r3, lr}
+ bl FUN_02029014
+ mov r1, #0x11
+ strb r1, [r0, #0x0]
+ pop {r3, pc}
+
+ thumb_func_start FUN_02029138
+FUN_02029138: ; 0x02029138
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_02029014
+ mov r1, #0x12
+ strb r1, [r0, #0x0]
+ strh r4, [r0, #0x6]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202914C
+FUN_0202914C: ; 0x0202914C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, r2, #0x0
+ add r4, r1, #0x0
+ bl FUN_02029014
+ add r5, #0x13
+ strb r5, [r0, #0x0]
+ strh r4, [r0, #0x2]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02029160
+FUN_02029160: ; 0x02029160
+ push {r3, lr}
+ bl FUN_02029014
+ mov r1, #0x22
+ strb r1, [r0, #0x0]
+ pop {r3, pc}
+
+ thumb_func_start FUN_0202916C
+FUN_0202916C: ; 0x0202916C
+ push {r3, lr}
+ bl FUN_02029014
+ mov r1, #0x23
+ strb r1, [r0, #0x0]
+ pop {r3, pc}
+
+ thumb_func_start FUN_02029178
+FUN_02029178: ; 0x02029178
+ push {r3, lr}
+ mov r1, #0x4
+ bl FUN_02016998
+ mov r1, #0x0
+ strb r1, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ strb r1, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ pop {r3, pc}
+
+ thumb_func_start FUN_0202918C
+FUN_0202918C: ; 0x0202918C
+ push {r3-r7, lr}
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x18]
+ add r5, r1, #0x0
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ bl FUN_02029178
+ add r4, r0, #0x0
+ mov r0, #0x1
+ strb r0, [r4, #0x0]
+ strh r5, [r4, #0x2]
+ ldrb r1, [r4, #0x1]
+ mov r0, #0xc0
+ bic r1, r0
+ lsl r0, r6, #0x1e
+ lsr r0, r0, #0x18
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ ldrb r1, [r4, #0x1]
+ mov r0, #0x3c
+ bic r1, r0
+ lsl r0, r7, #0x1c
+ lsr r0, r0, #0x1a
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ ldr r0, [sp, #0x0]
+ bl FUN_02029EC0
+ mov r1, #0xa
+ bl _s32_div_f
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ beq _020291DA
+ cmp r0, #0x2
+ beq _020291DA
+ cmp r0, #0x4
+ bne _020291E4
+_020291DA:
+ ldrb r1, [r4, #0x1]
+ mov r0, #0x3
+ bic r1, r0
+ strb r1, [r4, #0x1]
+ b _02029206
+_020291E4:
+ cmp r0, #0x1
+ beq _020291EC
+ cmp r0, #0x3
+ bne _020291FA
+_020291EC:
+ ldrb r1, [r4, #0x1]
+ mov r0, #0x3
+ bic r1, r0
+ mov r0, #0x1
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ b _02029206
+_020291FA:
+ ldrb r1, [r4, #0x1]
+ mov r0, #0x3
+ bic r1, r0
+ mov r0, #0x2
+ orr r0, r1
+ strb r0, [r4, #0x1]
+_02029206:
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202920C
+FUN_0202920C: ; 0x0202920C
+ push {r3-r7, lr}
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x18]
+ add r5, r1, #0x0
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ bl FUN_02029178
+ add r4, r0, #0x0
+ mov r0, #0x2
+ strb r0, [r4, #0x0]
+ strh r5, [r4, #0x2]
+ ldrb r1, [r4, #0x1]
+ mov r0, #0xc0
+ bic r1, r0
+ lsl r0, r6, #0x1e
+ lsr r0, r0, #0x18
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ ldrb r1, [r4, #0x1]
+ mov r0, #0x3c
+ bic r1, r0
+ lsl r0, r7, #0x1c
+ lsr r0, r0, #0x1a
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ ldr r0, [sp, #0x0]
+ bl FUN_02029EC0
+ mov r1, #0xa
+ bl _s32_div_f
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x1
+ beq _0202925C
+ cmp r0, #0x3
+ beq _0202925C
+ cmp r0, #0x5
+ bne _02029266
+_0202925C:
+ ldrb r1, [r4, #0x1]
+ mov r0, #0x3
+ bic r1, r0
+ strb r1, [r4, #0x1]
+ b _02029288
+_02029266:
+ cmp r0, #0x2
+ beq _0202926E
+ cmp r0, #0x4
+ bne _0202927C
+_0202926E:
+ ldrb r1, [r4, #0x1]
+ mov r0, #0x3
+ bic r1, r0
+ mov r0, #0x1
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ b _02029288
+_0202927C:
+ ldrb r1, [r4, #0x1]
+ mov r0, #0x3
+ bic r1, r0
+ mov r0, #0x2
+ orr r0, r1
+ strb r0, [r4, #0x1]
+_02029288:
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0202928C
+FUN_0202928C: ; 0x0202928C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r0, r2, #0x0
+ mov r1, #0x4
+ bl FUN_02016998
+ ldrh r2, [r0, #0x0]
+ mov r1, #0x1
+ bic r2, r1
+ mov r1, #0x1
+ orr r1, r2
+ strh r1, [r0, #0x0]
+ strh r5, [r0, #0x2]
+ ldrh r2, [r0, #0x0]
+ ldr r1, _020292B8 ; =0xFFFF0001
+ and r2, r1
+ lsl r1, r4, #0x11
+ lsr r1, r1, #0x10
+ orr r1, r2
+ strh r1, [r0, #0x0]
+ pop {r3-r5, pc}
+ .balign 4
+_020292B8: .word 0xFFFF0001
+
+ thumb_func_start FUN_020292BC
+FUN_020292BC: ; 0x020292BC
+ push {r4, lr}
+ mov r1, #0x3a
+ bl FUN_02016998
+ mov r1, #0x0
+ mov r2, #0x3a
+ add r4, r0, #0x0
+ bl memset
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020292D4
+FUN_020292D4: ; 0x020292D4
+ push {r4-r5}
+ mov r4, #0x0
+ cmp r2, #0x0
+ bls _020292EA
+ ldr r3, _02029308 ; =0x0000FFFF
+ add r5, r1, #0x0
+_020292E0:
+ add r4, r4, #0x1
+ strh r3, [r5, #0x0]
+ add r5, r5, #0x2
+ cmp r4, r2
+ blo _020292E0
+_020292EA:
+ mov r5, #0x0
+ cmp r2, #0x0
+ bls _02029304
+ ldr r3, _02029308 ; =0x0000FFFF
+_020292F2:
+ ldrh r4, [r0, #0x0]
+ cmp r4, r3
+ beq _02029304
+ add r5, r5, #0x1
+ strh r4, [r1, #0x0]
+ add r0, r0, #0x2
+ add r1, r1, #0x2
+ cmp r5, r2
+ blo _020292F2
+_02029304:
+ pop {r4-r5}
+ bx lr
+ .balign 4
+_02029308: .word 0x0000FFFF
+
+ thumb_func_start FUN_0202930C
+FUN_0202930C: ; 0x0202930C
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ add r0, r3, #0x0
+ add r5, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_020292BC
+ add r4, r0, #0x0
+ mov r0, #0x1
+ strb r0, [r4, #0x0]
+ ldrb r0, [r4, #0x1]
+ mov r1, #0xf
+ mov r2, #0x8
+ bic r0, r1
+ mov r1, #0xf
+ and r1, r6
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ ldrb r1, [r4, #0x1]
+ mov r0, #0x10
+ bic r1, r0
+ lsl r0, r5, #0x1f
+ lsr r0, r0, #0x1b
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ add r0, r7, #0x0
+ add r1, r4, #0x2
+ bl FUN_020292D4
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202934C
+FUN_0202934C: ; 0x0202934C
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ add r0, r3, #0x0
+ add r5, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_020292BC
+ add r4, r0, #0x0
+ mov r0, #0x2
+ strb r0, [r4, #0x0]
+ ldrb r0, [r4, #0x1]
+ mov r1, #0xf
+ mov r2, #0x8
+ bic r0, r1
+ mov r1, #0xf
+ and r1, r6
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ ldrb r1, [r4, #0x1]
+ mov r0, #0x10
+ bic r1, r0
+ lsl r0, r5, #0x1f
+ lsr r0, r0, #0x1b
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ add r0, r7, #0x0
+ add r1, r4, #0x2
+ bl FUN_020292D4
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202938C
+FUN_0202938C: ; 0x0202938C
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x1c]
+ str r1, [sp, #0x0]
+ add r5, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_020292BC
+ add r4, r0, #0x0
+ mov r0, #0x3
+ strb r0, [r4, #0x0]
+ ldrb r0, [r4, #0x1]
+ mov r1, #0xf
+ bic r0, r1
+ add r1, sp, #0x8
+ ldrb r2, [r1, #0x10]
+ mov r1, #0xf
+ and r1, r2
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ ldrb r0, [r4, #0x1]
+ mov r1, #0x10
+ mov r2, #0x8
+ bic r0, r1
+ lsl r1, r5, #0x1f
+ lsr r1, r1, #0x1b
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ ldrb r1, [r4, #0x1]
+ mov r0, #0x20
+ bic r1, r0
+ lsl r0, r6, #0x1f
+ lsr r0, r0, #0x1a
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ add r0, r7, #0x0
+ add r1, r4, #0x2
+ bl FUN_020292D4
+ add r1, r4, #0x0
+ ldr r0, [sp, #0x0]
+ add r1, #0x12
+ mov r2, #0x8
+ bl FUN_020292D4
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020293EC
+FUN_020293EC: ; 0x020293EC
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ add r0, r3, #0x0
+ add r5, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_020292BC
+ add r4, r0, #0x0
+ mov r0, #0x4
+ strb r0, [r4, #0x0]
+ ldrb r0, [r4, #0x1]
+ mov r1, #0xf
+ mov r2, #0x8
+ bic r0, r1
+ mov r1, #0xf
+ and r1, r6
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ ldrb r1, [r4, #0x1]
+ mov r0, #0x10
+ bic r1, r0
+ lsl r0, r5, #0x1f
+ lsr r0, r0, #0x1b
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ add r0, r7, #0x0
+ add r1, r4, #0x2
+ bl FUN_020292D4
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202942C
+FUN_0202942C: ; 0x0202942C
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ add r0, r2, #0x0
+ add r5, r1, #0x0
+ bl FUN_020292BC
+ add r4, r0, #0x0
+ mov r0, #0x6
+ strb r0, [r4, #0x0]
+ ldrb r1, [r4, #0x1]
+ mov r0, #0x10
+ mov r2, #0x8
+ bic r1, r0
+ lsl r0, r5, #0x1f
+ lsr r0, r0, #0x1b
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ add r0, r6, #0x0
+ add r1, r4, #0x2
+ bl FUN_020292D4
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202945C
+FUN_0202945C: ; 0x0202945C
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x18]
+ add r5, r1, #0x0
+ str r2, [sp, #0x0]
+ add r6, r3, #0x0
+ bl FUN_020292BC
+ add r4, r0, #0x0
+ mov r0, #0x7
+ strb r0, [r4, #0x0]
+ ldrb r0, [r4, #0x1]
+ mov r1, #0x10
+ mov r2, #0x8
+ bic r0, r1
+ lsl r1, r5, #0x1f
+ lsr r1, r1, #0x1b
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ ldrb r1, [r4, #0x1]
+ mov r0, #0xc0
+ bic r1, r0
+ lsl r0, r6, #0x1e
+ lsr r0, r0, #0x18
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ add r0, r7, #0x0
+ add r1, r4, #0x2
+ bl FUN_020292D4
+ add r1, r4, #0x0
+ ldr r0, [sp, #0x0]
+ add r1, #0x22
+ mov r2, #0xc
+ bl FUN_020292D4
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020294A8
+FUN_020294A8: ; 0x020294A8
+ push {r3, lr}
+ bl FUN_020292BC
+ mov r1, #0x8
+ strb r1, [r0, #0x0]
+ pop {r3, pc}
+
+ thumb_func_start FUN_020294B4
+FUN_020294B4: ; 0x020294B4
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ add r0, r3, #0x0
+ add r5, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_020292BC
+ add r4, r0, #0x0
+ mov r0, #0xb
+ strb r0, [r4, #0x0]
+ ldrb r0, [r4, #0x1]
+ mov r1, #0xf
+ mov r2, #0x8
+ bic r0, r1
+ mov r1, #0xf
+ and r1, r6
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ ldrb r1, [r4, #0x1]
+ mov r0, #0x10
+ bic r1, r0
+ lsl r0, r5, #0x1f
+ lsr r0, r0, #0x1b
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ add r0, r7, #0x0
+ add r1, r4, #0x2
+ bl FUN_020292D4
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_020294F4
+FUN_020294F4: ; 0x020294F4
+ push {r3, lr}
+ bl FUN_020292BC
+ mov r1, #0xc
+ strb r1, [r0, #0x0]
+ pop {r3, pc}
+
+ thumb_func_start FUN_02029500
+FUN_02029500: ; 0x02029500
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_020292BC
+ mov r1, #0xd
+ strb r1, [r0, #0x0]
+ ldrb r2, [r0, #0x1]
+ mov r1, #0xf
+ bic r2, r1
+ mov r1, #0xf
+ and r1, r4
+ orr r1, r2
+ strb r1, [r0, #0x1]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02029520
+FUN_02029520: ; 0x02029520
+ push {r3, lr}
+ bl FUN_020292BC
+ mov r1, #0xe
+ strb r1, [r0, #0x0]
+ pop {r3, pc}
+
+ thumb_func_start FUN_0202952C
+FUN_0202952C: ; 0x0202952C
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x18]
+ add r5, r1, #0x0
+ str r2, [sp, #0x0]
+ add r6, r3, #0x0
+ bl FUN_020292BC
+ add r4, r0, #0x0
+ mov r0, #0xf
+ strb r0, [r4, #0x0]
+ ldrb r0, [r4, #0x1]
+ mov r1, #0x10
+ mov r2, #0x8
+ bic r0, r1
+ lsl r1, r5, #0x1f
+ lsr r1, r1, #0x1b
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ ldrb r1, [r4, #0x1]
+ mov r0, #0xc0
+ bic r1, r0
+ lsl r0, r6, #0x1e
+ lsr r0, r0, #0x18
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ add r0, r7, #0x0
+ add r1, r4, #0x2
+ bl FUN_020292D4
+ add r1, r4, #0x0
+ ldr r0, [sp, #0x0]
+ add r1, #0x22
+ mov r2, #0xc
+ bl FUN_020292D4
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02029578
+FUN_02029578: ; 0x02029578
+ push {r3, lr}
+ bl FUN_020292BC
+ mov r1, #0x10
+ strb r1, [r0, #0x0]
+ pop {r3, pc}
+
+ thumb_func_start FUN_02029584
+FUN_02029584: ; 0x02029584
+ push {r3, lr}
+ cmp r2, #0x4
+ bhi _020295DA
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_02029596: ; jump table (using 16-bit offset)
+ .short _020295A0 - _02029596 - 2; case 0
+ .short _020295AC - _02029596 - 2; case 1
+ .short _020295B8 - _02029596 - 2; case 2
+ .short _020295C4 - _02029596 - 2; case 3
+ .short _020295D0 - _02029596 - 2; case 4
+_020295A0:
+ mov r2, #0x70
+ mul r2, r3
+ add r0, r0, r2
+ bl FUN_020295DC
+ pop {r3, pc}
+_020295AC:
+ mov r2, #0x70
+ mul r2, r3
+ add r0, r0, r2
+ bl FUN_020295E4
+ pop {r3, pc}
+_020295B8:
+ mov r2, #0x70
+ mul r2, r3
+ add r0, r0, r2
+ bl FUN_02029690
+ pop {r3, pc}
+_020295C4:
+ mov r2, #0x70
+ mul r2, r3
+ add r0, r0, r2
+ bl FUN_0202969C
+ pop {r3, pc}
+_020295D0:
+ mov r2, #0x70
+ mul r2, r3
+ add r0, r0, r2
+ bl FUN_020296A8
+_020295DA:
+ pop {r3, pc}
+
+ thumb_func_start FUN_020295DC
+FUN_020295DC: ; 0x020295DC
+ ldr r0, [r0, #0x0]
+ str r0, [r1, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020295E4
+FUN_020295E4: ; 0x020295E4
+ push {r3-r7, lr}
+ mov r6, #0x0
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r7, r6, #0x0
+_020295EE:
+ strb r7, [r4, #0x0]
+ strb r7, [r4, #0x1]
+ strb r7, [r4, #0x2]
+ strb r7, [r4, #0x3]
+ strb r7, [r4, #0x4]
+ strb r7, [r4, #0x5]
+ strb r7, [r4, #0x6]
+ strb r7, [r4, #0x7]
+ ldr r0, [r5, #0x4]
+ mov r1, #0x3f
+ and r1, r0
+ cmp r1, #0x23
+ bhi _02029682
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02029614: ; jump table (using 16-bit offset)
+ .short _02029682 - _02029614 - 2; case 0
+ .short _0202965C - _02029614 - 2; case 1
+ .short _0202965C - _02029614 - 2; case 2
+ .short _0202965C - _02029614 - 2; case 3
+ .short _0202965C - _02029614 - 2; case 4
+ .short _0202965C - _02029614 - 2; case 5
+ .short _0202965C - _02029614 - 2; case 6
+ .short _0202965C - _02029614 - 2; case 7
+ .short _0202965C - _02029614 - 2; case 8
+ .short _02029664 - _02029614 - 2; case 9
+ .short _02029664 - _02029614 - 2; case 10
+ .short _02029664 - _02029614 - 2; case 11
+ .short _02029664 - _02029614 - 2; case 12
+ .short _0202966C - _02029614 - 2; case 13
+ .short _0202966C - _02029614 - 2; case 14
+ .short _0202966C - _02029614 - 2; case 15
+ .short _0202965C - _02029614 - 2; case 16
+ .short _0202965C - _02029614 - 2; case 17
+ .short _02029674 - _02029614 - 2; case 18
+ .short _0202967C - _02029614 - 2; case 19
+ .short _0202967C - _02029614 - 2; case 20
+ .short _0202967C - _02029614 - 2; case 21
+ .short _0202967C - _02029614 - 2; case 22
+ .short _0202967C - _02029614 - 2; case 23
+ .short _0202967C - _02029614 - 2; case 24
+ .short _0202967C - _02029614 - 2; case 25
+ .short _0202967C - _02029614 - 2; case 26
+ .short _0202967C - _02029614 - 2; case 27
+ .short _0202967C - _02029614 - 2; case 28
+ .short _0202967C - _02029614 - 2; case 29
+ .short _0202967C - _02029614 - 2; case 30
+ .short _02029682 - _02029614 - 2; case 31
+ .short _0202967C - _02029614 - 2; case 32
+ .short _0202967C - _02029614 - 2; case 33
+ .short _0202965C - _02029614 - 2; case 34
+ .short _0202965C - _02029614 - 2; case 35
+_0202965C:
+ add r1, r4, #0x0
+ bl FUN_02029730
+ b _02029682
+_02029664:
+ add r1, r4, #0x0
+ bl FUN_02029738
+ b _02029682
+_0202966C:
+ add r1, r4, #0x0
+ bl FUN_02029750
+ b _02029682
+_02029674:
+ add r1, r4, #0x0
+ bl FUN_0202975C
+ b _02029682
+_0202967C:
+ add r1, r4, #0x0
+ bl FUN_02029768
+_02029682:
+ add r6, r6, #0x1
+ add r4, #0x8
+ add r5, r5, #0x4
+ cmp r6, #0x4
+ blo _020295EE
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02029690
+FUN_02029690: ; 0x02029690
+ ldrh r2, [r0, #0x14]
+ strh r2, [r1, #0x0]
+ ldrh r0, [r0, #0x16]
+ strh r0, [r1, #0x2]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202969C
+FUN_0202969C: ; 0x0202969C
+ ldrh r2, [r0, #0x18]
+ strh r2, [r1, #0x0]
+ ldrh r0, [r0, #0x1a]
+ strh r0, [r1, #0x2]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020296A8
+FUN_020296A8: ; 0x020296A8
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ add r5, r6, #0x0
+ add r4, r1, #0x0
+ mov r7, #0x0
+ add r5, #0x1c
+_020296B4:
+ add r0, r4, #0x0
+ mov r1, #0x0
+ mov r2, #0x3a
+ bl memset
+ ldrb r0, [r6, #0x1c]
+ cmp r0, #0x10
+ bhi _02029722
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020296D0: ; jump table (using 16-bit offset)
+ .short _02029722 - _020296D0 - 2; case 0
+ .short _020296F2 - _020296D0 - 2; case 1
+ .short _020296F2 - _020296D0 - 2; case 2
+ .short _020296F2 - _020296D0 - 2; case 3
+ .short _020296F2 - _020296D0 - 2; case 4
+ .short _020296F2 - _020296D0 - 2; case 5
+ .short _020296FC - _020296D0 - 2; case 6
+ .short _02029706 - _020296D0 - 2; case 7
+ .short _02029710 - _020296D0 - 2; case 8
+ .short _02029706 - _020296D0 - 2; case 9
+ .short _02029710 - _020296D0 - 2; case 10
+ .short _020296F2 - _020296D0 - 2; case 11
+ .short _02029710 - _020296D0 - 2; case 12
+ .short _0202971A - _020296D0 - 2; case 13
+ .short _02029710 - _020296D0 - 2; case 14
+ .short _02029706 - _020296D0 - 2; case 15
+ .short _02029710 - _020296D0 - 2; case 16
+_020296F2:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02029774
+ b _02029722
+_020296FC:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020297E4
+ b _02029722
+_02029706:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02029808
+ b _02029722
+_02029710:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02029860
+ b _02029722
+_0202971A:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02029868
+_02029722:
+ add r7, r7, #0x1
+ add r4, #0x3a
+ add r6, #0x2a
+ add r5, #0x2a
+ cmp r7, #0x2
+ blo _020296B4
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02029730
+FUN_02029730: ; 0x02029730
+ mov r2, #0x3f
+ and r0, r2
+ strb r0, [r1, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02029738
+FUN_02029738: ; 0x02029738
+ mov r2, #0x3f
+ and r2, r0
+ strb r2, [r1, #0x0]
+ lsr r3, r0, #0x6
+ ldr r2, _0202974C ; =0x000003FF
+ lsr r0, r0, #0x10
+ and r2, r3
+ strh r2, [r1, #0x4]
+ strh r0, [r1, #0x2]
+ bx lr
+ .balign 4
+_0202974C: .word 0x000003FF
+
+ thumb_func_start FUN_02029750
+FUN_02029750: ; 0x02029750
+ mov r2, #0x3f
+ and r2, r0
+ strb r2, [r1, #0x0]
+ lsr r0, r0, #0x10
+ strh r0, [r1, #0x2]
+ bx lr
+
+ thumb_func_start FUN_0202975C
+FUN_0202975C: ; 0x0202975C
+ mov r2, #0x3f
+ and r2, r0
+ strb r2, [r1, #0x0]
+ lsr r0, r0, #0x10
+ strh r0, [r1, #0x6]
+ bx lr
+
+ thumb_func_start FUN_02029768
+FUN_02029768: ; 0x02029768
+ mov r2, #0x3f
+ and r2, r0
+ strb r2, [r1, #0x0]
+ lsr r0, r0, #0x10
+ strh r0, [r1, #0x2]
+ bx lr
+
+ thumb_func_start FUN_02029774
+FUN_02029774: ; 0x02029774
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldrb r0, [r5, #0x0]
+ add r4, r1, #0x0
+ mov r1, #0xf
+ strb r0, [r4, #0x0]
+ ldrb r0, [r4, #0x1]
+ bic r0, r1
+ ldrb r1, [r5, #0x1]
+ asr r2, r1, #0x2
+ mov r1, #0x1f
+ and r1, r2
+ lsl r1, r1, #0x18
+ lsr r2, r1, #0x18
+ mov r1, #0xf
+ and r1, r2
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ ldrb r0, [r4, #0x1]
+ mov r1, #0x10
+ mov r2, #0x1
+ bic r0, r1
+ ldrb r1, [r5, #0x1]
+ asr r1, r1, #0x1
+ and r1, r2
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #0x1b
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ ldrb r0, [r4, #0x1]
+ mov r1, #0x20
+ bic r0, r1
+ ldrb r1, [r5, #0x1]
+ and r1, r2
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #0x1a
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ add r0, r5, #0x2
+ add r1, r4, #0x2
+ mov r2, #0x8
+ bl FUN_020292D4
+ add r5, #0x12
+ add r4, #0x12
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x8
+ bl FUN_020292D4
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020297E4
+FUN_020297E4: ; 0x020297E4
+ ldrb r2, [r0, #0x0]
+ strb r2, [r1, #0x0]
+ ldrb r3, [r1, #0x1]
+ mov r2, #0x10
+ bic r3, r2
+ ldrb r2, [r0, #0x1]
+ add r0, r0, #0x2
+ lsl r2, r2, #0x1f
+ lsr r2, r2, #0x1b
+ orr r2, r3
+ strb r2, [r1, #0x1]
+ ldr r3, _02029804 ; =FUN_020292D4
+ add r1, r1, #0x2
+ mov r2, #0x8
+ bx r3
+ nop
+_02029804: .word FUN_020292D4
+
+ thumb_func_start FUN_02029808
+FUN_02029808: ; 0x02029808
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldrb r0, [r5, #0x0]
+ add r4, r1, #0x0
+ mov r1, #0x10
+ strb r0, [r4, #0x0]
+ ldrb r0, [r4, #0x1]
+ bic r0, r1
+ ldrb r1, [r5, #0x1]
+ asr r2, r1, #0x2
+ mov r1, #0x1
+ and r1, r2
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #0x1b
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ ldrb r0, [r4, #0x1]
+ mov r1, #0xc0
+ ldrb r2, [r5, #0x1]
+ bic r0, r1
+ mov r1, #0x3
+ and r1, r2
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ lsl r1, r1, #0x1e
+ lsr r1, r1, #0x18
+ orr r0, r1
+ strb r0, [r4, #0x1]
+ add r0, r5, #0x2
+ add r1, r4, #0x2
+ mov r2, #0x8
+ bl FUN_020292D4
+ add r5, #0x12
+ add r4, #0x22
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r2, #0xc
+ bl FUN_020292D4
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02029860
+FUN_02029860: ; 0x02029860
+ ldrb r0, [r0, #0x0]
+ strb r0, [r1, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02029868
+FUN_02029868: ; 0x02029868
+ ldrb r2, [r0, #0x0]
+ strb r2, [r1, #0x0]
+ ldrb r3, [r1, #0x1]
+ mov r2, #0xf
+ bic r3, r2
+ ldrb r2, [r0, #0x1]
+ mov r0, #0xf
+ and r0, r2
+ orr r0, r3
+ strb r0, [r1, #0x1]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02029880
+FUN_02029880: ; 0x02029880
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r7, r0, #0x0
+ mov r0, #0x0
+ add r4, r3, #0x0
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ str r1, [sp, #0x0]
+ add r5, r2, #0x0
+ ldr r6, [sp, #0x20]
+ bl FUN_02034930
+ cmp r0, #0x1
+ bne _020298BA
+ add r0, r5, #0x0
+ bl FUN_02034964
+ cmp r0, #0x1
+ bne _02029942
+ add r0, r4, #0x0
+ bl FUN_02034824
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ add r1, r6, #0x0
+ bl FUN_020290F8
+ str r0, [sp, #0x4]
+ b _02029942
+_020298BA:
+ add r0, r4, #0x0
+ bl FUN_02034944
+ cmp r0, #0x1
+ bne _0202991A
+ add r0, r5, #0x0
+ bl FUN_02034964
+ cmp r0, #0x1
+ bne _02029942
+ ldr r0, _02029958 ; =0x0000019E
+ cmp r4, r0
+ bne _020298DE
+ add r0, r6, #0x0
+ bl FUN_02029030
+ str r0, [sp, #0x4]
+ b _02029942
+_020298DE:
+ add r0, #0x8
+ cmp r4, r0
+ bne _020298EE
+ add r0, r6, #0x0
+ bl FUN_0202903C
+ str r0, [sp, #0x4]
+ b _02029942
+_020298EE:
+ add r0, r4, #0x0
+ bl FUN_02034824
+ add r7, r0, #0x0
+ lsl r0, r7, #0x10
+ lsr r0, r0, #0x10
+ ldr r5, _0202995C ; =0x020EE9A4
+ mov r4, #0x0
+ str r0, [sp, #0x8]
+_02029900:
+ ldr r0, [r5, #0x0]
+ cmp r7, r0
+ bne _02029910
+ ldr r0, [sp, #0x8]
+ add r1, r6, #0x0
+ bl FUN_0202910C
+ str r0, [sp, #0x4]
+_02029910:
+ add r4, r4, #0x1
+ add r5, #0x8
+ cmp r4, #0x1b
+ blo _02029900
+ b _02029942
+_0202991A:
+ add r0, r4, #0x0
+ bl FUN_02034964
+ cmp r0, #0x1
+ bne _02029942
+ add r0, r5, #0x0
+ bl FUN_02034944
+ cmp r0, #0x1
+ bne _02029942
+ add r0, r7, #0x0
+ add r1, r5, #0x0
+ bl FUN_02029988
+ cmp r0, #0xff
+ beq _02029942
+ add r1, r6, #0x0
+ bl FUN_02029090
+ str r0, [sp, #0x4]
+_02029942:
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _02029952
+ ldr r0, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ mov r2, #0x1
+ bl FUN_02028AD4
+_02029952:
+ add sp, #0xc
+ pop {r4-r7, pc}
+ nop
+_02029958: .word 0x0000019E
+_0202995C: .word 0x020EE9A4
+
+ thumb_func_start FUN_02029960
+FUN_02029960: ; 0x02029960
+ ldr r3, _02029980 ; =0x020EE9A4
+ mov r2, #0x0
+_02029964:
+ ldr r1, [r3, #0x0]
+ cmp r0, r1
+ bne _02029972
+ ldr r0, _02029984 ; =0x020EE9A8
+ lsl r1, r2, #0x3
+ ldr r0, [r0, r1]
+ bx lr
+_02029972:
+ add r2, r2, #0x1
+ add r3, #0x8
+ cmp r2, #0x1b
+ blo _02029964
+ mov r0, #0x0
+ bx lr
+ nop
+_02029980: .word 0x020EE9A4
+_02029984: .word 0x020EE9A8
+
+ thumb_func_start FUN_02029988
+FUN_02029988: ; 0x02029988
+ push {r3-r5, lr}
+ ldr r2, _020299B8 ; =0x020EE964
+ mov r4, #0x0
+_0202998E:
+ lsl r3, r4, #0x3
+ add r5, r2, r3
+ ldrh r5, [r5, #0x4]
+ cmp r1, r5
+ bne _020299A8
+ ldr r1, _020299BC ; =0x020EE96A
+ ldrh r1, [r1, r3]
+ bl FUN_020239D0
+ cmp r0, #0x0
+ bne _020299B2
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+_020299A8:
+ add r3, r4, #0x1
+ lsl r3, r3, #0x18
+ lsr r4, r3, #0x18
+ cmp r4, #0x8
+ blo _0202998E
+_020299B2:
+ mov r0, #0xff
+ pop {r3-r5, pc}
+ nop
+_020299B8: .word 0x020EE964
+_020299BC: .word 0x020EE96A
+
+ thumb_func_start FUN_020299C0
+FUN_020299C0: ; 0x020299C0
+ push {r4, lr}
+ add r4, r0, #0x0
+ lsl r0, r1, #0x10
+ lsr r0, r0, #0x10
+ add r1, r2, #0x0
+ bl FUN_020290E4
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ mov r2, #0x1
+ bl FUN_02028AD4
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020299DC
+FUN_020299DC: ; 0x020299DC
+ push {r3-r7, lr}
+ add r4, r2, #0x0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ add r7, r1, #0x0
+ add r6, r3, #0x0
+ bl FUN_02029A48
+ cmp r0, #0x8
+ bhs _02029A04
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_020290A4
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ mov r2, #0x1
+ bl FUN_02028AD4
+ pop {r3-r7, pc}
+_02029A04:
+ bne _02029A1A
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ bl FUN_020290BC
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ mov r2, #0x1
+ bl FUN_02028AD4
+ pop {r3-r7, pc}
+_02029A1A:
+ cmp r0, #0x9
+ bne _02029A32
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ bl FUN_020290D0
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ mov r2, #0x1
+ bl FUN_02028AD4
+ pop {r3-r7, pc}
+_02029A32:
+ add r0, r7, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_0202928C
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ mov r2, #0x3
+ bl FUN_02028AD4
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02029A48
+FUN_02029A48: ; 0x02029A48
+ ldr r2, _02029A7C ; =0x020EE964
+ mov r3, #0x0
+_02029A4C:
+ lsl r1, r3, #0x3
+ ldr r1, [r2, r1]
+ cmp r0, r1
+ bne _02029A58
+ add r0, r3, #0x0
+ bx lr
+_02029A58:
+ add r1, r3, #0x1
+ lsl r1, r1, #0x18
+ lsr r3, r1, #0x18
+ cmp r3, #0x8
+ blo _02029A4C
+ ldr r1, _02029A80 ; =0x00000105
+ sub r2, r0, r1
+ cmp r2, #0x3
+ bhi _02029A6E
+ mov r0, #0x8
+ bx lr
+_02029A6E:
+ add r1, r1, #0x6
+ cmp r0, r1
+ bne _02029A78
+ mov r0, #0x9
+ bx lr
+_02029A78:
+ mov r0, #0xa
+ bx lr
+ .balign 4
+_02029A7C: .word 0x020EE964
+_02029A80: .word 0x00000105
+
+ thumb_func_start FUN_02029A84
+FUN_02029A84: ; 0x02029A84
+ mov r0, #0x62
+ lsl r0, r0, #0x4
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02029A8C
+FUN_02029A8C: ; 0x02029A8C
+ push {r4-r6, lr}
+ mov r2, #0x62
+ add r4, r0, #0x0
+ mov r1, #0x0
+ lsl r2, r2, #0x4
+ bl memset
+ add r0, r4, #0x0
+ bl FUN_02029ACC
+ add r5, r0, #0x0
+ mov r4, #0x0
+ mov r6, #0x8c
+_02029AA6:
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ bl FUN_02029AD8
+ add r4, r4, #0x1
+ cmp r4, #0x8
+ blt _02029AA6
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02029ABC
+FUN_02029ABC: ; 0x02029ABC
+ ldr r3, _02029AC4 ; =FUN_02022610
+ mov r1, #0x13
+ bx r3
+ nop
+_02029AC4: .word FUN_02022610
+
+ thumb_func_start FUN_02029AC8
+FUN_02029AC8: ; 0x02029AC8
+ add r0, #0x20
+ bx lr
+
+ thumb_func_start FUN_02029ACC
+FUN_02029ACC: ; 0x02029ACC
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02029AD0
+FUN_02029AD0: ; 0x02029AD0
+ lsl r0, r0, #0x2
+ ldr r0, [r1, r0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02029AD8
+FUN_02029AD8: ; 0x02029AD8
+ lsl r0, r0, #0x2
+ str r1, [r2, r0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02029AE0
+FUN_02029AE0: ; 0x02029AE0
+ ldr r0, _02029AE4 ; =0x00000FF8
+ bx lr
+ .balign 4
+_02029AE4: .word 0x00000FF8
+
+ thumb_func_start FUN_02029AE8
+FUN_02029AE8: ; 0x02029AE8
+ ldr r3, _02029AF4 ; =MIi_CpuClear32
+ add r1, r0, #0x0
+ mov r0, #0x0
+ ldr r2, _02029AF8 ; =0x00000FF8
+ bx r3
+ nop
+_02029AF4: .word MIi_CpuClear32
+_02029AF8: .word 0x00000FF8
+
+ thumb_func_start FUN_02029AFC
+FUN_02029AFC: ; 0x02029AFC
+ ldr r3, _02029B04 ; =FUN_02022610
+ mov r1, #0x1e
+ bx r3
+ nop
+_02029B04: .word FUN_02022610
+
+ thumb_func_start FUN_02029B08
+FUN_02029B08: ; 0x02029B08
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ mov r0, #0x1
+ add r5, r1, #0x0
+ lsl r0, r0, #0x8
+ add r4, r2, #0x0
+ cmp r5, r0
+ blt _02029B1C
+ bl ErrorHandling
+_02029B1C:
+ cmp r4, #0x40
+ blt _02029B24
+ bl ErrorHandling
+_02029B24:
+ strb r5, [r6, #0x5]
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ mov r3, #0x3
+ strb r4, [r6, #0x6]
+ bl FUN_02029B90
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02029B38
+FUN_02029B38: ; 0x02029B38
+ ldrb r0, [r0, #0x5]
+ bx lr
+
+ thumb_func_start FUN_02029B3C
+FUN_02029B3C: ; 0x02029B3C
+ ldrb r0, [r0, #0x6]
+ bx lr
+
+ thumb_func_start FUN_02029B40
+FUN_02029B40: ; 0x02029B40
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ mov r0, #0x1
+ add r5, r1, #0x0
+ lsl r0, r0, #0x8
+ add r4, r2, #0x0
+ cmp r5, r0
+ blt _02029B54
+ bl ErrorHandling
+_02029B54:
+ cmp r4, #0x40
+ blt _02029B5C
+ bl ErrorHandling
+_02029B5C:
+ cmp r5, #0x0
+ bne _02029B64
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02029B64:
+ asr r0, r4, #0x1
+ lsr r0, r0, #0x1e
+ add r0, r4, r0
+ asr r1, r0, #0x2
+ sub r0, r5, #0x1
+ lsl r0, r0, #0x4
+ add r0, r1, r0
+ add r0, r6, r0
+ ldrb r3, [r0, #0x7]
+ lsr r2, r4, #0x1f
+ lsl r1, r4, #0x1e
+ sub r1, r1, r2
+ mov r0, #0x1e
+ ror r1, r0
+ add r0, r2, r1
+ lsl r0, r0, #0x1
+ add r1, r3, #0x0
+ asr r1, r0
+ mov r0, #0x3
+ and r0, r1
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02029B90
+FUN_02029B90: ; 0x02029B90
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ str r3, [sp, #0x0]
+ cmp r3, #0x4
+ blt _02029BA2
+ bl ErrorHandling
+_02029BA2:
+ mov r0, #0x1
+ lsl r0, r0, #0x8
+ cmp r5, r0
+ blt _02029BAE
+ bl ErrorHandling
+_02029BAE:
+ cmp r4, #0x40
+ blt _02029BB6
+ bl ErrorHandling
+_02029BB6:
+ cmp r5, #0x0
+ beq _02029BFE
+ asr r0, r4, #0x1
+ lsr r0, r0, #0x1e
+ add r0, r4, r0
+ asr r2, r0, #0x2
+ sub r0, r5, #0x1
+ lsl r0, r0, #0x4
+ add r0, r2, r0
+ lsr r2, r4, #0x1f
+ lsl r4, r4, #0x1e
+ sub r4, r4, r2
+ mov r3, #0x1e
+ ror r4, r3
+ add r2, r2, r4
+ lsl r6, r2, #0x1
+ mov r2, #0x3
+ add r3, r2, #0x0
+ add r1, r7, #0x7
+ ldrb r4, [r1, r0]
+ lsl r3, r6
+ mov r2, #0xff
+ eor r2, r3
+ and r2, r4
+ ldr r3, [sp, #0x0]
+ strb r2, [r1, r0]
+ ldrb r2, [r1, r0]
+ lsl r3, r6
+ orr r2, r3
+ strb r2, [r1, r0]
+ cmp r5, #0x67
+ beq _02029BFE
+ add r0, r7, #0x0
+ mov r1, #0x1
+ bl FUN_02029C04
+_02029BFE:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02029C00
+FUN_02029C00: ; 0x02029C00
+ ldrb r0, [r0, #0x4]
+ bx lr
+
+ thumb_func_start FUN_02029C04
+FUN_02029C04: ; 0x02029C04
+ strb r1, [r0, #0x4]
+ bx lr
+
+ thumb_func_start FUN_02029C08
+FUN_02029C08: ; 0x02029C08
+ push {r3-r7, lr}
+ mov lr, r0
+ mov r0, #0x3
+ mov r7, #0x0
+ mov r4, #0x2
+ mov r6, #0xff
+ add r3, r0, #0x0
+_02029C16:
+ mov r1, lr
+ add r1, r1, r7
+ ldrb r2, [r1, #0x7]
+ mov r12, r1
+ mov r1, #0x0
+_02029C20:
+ add r5, r2, #0x0
+ asr r5, r1
+ and r5, r3
+ cmp r5, #0x1
+ bne _02029C40
+ add r5, r0, #0x0
+ lsl r5, r1
+ eor r5, r6
+ and r2, r5
+ lsl r2, r2, #0x18
+ lsr r5, r2, #0x18
+ add r2, r4, #0x0
+ lsl r2, r1
+ orr r2, r5
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+_02029C40:
+ add r1, r1, #0x2
+ cmp r1, #0x8
+ blt _02029C20
+ mov r1, r12
+ strb r2, [r1, #0x7]
+ mov r1, #0xff
+ add r7, r7, #0x1
+ lsl r1, r1, #0x4
+ cmp r7, r1
+ blt _02029C16
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02029C58
+FUN_02029C58: ; 0x02029C58
+ mov r0, #0x17
+ lsl r0, r0, #0x4
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02029C60
+FUN_02029C60: ; 0x02029C60
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02029C58
+ add r2, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x0
+ bl MI_CpuFill8
+ pop {r4, pc}
+
+ thumb_func_start FUN_02029C74
+FUN_02029C74: ; 0x02029C74
+ ldr r3, _02029C7C ; =MI_CpuCopy8
+ mov r2, #0x18
+ bx r3
+ nop
+_02029C7C: .word MI_CpuCopy8
+
+ thumb_func_start FUN_02029C80
+FUN_02029C80: ; 0x02029C80
+ ldr r3, _02029C88 ; =FUN_02022610
+ mov r1, #0x15
+ bx r3
+ nop
+_02029C88: .word FUN_02022610
+
+ thumb_func_start FUN_02029C8C
+FUN_02029C8C: ; 0x02029C8C
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0xc
+ blt _02029C9A
+ bl ErrorHandling
+_02029C9A:
+ mov r0, #0x18
+ mul r0, r4
+ add r0, r5, r0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02029CA4
+FUN_02029CA4: ; 0x02029CA4
+ push {r4-r6, lr}
+ add r6, r2, #0x0
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r6, #0xc
+ blt _02029CB4
+ bl ErrorHandling
+_02029CB4:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02029C8C
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02029C74
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02029CC8
+FUN_02029CC8: ; 0x02029CC8
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x8
+ blt _02029CD6
+ bl ErrorHandling
+_02029CD6:
+ lsl r0, r4, #0x1
+ add r0, r4, r0
+ add r0, r5, r0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02029CE0
+FUN_02029CE0: ; 0x02029CE0
+ ldrb r0, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02029CE4
+FUN_02029CE4: ; 0x02029CE4
+ ldrb r0, [r0, #0x1]
+ bx lr
+
+ thumb_func_start FUN_02029CE8
+FUN_02029CE8: ; 0x02029CE8
+ ldrb r0, [r0, #0x2]
+ bx lr
+
+ thumb_func_start FUN_02029CEC
+FUN_02029CEC: ; 0x02029CEC
+ mov r1, #0x12
+ lsl r1, r1, #0x4
+ add r0, r0, r1
+ bx lr
+
+ thumb_func_start FUN_02029CF4
+FUN_02029CF4: ; 0x02029CF4
+ ldrb r0, [r0, r1]
+ bx lr
+
+ thumb_func_start FUN_02029CF8
+FUN_02029CF8: ; 0x02029CF8
+ mov r3, #0x0
+ add r2, r1, #0x1
+_02029CFC:
+ ldrb r1, [r0, #0x0]
+ cmp r2, r1
+ bne _02029D06
+ mov r0, #0x1
+ bx lr
+_02029D06:
+ add r3, r3, #0x1
+ add r0, r0, #0x3
+ cmp r3, #0x8
+ blt _02029CFC
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02029D14
+FUN_02029D14: ; 0x02029D14
+ push {r4-r7}
+ mov r6, #0x0
+ add r4, r6, #0x0
+ add r2, r1, #0x1
+ add r3, r6, #0x0
+_02029D1E:
+ add r5, r3, #0x0
+ add r7, r0, #0x0
+_02029D22:
+ ldrb r1, [r7, #0x0]
+ cmp r2, r1
+ bne _02029D2A
+ add r6, r6, #0x1
+_02029D2A:
+ add r5, r5, #0x1
+ add r7, r7, #0x3
+ cmp r5, #0x8
+ blt _02029D22
+ add r4, r4, #0x1
+ add r0, #0x18
+ cmp r4, #0xc
+ blt _02029D1E
+ add r0, r6, #0x0
+ pop {r4-r7}
+ bx lr
+
+ thumb_func_start FUN_02029D40
+FUN_02029D40: ; 0x02029D40
+ strb r2, [r0, r1]
+ bx lr
+
+ thumb_func_start FUN_02029D44
+FUN_02029D44: ; 0x02029D44
+ push {r4-r6, lr}
+ add r5, r1, #0x0
+ sub r1, r5, #0x1
+ add r6, r0, #0x0
+ add r4, r2, #0x0
+ bl FUN_02029D14
+ mov r1, #0x12
+ lsl r1, r1, #0x4
+ add r2, r6, r1
+ sub r1, r5, #0x1
+ ldrb r3, [r2, r1]
+ add r0, r0, r3
+ cmp r4, #0x0
+ bge _02029D6E
+ add r0, r4, r3
+ bmi _02029D6A
+ strb r0, [r2, r1]
+ b _02029D7E
+_02029D6A:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02029D6E:
+ add r0, r0, r4
+ cmp r0, #0x63
+ bgt _02029D7A
+ add r0, r3, r4
+ strb r0, [r2, r1]
+ b _02029D7E
+_02029D7A:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02029D7E:
+ mov r0, #0x1
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02029D84
+FUN_02029D84: ; 0x02029D84
+ push {r4-r6, lr}
+ add r5, r1, #0x0
+ sub r1, r5, #0x1
+ add r6, r0, #0x0
+ add r4, r2, #0x0
+ bl FUN_02029D14
+ cmp r4, #0x0
+ bge _02029DAC
+ mov r0, #0x12
+ lsl r0, r0, #0x4
+ add r2, r6, r0
+ sub r1, r5, #0x1
+ ldrb r0, [r2, r1]
+ add r0, r4, r0
+ bmi _02029DA8
+ strb r0, [r2, r1]
+ b _02029DD0
+_02029DA8:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02029DAC:
+ add r0, r0, r4
+ cmp r0, #0x63
+ bgt _02029DCC
+ mov r0, #0x12
+ lsl r0, r0, #0x4
+ add r2, r6, r0
+ sub r1, r5, #0x1
+ ldrb r0, [r2, r1]
+ add r0, r0, r4
+ strb r0, [r2, r1]
+ ldrb r0, [r2, r1]
+ cmp r0, #0x63
+ blo _02029DD0
+ mov r0, #0x63
+ strb r0, [r2, r1]
+ b _02029DD0
+_02029DCC:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02029DD0:
+ mov r0, #0x1
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02029DD4
+FUN_02029DD4: ; 0x02029DD4
+ push {r4-r6, lr}
+ add r5, r1, #0x0
+ sub r1, r5, #0x1
+ add r6, r0, #0x0
+ add r4, r2, #0x0
+ bl FUN_02029D14
+ sub r1, r5, #0x1
+ add r2, r6, r1
+ mov r1, #0x12
+ lsl r1, r1, #0x4
+ ldrb r1, [r2, r1]
+ add r0, r0, r1
+ cmp r4, #0x0
+ bge _02029DFE
+ add r0, r4, r1
+ bmi _02029DFA
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02029DFA:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02029DFE:
+ add r0, r0, r4
+ cmp r0, #0x63
+ bgt _02029E08
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02029E08:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02029E0C
+FUN_02029E0C: ; 0x02029E0C
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ mov r5, #0x0
+ mov r4, #0x1
+_02029E14:
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_02029E2C
+ cmp r0, #0x0
+ beq _02029E22
+ add r5, r5, #0x1
+_02029E22:
+ add r4, r4, #0x1
+ cmp r4, #0x51
+ blt _02029E14
+ add r0, r5, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02029E2C
+FUN_02029E2C: ; 0x02029E2C
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ sub r1, r5, #0x1
+ add r4, r0, #0x0
+ bl FUN_02029D14
+ sub r1, r5, #0x1
+ add r2, r4, r1
+ mov r1, #0x12
+ lsl r1, r1, #0x4
+ ldrb r1, [r2, r1]
+ add r0, r0, r1
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02029E48
+FUN_02029E48: ; 0x02029E48
+ mov r1, #0x0
+ strh r1, [r0, #0x0]
+ strb r1, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02029E54
+FUN_02029E54: ; 0x02029E54
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldrh r6, [r5, #0x0]
+ ldr r0, _02029EB8 ; =0x000003E7
+ cmp r6, r0
+ bne _02029E6C
+ ldrb r0, [r5, #0x2]
+ cmp r0, #0x3b
+ bne _02029E6C
+ ldrb r0, [r5, #0x3]
+ cmp r0, #0x3b
+ beq _02029EB4
+_02029E6C:
+ ldrb r0, [r5, #0x3]
+ ldrb r4, [r5, #0x2]
+ add r7, r0, r1
+ cmp r7, #0x3b
+ bls _02029EAE
+ add r0, r7, #0x0
+ mov r1, #0x3c
+ bl _u32_div_f
+ add r4, r4, r0
+ add r0, r7, #0x0
+ mov r1, #0x3c
+ bl _u32_div_f
+ add r7, r1, #0x0
+ cmp r4, #0x3b
+ bls _02029EAE
+ add r0, r4, #0x0
+ mov r1, #0x3c
+ bl _u32_div_f
+ add r6, r6, r0
+ add r0, r4, #0x0
+ mov r1, #0x3c
+ bl _u32_div_f
+ ldr r0, _02029EB8 ; =0x000003E7
+ add r4, r1, #0x0
+ cmp r6, r0
+ blo _02029EAE
+ mov r4, #0x3b
+ add r6, r0, #0x0
+ add r7, r4, #0x0
+_02029EAE:
+ strh r6, [r5, #0x0]
+ strb r4, [r5, #0x2]
+ strb r7, [r5, #0x3]
+_02029EB4:
+ pop {r3-r7, pc}
+ nop
+_02029EB8: .word 0x000003E7
+
+ thumb_func_start FUN_02029EBC
+FUN_02029EBC: ; 0x02029EBC
+ ldrh r0, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02029EC0
+FUN_02029EC0: ; 0x02029EC0
+ ldrb r0, [r0, #0x2]
+ bx lr
+
+ thumb_func_start FUN_02029EC4
+FUN_02029EC4: ; 0x02029EC4
+ mov r0, #0xfb
+ lsl r0, r0, #0x2
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02029ECC
+FUN_02029ECC: ; 0x02029ECC
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r2, #0xfb
+ mov r0, #0x0
+ add r1, r4, #0x0
+ lsl r2, r2, #0x2
+ bl MIi_CpuClear32
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02029EE4
+FUN_02029EE4: ; 0x02029EE4
+ push {r4, lr}
+ mov r1, #0xfb
+ lsl r1, r1, #0x2
+ bl FUN_02016998
+ add r4, r0, #0x0
+ bl FUN_02029ECC
+ add r0, r4, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_02029EF8
+FUN_02029EF8: ; 0x02029EF8
+ ldr r3, _02029F00 ; =FUN_02022610
+ mov r1, #0x16
+ bx r3
+ nop
+_02029F00: .word FUN_02022610
+
+ thumb_func_start FUN_02029F04
+FUN_02029F04: ; 0x02029F04
+ ldr r0, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02029F08
+FUN_02029F08: ; 0x02029F08
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02029F10
+FUN_02029F10: ; 0x02029F10
+ add r0, r0, #0x4
+ bx lr
+
+ thumb_func_start FUN_02029F14
+FUN_02029F14: ; 0x02029F14
+ push {r4-r7}
+ mov r5, #0x0
+ mov r2, #0xfa
+ add r4, r5, #0x0
+ mov r6, #0xf
+ lsl r2, r2, #0x2
+_02029F20:
+ ldrsb r7, [r1, r4]
+ add r3, r0, r5
+ and r7, r6
+ lsl r7, r7, #0x18
+ lsr r7, r7, #0x18
+ sub r7, #0x8
+ lsl r7, r7, #0x18
+ asr r7, r7, #0x14
+ strb r7, [r0, r5]
+ ldrsb r7, [r1, r4]
+ add r4, r4, #0x1
+ add r5, r5, #0x2
+ lsl r7, r7, #0x14
+ lsr r7, r7, #0x18
+ sub r7, #0x8
+ lsl r7, r7, #0x18
+ asr r7, r7, #0x14
+ strb r7, [r3, #0x1]
+ cmp r4, r2
+ blt _02029F20
+ pop {r4-r7}
+ bx lr
+
+ thumb_func_start FUN_02029F4C
+FUN_02029F4C: ; 0x02029F4C
+ push {r4-r7}
+ add r3, r0, #0x0
+ add r2, r1, #0x0
+ mov r0, #0x1
+ mov r1, #0x0
+ str r0, [r3, #0x0]
+ add r0, r1, #0x0
+_02029F5A:
+ ldrsb r4, [r2, r0]
+ add r6, r3, r1
+ add r7, r2, r0
+ asr r5, r4, #0x3
+ lsr r5, r5, #0x1c
+ add r5, r4, r5
+ lsl r4, r5, #0x14
+ asr r4, r4, #0x18
+ add r4, #0x8
+ strb r4, [r6, #0x4]
+ mov r4, #0x4
+ ldrsb r5, [r6, r4]
+ mov r4, #0x1
+ ldrsb r4, [r7, r4]
+ add r0, r0, #0x2
+ add r1, r1, #0x1
+ asr r7, r4, #0x3
+ lsr r7, r7, #0x1c
+ add r7, r4, r7
+ lsl r4, r7, #0x14
+ asr r4, r4, #0x18
+ add r4, #0x8
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x14
+ orr r4, r5
+ strb r4, [r6, #0x4]
+ mov r4, #0x7d
+ lsl r4, r4, #0x4
+ cmp r0, r4
+ blt _02029F5A
+ pop {r4-r7}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02029F9C
+FUN_02029F9C: ; 0x02029F9C
+ add r2, r0, #0x0
+ add r0, r1, #0x0
+ add r1, r2, #0x0
+ mov r2, #0xfb
+ ldr r3, _02029FAC ; =MIi_CpuCopyFast
+ lsl r2, r2, #0x2
+ bx r3
+ nop
+_02029FAC: .word MIi_CpuCopyFast
+
+ thumb_func_start FUN_02029FB0
+FUN_02029FB0: ; 0x02029FB0
+ mov r0, #0x53
+ lsl r0, r0, #0x2
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02029FB8
+FUN_02029FB8: ; 0x02029FB8
+ ldr r3, _02029FC4 ; =MIi_CpuClear32
+ mov r2, #0x53
+ add r1, r0, #0x0
+ mov r0, #0x0
+ lsl r2, r2, #0x2
+ bx r3
+ .balign 4
+_02029FC4: .word MIi_CpuClear32
+
+ thumb_func_start FUN_02029FC8
+FUN_02029FC8: ; 0x02029FC8
+ ldr r3, _02029FD0 ; =FUN_02022610
+ mov r1, #0x14
+ bx r3
+ nop
+_02029FD0: .word FUN_02022610
+
+ thumb_func_start FUN_02029FD4
+FUN_02029FD4: ; 0x02029FD4
+ push {r3, lr}
+ cmp r1, #0x2c
+ bge _02029FE0
+ lsl r1, r1, #0x2
+ ldr r0, [r0, r1]
+ pop {r3, pc}
+_02029FE0:
+ cmp r1, #0x79
+ bge _02029FF0
+ sub r1, #0x2c
+ lsl r1, r1, #0x1
+ add r0, r0, r1
+ add r0, #0xb0
+ ldrh r0, [r0, #0x0]
+ pop {r3, pc}
+_02029FF0:
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_02029FF8
+FUN_02029FF8: ; 0x02029FF8
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x2c
+ bge _0202A008
+ lsl r0, r4, #0x2
+ str r2, [r5, r0]
+ b _0202A01E
+_0202A008:
+ cmp r4, #0x79
+ bge _0202A01A
+ add r0, r4, #0x0
+ sub r0, #0x2c
+ lsl r0, r0, #0x1
+ add r0, r5, r0
+ add r0, #0xb0
+ strh r2, [r0, #0x0]
+ b _0202A01E
+_0202A01A:
+ bl ErrorHandling
+_0202A01E:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02029FD4
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0202A028
+FUN_0202A028: ; 0x0202A028
+ push {r3, lr}
+ cmp r0, #0x2c
+ bge _0202A03E
+ ldr r1, _0202A05C ; =0x02105CD8
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0202A03A
+ ldr r0, _0202A060 ; =0x3B9AC9FF
+ pop {r3, pc}
+_0202A03A:
+ ldr r0, _0202A064 ; =0x000F423F
+ pop {r3, pc}
+_0202A03E:
+ cmp r0, #0x79
+ bge _0202A052
+ ldr r1, _0202A05C ; =0x02105CD8
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0202A04E
+ ldr r0, _0202A068 ; =0x0000FFFF
+ pop {r3, pc}
+_0202A04E:
+ ldr r0, _0202A06C ; =0x0000270F
+ pop {r3, pc}
+_0202A052:
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3, pc}
+ nop
+_0202A05C: .word 0x02105CD8
+_0202A060: .word 0x3B9AC9FF
+_0202A064: .word 0x000F423F
+_0202A068: .word 0x0000FFFF
+_0202A06C: .word 0x0000270F
+
+ thumb_func_start FUN_0202A070
+FUN_0202A070: ; 0x0202A070
+ lsl r1, r0, #0x1
+ ldr r0, _0202A078 ; =0x020EEA7C
+ ldrh r0, [r0, r1]
+ bx lr
+ .balign 4
+_0202A078: .word 0x020EEA7C
+
+ thumb_func_start FUN_0202A07C
+FUN_0202A07C: ; 0x0202A07C
+ push {r4-r6, lr}
+ add r5, r1, #0x0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ add r4, r2, #0x0
+ bl FUN_0202A028
+ add r2, r0, #0x0
+ cmp r4, r2
+ bhs _0202A09C
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_02029FF8
+ pop {r4-r6, pc}
+_0202A09C:
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_02029FF8
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202A0A8
+FUN_0202A0A8: ; 0x0202A0A8
+ push {r3-r7, lr}
+ add r6, r1, #0x0
+ add r7, r0, #0x0
+ add r0, r6, #0x0
+ add r5, r2, #0x0
+ bl FUN_0202A028
+ add r4, r0, #0x0
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ bl FUN_02029FD4
+ cmp r5, r4
+ bls _0202A0C6
+ add r5, r4, #0x0
+_0202A0C6:
+ cmp r0, r5
+ bhs _0202A0D6
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ bl FUN_02029FF8
+ pop {r3-r7, pc}
+_0202A0D6:
+ cmp r0, r4
+ bls _0202A0E4
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ bl FUN_02029FF8
+_0202A0E4:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202A0E8
+FUN_0202A0E8: ; 0x0202A0E8
+ push {r4-r6, lr}
+ add r6, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0202A028
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02029FD4
+ add r2, r0, #0x1
+ cmp r2, r4
+ bhs _0202A10E
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02029FF8
+ pop {r4-r6, pc}
+_0202A10E:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x0
+ bl FUN_02029FF8
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202A11C
+FUN_0202A11C: ; 0x0202A11C
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ add r7, r2, #0x0
+ bl FUN_0202A028
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02029FD4
+ add r2, r0, r7
+ cmp r2, r6
+ bhs _0202A144
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02029FF8
+ pop {r3-r7, pc}
+_0202A144:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_02029FF8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0202A150
+FUN_0202A150: ; 0x0202A150
+ push {r4-r6, lr}
+ add r6, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0202A028
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02029FD4
+ cmp r0, r4
+ bhi _0202A16C
+ add r4, r0, #0x0
+_0202A16C:
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0202A170
+FUN_0202A170: ; 0x0202A170
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x26
+ blt _0202A17E
+ bl ErrorHandling
+_0202A17E:
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_0202A150
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0202A070
+ ldr r2, _0202A1B4 ; =0x05F5E0FF
+ add r0, r6, r0
+ cmp r0, r2
+ bls _0202A1A0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_0202A07C
+ pop {r4-r6, pc}
+_0202A1A0:
+ add r0, r4, #0x0
+ bl FUN_0202A070
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x0
+ bl FUN_0202A11C
+ pop {r4-r6, pc}
+ nop
+_0202A1B4: .word 0x05F5E0FF
+
+ thumb_func_start FUN_0202A1B8
+FUN_0202A1B8: ; 0x0202A1B8
+ ldr r3, _0202A1C0 ; =FUN_0202A150
+ mov r1, #0x0
+ bx r3
+ nop
+_0202A1C0: .word FUN_0202A150
+
+ thumb_func_start FUN_0202A1C4
+FUN_0202A1C4: ; 0x0202A1C4
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r1, #0x0
+ add r1, r2, #0x0
+ bl FUN_02024594
+ cmp r0, #0x0
+ bne _0202A1DC
+ add r0, r4, #0x0
+ mov r1, #0x16
+ bl FUN_0202A170
+_0202A1DC:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202A1E0
+FUN_0202A1E0: ; 0x0202A1E0
+ mov r0, #0xe4
+ bx lr
+
+ thumb_func_start FUN_0202A1E4
+FUN_0202A1E4: ; 0x0202A1E4
+ ldr r3, _0202A1EC ; =MI_CpuFill8
+ mov r1, #0x0
+ mov r2, #0x3c
+ bx r3
+ .balign 4
+_0202A1EC: .word MI_CpuFill8
+
+ thumb_func_start FUN_0202A1F0
+FUN_0202A1F0: ; 0x0202A1F0
+ push {r4, lr}
+ mov r2, #0x5a
+ mov r1, #0x0
+ lsl r2, r2, #0x2
+ add r4, r0, #0x0
+ bl MI_CpuFill8
+ mov r0, #0x1
+ strb r0, [r4, #0x3]
+ pop {r4, pc}
+
+ thumb_func_start FUN_0202A204
+FUN_0202A204: ; 0x0202A204
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r1, #0x0
+ bl FUN_02013764
+ add r0, r4, #0x0
+ add r0, #0x8
+ mov r1, #0x1
+ bl FUN_02013764
+ add r0, r4, #0x0
+ add r0, #0x10
+ mov r1, #0x2
+ bl FUN_02013764
+ add r4, #0x18
+ add r0, r4, #0x0
+ mov r1, #0x3
+ bl FUN_02013764
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202A230
+FUN_0202A230: ; 0x0202A230
+ ldr r3, _0202A238 ; =MI_CpuFill8
+ mov r1, #0x0
+ ldr r2, _0202A23C ; =0x00000B3C
+ bx r3
+ .balign 4
+_0202A238: .word MI_CpuFill8
+_0202A23C: .word 0x00000B3C
+
+ thumb_func_start FUN_0202A240
+FUN_0202A240: ; 0x0202A240
+ push {r3, lr}
+ cmp r1, #0xa
+ bhi _0202A2BE
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0202A252: ; jump table (using 16-bit offset)
+ .short _0202A268 - _0202A252 - 2; case 0
+ .short _0202A270 - _0202A252 - 2; case 1
+ .short _0202A274 - _0202A252 - 2; case 2
+ .short _0202A278 - _0202A252 - 2; case 3
+ .short _0202A27C - _0202A252 - 2; case 4
+ .short _0202A280 - _0202A252 - 2; case 5
+ .short _0202A28E - _0202A252 - 2; case 6
+ .short _0202A29C - _0202A252 - 2; case 7
+ .short _0202A2A4 - _0202A252 - 2; case 8
+ .short _0202A2B2 - _0202A252 - 2; case 9
+ .short _0202A2BA - _0202A252 - 2; case 10
+_0202A268:
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1d
+ pop {r3, pc}
+_0202A270:
+ ldrb r0, [r0, #0x2]
+ pop {r3, pc}
+_0202A274:
+ ldrb r0, [r0, #0x3]
+ pop {r3, pc}
+_0202A278:
+ ldrh r0, [r0, #0x4]
+ pop {r3, pc}
+_0202A27C:
+ ldrh r0, [r0, #0x6]
+ pop {r3, pc}
+_0202A280:
+ add r1, r2, #0x0
+ add r0, #0x8
+ mov r2, #0x4
+ bl MI_CpuCopy8
+ mov r0, #0x0
+ pop {r3, pc}
+_0202A28E:
+ add r1, r2, #0x0
+ add r0, #0x2c
+ mov r2, #0x10
+ bl MI_CpuCopy8
+ mov r0, #0x0
+ pop {r3, pc}
+_0202A29C:
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ pop {r3, pc}
+_0202A2A4:
+ add r1, r2, #0x0
+ add r0, #0xc
+ mov r2, #0x1c
+ bl MI_CpuCopy8
+ mov r0, #0x0
+ pop {r3, pc}
+_0202A2B2:
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1d
+ pop {r3, pc}
+_0202A2BA:
+ ldr r0, [r0, #0x28]
+ pop {r3, pc}
+_0202A2BE:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202A2C4
+FUN_0202A2C4: ; 0x0202A2C4
+ push {r4, lr}
+ add r3, r0, #0x0
+ cmp r1, #0xa
+ bhi _0202A36A
+ add r0, r1, r1
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0202A2D8: ; jump table (using 16-bit offset)
+ .short _0202A2EE - _0202A2D8 - 2; case 0
+ .short _0202A300 - _0202A2D8 - 2; case 1
+ .short _0202A306 - _0202A2D8 - 2; case 2
+ .short _0202A30C - _0202A2D8 - 2; case 3
+ .short _0202A312 - _0202A2D8 - 2; case 4
+ .short _0202A318 - _0202A2D8 - 2; case 5
+ .short _0202A326 - _0202A2D8 - 2; case 6
+ .short _0202A334 - _0202A2D8 - 2; case 7
+ .short _0202A346 - _0202A2D8 - 2; case 8
+ .short _0202A35A - _0202A2D8 - 2; case 9
+ .short _0202A354 - _0202A2D8 - 2; case 10
+_0202A2EE:
+ ldrb r1, [r3, #0x0]
+ mov r0, #0x1c
+ bic r1, r0
+ ldrb r0, [r2, #0x0]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1b
+ orr r0, r1
+ strb r0, [r3, #0x0]
+ pop {r4, pc}
+_0202A300:
+ ldrb r0, [r2, #0x0]
+ strb r0, [r3, #0x2]
+ pop {r4, pc}
+_0202A306:
+ ldrb r0, [r2, #0x0]
+ strb r0, [r3, #0x3]
+ pop {r4, pc}
+_0202A30C:
+ ldrh r0, [r2, #0x0]
+ strh r0, [r3, #0x4]
+ pop {r4, pc}
+_0202A312:
+ ldrh r0, [r2, #0x0]
+ strh r0, [r3, #0x6]
+ pop {r4, pc}
+_0202A318:
+ add r3, #0x8
+ add r0, r2, #0x0
+ add r1, r3, #0x0
+ mov r2, #0x4
+ bl MI_CpuCopy8
+ pop {r4, pc}
+_0202A326:
+ add r3, #0x2c
+ add r0, r2, #0x0
+ add r1, r3, #0x0
+ mov r2, #0x10
+ bl MI_CpuCopy8
+ pop {r4, pc}
+_0202A334:
+ ldrb r4, [r3, #0x0]
+ ldrb r1, [r2, #0x0]
+ mov r0, #0x1
+ bic r4, r0
+ mov r0, #0x1
+ and r0, r1
+ orr r0, r4
+ strb r0, [r3, #0x0]
+ pop {r4, pc}
+_0202A346:
+ add r3, #0xc
+ add r0, r2, #0x0
+ add r1, r3, #0x0
+ mov r2, #0x1c
+ bl MI_CpuCopy8
+ pop {r4, pc}
+_0202A354:
+ ldr r0, [r2, #0x0]
+ str r0, [r3, #0x28]
+ pop {r4, pc}
+_0202A35A:
+ ldrb r1, [r3, #0x0]
+ mov r0, #0xe0
+ bic r1, r0
+ ldrb r0, [r2, #0x0]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x18
+ orr r0, r1
+ strb r0, [r3, #0x0]
+_0202A36A:
+ pop {r4, pc}
+
+ thumb_func_start FUN_0202A36C
+FUN_0202A36C: ; 0x0202A36C
+ push {r3-r4}
+ ldrb r4, [r0, #0x3]
+ add r1, r4, r1
+ cmp r1, #0xff
+ bge _0202A378
+ strb r1, [r0, #0x3]
+_0202A378:
+ ldrh r1, [r0, #0x4]
+ add r2, r1, r2
+ ldr r1, _0202A394 ; =0x0000FFFF
+ cmp r2, r1
+ bge _0202A384
+ strh r2, [r0, #0x4]
+_0202A384:
+ ldrh r1, [r0, #0x6]
+ add r2, r1, r3
+ ldr r1, _0202A394 ; =0x0000FFFF
+ cmp r2, r1
+ bge _0202A390
+ strh r2, [r0, #0x6]
+_0202A390:
+ pop {r3-r4}
+ bx lr
+ .balign 4
+_0202A394: .word 0x0000FFFF
+
+ thumb_func_start FUN_0202A398
+FUN_0202A398: ; 0x0202A398
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ bx lr
+
+ thumb_func_start FUN_0202A3A0
+FUN_0202A3A0: ; 0x0202A3A0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ lsl r1, r1, #0x1f
+ ldrb r3, [r0, #0x0]
+ mov r2, #0x2
+ lsr r1, r1, #0x1e
+ bic r3, r2
+ orr r1, r3
+ strb r1, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_0202A3B4
+FUN_0202A3B4: ; 0x0202A3B4
+ cmp r2, #0x6
+ bhi _0202A402
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #0x6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0202A3C4: ; jump table (using 16-bit offset)
+ .short _0202A402 - _0202A3C4 - 2; case 0
+ .short _0202A3D2 - _0202A3C4 - 2; case 1
+ .short _0202A402 - _0202A3C4 - 2; case 2
+ .short _0202A402 - _0202A3C4 - 2; case 3
+ .short _0202A402 - _0202A3C4 - 2; case 4
+ .short _0202A3E0 - _0202A3C4 - 2; case 5
+ .short _0202A3F2 - _0202A3C4 - 2; case 6
+_0202A3D2:
+ ldr r2, _0202A408 ; =0x0000270F
+ cmp r1, r2
+ bls _0202A3DC
+ strh r2, [r0, #0x0]
+ b _0202A402
+_0202A3DC:
+ strh r1, [r0, #0x0]
+ b _0202A402
+_0202A3E0:
+ ldrh r2, [r0, #0x0]
+ add r2, r2, r1
+ ldr r1, _0202A408 ; =0x0000270F
+ cmp r2, r1
+ ble _0202A3EE
+ strh r1, [r0, #0x0]
+ b _0202A402
+_0202A3EE:
+ strh r2, [r0, #0x0]
+ b _0202A402
+_0202A3F2:
+ ldrh r2, [r0, #0x0]
+ cmp r2, r1
+ bhs _0202A3FE
+ mov r1, #0x0
+ strh r1, [r0, #0x0]
+ b _0202A402
+_0202A3FE:
+ sub r1, r2, r1
+ strh r1, [r0, #0x0]
+_0202A402:
+ ldrh r0, [r0, #0x0]
+ bx lr
+ nop
+_0202A408: .word 0x0000270F
+
+ thumb_func_start FUN_0202A40C
+FUN_0202A40C: ; 0x0202A40C
+ cmp r1, #0x2
+ beq _0202A416
+ cmp r1, #0x3
+ beq _0202A424
+ b _0202A440
+_0202A416:
+ mov r1, #0x0
+ strb r1, [r0, #0x2]
+ ldrh r2, [r0, #0x8]
+ mov r1, #0x10
+ bic r2, r1
+ strh r2, [r0, #0x8]
+ b _0202A440
+_0202A424:
+ ldrh r1, [r0, #0x8]
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x1f
+ beq _0202A434
+ ldrb r1, [r0, #0x2]
+ add r1, r1, #0x1
+ strb r1, [r0, #0x2]
+ b _0202A440
+_0202A434:
+ mov r1, #0x1
+ strb r1, [r0, #0x2]
+ ldrh r2, [r0, #0x8]
+ mov r1, #0x10
+ orr r1, r2
+ strh r1, [r0, #0x8]
+_0202A440:
+ ldrb r0, [r0, #0x2]
+ bx lr
+
+ thumb_func_start FUN_0202A444
+FUN_0202A444: ; 0x0202A444
+ cmp r1, #0x2
+ beq _0202A452
+ cmp r1, #0x3
+ beq _0202A458
+ cmp r1, #0x4
+ beq _0202A464
+ b _0202A46E
+_0202A452:
+ mov r1, #0x1
+ strb r1, [r0, #0x3]
+ b _0202A46E
+_0202A458:
+ ldrb r1, [r0, #0x3]
+ cmp r1, #0xa
+ bhs _0202A46E
+ add r1, r1, #0x1
+ strb r1, [r0, #0x3]
+ b _0202A46E
+_0202A464:
+ ldrb r1, [r0, #0x3]
+ cmp r1, #0x1
+ bls _0202A46E
+ sub r1, r1, #0x1
+ strb r1, [r0, #0x3]
+_0202A46E:
+ ldrb r0, [r0, #0x3]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202A474
+FUN_0202A474: ; 0x0202A474
+ push {r3, lr}
+ add r3, r0, #0x0
+ cmp r1, #0x0
+ bne _0202A48A
+ add r3, #0xc0
+ add r0, r2, #0x0
+ add r1, r3, #0x0
+ mov r2, #0xa8
+ bl MI_CpuCopy8
+ pop {r3, pc}
+_0202A48A:
+ add r3, #0x18
+ add r0, r2, #0x0
+ add r1, r3, #0x0
+ mov r2, #0xa8
+ bl MI_CpuCopy8
+ pop {r3, pc}
+
+ thumb_func_start FUN_0202A498
+FUN_0202A498: ; 0x0202A498
+ push {r3, lr}
+ cmp r1, #0x0
+ bne _0202A4AA
+ add r1, r2, #0x0
+ add r0, #0xc0
+ mov r2, #0xa8
+ bl MI_CpuCopy8
+ pop {r3, pc}
+_0202A4AA:
+ add r1, r2, #0x0
+ add r0, #0x18
+ mov r2, #0xa8
+ bl MI_CpuCopy8
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202A4B8
+FUN_0202A4B8: ; 0x0202A4B8
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ ldrb r0, [r1, #0x2]
+ mov r2, #0xfa
+ lsl r2, r2, #0x2
+ sub r0, r0, #0x1
+ add r3, r0, #0x0
+ mul r3, r2
+ lsl r0, r3, #0x10
+ lsr r4, r0, #0x10
+ ldrh r3, [r1, #0x4]
+ mov r0, #0xa
+ ldrb r5, [r1, #0x3]
+ mul r0, r3
+ mov r3, #0x14
+ mul r3, r5
+ lsl r0, r0, #0x10
+ lsl r3, r3, #0x10
+ lsr r0, r0, #0x10
+ lsr r3, r3, #0x10
+ add r3, r0, r3
+ add r0, r2, #0x0
+ sub r0, #0x32
+ cmp r3, r0
+ ble _0202A4EE
+ mov r5, #0x0
+ b _0202A4F6
+_0202A4EE:
+ sub r2, #0x32
+ sub r0, r2, r3
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+_0202A4F6:
+ ldrh r1, [r1, #0x6]
+ ldr r0, _0202A51C ; =0x000003CA
+ cmp r1, r0
+ bls _0202A502
+ mov r1, #0x0
+ b _0202A510
+_0202A502:
+ add r0, #0x1e
+ sub r0, r0, r1
+ mov r1, #0x1e
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+_0202A510:
+ add r0, r4, r5
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ strh r0, [r6, #0x16]
+ pop {r4-r6, pc}
+ .balign 4
+_0202A51C: .word 0x000003CA
+
+ thumb_func_start FUN_0202A520
+FUN_0202A520: ; 0x0202A520
+ ldrh r0, [r0, #0x16]
+ bx lr
+
+ thumb_func_start FUN_0202A524
+FUN_0202A524: ; 0x0202A524
+ push {r3, lr}
+ ldrh r0, [r0, #0x16]
+ mov r1, #0xfa
+ lsl r1, r1, #0x2
+ bl _s32_div_f
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202A538
+FUN_0202A538: ; 0x0202A538
+ push {r4-r5}
+ cmp r1, #0x5
+ bne _0202A544
+ mov r0, #0x0
+ pop {r4-r5}
+ bx lr
+_0202A544:
+ cmp r2, #0x2
+ beq _0202A54E
+ cmp r2, #0x3
+ beq _0202A558
+ b _0202A56A
+_0202A54E:
+ lsl r2, r1, #0x1
+ mov r3, #0x0
+ add r2, r0, r2
+ strh r3, [r2, #0xc]
+ b _0202A56A
+_0202A558:
+ add r5, r0, #0x0
+ add r5, #0xc
+ lsl r4, r1, #0x1
+ ldrh r3, [r5, r4]
+ ldr r2, _0202A574 ; =0x0000FFFE
+ cmp r3, r2
+ bhs _0202A56A
+ add r2, r3, #0x1
+ strh r2, [r5, r4]
+_0202A56A:
+ lsl r1, r1, #0x1
+ add r0, r0, r1
+ ldrh r0, [r0, #0xc]
+ pop {r4-r5}
+ bx lr
+ .balign 4
+_0202A574: .word 0x0000FFFE
+
+ thumb_func_start FUN_0202A578
+FUN_0202A578: ; 0x0202A578
+ push {r3-r4}
+ mov r3, #0x1
+ mov r4, #0x0
+ cmp r1, #0x0
+ bls _0202A590
+_0202A582:
+ add r4, r4, #0x1
+ lsl r4, r4, #0x10
+ lsl r3, r3, #0x11
+ lsr r4, r4, #0x10
+ lsr r3, r3, #0x10
+ cmp r4, r1
+ blo _0202A582
+_0202A590:
+ cmp r2, #0x0
+ beq _0202A5B4
+ cmp r2, #0x1
+ beq _0202A5AC
+ cmp r2, #0x2
+ bne _0202A5C2
+ ldr r1, _0202A5C8 ; =0x0000FFFF
+ eor r1, r3
+ lsl r1, r1, #0x10
+ lsr r2, r1, #0x10
+ ldrh r1, [r0, #0x8]
+ and r1, r2
+ strh r1, [r0, #0x8]
+ b _0202A5C2
+_0202A5AC:
+ ldrh r1, [r0, #0x8]
+ orr r1, r3
+ strh r1, [r0, #0x8]
+ b _0202A5C2
+_0202A5B4:
+ ldrh r0, [r0, #0x8]
+ add r2, r0, #0x0
+ asr r2, r1
+ mov r0, #0x1
+ and r0, r2
+ pop {r3-r4}
+ bx lr
+_0202A5C2:
+ mov r0, #0x0
+ pop {r3-r4}
+ bx lr
+ .balign 4
+_0202A5C8: .word 0x0000FFFF
+
+ thumb_func_start FUN_0202A5CC
+FUN_0202A5CC: ; 0x0202A5CC
+ str r1, [r0, #0x4]
+ bx lr
+
+ thumb_func_start FUN_0202A5D0
+FUN_0202A5D0: ; 0x0202A5D0
+ ldr r0, [r0, #0x4]
+ bx lr
+
+ thumb_func_start FUN_0202A5D4
+FUN_0202A5D4: ; 0x0202A5D4
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ mov r1, #0x17
+ add r4, r2, #0x0
+ bl FUN_02022610
+ mov r1, #0x69
+ lsl r1, r1, #0x2
+ add r1, r0, r1
+ lsl r0, r5, #0x3
+ add r0, r1, r0
+ add r1, r4, #0x0
+ bl FUN_02013960
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202A5F4
+FUN_0202A5F4: ; 0x0202A5F4
+ push {r4, lr}
+ add r4, r1, #0x0
+ mov r1, #0x17
+ bl FUN_02022610
+ mov r1, #0x69
+ lsl r1, r1, #0x2
+ add r1, r0, r1
+ lsl r0, r4, #0x3
+ add r0, r1, r0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202A60C
+FUN_0202A60C: ; 0x0202A60C
+ push {r3-r6}
+ add r4, r3, #0x0
+ mov r3, #0x1
+ cmp r2, #0x0
+ beq _0202A66C
+ cmp r2, #0xc8
+ bhi _0202A66C
+ cmp r1, #0x0
+ beq _0202A66C
+ cmp r1, #0xa
+ bhi _0202A66C
+ sub r5, r2, #0x1
+ sub r2, r1, #0x1
+ mov r1, #0xc8
+ mul r1, r2
+ add r1, r5, r1
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ lsr r6, r1, #0x1f
+ lsl r5, r1, #0x1d
+ sub r5, r5, r6
+ mov r2, #0x1d
+ ror r5, r2
+ add r2, r6, r5
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ lsl r3, r2
+ lsl r2, r3, #0x18
+ lsl r1, r1, #0x15
+ lsr r5, r2, #0x18
+ add r3, r0, #0x4
+ lsr r2, r1, #0x18
+ ldrb r1, [r3, r2]
+ orr r1, r5
+ strb r1, [r3, r2]
+ ldr r3, [r4, #0x0]
+ ldr r1, [r4, #0x8]
+ lsl r5, r3, #0x18
+ ldr r3, [r4, #0x4]
+ lsl r1, r1, #0x18
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x8
+ ldr r2, [r4, #0xc]
+ lsr r1, r1, #0x10
+ orr r3, r5
+ orr r1, r3
+ orr r1, r2
+ str r1, [r0, #0x0]
+_0202A66C:
+ pop {r3-r6}
+ bx lr
+
+ thumb_func_start FUN_0202A670
+FUN_0202A670: ; 0x0202A670
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r0, r4, #0x4
+ mov r1, #0x0
+ mov r2, #0xfa
+ bl MI_CpuFill8
+ add r0, r4, #0x0
+ mov r1, #0x0
+ mov r2, #0x4
+ bl MI_CpuFill8
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202A68C
+FUN_0202A68C: ; 0x0202A68C
+ ldr r3, [r0, #0x0]
+ ldr r2, [r1, #0x0]
+ cmp r3, r2
+ bls _0202A698
+ mov r0, #0x1
+ bx lr
+_0202A698:
+ ldr r3, [r0, #0x4]
+ ldr r2, [r1, #0x4]
+ cmp r3, r2
+ bls _0202A6A4
+ mov r0, #0x1
+ bx lr
+_0202A6A4:
+ ldr r2, [r0, #0x8]
+ ldr r0, [r1, #0x8]
+ cmp r2, r0
+ bls _0202A6B0
+ mov r0, #0x1
+ bx lr
+_0202A6B0:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_0202A6B4
+FUN_0202A6B4: ; 0x0202A6B4
+ push {r3-r7, lr}
+ sub sp, #0x10
+ add r6, r2, #0x0
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ mov r7, #0x1
+ cmp r6, #0xc8
+ bhi _0202A6C8
+ cmp r4, #0xa
+ bls _0202A6CE
+_0202A6C8:
+ add sp, #0x10
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0202A6CE:
+ ldr r0, [r5, #0x0]
+ lsr r1, r0, #0x18
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp, #0x0]
+ lsr r1, r0, #0x10
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp, #0x4]
+ lsr r1, r0, #0x8
+ lsl r1, r1, #0x18
+ lsl r0, r0, #0x18
+ lsr r1, r1, #0x18
+ lsr r0, r0, #0x18
+ str r1, [sp, #0x8]
+ str r0, [sp, #0xc]
+ add r0, r3, #0x0
+ add r1, sp, #0x0
+ bl FUN_0202A68C
+ cmp r0, #0x0
+ beq _0202A706
+ add r0, r5, #0x0
+ bl FUN_0202A670
+ add sp, #0x10
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0202A706:
+ sub r1, r4, #0x1
+ mov r0, #0xc8
+ mul r0, r1
+ sub r2, r6, #0x1
+ add r0, r2, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ lsr r3, r0, #0x1f
+ lsl r2, r0, #0x1d
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x18
+ add r0, r5, r0
+ sub r2, r2, r3
+ mov r1, #0x1d
+ ror r2, r1
+ add r1, r3, r2
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ add r2, r7, #0x0
+ lsl r2, r1
+ lsl r1, r2, #0x18
+ ldrb r0, [r0, #0x4]
+ lsr r1, r1, #0x18
+ tst r0, r1
+ beq _0202A73E
+ add sp, #0x10
+ add r0, r7, #0x0
+ pop {r3-r7, pc}
+_0202A73E:
+ mov r0, #0x0
+ add sp, #0x10
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0202A744
+FUN_0202A744: ; 0x0202A744
+ add r0, #0xfe
+ ldrb r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202A74C
+FUN_0202A74C: ; 0x0202A74C
+ add r0, #0xff
+ ldrb r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202A754
+FUN_0202A754: ; 0x0202A754
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ mov r1, #0x41
+ add r4, r2, #0x0
+ lsl r1, r1, #0x2
+ ldr r2, _0202A77C ; =0x0000063C
+ add r1, r5, r1
+ add r6, r3, #0x0
+ bl MI_CpuCopy8
+ ldr r0, _0202A780 ; =0x00000101
+ strb r4, [r5, r0]
+ sub r0, r0, #0x1
+ strb r6, [r5, r0]
+ mov r0, #0x1
+ add r5, #0xfe
+ strb r0, [r5, #0x0]
+ pop {r4-r6, pc}
+ nop
+_0202A77C: .word 0x0000063C
+_0202A780: .word 0x00000101
+
+ thumb_func_start FUN_0202A784
+FUN_0202A784: ; 0x0202A784
+ ldr r2, _0202A794 ; =0x00000101
+ ldrb r3, [r0, r2]
+ sub r2, r2, #0x1
+ strb r3, [r1, #0x0]
+ ldrb r0, [r0, r2]
+ strb r0, [r1, #0x1]
+ bx lr
+ nop
+_0202A794: .word 0x00000101
+
+ thumb_func_start FUN_0202A798
+FUN_0202A798: ; 0x0202A798
+ push {r3-r7, lr}
+ add r6, r1, #0x0
+ mov r1, #0x41
+ lsl r1, r1, #0x2
+ add r5, r0, r1
+ mov r0, #0xe4
+ add r4, r2, #0x0
+ mul r4, r0
+ ldr r0, _0202A834 ; =0x00002710
+ add r7, r6, #0x0
+ str r0, [r6, #0x0]
+ add r0, r5, r4
+ add r0, #0xc9
+ ldrb r0, [r0, #0x0]
+ add r7, #0x30
+ strh r0, [r6, #0x4]
+ add r0, r5, r4
+ add r0, #0xc8
+ ldrb r0, [r0, #0x0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ beq _0202A7EE
+ mov r0, #0x0
+ mov r1, #0x1a
+ mov r2, #0x11
+ mov r3, #0xb
+ bl FUN_0200A86C
+ add r1, r5, r4
+ add r1, #0xc8
+ ldrb r1, [r1, #0x0]
+ add r2, r6, #0x0
+ str r0, [sp, #0x0]
+ lsl r1, r1, #0x1e
+ lsr r1, r1, #0x1f
+ add r1, #0x16
+ add r2, #0x8
+ bl FUN_0200A968
+ ldr r0, [sp, #0x0]
+ bl FUN_0200A8B8
+ b _0202A7FC
+_0202A7EE:
+ add r0, r5, r4
+ add r1, r6, #0x0
+ add r0, #0xa8
+ add r1, #0x8
+ mov r2, #0x10
+ bl MI_CpuCopy8
+_0202A7FC:
+ add r0, r5, r4
+ add r1, r6, #0x0
+ add r0, #0xca
+ add r1, #0x18
+ mov r2, #0x8
+ bl MI_CpuCopy8
+ add r0, r5, r4
+ add r1, r6, #0x0
+ add r0, #0xd2
+ add r1, #0x20
+ mov r2, #0x8
+ bl MI_CpuCopy8
+ add r0, r5, r4
+ add r6, #0x28
+ add r0, #0xda
+ add r1, r6, #0x0
+ mov r2, #0x8
+ bl MI_CpuCopy8
+ add r0, r5, r4
+ add r1, r7, #0x0
+ mov r2, #0xa8
+ bl MI_CpuCopy8
+ pop {r3-r7, pc}
+ nop
+_0202A834: .word 0x00002710
+
+ thumb_func_start FUN_0202A838
+FUN_0202A838: ; 0x0202A838
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ mov r1, #0x1d
+ add r4, r2, #0x0
+ lsl r1, r1, #0x6
+ mov r2, #0xff
+ add r1, r5, r1
+ lsl r2, r2, #0x2
+ add r6, r3, #0x0
+ bl MI_CpuCopy8
+ ldr r0, _0202A860 ; =0x00000103
+ strb r4, [r5, r0]
+ sub r0, r0, #0x1
+ strb r6, [r5, r0]
+ mov r0, #0x1
+ add r5, #0xff
+ strb r0, [r5, #0x0]
+ pop {r4-r6, pc}
+ .balign 4
+_0202A860: .word 0x00000103
+
+ thumb_func_start FUN_0202A864
+FUN_0202A864: ; 0x0202A864
+ ldr r2, _0202A874 ; =0x00000103
+ ldrb r3, [r0, r2]
+ sub r2, r2, #0x1
+ strb r3, [r1, #0x0]
+ ldrb r0, [r0, r2]
+ strb r0, [r1, #0x1]
+ bx lr
+ nop
+_0202A874: .word 0x00000103
+
+ thumb_func_start FUN_0202A878
+FUN_0202A878: ; 0x0202A878
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ mov r1, #0xff
+ lsl r1, r1, #0x2
+ bl FUN_02016998
+ add r4, r0, #0x0
+ mov r0, #0x1d
+ lsl r0, r0, #0x6
+ mov r2, #0xff
+ add r0, r5, r0
+ add r1, r4, #0x0
+ lsl r2, r2, #0x2
+ bl MI_CpuCopy8
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0202A89C
+FUN_0202A89C: ; 0x0202A89C
+ mov r0, #0xd
+ lsl r0, r0, #0x8
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202A8A4
+FUN_0202A8A4: ; 0x0202A8A4
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_0202A1E4
+ add r0, r4, #0x0
+ add r0, #0x3c
+ bl FUN_0202A1F0
+ mov r0, #0x69
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_0202A204
+ mov r0, #0x71
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ bl FUN_0202A230
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202A8CC
+FUN_0202A8CC: ; 0x0202A8CC
+ ldr r3, _0202A8D4 ; =FUN_02022610
+ mov r1, #0x17
+ bx r3
+ nop
+_0202A8D4: .word FUN_02022610
+
+ thumb_func_start FUN_0202A8D8
+FUN_0202A8D8: ; 0x0202A8D8
+ push {r3, lr}
+ mov r1, #0x17
+ bl FUN_02022610
+ add r0, #0x3c
+ pop {r3, pc}
+
+ thumb_func_start FUN_0202A8E4
+FUN_0202A8E4: ; 0x0202A8E4
+ push {r3, lr}
+ mov r1, #0x17
+ bl FUN_02022610
+ mov r1, #0x71
+ lsl r1, r1, #0x2
+ add r0, r0, r1
+ pop {r3, pc}
+
+ thumb_func_start FUN_0202A8F4
+FUN_0202A8F4: ; 0x0202A8F4
+ mov r0, #0xe
+ bx lr
+
+ thumb_func_start FUN_0202A8F8
+FUN_0202A8F8: ; 0x0202A8F8
+ mov r1, #0x0
+ strb r1, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ strb r1, [r0, #0x2]
+ strb r1, [r0, #0x3]
+ strb r1, [r0, #0x4]
+ strb r1, [r0, #0x5]
+ strb r1, [r0, #0x6]
+ strb r1, [r0, #0x7]
+ strb r1, [r0, #0x8]
+ strb r1, [r0, #0x9]
+ strb r1, [r0, #0xa]
+ strb r1, [r0, #0xb]
+ strb r1, [r0, #0xc]
+ strb r1, [r0, #0xd]
+ bx lr
+
+ thumb_func_start FUN_0202A918
+FUN_0202A918: ; 0x0202A918
+ ldr r3, _0202A920 ; =FUN_02022610
+ mov r1, #0x18
+ bx r3
+ nop
+_0202A920: .word FUN_02022610
+
+ thumb_func_start FUN_0202A924
+FUN_0202A924: ; 0x0202A924
+ mov r0, #0x45
+ lsl r0, r0, #0x2
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202A92C
+FUN_0202A92C: ; 0x0202A92C
+ push {r4, lr}
+ mov r2, #0x45
+ add r4, r0, #0x0
+ mov r1, #0x0
+ lsl r2, r2, #0x2
+ bl memset
+ bl rand_MT
+ str r0, [r4, #0x0]
+ bl rand_MT
+ str r0, [r4, #0x4]
+ mov r1, #0x0
+ add r3, r4, #0x0
+ ldr r0, _0202A980 ; =0x0000FFFF
+ str r1, [r4, #0x8]
+ strh r0, [r4, #0xc]
+ strh r0, [r4, #0xe]
+ mov r0, #0x15
+ add r3, #0x10
+ strb r0, [r4, #0x10]
+ add r2, r1, #0x0
+_0202A95A:
+ str r2, [r3, #0x4]
+ strb r2, [r3, #0x8]
+ strb r2, [r3, #0x9]
+ strb r2, [r3, #0xa]
+ strb r2, [r3, #0xb]
+ add r1, r1, #0x1
+ add r3, #0x8
+ cmp r1, #0x15
+ blt _0202A95A
+ ldr r0, _0202A984 ; =0x0000010F
+ strb r2, [r4, r0]
+ add r1, r0, #0x1
+ strb r2, [r4, r1]
+ add r1, r0, #0x2
+ strb r2, [r4, r1]
+ add r0, r0, #0x3
+ strb r2, [r4, r0]
+ pop {r4, pc}
+ nop
+_0202A980: .word 0x0000FFFF
+_0202A984: .word 0x0000010F
+
+ thumb_func_start FUN_0202A988
+FUN_0202A988: ; 0x0202A988
+ str r1, [r0, #0x0]
+ str r1, [r0, #0x4]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202A990
+FUN_0202A990: ; 0x0202A990
+ push {r3, lr}
+ cmp r1, #0x1
+ beq _0202A99C
+ cmp r1, #0x2
+ beq _0202A9A0
+ b _0202A9A4
+_0202A99C:
+ ldr r0, [r0, #0x0]
+ pop {r3, pc}
+_0202A9A0:
+ ldr r0, [r0, #0x4]
+ pop {r3, pc}
+_0202A9A4:
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_0202A9AC
+FUN_0202A9AC: ; 0x0202A9AC
+ add r0, #0xbc
+ bx lr
+
+ thumb_func_start FUN_0202A9B0
+FUN_0202A9B0: ; 0x0202A9B0
+ ldr r3, _0202A9B8 ; =FUN_02022610
+ mov r1, #0x19
+ bx r3
+ nop
+_0202A9B8: .word FUN_02022610
+
+ thumb_func_start FUN_0202A9BC
+FUN_0202A9BC: ; 0x0202A9BC
+ add r0, #0x10
+ bx lr
+
+ thumb_func_start FUN_0202A9C0
+FUN_0202A9C0: ; 0x0202A9C0
+ ldrb r0, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_0202A9C4
+FUN_0202A9C4: ; 0x0202A9C4
+ strb r0, [r1, #0x0]
+ bx lr
+
+ thumb_func_start FUN_0202A9C8
+FUN_0202A9C8: ; 0x0202A9C8
+ add r1, r1, #0x4
+ lsl r0, r0, #0x3
+ add r0, r1, r0
+ bx lr
+
+ thumb_func_start FUN_0202A9D0
+FUN_0202A9D0: ; 0x0202A9D0
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ bl FUN_0202A9B0
+ add r6, r0, #0x0
+ mov r4, #0x0
+ add r6, #0x10
+ add r7, r4, #0x0
+_0202A9E0:
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ add r1, r6, #0x0
+ bl FUN_0202A9C8
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _0202A9F8
+ sub r1, r1, r5
+ str r1, [r0, #0x0]
+ bpl _0202A9F8
+ str r7, [r0, #0x0]
+_0202A9F8:
+ add r4, r4, #0x1
+ cmp r4, #0x15
+ blt _0202A9E0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0202AA00
+FUN_0202AA00: ; 0x0202AA00
+ push {r3, lr}
+ bl FUN_0202A9B0
+ ldr r1, _0202AA10 ; =0x0000010F
+ mov r2, #0x1
+ strb r2, [r0, r1]
+ pop {r3, pc}
+ nop
+_0202AA10: .word 0x0000010F
+
+ thumb_func_start FUN_0202AA14
+FUN_0202AA14: ; 0x0202AA14
+ ldr r1, _0202AA1C ; =0x0000010F
+ ldrb r0, [r0, r1]
+ bx lr
+ nop
+_0202AA1C: .word 0x0000010F
+
+ thumb_func_start FUN_0202AA20
+FUN_0202AA20: ; 0x0202AA20
+ add r2, r0, #0x0
+ add r2, #0xc8
+ ldr r3, [r2, #0x0]
+ cmp r3, r1
+ beq _0202AA34
+ add r2, r0, #0x0
+ add r2, #0xcc
+ str r3, [r2, #0x0]
+ add r0, #0xc8
+ str r1, [r0, #0x0]
+_0202AA34:
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202AA38
+FUN_0202AA38: ; 0x0202AA38
+ add r0, #0xcc
+ ldr r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202AA40
+FUN_0202AA40: ; 0x0202AA40
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x3
+ blo _0202AA4E
+ bl ErrorHandling
+_0202AA4E:
+ mov r0, #0x43
+ add r1, r5, r4
+ lsl r0, r0, #0x2
+ ldrb r0, [r1, r0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0202AA58
+FUN_0202AA58: ; 0x0202AA58
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ cmp r4, #0x3
+ blo _0202AA68
+ bl ErrorHandling
+_0202AA68:
+ mov r0, #0x43
+ add r1, r5, r4
+ lsl r0, r0, #0x2
+ strb r6, [r1, r0]
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202AA74
+FUN_0202AA74: ; 0x0202AA74
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x3
+ blo _0202AA82
+ bl ErrorHandling
+_0202AA82:
+ mov r0, #0x14
+ mul r0, r4
+ add r0, r5, r0
+ add r0, #0xe2
+ ldrb r0, [r0, #0x0]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202AA90
+FUN_0202AA90: ; 0x0202AA90
+ ldr r2, [r0, #0x0]
+ mov r1, #0x14
+ mov r0, #0x0
+_0202AA96:
+ strb r0, [r2, #0x0]
+ add r2, r2, #0x1
+ sub r1, r1, #0x1
+ bne _0202AA96
+ bx lr
+
+ thumb_func_start FUN_0202AAA0
+FUN_0202AAA0: ; 0x0202AAA0
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x3
+ blo _0202AAAE
+ bl ErrorHandling
+_0202AAAE:
+ mov r0, #0x14
+ add r5, #0xd0
+ mul r0, r4
+ add r0, r5, r0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0202AAB8
+FUN_0202AAB8: ; 0x0202AAB8
+ cmp r1, #0x8
+ bhi _0202AAF8
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0202AAC8: ; jump table (using 16-bit offset)
+ .short _0202AAF8 - _0202AAC8 - 2; case 0
+ .short _0202AADA - _0202AAC8 - 2; case 1
+ .short _0202AADE - _0202AAC8 - 2; case 2
+ .short _0202AAE2 - _0202AAC8 - 2; case 3
+ .short _0202AAE6 - _0202AAC8 - 2; case 4
+ .short _0202AAEA - _0202AAC8 - 2; case 5
+ .short _0202AAEE - _0202AAC8 - 2; case 6
+ .short _0202AAF2 - _0202AAC8 - 2; case 7
+ .short _0202AAF6 - _0202AAC8 - 2; case 8
+_0202AADA:
+ ldr r0, [r0, #0x0]
+ bx lr
+_0202AADE:
+ ldr r0, [r0, #0x4]
+ bx lr
+_0202AAE2:
+ ldr r0, [r0, #0x8]
+ bx lr
+_0202AAE6:
+ ldrh r0, [r0, #0xc]
+ bx lr
+_0202AAEA:
+ ldrh r0, [r0, #0xe]
+ bx lr
+_0202AAEE:
+ ldrb r0, [r0, #0x10]
+ bx lr
+_0202AAF2:
+ ldrb r0, [r0, #0x11]
+ bx lr
+_0202AAF6:
+ ldrb r0, [r0, #0x12]
+_0202AAF8:
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202AAFC
+FUN_0202AAFC: ; 0x0202AAFC
+ cmp r1, #0x8
+ bhi _0202AB3C
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0202AB0C: ; jump table (using 16-bit offset)
+ .short _0202AB3C - _0202AB0C - 2; case 0
+ .short _0202AB1E - _0202AB0C - 2; case 1
+ .short _0202AB22 - _0202AB0C - 2; case 2
+ .short _0202AB26 - _0202AB0C - 2; case 3
+ .short _0202AB2A - _0202AB0C - 2; case 4
+ .short _0202AB2E - _0202AB0C - 2; case 5
+ .short _0202AB32 - _0202AB0C - 2; case 6
+ .short _0202AB36 - _0202AB0C - 2; case 7
+ .short _0202AB3A - _0202AB0C - 2; case 8
+_0202AB1E:
+ str r2, [r0, #0x0]
+ bx lr
+_0202AB22:
+ str r2, [r0, #0x4]
+ bx lr
+_0202AB26:
+ str r2, [r0, #0x8]
+ bx lr
+_0202AB2A:
+ strh r2, [r0, #0xc]
+ bx lr
+_0202AB2E:
+ strh r2, [r0, #0xe]
+ bx lr
+_0202AB32:
+ strb r2, [r0, #0x10]
+ bx lr
+_0202AB36:
+ strb r2, [r0, #0x11]
+ bx lr
+_0202AB3A:
+ strb r2, [r0, #0x12]
+_0202AB3C:
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202AB40
+FUN_0202AB40: ; 0x0202AB40
+ ldr r1, _0202AB48 ; =0x00000111
+ add r0, r0, r1
+ bx lr
+ nop
+_0202AB48: .word 0x00000111
+
+ thumb_func_start FUN_0202AB4C
+FUN_0202AB4C: ; 0x0202AB4C
+ mov r1, #0x11
+ lsl r1, r1, #0x4
+ add r0, r0, r1
+ bx lr
+
+ thumb_func_start FUN_0202AB54
+FUN_0202AB54: ; 0x0202AB54
+ mov r1, #0x11
+ lsl r1, r1, #0x4
+ ldrb r0, [r0, r1]
+ cmp r0, #0x0
+ bne _0202AB62
+ mov r0, #0x1
+ bx lr
+_0202AB62:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202AB68
+FUN_0202AB68: ; 0x0202AB68
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x2
+ bls _0202AB76
+ bl ErrorHandling
+_0202AB76:
+ ldr r0, _0202AB7C ; =0x00000112
+ strb r4, [r5, r0]
+ pop {r3-r5, pc}
+ .balign 4
+_0202AB7C: .word 0x00000112
+
+ thumb_func_start FUN_0202AB80
+FUN_0202AB80: ; 0x0202AB80
+ ldr r1, _0202AB88 ; =0x00000112
+ ldrb r0, [r0, r1]
+ bx lr
+ nop
+_0202AB88: .word 0x00000112
+
+ thumb_func_start FUN_0202AB8C
+FUN_0202AB8C: ; 0x0202AB8C
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ bl FUN_0202A9B0
+ ldrh r1, [r0, #0xc]
+ strh r1, [r5, #0x0]
+ ldrh r0, [r0, #0xe]
+ strh r0, [r4, #0x0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0202ABA0
+FUN_0202ABA0: ; 0x0202ABA0
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ bl FUN_0202A9B0
+ add r4, r0, #0x0
+ cmp r5, #0x10
+ blo _0202ABB2
+ bl ErrorHandling
+_0202ABB2:
+ ldrh r0, [r4, #0xc]
+ strh r0, [r4, #0xe]
+ strh r5, [r4, #0xc]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202ABBC
+FUN_0202ABBC: ; 0x0202ABBC
+ ldr r3, _0202ABC4 ; =FUN_02022610
+ mov r1, #0x1a
+ bx r3
+ nop
+_0202ABC4: .word FUN_02022610
+
+ thumb_func_start FUN_0202ABC8
+FUN_0202ABC8: ; 0x0202ABC8
+ mov r0, #0xf4
+ bx lr
+
+ thumb_func_start FUN_0202ABCC
+FUN_0202ABCC: ; 0x0202ABCC
+ ldr r3, _0202ABD8 ; =MIi_CpuClearFast
+ add r1, r0, #0x0
+ mov r0, #0x0
+ mov r2, #0xf4
+ bx r3
+ nop
+_0202ABD8: .word MIi_CpuClearFast
+
+ thumb_func_start FUN_0202ABDC
+FUN_0202ABDC: ; 0x0202ABDC
+ add r0, #0xec
+ ldrh r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202ABE4
+FUN_0202ABE4: ; 0x0202ABE4
+ add r0, #0xec
+ strh r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202ABEC
+FUN_0202ABEC: ; 0x0202ABEC
+ ldr r3, _0202ABF4 ; =MIi_CpuCopyFast
+ mov r2, #0xec
+ bx r3
+ nop
+_0202ABF4: .word MIi_CpuCopyFast
+
+ thumb_func_start FUN_0202ABF8
+FUN_0202ABF8: ; 0x0202ABF8
+ ldr r3, _0202AC04 ; =MIi_CpuCopyFast
+ add r2, r0, #0x0
+ add r0, r1, #0x0
+ add r1, r2, #0x0
+ mov r2, #0xec
+ bx r3
+ .balign 4
+_0202AC04: .word MIi_CpuCopyFast
+
+ thumb_func_start FUN_0202AC08
+FUN_0202AC08: ; 0x0202AC08
+ add r0, #0xf0
+ ldr r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202AC10
+FUN_0202AC10: ; 0x0202AC10
+ add r0, #0xf0
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202AC18
+FUN_0202AC18: ; 0x0202AC18
+ add r0, #0xee
+ ldrh r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202AC20
+FUN_0202AC20: ; 0x0202AC20
+ ldr r0, _0202AC24 ; =0x00001354
+ bx lr
+ .balign 4
+_0202AC24: .word 0x00001354
+
+ thumb_func_start FUN_0202AC28
+FUN_0202AC28: ; 0x0202AC28
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202AC2C
+FUN_0202AC2C: ; 0x0202AC2C
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x8
+ blt _0202AC3A
+ bl ErrorHandling
+_0202AC3A:
+ mov r0, #0x1
+ lsl r0, r0, #0x8
+ add r6, r5, r0
+ lsl r3, r4, #0x2
+ ldr r2, [r6, r3]
+ ldr r1, _0202AC60 ; =0xEDB88320
+ cmp r2, r1
+ bne _0202AC58
+ add r0, #0x2c
+ add r1, r5, r0
+ lsl r0, r4, #0x6
+ add r0, r4, r0
+ lsl r0, r0, #0x2
+ add r0, r1, r0
+ pop {r4-r6, pc}
+_0202AC58:
+ mov r0, #0x0
+ str r0, [r6, r3]
+ pop {r4-r6, pc}
+ nop
+_0202AC60: .word 0xEDB88320
+
+ thumb_func_start FUN_0202AC64
+FUN_0202AC64: ; 0x0202AC64
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x3
+ blt _0202AC72
+ bl ErrorHandling
+_0202AC72:
+ lsl r0, r4, #0x2
+ add r1, r5, r0
+ mov r0, #0x12
+ lsl r0, r0, #0x4
+ ldr r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0202AC8E
+ ldr r0, _0202AC94 ; =0x0000094C
+ add r1, r5, r0
+ mov r0, #0xd6
+ lsl r0, r0, #0x2
+ mul r0, r4
+ add r0, r1, r0
+ pop {r3-r5, pc}
+_0202AC8E:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ nop
+_0202AC94: .word 0x0000094C
+
+ thumb_func_start FUN_0202AC98
+FUN_0202AC98: ; 0x0202AC98
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ str r1, [sp, #0x0]
+ add r7, r2, #0x0
+ bl FUN_0202ADF0
+ cmp r0, #0x0
+ bne _0202ACAC
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0202ACAC:
+ mov r0, #0x1
+ mov r4, #0x0
+ add r2, r5, #0x0
+ lsl r0, r0, #0x8
+_0202ACB4:
+ ldr r1, [r2, r0]
+ cmp r1, #0x0
+ bne _0202ACF6
+ lsl r0, r4, #0x6
+ mov r2, #0x4b
+ add r0, r4, r0
+ lsl r2, r2, #0x2
+ lsl r6, r0, #0x2
+ add r1, r5, r2
+ ldr r0, [sp, #0x0]
+ add r1, r1, r6
+ sub r2, #0x28
+ bl MI_CpuCopy8
+ lsl r0, r4, #0x2
+ add r1, r5, r0
+ mov r0, #0x1
+ ldr r2, _0202AD04 ; =0xEDB88320
+ lsl r0, r0, #0x8
+ str r2, [r1, r0]
+ add r0, #0x2e
+ add r1, r5, r0
+ ldrh r0, [r1, r6]
+ mov r2, #0x3
+ bic r0, r2
+ lsl r2, r7, #0x10
+ lsr r3, r2, #0x10
+ mov r2, #0x3
+ and r2, r3
+ orr r0, r2
+ strh r0, [r1, r6]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0202ACF6:
+ add r4, r4, #0x1
+ add r2, r2, #0x4
+ cmp r4, #0x8
+ blt _0202ACB4
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ nop
+_0202AD04: .word 0xEDB88320
+
+ thumb_func_start FUN_0202AD08
+FUN_0202AD08: ; 0x0202AD08
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ bl FUN_0202AE0C
+ cmp r0, #0x0
+ bne _0202AD1A
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0202AD1A:
+ ldr r0, _0202AD88 ; =0x00000152
+ ldrb r0, [r6, r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ cmp r0, #0x1
+ bne _0202AD34
+ add r0, r5, #0x0
+ bl FUN_0202ADF0
+ cmp r0, #0x0
+ bne _0202AD34
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0202AD34:
+ mov r0, #0x12
+ mov r4, #0x0
+ add r2, r5, #0x0
+ lsl r0, r0, #0x4
+_0202AD3C:
+ ldr r1, [r2, r0]
+ cmp r1, #0x0
+ bne _0202AD7C
+ ldr r1, _0202AD8C ; =0x0000094C
+ mov r2, #0xd6
+ add r3, r5, r1
+ lsl r2, r2, #0x2
+ add r1, r4, #0x0
+ mul r1, r2
+ add r0, r6, #0x0
+ add r1, r3, r1
+ bl MI_CpuCopy8
+ lsl r0, r4, #0x2
+ add r1, r5, r0
+ mov r0, #0x12
+ ldr r2, _0202AD90 ; =0xEDB88320
+ lsl r0, r0, #0x4
+ str r2, [r1, r0]
+ add r0, #0x32
+ ldrb r0, [r6, r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ cmp r0, #0x1
+ bne _0202AD78
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r4, #0x1
+ bl FUN_0202AC98
+_0202AD78:
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_0202AD7C:
+ add r4, r4, #0x1
+ add r2, r2, #0x4
+ cmp r4, #0x3
+ blt _0202AD3C
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+_0202AD88: .word 0x00000152
+_0202AD8C: .word 0x0000094C
+_0202AD90: .word 0xEDB88320
+
+ thumb_func_start FUN_0202AD94
+FUN_0202AD94: ; 0x0202AD94
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ sub r0, r4, #0x1
+ cmp r0, #0x8
+ blt _0202ADA4
+ bl ErrorHandling
+_0202ADA4:
+ sub r4, r4, #0x1
+ lsl r0, r4, #0x2
+ add r1, r5, r0
+ mov r0, #0x1
+ mov r2, #0x0
+ lsl r0, r0, #0x8
+ str r2, [r1, r0]
+ add r0, #0x2e
+ add r3, r5, r0
+ lsl r0, r4, #0x6
+ add r0, r4, r0
+ lsl r2, r0, #0x2
+ ldrh r1, [r3, r2]
+ mov r0, #0x3
+ bic r1, r0
+ strh r1, [r3, r2]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0202ADC8
+FUN_0202ADC8: ; 0x0202ADC8
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ cmp r4, #0x3
+ blt _0202ADD6
+ bl ErrorHandling
+_0202ADD6:
+ lsl r0, r4, #0x2
+ add r1, r5, r0
+ mov r0, #0x12
+ mov r2, #0x0
+ lsl r0, r0, #0x4
+ str r2, [r1, r0]
+ add r0, r5, #0x0
+ add r1, r4, #0x1
+ bl FUN_0202AEC4
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202ADF0
+FUN_0202ADF0: ; 0x0202ADF0
+ mov r1, #0x1
+ mov r3, #0x0
+ lsl r1, r1, #0x8
+_0202ADF6:
+ ldr r2, [r0, r1]
+ cmp r2, #0x0
+ bne _0202AE00
+ mov r0, #0x1
+ bx lr
+_0202AE00:
+ add r3, r3, #0x1
+ add r0, r0, #0x4
+ cmp r3, #0x8
+ blt _0202ADF6
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_0202AE0C
+FUN_0202AE0C: ; 0x0202AE0C
+ mov r1, #0x12
+ mov r3, #0x0
+ lsl r1, r1, #0x4
+_0202AE12:
+ ldr r2, [r0, r1]
+ cmp r2, #0x0
+ bne _0202AE1C
+ mov r0, #0x1
+ bx lr
+_0202AE1C:
+ add r3, r3, #0x1
+ add r0, r0, #0x4
+ cmp r3, #0x3
+ blt _0202AE12
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_0202AE28
+FUN_0202AE28: ; 0x0202AE28
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r4, r0, #0x0
+ cmp r5, #0x8
+ blt _0202AE36
+ bl ErrorHandling
+_0202AE36:
+ lsl r0, r5, #0x2
+ add r1, r4, r0
+ mov r0, #0x1
+ lsl r0, r0, #0x8
+ ldr r0, [r1, r0]
+ cmp r0, #0x0
+ bne _0202AE48
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0202AE48:
+ mov r0, #0x1
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0202AE4C
+FUN_0202AE4C: ; 0x0202AE4C
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r4, r0, #0x0
+ cmp r5, #0x3
+ blt _0202AE5A
+ bl ErrorHandling
+_0202AE5A:
+ lsl r0, r5, #0x2
+ add r1, r4, r0
+ mov r0, #0x12
+ lsl r0, r0, #0x4
+ ldr r0, [r1, r0]
+ cmp r0, #0x0
+ bne _0202AE6C
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0202AE6C:
+ mov r0, #0x1
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0202AE70
+FUN_0202AE70: ; 0x0202AE70
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r4, #0x0
+_0202AE76:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0202AE4C
+ cmp r0, #0x1
+ bne _0202AE86
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0202AE86:
+ add r4, r4, #0x1
+ cmp r4, #0x3
+ blt _0202AE76
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0202AE90
+FUN_0202AE90: ; 0x0202AE90
+ push {r3-r4}
+ cmp r1, #0x0
+ beq _0202AEB8
+ ldr r2, _0202AEC0 ; =0x0000012E
+ mov r3, #0x0
+ add r4, r0, r2
+ add r0, r2, #0x0
+ sub r0, #0x2a
+_0202AEA0:
+ ldrh r2, [r4, #0x0]
+ lsl r2, r2, #0x1e
+ lsr r2, r2, #0x1e
+ cmp r1, r2
+ bne _0202AEB0
+ mov r0, #0x1
+ pop {r3-r4}
+ bx lr
+_0202AEB0:
+ add r3, r3, #0x1
+ add r4, r4, r0
+ cmp r3, #0x8
+ blt _0202AEA0
+_0202AEB8:
+ mov r0, #0x0
+ pop {r3-r4}
+ bx lr
+ nop
+_0202AEC0: .word 0x0000012E
+
+ thumb_func_start FUN_0202AEC4
+FUN_0202AEC4: ; 0x0202AEC4
+ push {r3-r5, lr}
+ cmp r1, #0x0
+ beq _0202AEEE
+ ldr r3, _0202AEF0 ; =0x0000012E
+ mov r4, #0x41
+ mov r2, #0x0
+ add r3, r0, r3
+ lsl r4, r4, #0x2
+_0202AED4:
+ ldrh r5, [r3, #0x0]
+ lsl r5, r5, #0x1e
+ lsr r5, r5, #0x1e
+ cmp r1, r5
+ bne _0202AEE6
+ add r1, r2, #0x1
+ bl FUN_0202AD94
+ pop {r3-r5, pc}
+_0202AEE6:
+ add r2, r2, #0x1
+ add r3, r3, r4
+ cmp r2, #0x8
+ blt _0202AED4
+_0202AEEE:
+ pop {r3-r5, pc}
+ .balign 4
+_0202AEF0: .word 0x0000012E
+
+ thumb_func_start FUN_0202AEF4
+FUN_0202AEF4: ; 0x0202AEF4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r0, #0x2
+ add r4, r1, #0x0
+ lsl r0, r0, #0xa
+ cmp r4, r0
+ blt _0202AF06
+ bl ErrorHandling
+_0202AF06:
+ mov r0, #0x1
+ mov r1, #0x7
+ add r2, r4, #0x0
+ and r2, r1
+ add r1, r0, #0x0
+ lsl r1, r2
+ asr r2, r4, #0x2
+ lsr r2, r2, #0x1d
+ add r2, r4, r2
+ asr r2, r2, #0x3
+ ldrb r2, [r5, r2]
+ tst r1, r2
+ bne _0202AF22
+ mov r0, #0x0
+_0202AF22:
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0202AF24
+FUN_0202AF24: ; 0x0202AF24
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r0, #0x2
+ add r4, r1, #0x0
+ lsl r0, r0, #0xa
+ cmp r4, r0
+ blt _0202AF36
+ bl ErrorHandling
+_0202AF36:
+ asr r0, r4, #0x2
+ lsr r0, r0, #0x1d
+ add r0, r4, r0
+ asr r0, r0, #0x3
+ mov r1, #0x7
+ ldrb r3, [r5, r0]
+ mov r2, #0x1
+ and r1, r4
+ lsl r2, r1
+ add r1, r3, #0x0
+ orr r1, r2
+ strb r1, [r5, r0]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0202AF50
+FUN_0202AF50: ; 0x0202AF50
+ ldr r3, _0202AF58 ; =FUN_0202AEF4
+ ldr r1, _0202AF5C ; =0x000007FF
+ bx r3
+ nop
+_0202AF58: .word FUN_0202AEF4
+_0202AF5C: .word 0x000007FF
+
+ thumb_func_start FUN_0202AF60
+FUN_0202AF60: ; 0x0202AF60
+ ldr r3, _0202AF68 ; =FUN_0202AF24
+ ldr r1, _0202AF6C ; =0x000007FF
+ bx r3
+ nop
+_0202AF68: .word FUN_0202AF24
+_0202AF6C: .word 0x000007FF
+
+ thumb_func_start FUN_0202AF70
+FUN_0202AF70: ; 0x0202AF70
+ push {r3, lr}
+ ldr r1, _0202AF84 ; =0x021C59D4
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ bne _0202AF82
+ bl FUN_0202251C
+ ldr r1, _0202AF84 ; =0x021C59D4
+ str r0, [r1, #0x0]
+_0202AF82:
+ pop {r3, pc}
+ .balign 4
+_0202AF84: .word 0x021C59D4
+
+ thumb_func_start FUN_0202AF88
+FUN_0202AF88: ; 0x0202AF88
+ ldr r0, _0202AF98 ; =0x021C59D4
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _0202AF94
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+_0202AF94:
+ bx lr
+ nop
+_0202AF98: .word 0x021C59D4
+
+ thumb_func_start FUN_0202AF9C
+FUN_0202AF9C: ; 0x0202AF9C
+ push {r3-r5, lr}
+ ldr r4, _0202AFBC ; =0x021C59D4
+ mov r5, #0x0
+_0202AFA2:
+ ldr r0, [r4, #0x0]
+ add r1, r5, #0x0
+ bl FUN_0202AE28
+ cmp r0, #0x1
+ bne _0202AFB2
+ add r0, r5, #0x1
+ pop {r3-r5, pc}
+_0202AFB2:
+ add r5, r5, #0x1
+ cmp r5, #0x8
+ blt _0202AFA2
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_0202AFBC: .word 0x021C59D4
+
+ thumb_func_start FUN_0202AFC0
+FUN_0202AFC0: ; 0x0202AFC0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _0202AFCA
+ mov r0, #0x0
+ pop {r4, pc}
+_0202AFCA:
+ sub r0, r4, #0x1
+ cmp r0, #0x8
+ blt _0202AFD4
+ bl ErrorHandling
+_0202AFD4:
+ ldr r0, _0202AFF8 ; =0x021C59D4
+ sub r1, r4, #0x1
+ ldr r0, [r0, #0x0]
+ bl FUN_0202AE28
+ cmp r0, #0x1
+ bne _0202AFF4
+ ldr r0, _0202AFF8 ; =0x021C59D4
+ sub r1, r4, #0x1
+ ldr r0, [r0, #0x0]
+ bl FUN_0202AC2C
+ cmp r0, #0x0
+ beq _0202AFF4
+ ldrh r0, [r0, #0x0]
+ pop {r4, pc}
+_0202AFF4:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+_0202AFF8: .word 0x021C59D4
+
+ thumb_func_start FUN_0202AFFC
+FUN_0202AFFC: ; 0x0202AFFC
+ cmp r0, #0x0
+ beq _0202B016
+ ldr r1, _0202B01C ; =0x021C59D4
+ ldr r2, [r1, #0x0]
+ mov r1, #0x13
+ lsl r1, r1, #0x4
+ add r2, r2, r1
+ sub r1, r0, #0x1
+ lsl r0, r1, #0x6
+ add r0, r1, r0
+ lsl r0, r0, #0x2
+ add r0, r2, r0
+ bx lr
+_0202B016:
+ mov r0, #0x0
+ bx lr
+ nop
+_0202B01C: .word 0x021C59D4
+
+ thumb_func_start FUN_0202B020
+FUN_0202B020: ; 0x0202B020
+ add r1, r0, #0x0
+ ldr r0, _0202B02C ; =0x021C59D4
+ ldr r3, _0202B030 ; =FUN_0202AD94
+ ldr r0, [r0, #0x0]
+ bx r3
+ nop
+_0202B02C: .word 0x021C59D4
+_0202B030: .word FUN_0202AD94
+
+ thumb_func_start FUN_0202B034
+FUN_0202B034: ; 0x0202B034
+ ldr r0, _0202B038 ; =0x00002AB0
+ bx lr
+ .balign 4
+_0202B038: .word 0x00002AB0
+
+ thumb_func_start FUN_0202B03C
+FUN_0202B03C: ; 0x0202B03C
+ ldr r3, _0202B048 ; =MIi_CpuClear32
+ add r1, r0, #0x0
+ mov r0, #0x0
+ ldr r2, _0202B04C ; =0x00002AB0
+ bx r3
+ nop
+_0202B048: .word MIi_CpuClear32
+_0202B04C: .word 0x00002AB0
+
+ thumb_func_start FUN_0202B050
+FUN_0202B050: ; 0x0202B050
+ push {r3-r7, lr}
+ sub sp, #0x18
+ str r0, [sp, #0x0]
+ str r1, [sp, #0x4]
+ str r2, [sp, #0x8]
+ cmp r0, #0x0
+ bne _0202B062
+ bl ErrorHandling
+_0202B062:
+ ldr r1, _0202B1E0 ; =0x00002AA8
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, r1]
+ cmp r0, #0x1e
+ blo _0202B070
+ bl ErrorHandling
+_0202B070:
+ ldr r1, _0202B1E4 ; =0x00002AAC
+ ldr r0, [sp, #0x0]
+ ldr r2, [r0, r1]
+ ldr r0, _0202B1E8 ; =0x0000270F
+ cmp r2, r0
+ blo _0202B07E
+ b _0202B1DC
+_0202B07E:
+ ldr r0, [sp, #0x0]
+ sub r1, r1, #0x4
+ ldr r1, [r0, r1]
+ mov r0, #0x5b
+ lsl r0, r0, #0x2
+ add r2, r1, #0x0
+ mul r2, r0
+ ldr r0, [sp, #0x0]
+ add r0, r0, r2
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x4]
+ bl FUN_0206B9AC
+ str r0, [sp, #0x10]
+ mov r0, #0xb
+ mov r1, #0x0
+ bl FUN_020219F4
+ mov r2, #0x5a
+ add r6, r0, #0x0
+ ldr r1, [sp, #0x14]
+ mov r0, #0x0
+ lsl r2, r2, #0x2
+ bl MIi_CpuClear16
+ ldr r0, [sp, #0x10]
+ mov r7, #0x0
+ cmp r0, #0x0
+ ble _0202B18E
+ ldr r5, [sp, #0x14]
+_0202B0BA:
+ ldr r0, [sp, #0x4]
+ add r1, r7, #0x0
+ bl FUN_0206B9B0
+ add r4, r0, #0x0
+ bl FUN_020669D4
+ str r0, [sp, #0xc]
+ add r0, r4, #0x0
+ mov r1, #0x4c
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ bne _0202B17E
+ add r0, r4, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020671BC
+ strh r0, [r5, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0xa0
+ mov r2, #0x0
+ bl FUN_020671BC
+ strb r0, [r5, #0x2]
+ add r0, r4, #0x0
+ mov r1, #0x70
+ mov r2, #0x0
+ bl FUN_020671BC
+ mov r1, #0x0
+ strb r0, [r5, #0x3]
+ add r0, r4, #0x0
+ add r2, r1, #0x0
+ bl FUN_020671BC
+ str r0, [r5, #0x4]
+ add r0, r4, #0x0
+ mov r1, #0x7
+ mov r2, #0x0
+ bl FUN_020671BC
+ str r0, [r5, #0x8]
+ add r0, r4, #0x0
+ mov r1, #0x36
+ mov r2, #0x0
+ bl FUN_020671BC
+ strh r0, [r5, #0x32]
+ add r0, r4, #0x0
+ mov r1, #0x37
+ mov r2, #0x0
+ bl FUN_020671BC
+ strh r0, [r5, #0x34]
+ add r0, r4, #0x0
+ mov r1, #0x38
+ mov r2, #0x0
+ bl FUN_020671BC
+ strh r0, [r5, #0x36]
+ add r0, r4, #0x0
+ mov r1, #0x39
+ mov r2, #0x0
+ bl FUN_020671BC
+ strh r0, [r5, #0x38]
+ cmp r6, #0x0
+ beq _0202B176
+ add r0, r4, #0x0
+ mov r1, #0x76
+ add r2, r6, #0x0
+ bl FUN_020671BC
+ add r1, r5, #0x0
+ add r0, r6, #0x0
+ add r1, #0xc
+ mov r2, #0xb
+ bl FUN_02021EF0
+ add r0, r4, #0x0
+ mov r1, #0x90
+ add r2, r6, #0x0
+ bl FUN_020671BC
+ add r1, r5, #0x0
+ add r0, r6, #0x0
+ add r1, #0x22
+ mov r2, #0x8
+ bl FUN_02021EF0
+ b _0202B17C
+_0202B176:
+ ldr r0, _0202B1EC ; =0x0000FFFF
+ strh r0, [r5, #0xc]
+ strh r0, [r5, #0x22]
+_0202B17C:
+ add r5, #0x3c
+_0202B17E:
+ ldr r1, [sp, #0xc]
+ add r0, r4, #0x0
+ bl FUN_02066A20
+ ldr r0, [sp, #0x10]
+ add r7, r7, #0x1
+ cmp r7, r0
+ blt _0202B0BA
+_0202B18E:
+ ldr r0, [sp, #0x8]
+ mov r1, #0x5a
+ ldr r2, [r0, #0x0]
+ ldr r0, [sp, #0x14]
+ lsl r1, r1, #0x2
+ strh r2, [r0, r1]
+ ldr r0, [sp, #0x8]
+ add r2, r1, #0x2
+ ldr r3, [r0, #0x4]
+ ldr r0, [sp, #0x14]
+ add r1, r1, #0x3
+ strb r3, [r0, r2]
+ ldr r0, [sp, #0x8]
+ ldr r2, [r0, #0x8]
+ ldr r0, [sp, #0x14]
+ strb r2, [r0, r1]
+ ldr r1, _0202B1E0 ; =0x00002AA8
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, r1]
+ add r2, r0, #0x1
+ ldr r0, [sp, #0x0]
+ str r2, [r0, r1]
+ ldr r0, [r0, r1]
+ cmp r0, #0x1e
+ blo _0202B1C6
+ ldr r0, [sp, #0x0]
+ mov r2, #0x0
+ str r2, [r0, r1]
+_0202B1C6:
+ ldr r1, _0202B1E4 ; =0x00002AAC
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, r1]
+ add r2, r0, #0x1
+ ldr r0, [sp, #0x0]
+ cmp r6, #0x0
+ str r2, [r0, r1]
+ beq _0202B1DC
+ add r0, r6, #0x0
+ bl FUN_02021A20
+_0202B1DC:
+ add sp, #0x18
+ pop {r3-r7, pc}
+ .balign 4
+_0202B1E0: .word 0x00002AA8
+_0202B1E4: .word 0x00002AAC
+_0202B1E8: .word 0x0000270F
+_0202B1EC: .word 0x0000FFFF
+
+ thumb_func_start FUN_0202B1F0
+FUN_0202B1F0: ; 0x0202B1F0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _0202B1FA
+ bl ErrorHandling
+_0202B1FA:
+ ldr r0, _0202B214 ; =0x00002AA8
+ ldr r0, [r4, r0]
+ cmp r0, #0x1e
+ blo _0202B206
+ bl ErrorHandling
+_0202B206:
+ ldr r0, _0202B218 ; =0x00002AAC
+ ldr r0, [r4, r0]
+ cmp r0, #0x1e
+ blo _0202B210
+ mov r0, #0x1e
+_0202B210:
+ pop {r4, pc}
+ nop
+_0202B214: .word 0x00002AA8
+_0202B218: .word 0x00002AAC
+
+ thumb_func_start FUN_0202B21C
+FUN_0202B21C: ; 0x0202B21C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _0202B22A
+ bl ErrorHandling
+_0202B22A:
+ ldr r0, _0202B248 ; =0x00002AA8
+ ldr r0, [r5, r0]
+ cmp r0, #0x1e
+ blo _0202B236
+ bl ErrorHandling
+_0202B236:
+ cmp r4, #0x1e
+ blt _0202B23E
+ bl ErrorHandling
+_0202B23E:
+ ldr r0, _0202B24C ; =0x00002AAC
+ ldr r0, [r5, r0]
+ sub r0, r0, r4
+ pop {r3-r5, pc}
+ nop
+_0202B248: .word 0x00002AA8
+_0202B24C: .word 0x00002AAC
+
+ thumb_func_start FUN_0202B250
+FUN_0202B250: ; 0x0202B250
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ cmp r5, #0x0
+ bne _0202B25E
+ bl ErrorHandling
+_0202B25E:
+ ldr r0, _0202B298 ; =0x00002AA8
+ ldr r0, [r5, r0]
+ cmp r0, #0x1e
+ blo _0202B26A
+ bl ErrorHandling
+_0202B26A:
+ cmp r4, #0x1e
+ blt _0202B272
+ bl ErrorHandling
+_0202B272:
+ ldr r0, _0202B298 ; =0x00002AA8
+ ldr r0, [r5, r0]
+ sub r0, r0, #0x1
+ sub r2, r0, r4
+ bpl _0202B27E
+ add r2, #0x1e
+_0202B27E:
+ mov r1, #0x5b
+ lsl r1, r1, #0x2
+ mul r1, r2
+ mov r0, #0x0
+ add r2, r5, r1
+_0202B288:
+ ldrh r1, [r2, #0x0]
+ cmp r1, #0x0
+ beq _0202B296
+ add r0, r0, #0x1
+ add r2, #0x3c
+ cmp r0, #0x6
+ blo _0202B288
+_0202B296:
+ pop {r3-r5, pc}
+ .balign 4
+_0202B298: .word 0x00002AA8
+
+ thumb_func_start FUN_0202B29C
+FUN_0202B29C: ; 0x0202B29C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ add r4, r3, #0x0
+ cmp r5, #0x0
+ bne _0202B2AE
+ bl ErrorHandling
+_0202B2AE:
+ ldr r0, _0202B318 ; =0x00002AA8
+ ldr r0, [r5, r0]
+ cmp r0, #0x1e
+ blo _0202B2BA
+ bl ErrorHandling
+_0202B2BA:
+ cmp r6, #0x1e
+ blt _0202B2C2
+ bl ErrorHandling
+_0202B2C2:
+ ldr r0, _0202B318 ; =0x00002AA8
+ ldr r0, [r5, r0]
+ sub r0, r0, #0x1
+ sub r1, r0, r6
+ bpl _0202B2CE
+ add r1, #0x1e
+_0202B2CE:
+ mov r0, #0x5b
+ lsl r0, r0, #0x2
+ mul r0, r1
+ add r1, r5, r0
+ mov r0, #0x3c
+ mul r0, r7
+ add r5, r1, r0
+ ldrh r0, [r1, r0]
+ add r1, r5, #0x0
+ add r1, #0xc
+ strh r0, [r4, #0x10]
+ ldrb r0, [r5, #0x2]
+ strb r0, [r4, #0x12]
+ ldr r0, [r5, #0x4]
+ str r0, [r4, #0x8]
+ ldr r0, [r5, #0x8]
+ str r0, [r4, #0xc]
+ ldrb r0, [r5, #0x3]
+ strb r0, [r4, #0x13]
+ ldr r0, [r4, #0x0]
+ bl FUN_02021E28
+ add r1, r5, #0x0
+ ldr r0, [r4, #0x4]
+ add r1, #0x22
+ bl FUN_02021E28
+ mov r1, #0x0
+_0202B306:
+ ldrh r0, [r5, #0x32]
+ add r1, r1, #0x1
+ add r5, r5, #0x2
+ strh r0, [r4, #0x14]
+ add r4, r4, #0x2
+ cmp r1, #0x4
+ blt _0202B306
+ pop {r3-r7, pc}
+ nop
+_0202B318: .word 0x00002AA8
+
+ thumb_func_start FUN_0202B31C
+FUN_0202B31C: ; 0x0202B31C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r4, r2, #0x0
+ cmp r5, #0x0
+ bne _0202B32C
+ bl ErrorHandling
+_0202B32C:
+ ldr r0, _0202B370 ; =0x00002AA8
+ ldr r0, [r5, r0]
+ cmp r0, #0x1e
+ blo _0202B338
+ bl ErrorHandling
+_0202B338:
+ cmp r6, #0x1e
+ blt _0202B340
+ bl ErrorHandling
+_0202B340:
+ ldr r0, _0202B370 ; =0x00002AA8
+ ldr r0, [r5, r0]
+ sub r0, r0, #0x1
+ sub r2, r0, r6
+ bpl _0202B34C
+ add r2, #0x1e
+_0202B34C:
+ mov r0, #0x5b
+ lsl r0, r0, #0x2
+ add r1, r2, #0x0
+ mul r1, r0
+ add r2, r5, r1
+ sub r1, r0, #0x4
+ ldrh r1, [r2, r1]
+ str r1, [r4, #0x0]
+ sub r1, r0, #0x2
+ ldrb r1, [r2, r1]
+ sub r0, r0, #0x1
+ str r1, [r4, #0x4]
+ ldrb r0, [r2, r0]
+ str r0, [r4, #0x8]
+ mov r0, #0x0
+ str r0, [r4, #0xc]
+ pop {r4-r6, pc}
+ nop
+_0202B370: .word 0x00002AA8
+
+ thumb_func_start FUN_0202B374
+FUN_0202B374: ; 0x0202B374
+ ldr r0, _0202B378 ; =0x00000B88
+ bx lr
+ .balign 4
+_0202B378: .word 0x00000B88
+
+ thumb_func_start FUN_0202B37C
+FUN_0202B37C: ; 0x0202B37C
+ ldr r3, _0202B388 ; =MIi_CpuClearFast
+ add r1, r0, #0x0
+ mov r0, #0x0
+ ldr r2, _0202B38C ; =0x00000B88
+ bx r3
+ nop
+_0202B388: .word MIi_CpuClearFast
+_0202B38C: .word 0x00000B88
+
+ thumb_func_start FUN_0202B390
+FUN_0202B390: ; 0x0202B390
+ push {r4, lr}
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ mov r0, #0x0
+ add r1, #0xc
+ mov r2, #0xc0
+ bl MIi_CpuClearFast
+ add r1, r4, #0x0
+ mov r0, #0x0
+ add r1, #0xcc
+ mov r2, #0xc0
+ bl MIi_CpuClearFast
+ mov r1, #0x63
+ lsl r1, r1, #0x2
+ mov r0, #0x0
+ add r1, r4, r1
+ mov r2, #0xc0
+ bl MIi_CpuClearFast
+ add r0, r4, #0x0
+ bl FUN_0202B3F8
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202B3C4
+FUN_0202B3C4: ; 0x0202B3C4
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x4]
+ cmp r0, r1
+ ble _0202B3D4
+ sub r0, r0, r1
+ str r0, [r4, #0x4]
+ pop {r4, pc}
+_0202B3D4:
+ add r0, r2, #0x0
+ mov r1, #0xf
+ bl _s32_div_f
+ mov r0, #0xf
+ sub r1, r0, r1
+ str r1, [r4, #0x4]
+ bne _0202B3E6
+ str r0, [r4, #0x4]
+_0202B3E6:
+ mov r1, #0x0
+ strb r1, [r4, #0x8]
+ add r0, r1, #0x0
+_0202B3EC:
+ strb r0, [r4, r1]
+ add r1, r1, #0x1
+ cmp r1, #0x4
+ blt _0202B3EC
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202B3F8
+FUN_0202B3F8: ; 0x0202B3F8
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r1, #0x0
+ bl FUN_0202B40C
+ add r0, r4, #0x0
+ bl FUN_0202B430
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202B40C
+FUN_0202B40C: ; 0x0202B40C
+ strb r1, [r0, #0x8]
+ bx lr
+
+ thumb_func_start FUN_0202B410
+FUN_0202B410: ; 0x0202B410
+ ldrb r0, [r0, #0x8]
+ bx lr
+
+ thumb_func_start FUN_0202B414
+FUN_0202B414: ; 0x0202B414
+ push {r3, lr}
+ mov r3, #0x0
+_0202B418:
+ ldrb r2, [r0, r3]
+ cmp r2, #0x0
+ bne _0202B422
+ strb r1, [r0, r3]
+ pop {r3, pc}
+_0202B422:
+ add r3, r3, #0x1
+ cmp r3, #0x4
+ blt _0202B418
+ bl ErrorHandling
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202B430
+FUN_0202B430: ; 0x0202B430
+ mov r2, #0x0
+ add r1, r2, #0x0
+_0202B434:
+ strb r1, [r0, r2]
+ add r2, r2, #0x1
+ cmp r2, #0x4
+ blt _0202B434
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202B440
+FUN_0202B440: ; 0x0202B440
+ mov r3, #0x0
+_0202B442:
+ ldrb r2, [r0, r3]
+ cmp r1, r2
+ bne _0202B44C
+ mov r0, #0x1
+ bx lr
+_0202B44C:
+ add r3, r3, #0x1
+ cmp r3, #0x4
+ blt _0202B442
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202B458
+FUN_0202B458: ; 0x0202B458
+ mov r2, #0x0
+ add r3, r2, #0x0
+_0202B45C:
+ ldrb r1, [r0, r2]
+ cmp r1, #0x0
+ beq _0202B464
+ add r3, r3, #0x1
+_0202B464:
+ add r2, r2, #0x1
+ cmp r2, #0x4
+ blt _0202B45C
+ add r0, r3, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202B470
+FUN_0202B470: ; 0x0202B470
+ push {r4-r6, lr}
+ sub sp, #0x10
+ add r5, r0, #0x0
+ add r0, sp, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_020126B4
+ ldr r0, [sp, #0x8]
+ ldr r3, [sp, #0x4]
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x10
+ ldr r0, [sp, #0x0]
+ lsl r3, r3, #0x18
+ lsl r0, r0, #0x18
+ lsr r3, r3, #0x8
+ orr r0, r3
+ ldr r2, [sp, #0xc]
+ orr r0, r1
+ orr r0, r2
+ str r0, [r5, #0x4]
+ strb r4, [r5, #0x0]
+ mov r0, #0x0
+ strb r0, [r5, #0x1]
+ add r5, #0x8
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ mov r2, #0x28
+ bl MIi_CpuCopyFast
+ add sp, #0x10
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0202B4B0
+FUN_0202B4B0: ; 0x0202B4B0
+ push {r3-r5, lr}
+ add r5, r2, #0x0
+ add r4, r3, #0x0
+ bl FUN_0202B548
+ mov r2, #0x0
+ add r3, r0, #0x0
+_0202B4BE:
+ ldrb r1, [r3, #0x0]
+ cmp r5, r1
+ bne _0202B4E0
+ mov r1, #0x30
+ mul r1, r2
+ add r0, r0, r1
+ ldrb r1, [r0, #0x1]
+ cmp r1, #0x3
+ blo _0202B4DC
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_0202B470
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0202B4DC:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0202B4E0:
+ add r2, r2, #0x1
+ add r3, #0x30
+ cmp r2, #0x4
+ blt _0202B4BE
+ mov r1, #0x0
+ add r3, r0, #0x0
+_0202B4EC:
+ ldrb r2, [r3, #0x0]
+ cmp r2, #0x0
+ bne _0202B504
+ mov r2, #0x30
+ mul r2, r1
+ add r0, r0, r2
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_0202B470
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0202B504:
+ add r1, r1, #0x1
+ add r3, #0x30
+ cmp r1, #0x4
+ blt _0202B4EC
+ mov r1, #0x0
+ add r3, r0, #0x0
+_0202B510:
+ ldrb r2, [r3, #0x1]
+ cmp r2, #0x3
+ blo _0202B528
+ mov r2, #0x30
+ mul r2, r1
+ add r0, r0, r2
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_0202B470
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0202B528:
+ add r1, r1, #0x1
+ add r3, #0x30
+ cmp r1, #0x4
+ blt _0202B510
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0202B534
+FUN_0202B534: ; 0x0202B534
+ add r0, #0x8
+ bx lr
+
+ thumb_func_start FUN_0202B538
+FUN_0202B538: ; 0x0202B538
+ ldrb r0, [r0, #0x6]
+ bx lr
+
+ thumb_func_start FUN_0202B53C
+FUN_0202B53C: ; 0x0202B53C
+ ldrb r0, [r0, #0x5]
+ bx lr
+
+ thumb_func_start FUN_0202B540
+FUN_0202B540: ; 0x0202B540
+ add r0, #0x18
+ bx lr
+
+ thumb_func_start FUN_0202B544
+FUN_0202B544: ; 0x0202B544
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202B548
+FUN_0202B548: ; 0x0202B548
+ push {r4, lr}
+ mov r4, #0x0
+ cmp r1, #0x4
+ bhi _0202B57E
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0202B55C: ; jump table (using 16-bit offset)
+ .short _0202B57E - _0202B55C - 2; case 0
+ .short _0202B566 - _0202B55C - 2; case 1
+ .short _0202B56E - _0202B55C - 2; case 2
+ .short _0202B574 - _0202B55C - 2; case 3
+ .short _0202B57A - _0202B55C - 2; case 4
+_0202B566:
+ mov r1, #0x63
+ lsl r1, r1, #0x2
+ add r4, r0, r1
+ b _0202B57E
+_0202B56E:
+ add r4, r0, #0x0
+ add r4, #0xc
+ b _0202B57E
+_0202B574:
+ add r4, r0, #0x0
+ add r4, #0xcc
+ b _0202B57E
+_0202B57A:
+ bl ErrorHandling
+_0202B57E:
+ add r0, r4, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202B584
+FUN_0202B584: ; 0x0202B584
+ push {r4, lr}
+ mov r4, #0x0
+ cmp r1, #0x4
+ bhi _0202B5BA
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0202B598: ; jump table (using 16-bit offset)
+ .short _0202B5BA - _0202B598 - 2; case 0
+ .short _0202B5B0 - _0202B598 - 2; case 1
+ .short _0202B5A2 - _0202B598 - 2; case 2
+ .short _0202B5AA - _0202B598 - 2; case 3
+ .short _0202B5B6 - _0202B598 - 2; case 4
+_0202B5A2:
+ mov r1, #0x93
+ lsl r1, r1, #0x2
+ add r4, r0, r1
+ b _0202B5BA
+_0202B5AA:
+ ldr r1, _0202B5C0 ; =0x000006CC
+ add r4, r0, r1
+ b _0202B5BA
+_0202B5B0:
+ ldr r1, _0202B5C4 ; =0x0000090C
+ add r4, r0, r1
+ b _0202B5BA
+_0202B5B6:
+ bl ErrorHandling
+_0202B5BA:
+ add r0, r4, #0x0
+ pop {r4, pc}
+ nop
+_0202B5C0: .word 0x000006CC
+_0202B5C4: .word 0x0000090C
+
+ thumb_func_start FUN_0202B5C8
+FUN_0202B5C8: ; 0x0202B5C8
+ ldrb r0, [r0, #0x0]
+ bx lr
+
+ thumb_func_start FUN_0202B5CC
+FUN_0202B5CC: ; 0x0202B5CC
+ ldrb r1, [r0, #0x1]
+ cmp r1, #0x3
+ bhs _0202B5D6
+ add r1, r1, #0x1
+ strb r1, [r0, #0x1]
+_0202B5D6:
+ bx lr
+
+ thumb_func_start FUN_0202B5D8
+FUN_0202B5D8: ; 0x0202B5D8
+ add r0, #0x8
+ bx lr
+
+ thumb_func_start FUN_0202B5DC
+FUN_0202B5DC: ; 0x0202B5DC
+ push {r4-r7}
+ mov r5, #0x0
+ add r4, r5, #0x0
+ ldr r6, [sp, #0x10]
+ cmp r1, #0x0
+ ble _0202B616
+_0202B5E8:
+ ldrb r7, [r0, #0x0]
+ cmp r2, r7
+ bne _0202B60E
+ ldrb r7, [r0, #0x1]
+ cmp r3, #0x0
+ beq _0202B600
+ cmp r7, #0x0
+ beq _0202B600
+ add r7, r4, #0x1
+ strb r7, [r6, r5]
+ add r5, r5, #0x1
+ b _0202B60E
+_0202B600:
+ cmp r3, #0x0
+ bne _0202B60E
+ cmp r7, #0x0
+ bne _0202B60E
+ add r7, r4, #0x1
+ strb r7, [r6, r5]
+ add r5, r5, #0x1
+_0202B60E:
+ add r4, r4, #0x1
+ add r0, #0x30
+ cmp r4, r1
+ blt _0202B5E8
+_0202B616:
+ add r0, r5, #0x0
+ pop {r4-r7}
+ bx lr
+
+ thumb_func_start FUN_0202B61C
+FUN_0202B61C: ; 0x0202B61C
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r6, r0, #0x0
+ mov r5, #0x0
+ add r0, r1, #0x0
+ add r4, r5, #0x0
+ str r1, [sp, #0x0]
+ str r2, [sp, #0x4]
+ str r3, [sp, #0x8]
+ ldr r7, [sp, #0x20]
+ cmp r0, #0x0
+ ble _0202B672
+_0202B634:
+ ldrb r2, [r6, #0x18]
+ ldr r1, [sp, #0x4]
+ ldrb r0, [r6, #0x19]
+ cmp r1, r2
+ bne _0202B668
+ ldr r1, [sp, #0x8]
+ cmp r1, #0x0
+ beq _0202B654
+ cmp r0, #0x0
+ beq _0202B654
+ add r0, r4, #0x1
+ bl FUN_0202B830
+ strb r0, [r7, r5]
+ add r5, r5, #0x1
+ b _0202B668
+_0202B654:
+ ldr r1, [sp, #0x8]
+ cmp r1, #0x0
+ bne _0202B668
+ cmp r0, #0x0
+ bne _0202B668
+ add r0, r4, #0x1
+ bl FUN_0202B830
+ strb r0, [r7, r5]
+ add r5, r5, #0x1
+_0202B668:
+ ldr r0, [sp, #0x0]
+ add r4, r4, #0x1
+ add r6, #0x48
+ cmp r4, r0
+ blt _0202B634
+_0202B672:
+ add r0, r5, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0202B678
+FUN_0202B678: ; 0x0202B678
+ push {r3-r5, lr}
+ ldr r5, [sp, #0x10]
+ ldr r4, [sp, #0x14]
+ cmp r1, #0x4
+ bhi _0202B702
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0202B68E: ; jump table (using 16-bit offset)
+ .short _0202B702 - _0202B68E - 2; case 0
+ .short _0202B6DA - _0202B68E - 2; case 1
+ .short _0202B698 - _0202B68E - 2; case 2
+ .short _0202B6BA - _0202B68E - 2; case 3
+ .short _0202B6FE - _0202B68E - 2; case 4
+_0202B698:
+ cmp r3, #0x0
+ str r4, [sp, #0x0]
+ beq _0202B6AA
+ add r0, #0xc
+ mov r1, #0x4
+ add r3, r5, #0x0
+ bl FUN_0202B5DC
+ pop {r3-r5, pc}
+_0202B6AA:
+ mov r1, #0x93
+ lsl r1, r1, #0x2
+ add r0, r0, r1
+ mov r1, #0x10
+ add r3, r5, #0x0
+ bl FUN_0202B61C
+ pop {r3-r5, pc}
+_0202B6BA:
+ cmp r3, #0x0
+ str r4, [sp, #0x0]
+ beq _0202B6CC
+ add r0, #0xcc
+ mov r1, #0x4
+ add r3, r5, #0x0
+ bl FUN_0202B5DC
+ pop {r3-r5, pc}
+_0202B6CC:
+ ldr r1, _0202B708 ; =0x000006CC
+ add r3, r5, #0x0
+ add r0, r0, r1
+ mov r1, #0x8
+ bl FUN_0202B61C
+ pop {r3-r5, pc}
+_0202B6DA:
+ cmp r3, #0x0
+ str r4, [sp, #0x0]
+ beq _0202B6F0
+ mov r1, #0x63
+ lsl r1, r1, #0x2
+ add r0, r0, r1
+ mov r1, #0x4
+ add r3, r5, #0x0
+ bl FUN_0202B5DC
+ pop {r3-r5, pc}
+_0202B6F0:
+ ldr r1, _0202B70C ; =0x0000090C
+ add r3, r5, #0x0
+ add r0, r0, r1
+ mov r1, #0x8
+ bl FUN_0202B61C
+ pop {r3-r5, pc}
+_0202B6FE:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0202B702:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ nop
+_0202B708: .word 0x000006CC
+_0202B70C: .word 0x0000090C
+
+ thumb_func_start FUN_0202B710
+FUN_0202B710: ; 0x0202B710
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r4, r0, #0x0
+ add r6, r1, #0x0
+ add r5, r2, #0x0
+ add r0, sp, #0x8
+ mov r1, #0x0
+ mov r2, #0x4
+ bl MI_CpuFill8
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ add r0, sp, #0x8
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ mov r3, #0x1
+ bl FUN_0202B678
+ cmp r0, #0x0
+ beq _0202B742
+ add sp, #0xc
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_0202B742:
+ mov r3, #0x1
+ str r3, [sp, #0x0]
+ add r0, sp, #0x8
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ bl FUN_0202B678
+ cmp r0, #0x0
+ beq _0202B79E
+ add r0, sp, #0x8
+ ldrb r0, [r0, #0x0]
+ mov r7, #0x0
+ cmp r0, #0x0
+ beq _0202B798
+ add r5, sp, #0x8
+_0202B764:
+ ldrb r2, [r5, #0x0]
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ bl FUN_0202B7C8
+ ldrb r0, [r0, #0x1]
+ cmp r0, #0x3
+ blo _0202B77A
+ add sp, #0xc
+ mov r0, #0x1
+ pop {r4-r7, pc}
+_0202B77A:
+ add r7, r7, #0x1
+ add r5, r5, #0x1
+ cmp r7, #0x4
+ bge _0202B786
+ mov r1, #0x1
+ b _0202B788
+_0202B786:
+ mov r1, #0x0
+_0202B788:
+ ldrb r0, [r5, #0x0]
+ cmp r0, #0x0
+ beq _0202B792
+ mov r0, #0x1
+ b _0202B794
+_0202B792:
+ mov r0, #0x0
+_0202B794:
+ tst r0, r1
+ bne _0202B764
+_0202B798:
+ add sp, #0xc
+ mov r0, #0x0
+ pop {r4-r7, pc}
+_0202B79E:
+ mov r5, #0x1
+_0202B7A0:
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ bl FUN_0202B7C8
+ ldrb r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _0202B7B6
+ ldrb r0, [r0, #0x1]
+ cmp r0, #0x3
+ blo _0202B7BC
+_0202B7B6:
+ add sp, #0xc
+ mov r0, #0x1
+ pop {r4-r7, pc}
+_0202B7BC:
+ add r5, r5, #0x1
+ cmp r5, #0x4
+ ble _0202B7A0
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0202B7C8
+FUN_0202B7C8: ; 0x0202B7C8
+ push {r4-r6, lr}
+ add r4, r2, #0x0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ add r6, r1, #0x0
+ bl FUN_0202B820
+ cmp r0, #0x1
+ beq _0202B7DE
+ bl ErrorHandling
+_0202B7DE:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_0202B548
+ mov r1, #0x80
+ bic r4, r1
+ sub r2, r4, #0x1
+ mov r1, #0x30
+ mul r1, r2
+ add r0, r0, r1
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0202B7F4
+FUN_0202B7F4: ; 0x0202B7F4
+ push {r4-r6, lr}
+ add r4, r2, #0x0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ add r6, r1, #0x0
+ bl FUN_0202B820
+ cmp r0, #0x0
+ beq _0202B80A
+ bl ErrorHandling
+_0202B80A:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_0202B584
+ mov r1, #0x80
+ bic r4, r1
+ sub r2, r4, #0x1
+ mov r1, #0x48
+ mul r1, r2
+ add r0, r0, r1
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0202B820
+FUN_0202B820: ; 0x0202B820
+ mov r1, #0x80
+ tst r0, r1
+ bne _0202B82A
+ mov r0, #0x1
+ bx lr
+_0202B82A:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202B830
+FUN_0202B830: ; 0x0202B830
+ mov r1, #0x80
+ orr r0, r1
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202B838
+FUN_0202B838: ; 0x0202B838
+ ldr r1, _0202B840 ; =0x00000B4C
+ add r0, r0, r1
+ bx lr
+ nop
+_0202B840: .word 0x00000B4C
+
+ thumb_func_start FUN_0202B844
+FUN_0202B844: ; 0x0202B844
+ ldr r1, _0202B84C ; =0x00000B56
+ add r0, r0, r1
+ bx lr
+ nop
+_0202B84C: .word 0x00000B56
+
+ thumb_func_start FUN_0202B850
+FUN_0202B850: ; 0x0202B850
+ ldr r1, _0202B858 ; =0x00000B7A
+ add r0, r0, r1
+ bx lr
+ nop
+_0202B858: .word 0x00000B7A
+
+ thumb_func_start FUN_0202B85C
+FUN_0202B85C: ; 0x0202B85C
+ ldr r1, _0202B864 ; =0x00000B7C
+ add r0, r0, r1
+ bx lr
+ nop
+_0202B864: .word 0x00000B7C
+
+ thumb_func_start FUN_0202B868
+FUN_0202B868: ; 0x0202B868
+ mov r1, #0x2e
+ lsl r1, r1, #0x6
+ add r0, r0, r1
+ bx lr
+
+ thumb_func_start FUN_0202B870
+FUN_0202B870: ; 0x0202B870
+ lsl r1, r0, #0x1
+ ldr r0, _0202B878 ; =0x020EEAC8
+ ldrb r0, [r0, r1]
+ bx lr
+ .balign 4
+_0202B878: .word 0x020EEAC8
+
+ thumb_func_start FUN_0202B87C
+FUN_0202B87C: ; 0x0202B87C
+ lsl r1, r0, #0x1
+ ldr r0, _0202B884 ; =0x020EEAC9
+ ldrb r0, [r0, r1]
+ bx lr
+ .balign 4
+_0202B884: .word 0x020EEAC9
+
+ thumb_func_start FUN_0202B888
+FUN_0202B888: ; 0x0202B888
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ str r1, [r0, #0x4]
+ ldr r3, _0202B898 ; =StringFillEOS
+ add r0, #0x8
+ mov r1, #0x8
+ bx r3
+ nop
+_0202B898: .word StringFillEOS
+
+ thumb_func_start FUN_0202B89C
+FUN_0202B89C: ; 0x0202B89C
+ push {r3, lr}
+ add r0, #0x8
+ bl StringLength
+ cmp r0, #0x0
+ beq _0202B8AC
+ mov r0, #0x1
+ pop {r3, pc}
+_0202B8AC:
+ mov r0, #0x0
+ pop {r3, pc}
+
+ thumb_func_start FUN_0202B8B0
+FUN_0202B8B0: ; 0x0202B8B0
+ mov r0, #0xea
+ lsl r0, r0, #0x4
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202B8B8
+FUN_0202B8B8: ; 0x0202B8B8
+ push {r3-r7, lr}
+ mov r2, #0xea
+ mov r1, #0x0
+ lsl r2, r2, #0x4
+ add r6, r0, #0x0
+ bl MI_CpuFill8
+ mov r7, #0x0
+_0202B8C8:
+ mov r4, #0x0
+ add r5, r6, #0x0
+_0202B8CC:
+ add r0, r5, #0x0
+ bl FUN_0202B888
+ add r4, r4, #0x1
+ add r5, #0x18
+ cmp r4, #0x6
+ blt _0202B8CC
+ add r7, r7, #0x1
+ add r6, #0x90
+ cmp r7, #0x1a
+ blt _0202B8C8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0202B8E4
+FUN_0202B8E4: ; 0x0202B8E4
+ ldr r3, _0202B8EC ; =FUN_02022610
+ mov r1, #0x1c
+ bx r3
+ nop
+_0202B8EC: .word FUN_02022610
+
+ thumb_func_start FUN_0202B8F0
+FUN_0202B8F0: ; 0x0202B8F0
+ push {r4-r6, lr}
+ cmp r2, #0x6
+ blo _0202B8FE
+ blo _0202B930
+ bl ErrorHandling
+ pop {r4-r6, pc}
+_0202B8FE:
+ mov r3, #0x90
+ mul r3, r1
+ add r3, r0, r3
+ cmp r2, #0x5
+ bge _0202B928
+ mov r0, #0x18
+ mul r0, r2
+ add r6, r3, r0
+_0202B90E:
+ add r5, r6, #0x0
+ add r5, #0x18
+ add r4, r6, #0x0
+ ldmia r5!, {r0-r1}
+ stmia r4!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r4!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ add r2, r2, #0x1
+ add r6, #0x18
+ stmia r4!, {r0-r1}
+ cmp r2, #0x5
+ blt _0202B90E
+_0202B928:
+ add r3, #0x78
+ add r0, r3, #0x0
+ bl FUN_0202B888
+_0202B930:
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202B934
+FUN_0202B934: ; 0x0202B934
+ mov r0, #0x4e
+ lsl r0, r0, #0x2
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202B93C
+FUN_0202B93C: ; 0x0202B93C
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r1, #0x0
+ bl FUN_02029FC8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x34
+ bl FUN_020169D8
+ str r0, [sp, #0x4]
+ add r5, r0, #0x0
+ ldr r0, _0202B9E8 ; =0x020EEAD0
+ mov r6, #0x0
+ str r0, [sp, #0x0]
+_0202B95A:
+ cmp r6, #0x5
+ beq _0202B968
+ cmp r6, #0xa
+ beq _0202B988
+ cmp r6, #0xb
+ beq _0202B9A0
+ b _0202B9C8
+_0202B968:
+ add r0, r4, #0x0
+ mov r1, #0xf
+ bl FUN_0202A150
+ add r7, r0, #0x0
+ beq _0202B984
+ add r0, r4, #0x0
+ mov r1, #0x1d
+ bl FUN_0202A150
+ add r1, r7, #0x0
+ bl _u32_div_f
+ add r7, r0, #0x0
+_0202B984:
+ str r7, [r5, #0x0]
+ b _0202B9D4
+_0202B988:
+ add r0, r4, #0x0
+ mov r1, #0x41
+ bl FUN_0202A150
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x42
+ bl FUN_0202A150
+ add r0, r7, r0
+ str r0, [r5, #0x0]
+ b _0202B9D4
+_0202B9A0:
+ add r0, r4, #0x0
+ mov r1, #0x3f
+ bl FUN_0202A150
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x40
+ bl FUN_0202A150
+ add r1, r7, r0
+ beq _0202B9C4
+ ldr r0, [sp, #0x4]
+ ldr r2, [r0, #0x28]
+ mov r0, #0x64
+ mul r0, r2
+ bl _u32_div_f
+ add r1, r0, #0x0
+_0202B9C4:
+ str r1, [r5, #0x0]
+ b _0202B9D4
+_0202B9C8:
+ ldr r1, [sp, #0x0]
+ add r0, r4, #0x0
+ ldr r1, [r1, #0x0]
+ bl FUN_0202A150
+ str r0, [r5, #0x0]
+_0202B9D4:
+ ldr r0, [sp, #0x0]
+ add r6, r6, #0x1
+ add r0, r0, #0x4
+ add r5, r5, #0x4
+ str r0, [sp, #0x0]
+ cmp r6, #0xd
+ blt _0202B95A
+ ldr r0, [sp, #0x4]
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_0202B9E8: .word 0x020EEAD0
+
+ thumb_func_start FUN_0202B9EC
+FUN_0202B9EC: ; 0x0202B9EC
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_020238F4
+ mov r1, #0x4e
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ lsl r1, r1, #0x2
+ bl FUN_020169D8
+ mov r2, #0x4e
+ mov r1, #0x0
+ lsl r2, r2, #0x2
+ str r0, [sp, #0x4]
+ bl MI_CpuFill8
+ add r0, r5, #0x0
+ bl FUN_0202881C
+ mov r1, #0x1
+ bl FUN_0202877C
+ str r0, [sp, #0x8]
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_020239A0
+ add r7, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0202B93C
+ ldr r4, [sp, #0x4]
+ str r0, [sp, #0x0]
+ mov r6, #0x0
+ add r5, r0, #0x0
+_0202BA38:
+ ldr r0, [sp, #0x8]
+ add r1, r4, #0x0
+ str r0, [r4, #0x0]
+ add r0, r7, #0x0
+ add r1, #0x8
+ mov r2, #0x8
+ bl FUN_02021EF0
+ ldr r0, [r5, #0x0]
+ add r6, r6, #0x1
+ str r0, [r4, #0x4]
+ add r4, #0x18
+ add r5, r5, #0x4
+ cmp r6, #0xd
+ blt _0202BA38
+ ldr r0, [sp, #0x0]
+ bl FUN_02016A18
+ add r0, r7, #0x0
+ bl FUN_02021A20
+ ldr r0, [sp, #0x4]
+ add sp, #0xc
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0202BA68
+FUN_0202BA68: ; 0x0202BA68
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r4, #0x0
+_0202BA6E:
+ add r0, r5, #0x0
+ bl FUN_0202B888
+ add r4, r4, #0x1
+ add r5, #0x18
+ cmp r4, #0x6
+ blt _0202BA6E
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202BA80
+FUN_0202BA80: ; 0x0202BA80
+ push {r3, lr}
+ ldr r3, [r0, #0x0]
+ ldr r2, [r1, #0x0]
+ cmp r3, r2
+ beq _0202BA8E
+ mov r0, #0x0
+ pop {r3, pc}
+_0202BA8E:
+ add r0, #0x8
+ add r1, #0x8
+ bl StringNotEqual
+ cmp r0, #0x0
+ bne _0202BA9E
+ mov r0, #0x1
+ pop {r3, pc}
+_0202BA9E:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202BAA4
+FUN_0202BAA4: ; 0x0202BAA4
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ ldr r0, [r6, #0x4]
+ add r7, r1, #0x0
+ mov r4, #0x0
+ cmp r0, #0x0
+ ble _0202BACE
+ add r5, r6, #0x0
+_0202BAB4:
+ ldr r0, [r5, #0xc]
+ add r1, r7, #0x0
+ bl FUN_0202BA80
+ cmp r0, #0x0
+ beq _0202BAC4
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0202BAC4:
+ ldr r0, [r6, #0x4]
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, r0
+ blt _0202BAB4
+_0202BACE:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202BAD4
+FUN_0202BAD4: ; 0x0202BAD4
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r6, r1, #0x0
+ add r5, r0, #0x0
+ str r2, [sp, #0x0]
+ add r0, r6, #0x0
+ mov r1, #0x0
+ mov r2, #0xe0
+ add r4, r3, #0x0
+ bl MI_CpuFill8
+ add r0, sp, #0x10
+ ldrb r0, [r0, #0x10]
+ cmp r0, #0x0
+ bne _0202BB64
+ mov r2, #0x90
+ add r0, r4, #0x0
+ mul r0, r2
+ add r1, r6, #0x0
+ add r0, r5, r0
+ add r1, #0x50
+ str r0, [sp, #0x8]
+ bl MI_CpuCopy8
+ add r1, sp, #0x10
+ ldrb r3, [r1, #0x18]
+ mov r0, #0x0
+ cmp r3, #0x0
+ ble _0202BB2E
+ mov r2, #0x18
+ ldr r1, [sp, #0x24]
+ mul r2, r4
+_0202BB14:
+ ldr r5, [r6, #0x4]
+ add r0, r0, #0x1
+ add r4, r5, #0x0
+ add r4, r4, #0x1
+ str r4, [r6, #0x4]
+ ldr r4, [r1, #0x0]
+ lsl r5, r5, #0x2
+ add r4, r4, r2
+ add r5, r6, r5
+ str r4, [r5, #0xc]
+ add r1, r1, #0x4
+ cmp r0, r3
+ blt _0202BB14
+_0202BB2E:
+ add r4, r6, #0x0
+ add r4, #0x50
+ mov r7, #0x0
+ add r5, r4, #0x0
+_0202BB36:
+ add r0, r4, #0x0
+ bl FUN_0202B89C
+ cmp r0, #0x0
+ beq _0202BB58
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_0202BAA4
+ cmp r0, #0x0
+ bne _0202BB58
+ ldr r1, [r6, #0x0]
+ add r0, r1, #0x1
+ str r0, [r6, #0x0]
+ lsl r0, r1, #0x2
+ add r0, r6, r0
+ str r4, [r0, #0x38]
+_0202BB58:
+ add r7, r7, #0x1
+ add r4, #0x18
+ add r5, #0x18
+ cmp r7, #0x6
+ blt _0202BB36
+ b _0202BBF8
+_0202BB64:
+ add r0, r4, #0x0
+ add r0, #0xd
+ mov r2, #0x90
+ add r1, r0, #0x0
+ mul r1, r2
+ add r0, r5, r1
+ add r1, r6, #0x0
+ add r1, #0x50
+ str r0, [sp, #0x8]
+ bl MI_CpuCopy8
+ add r0, sp, #0x10
+ ldrb r2, [r0, #0x18]
+ mov r3, #0x0
+ cmp r2, #0x0
+ ble _0202BBB2
+ mov r1, #0x18
+ ldr r0, [sp, #0x24]
+ mul r1, r4
+_0202BB8A:
+ ldr r4, [r0, #0x0]
+ ldr r5, [r1, r4]
+ cmp r5, #0x0
+ beq _0202BBAA
+ ldr r4, [sp, #0x0]
+ cmp r4, r5
+ bne _0202BBAA
+ ldr r5, [r6, #0x4]
+ add r4, r5, #0x0
+ add r4, r4, #0x1
+ str r4, [r6, #0x4]
+ ldr r4, [r0, #0x0]
+ lsl r5, r5, #0x2
+ add r4, r4, r1
+ add r5, r6, r5
+ str r4, [r5, #0xc]
+_0202BBAA:
+ add r3, r3, #0x1
+ add r0, r0, #0x4
+ cmp r3, r2
+ blt _0202BB8A
+_0202BBB2:
+ add r4, r6, #0x0
+ mov r0, #0x0
+ add r4, #0x50
+ str r0, [sp, #0x4]
+ add r5, r6, #0x0
+ add r7, r4, #0x0
+_0202BBBE:
+ add r0, r4, #0x0
+ bl FUN_0202B89C
+ cmp r0, #0x0
+ beq _0202BBE8
+ ldr r1, [r5, #0x50]
+ ldr r0, [sp, #0x0]
+ cmp r0, r1
+ bne _0202BBE8
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ bl FUN_0202BAA4
+ cmp r0, #0x0
+ bne _0202BBE8
+ ldr r1, [r6, #0x0]
+ add r0, r1, #0x1
+ str r0, [r6, #0x0]
+ lsl r0, r1, #0x2
+ add r0, r6, r0
+ str r4, [r0, #0x38]
+_0202BBE8:
+ ldr r0, [sp, #0x4]
+ add r4, #0x18
+ add r0, r0, #0x1
+ add r5, #0x18
+ add r7, #0x18
+ str r0, [sp, #0x4]
+ cmp r0, #0x6
+ blt _0202BBBE
+_0202BBF8:
+ ldr r1, [r6, #0x4]
+ ldr r0, [r6, #0x0]
+ mov r2, #0x0
+ add r0, r1, r0
+ str r0, [r6, #0x8]
+ ldr r0, [r6, #0x0]
+ cmp r0, #0x0
+ ble _0202BC20
+ add r1, r6, #0x0
+_0202BC0A:
+ ldr r3, [r6, #0x4]
+ ldr r0, [r1, #0x38]
+ add r3, r2, r3
+ lsl r3, r3, #0x2
+ add r3, r6, r3
+ str r0, [r3, #0xc]
+ ldr r0, [r6, #0x0]
+ add r2, r2, #0x1
+ add r1, r1, #0x4
+ cmp r2, r0
+ blt _0202BC0A
+_0202BC20:
+ mov r0, #0x0
+ mov r12, r0
+ ldr r0, [r6, #0x8]
+ sub r5, r0, #0x1
+ cmp r5, #0x0
+ ble _0202BC64
+ add r3, r6, #0x0
+_0202BC2E:
+ mov r0, r12
+ cmp r5, r0
+ ble _0202BC52
+ lsl r0, r5, #0x2
+ add r4, r6, r0
+_0202BC38:
+ ldr r2, [r4, #0xc]
+ ldr r7, [r3, #0xc]
+ ldr r0, [r2, #0x4]
+ ldr r1, [r7, #0x4]
+ cmp r1, r0
+ bhs _0202BC48
+ str r2, [r3, #0xc]
+ str r7, [r4, #0xc]
+_0202BC48:
+ sub r5, r5, #0x1
+ mov r0, r12
+ sub r4, r4, #0x4
+ cmp r5, r0
+ bgt _0202BC38
+_0202BC52:
+ mov r0, r12
+ add r0, r0, #0x1
+ mov r12, r0
+ ldr r0, [r6, #0x8]
+ add r3, r3, #0x4
+ sub r5, r0, #0x1
+ mov r0, r12
+ cmp r0, r5
+ blt _0202BC2E
+_0202BC64:
+ ldr r0, [sp, #0x8]
+ bl FUN_0202BA68
+ mov r3, #0x0
+ add r2, r6, #0x0
+ b _0202BC8A
+_0202BC70:
+ ldr r5, [r2, #0xc]
+ ldr r4, [sp, #0x8]
+ ldmia r5!, {r0-r1}
+ stmia r4!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r4!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r4!, {r0-r1}
+ ldr r0, [sp, #0x8]
+ add r2, r2, #0x4
+ add r0, #0x18
+ str r0, [sp, #0x8]
+ add r3, r3, #0x1
+_0202BC8A:
+ cmp r3, #0x6
+ bge _0202BC94
+ ldr r0, [r6, #0x8]
+ cmp r3, r0
+ blt _0202BC70
+_0202BC94:
+ add sp, #0xc
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0202BC98
+FUN_0202BC98: ; 0x0202BC98
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r7, r0, #0x0
+ add r5, r1, #0x0
+ ldr r0, [sp, #0x2c]
+ mov r1, #0xe0
+ str r2, [sp, #0x10]
+ add r4, r3, #0x0
+ bl FUN_020169D8
+ add r6, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ str r4, [sp, #0x4]
+ add r0, sp, #0x18
+ ldrb r0, [r0, #0x10]
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x2c]
+ str r0, [sp, #0xc]
+ ldr r3, [sp, #0x10]
+ add r0, r7, #0x0
+ bl FUN_0202BAD4
+ cmp r5, #0x0
+ beq _0202BCEA
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ str r4, [sp, #0x4]
+ add r0, sp, #0x18
+ ldrb r0, [r0, #0x10]
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0x2c]
+ str r0, [sp, #0xc]
+ ldr r3, [sp, #0x10]
+ add r0, r7, #0x0
+ bl FUN_0202BAD4
+_0202BCEA:
+ add r0, r6, #0x0
+ bl FUN_02016A18
+ add sp, #0x14
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0202BCF4
+FUN_0202BCF4: ; 0x0202BCF4
+ push {r4-r7, lr}
+ sub sp, #0x24
+ add r6, r1, #0x0
+ ldr r1, [sp, #0x38]
+ add r4, r0, #0x0
+ add r5, r2, #0x0
+ add r7, r3, #0x0
+ str r1, [sp, #0x38]
+ bl FUN_0202B8E4
+ str r0, [sp, #0x8]
+ add r0, r4, #0x0
+ bl FUN_0202881C
+ mov r1, #0x1
+ bl FUN_0202877C
+ mov r4, #0x0
+ add r3, r4, #0x0
+ str r0, [sp, #0xc]
+ cmp r5, #0x0
+ bls _0202BD44
+_0202BD20:
+ cmp r3, r6
+ beq _0202BD3A
+ lsl r0, r3, #0x2
+ ldr r2, [r7, r0]
+ cmp r2, #0x0
+ beq _0202BD3A
+ add r1, r4, #0x1
+ add r0, r4, #0x0
+ lsl r1, r1, #0x18
+ lsr r4, r1, #0x18
+ lsl r1, r0, #0x2
+ add r0, sp, #0x10
+ str r2, [r0, r1]
+_0202BD3A:
+ add r0, r3, #0x1
+ lsl r0, r0, #0x18
+ lsr r3, r0, #0x18
+ cmp r3, r5
+ blo _0202BD20
+_0202BD44:
+ cmp r4, #0x0
+ beq _0202BD68
+ mov r5, #0x0
+ add r6, sp, #0x10
+_0202BD4C:
+ ldr r0, [sp, #0x38]
+ str r4, [sp, #0x0]
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0xc]
+ add r2, r5, #0x0
+ add r3, r6, #0x0
+ bl FUN_0202BC98
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, #0xd
+ blo _0202BD4C
+_0202BD68:
+ add sp, #0x24
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_0202BD6C
+FUN_0202BD6C: ; 0x0202BD6C
+ push {r3-r7, lr}
+ sub sp, #0x10
+ str r2, [sp, #0x0]
+ add r4, r0, #0x0
+ add r5, r1, #0x0
+ bl FUN_020238F4
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x0]
+ mov r1, #0x4c
+ bl FUN_02016998
+ mov r1, #0x0
+ mov r2, #0x4c
+ add r7, r0, #0x0
+ bl MI_CpuFill8
+ add r0, r4, #0x0
+ bl FUN_0202881C
+ mov r1, #0x1
+ bl FUN_0202877C
+ str r0, [sp, #0xc]
+ ldr r1, [sp, #0x0]
+ add r0, r4, #0x0
+ bl FUN_0202B93C
+ str r0, [sp, #0x8]
+ add r0, r5, #0x0
+ bl FUN_0202B870
+ str r0, [r7, #0x0]
+ add r0, r5, #0x0
+ bl FUN_0202B87C
+ ldr r1, [r7, #0x0]
+ mov r6, #0x0
+ cmp r1, #0x0
+ ble _0202BDE2
+ lsl r1, r0, #0x2
+ ldr r0, [sp, #0x8]
+ add r4, r7, #0x0
+ add r5, r0, r1
+_0202BDC4:
+ ldr r0, [sp, #0xc]
+ ldr r1, [sp, #0x0]
+ str r0, [r4, #0x4]
+ ldr r0, [r5, #0x0]
+ str r0, [r4, #0x8]
+ ldr r0, [sp, #0x4]
+ bl FUN_020239A0
+ str r0, [r4, #0xc]
+ ldr r0, [r7, #0x0]
+ add r6, r6, #0x1
+ add r4, #0xc
+ add r5, r5, #0x4
+ cmp r6, r0
+ blt _0202BDC4
+_0202BDE2:
+ ldr r0, [sp, #0x8]
+ bl FUN_02016A18
+ add r0, r7, #0x0
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202BDF0
+FUN_0202BDF0: ; 0x0202BDF0
+ push {r3-r7, lr}
+ add r7, r2, #0x0
+ add r5, r0, #0x0
+ str r1, [sp, #0x0]
+ add r0, r7, #0x0
+ mov r1, #0x4c
+ bl FUN_02016998
+ mov r1, #0x0
+ mov r2, #0x4c
+ add r4, r0, #0x0
+ bl MI_CpuFill8
+ ldr r0, [sp, #0x0]
+ mov r1, #0x90
+ mul r1, r0
+ mov r6, #0x0
+ add r5, r5, r1
+_0202BE14:
+ add r0, r5, #0x0
+ bl FUN_0202B89C
+ cmp r0, #0x0
+ beq _0202BE60
+ ldr r2, [r4, #0x0]
+ mov r1, #0xc
+ mul r1, r2
+ ldr r0, [r5, #0x0]
+ add r1, r4, r1
+ str r0, [r1, #0x4]
+ ldr r2, [r4, #0x0]
+ mov r1, #0xc
+ mul r1, r2
+ ldr r0, [r5, #0x4]
+ add r1, r4, r1
+ str r0, [r1, #0x8]
+ mov r0, #0x8
+ add r1, r7, #0x0
+ bl FUN_020219F4
+ ldr r2, [r4, #0x0]
+ mov r1, #0xc
+ mul r1, r2
+ add r1, r4, r1
+ str r0, [r1, #0xc]
+ ldr r1, [r4, #0x0]
+ mov r0, #0xc
+ mul r0, r1
+ add r0, r4, r0
+ add r1, r5, #0x0
+ ldr r0, [r0, #0xc]
+ add r1, #0x8
+ bl FUN_02021E28
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+_0202BE60:
+ add r6, r6, #0x1
+ add r5, #0x18
+ cmp r6, #0x6
+ blt _0202BE14
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_0202BE6C
+FUN_0202BE6C: ; 0x0202BE6C
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ mov r4, #0x0
+ add r5, r6, #0x0
+_0202BE74:
+ ldr r0, [r5, #0xc]
+ cmp r0, #0x0
+ beq _0202BE7E
+ bl FUN_02021A20
+_0202BE7E:
+ add r4, r4, #0x1
+ add r5, #0xc
+ cmp r4, #0x6
+ blt _0202BE74
+ add r0, r6, #0x0
+ mov r1, #0x0
+ mov r2, #0x4c
+ bl MI_CpuFill8
+ add r0, r6, #0x0
+ bl FUN_02016A18
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_0202BE98
+FUN_0202BE98: ; 0x0202BE98
+ ldr r0, _0202BE9C ; =0x00000688
+ bx lr
+ .balign 4
+_0202BE9C: .word 0x00000688
+
+ thumb_func_start FUN_0202BEA0
+FUN_0202BEA0: ; 0x0202BEA0
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r2, _0202BED8 ; =0x00000688
+ mov r0, #0x0
+ add r1, r5, #0x0
+ bl MIi_CpuClearFast
+ mov r4, #0x0
+ mov r6, #0xab
+ add r7, r4, #0x0
+_0202BEB4:
+ add r0, r5, #0x0
+ bl FUN_02066978
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _0202BECC
+ bl ErrorHandling
+_0202BECC:
+ add r4, r4, #0x1
+ add r5, #0xec
+ cmp r4, #0x6
+ blt _0202BEB4
+ pop {r3-r7, pc}
+ nop
+_0202BED8: .word 0x00000688
+
+ thumb_func_start FUN_0202BEDC
+FUN_0202BEDC: ; 0x0202BEDC
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldr r2, _0202BF14 ; =0x00000588
+ mov r0, #0x0
+ add r1, r5, #0x0
+ bl MIi_CpuClearFast
+ mov r4, #0x0
+ mov r6, #0xab
+ add r7, r4, #0x0
+_0202BEF0:
+ add r0, r5, #0x0
+ bl FUN_02066978
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _0202BF08
+ bl ErrorHandling
+_0202BF08:
+ add r4, r4, #0x1
+ add r5, #0xec
+ cmp r4, #0x6
+ blt _0202BEF0
+ pop {r3-r7, pc}
+ nop
+_0202BF14: .word 0x00000588
+
+ thumb_func_start FUN_0202BF18
+FUN_0202BF18: ; 0x0202BF18
+ push {r4-r7}
+ add r2, r0, #0x0
+ ldr r3, _0202BF70 ; =0x00000588
+ mov r0, #0x0
+ add r5, r2, #0x0
+_0202BF22:
+ ldr r4, [r5, r3]
+ cmp r1, r4
+ beq _0202BF6C
+ add r0, r0, #0x1
+ add r5, r5, #0x4
+ cmp r0, #0x14
+ blt _0202BF22
+ ldr r1, _0202BF70 ; =0x00000588
+ mov r0, #0x0
+ add r4, r2, #0x0
+_0202BF36:
+ ldr r3, [r4, r1]
+ cmp r3, #0x0
+ beq _0202BF6C
+ add r0, r0, #0x1
+ add r4, r4, #0x4
+ cmp r0, #0x14
+ blt _0202BF36
+ mov r3, #0x0
+ ldr r4, _0202BF74 ; =0x7FFFFFFF
+ add r5, r3, #0x0
+_0202BF4A:
+ ldr r0, _0202BF78 ; =0x000005D8
+ ldr r1, [r2, r0]
+ add r0, r0, #0x4
+ ldr r0, [r2, r0]
+ sub r6, r1, r4
+ mov r12, r0
+ mov r6, r12
+ sbc r6, r3
+ bge _0202BF62
+ add r4, r1, #0x0
+ add r3, r0, #0x0
+ add r7, r5, #0x0
+_0202BF62:
+ add r5, r5, #0x1
+ add r2, #0x8
+ cmp r5, #0x14
+ blt _0202BF4A
+ add r0, r7, #0x0
+_0202BF6C:
+ pop {r4-r7}
+ bx lr
+ .balign 4
+_0202BF70: .word 0x00000588
+_0202BF74: .word 0x7FFFFFFF
+_0202BF78: .word 0x000005D8
+
+ thumb_func_start FUN_0202BF7C
+FUN_0202BF7C: ; 0x0202BF7C
+ add r3, r0, #0x0
+ add r0, r1, #0x0
+ mov r1, #0xec
+ mul r1, r2
+ add r1, r3, r1
+ ldr r3, _0202BF8C ; =FUN_02069A64
+ bx r3
+ nop
+_0202BF8C: .word FUN_02069A64
+
+ thumb_func_start FUN_0202BF90
+FUN_0202BF90: ; 0x0202BF90
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_0202BF18
+ add r6, r0, #0x0
+ lsl r0, r6, #0x2
+ add r1, r5, r0
+ ldr r0, _0202BFCC ; =0x00000588
+ str r4, [r1, r0]
+ bl FUN_020126FC
+ lsl r2, r6, #0x3
+ add r3, r5, r2
+ ldr r2, _0202BFD0 ; =0x000005D8
+ str r0, [r3, r2]
+ add r0, r2, #0x4
+ str r1, [r3, r0]
+ bl OS_GetOwnerRtcOffset
+ ldr r2, _0202BFD4 ; =0x00000678
+ str r0, [r5, r2]
+ add r0, r2, #0x4
+ add r2, #0x8
+ str r1, [r5, r0]
+ add r0, r5, r2
+ bl OS_GetMacAddress
+ pop {r4-r6, pc}
+ nop
+_0202BFCC: .word 0x00000588
+_0202BFD0: .word 0x000005D8
+_0202BFD4: .word 0x00000678
+
+ thumb_func_start FUN_0202BFD8
+FUN_0202BFD8: ; 0x0202BFD8
+ push {r4-r6, lr}
+ add r5, r1, #0x0
+ add r6, r0, #0x0
+ add r4, r2, #0x0
+ cmp r5, #0x6
+ blt _0202BFE8
+ bl ErrorHandling
+_0202BFE8:
+ mov r0, #0xec
+ mul r0, r5
+ add r3, r6, r0
+ mov r2, #0x1d
+_0202BFF0:
+ ldmia r3!, {r0-r1}
+ stmia r4!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _0202BFF0
+ ldr r0, [r3, #0x0]
+ str r0, [r4, #0x0]
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202C000
+FUN_0202C000: ; 0x0202C000
+ push {r3-r7, lr}
+ mov r4, #0x0
+ add r5, r0, #0x0
+ add r6, r4, #0x0
+ mov r7, #0xab
+_0202C00A:
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ beq _0202C01A
+ add r4, r4, #0x1
+_0202C01A:
+ add r6, r6, #0x1
+ add r5, #0xec
+ cmp r6, #0x6
+ blt _0202C00A
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202C028
+FUN_0202C028: ; 0x0202C028
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_020126FC
+ ldr r1, _0202C058 ; =0x00000588
+ mov r3, #0x0
+ add r6, r5, #0x0
+_0202C038:
+ ldr r2, [r6, r1]
+ cmp r4, r2
+ bne _0202C04A
+ lsl r1, r3, #0x3
+ add r2, r5, r1
+ ldr r1, _0202C05C ; =0x000005D8
+ ldr r1, [r2, r1]
+ sub r0, r0, r1
+ pop {r4-r6, pc}
+_0202C04A:
+ add r3, r3, #0x1
+ add r6, r6, #0x4
+ cmp r3, #0x14
+ blt _0202C038
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ nop
+_0202C058: .word 0x00000588
+_0202C05C: .word 0x000005D8
+
+ thumb_func_start FUN_0202C060
+FUN_0202C060: ; 0x0202C060
+ push {r3-r5, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ add r0, sp, #0x0
+ bl OS_GetMacAddress
+ mov r0, #0x1a
+ mov r3, #0x0
+ add r5, sp, #0x0
+ lsl r0, r0, #0x6
+_0202C074:
+ add r1, r4, r3
+ ldrb r2, [r5, #0x0]
+ ldrb r1, [r1, r0]
+ cmp r2, r1
+ beq _0202C084
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0202C084:
+ add r3, r3, #0x1
+ add r5, r5, #0x1
+ cmp r3, #0x6
+ blt _0202C074
+ mov r0, #0x1
+ add sp, #0x8
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202C094
+FUN_0202C094: ; 0x0202C094
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl OS_GetOwnerRtcOffset
+ ldr r2, _0202C0B4 ; =0x00000678
+ ldr r3, [r4, r2]
+ add r2, r2, #0x4
+ ldr r2, [r4, r2]
+ eor r0, r3
+ eor r1, r2
+ orr r0, r1
+ bne _0202C0B0
+ mov r0, #0x1
+ pop {r4, pc}
+_0202C0B0:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+_0202C0B4: .word 0x00000678
+
+ thumb_func_start FUN_0202C0B8
+FUN_0202C0B8: ; 0x0202C0B8
+ push {r3-r4}
+ mov r4, #0x0
+ mov r1, #0x1a
+ add r3, r4, #0x0
+ lsl r1, r1, #0x6
+_0202C0C2:
+ add r2, r0, r3
+ ldrb r2, [r2, r1]
+ add r3, r3, #0x1
+ orr r4, r2
+ cmp r3, #0x6
+ blt _0202C0C2
+ cmp r4, #0x0
+ bne _0202C0D8
+ mov r0, #0x1
+ pop {r3-r4}
+ bx lr
+_0202C0D8:
+ mov r0, #0x0
+ pop {r3-r4}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202C0E0
+FUN_0202C0E0: ; 0x0202C0E0
+ mov r0, #0x28
+ bx lr
+
+ thumb_func_start FUN_0202C0E4
+FUN_0202C0E4: ; 0x0202C0E4
+ push {r4-r5}
+ mov r4, #0x0
+ add r1, r4, #0x0
+ add r2, r4, #0x0
+_0202C0EC:
+ add r3, r2, #0x0
+ add r5, r0, #0x0
+_0202C0F0:
+ add r3, r3, #0x1
+ strh r1, [r5, #0x0]
+ add r5, r5, #0x2
+ cmp r3, #0x4
+ blt _0202C0F0
+ add r4, r4, #0x1
+ add r0, #0x8
+ cmp r4, #0x5
+ blt _0202C0EC
+ pop {r4-r5}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202C108
+FUN_0202C108: ; 0x0202C108
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ mov r1, #0x21
+ add r4, r2, #0x0
+ bl FUN_02022610
+ lsl r1, r5, #0x3
+ add r3, r0, r1
+ lsl r2, r4, #0x1
+ ldrh r1, [r3, r2]
+ ldr r0, _0202C128 ; =0x0000270F
+ cmp r1, r0
+ bhs _0202C126
+ add r0, r1, #0x1
+ strh r0, [r3, r2]
+_0202C126:
+ pop {r3-r5, pc}
+ .balign 4
+_0202C128: .word 0x0000270F
+
+ thumb_func_start FUN_0202C12C
+FUN_0202C12C: ; 0x0202C12C
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ mov r1, #0x21
+ add r4, r2, #0x0
+ bl FUN_02022610
+ lsl r2, r5, #0x3
+ lsl r1, r4, #0x1
+ add r0, r0, r2
+ ldrh r0, [r1, r0]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202C144
+FUN_0202C144: ; 0x0202C144
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x4c
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ bne _0202C194
+ add r0, r5, #0x0
+ bl FUN_02024DA0
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02029FC8
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ mov r1, #0x5
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r2, r0, #0x0
+ lsl r2, r2, #0x10
+ add r0, r7, #0x0
+ add r1, r6, #0x0
+ lsr r2, r2, #0x10
+ bl FUN_0202A1C4
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_02024AF0
+ add r0, r5, #0x0
+ bl FUN_0204C1A8
+ add r1, r4, #0x0
+ bl FUN_0204C104
+_0202C194:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202C198
+FUN_0202C198: ; 0x0202C198
+ ldr r1, _0202C1A4 ; =0x021C59D8
+ ldr r2, [r1, #0x4]
+ ldr r1, _0202C1A8 ; =0x00001310
+ str r0, [r2, r1]
+ bx lr
+ nop
+_0202C1A4: .word 0x021C59D8
+_0202C1A8: .word 0x00001310
+
+ thumb_func_start FUN_0202C1AC
+FUN_0202C1AC: ; 0x0202C1AC
+ ldr r1, _0202C1C0 ; =0x021C59D8
+ ldr r3, [r1, #0x4]
+ ldr r1, _0202C1C4 ; =0x00001310
+ ldr r2, [r3, r1]
+ sub r2, #0x9
+ cmp r2, #0x1
+ bls _0202C1BE
+ add r1, #0x20
+ str r0, [r3, r1]
+_0202C1BE:
+ bx lr
+ .balign 4
+_0202C1C0: .word 0x021C59D8
+_0202C1C4: .word 0x00001310
+
+ thumb_func_start FUN_0202C1C8
+FUN_0202C1C8: ; 0x0202C1C8
+ push {r3, lr}
+ mov r0, #0x3
+ bl FUN_0202C198
+ ldr r1, _0202C1F0 ; =0x021C59D8
+ ldr r0, _0202C1F4 ; =FUN_0202C1F8
+ ldr r1, [r1, #0x4]
+ bl WM_SetParentParameter
+ cmp r0, #0x2
+ beq _0202C1EC
+ bl FUN_0202C1AC
+ mov r0, #0x9
+ bl FUN_0202C198
+ mov r0, #0x0
+ pop {r3, pc}
+_0202C1EC:
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+_0202C1F0: .word 0x021C59D8
+_0202C1F4: .word FUN_0202C1F8
+
+ thumb_func_start FUN_0202C1F8
+FUN_0202C1F8: ; 0x0202C1F8
+ push {r3, lr}
+ ldrh r0, [r0, #0x2]
+ cmp r0, #0x0
+ beq _0202C20C
+ bl FUN_0202C1AC
+ mov r0, #0x9
+ bl FUN_0202C198
+ pop {r3, pc}
+_0202C20C:
+ bl FUN_0202C21C
+ cmp r0, #0x0
+ bne _0202C21A
+ mov r0, #0x9
+ bl FUN_0202C198
+_0202C21A:
+ pop {r3, pc}
+
+ thumb_func_start FUN_0202C21C
+FUN_0202C21C: ; 0x0202C21C
+ push {r4, lr}
+ ldr r0, _0202C278 ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202C27C ; =0x00001310
+ ldr r0, [r1, r0]
+ sub r0, r0, #0x4
+ cmp r0, #0x2
+ bhi _0202C230
+ mov r0, #0x1
+ pop {r4, pc}
+_0202C230:
+ bl WMi_GetStatusAddress
+ add r4, r0, #0x0
+ mov r0, #0x66
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ mov r1, #0x4
+ bl DC_InvalidateRange
+ mov r0, #0x66
+ mov r1, #0x0
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ add r0, r4, r0
+ mov r1, #0x4
+ bl DC_FlushRange
+ ldr r0, _0202C280 ; =FUN_0202C288
+ bl WM_StartParent
+ cmp r0, #0x2
+ beq _0202C264
+ bl FUN_0202C1AC
+ mov r0, #0x0
+ pop {r4, pc}
+_0202C264:
+ ldr r2, _0202C278 ; =0x021C59D8
+ ldr r1, _0202C284 ; =0x0000132C
+ ldr r0, [r2, #0x4]
+ mov r3, #0x0
+ strh r3, [r0, r1]
+ ldr r2, [r2, #0x4]
+ mov r0, #0x1
+ add r1, r1, #0x2
+ strh r0, [r2, r1]
+ pop {r4, pc}
+ .balign 4
+_0202C278: .word 0x021C59D8
+_0202C27C: .word 0x00001310
+_0202C280: .word FUN_0202C288
+_0202C284: .word 0x0000132C
+
+ thumb_func_start FUN_0202C288
+FUN_0202C288: ; 0x0202C288
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldrh r0, [r5, #0x10]
+ mov r1, #0x1
+ lsl r1, r0
+ lsl r0, r1, #0x10
+ lsr r4, r0, #0x10
+ ldrh r0, [r5, #0x2]
+ cmp r0, #0x0
+ beq _0202C2A8
+ bl FUN_0202C1AC
+ mov r0, #0x9
+ bl FUN_0202C198
+ pop {r4-r6, pc}
+_0202C2A8:
+ ldrh r0, [r5, #0x8]
+ cmp r0, #0x7
+ bgt _0202C2C0
+ bge _0202C2DA
+ cmp r0, #0x2
+ bgt _0202C378
+ cmp r0, #0x0
+ blt _0202C378
+ beq _0202C36A
+ cmp r0, #0x2
+ beq _0202C2CC
+ pop {r4-r6, pc}
+_0202C2C0:
+ cmp r0, #0x9
+ bgt _0202C2C8
+ beq _0202C34C
+ pop {r4-r6, pc}
+_0202C2C8:
+ cmp r0, #0x1a
+ pop {r4-r6, pc}
+_0202C2CC:
+ ldr r0, _0202C37C ; =0x021C59D8
+ ldr r2, [r0, #0x4]
+ ldr r0, _0202C380 ; =0x00001345
+ ldrb r1, [r2, r0]
+ add r1, r1, #0x1
+ strb r1, [r2, r0]
+ pop {r4-r6, pc}
+_0202C2DA:
+ ldr r0, _0202C37C ; =0x021C59D8
+ ldr r2, [r0, #0x4]
+ ldr r0, _0202C384 ; =0x00001343
+ ldrb r1, [r2, r0]
+ cmp r1, #0x1
+ beq _0202C318
+ sub r0, r0, #0x1
+ ldrb r0, [r2, r0]
+ cmp r0, #0x1
+ beq _0202C318
+ bl FUN_0202CBA0
+ ldr r1, _0202C37C ; =0x021C59D8
+ ldr r2, [r1, #0x4]
+ ldr r1, _0202C388 ; =0x00001334
+ ldrb r1, [r2, r1]
+ cmp r0, r1
+ bge _0202C318
+ bl FUN_02033534
+ ldrb r1, [r5, #0x14]
+ cmp r1, r0
+ bne _0202C318
+ add r1, r5, #0x0
+ ldr r0, _0202C38C ; =0x02105D54
+ add r1, #0x15
+ mov r2, #0x3
+ bl memcmp
+ cmp r0, #0x0
+ beq _0202C330
+_0202C318:
+ ldrh r1, [r5, #0x10]
+ mov r0, #0x0
+ bl WM_Disconnect
+ cmp r0, #0x2
+ beq _0202C378
+ bl FUN_0202C1AC
+ mov r0, #0x9
+ bl FUN_0202C198
+ pop {r4-r6, pc}
+_0202C330:
+ ldr r1, _0202C37C ; =0x021C59D8
+ ldr r0, _0202C390 ; =0x0000132E
+ ldr r3, [r1, #0x4]
+ ldrh r2, [r3, r0]
+ orr r2, r4
+ strh r2, [r3, r0]
+ ldr r1, [r1, #0x4]
+ sub r0, r0, #0x6
+ ldr r1, [r1, r0]
+ cmp r1, #0x0
+ beq _0202C378
+ ldrh r0, [r5, #0x10]
+ blx r1
+ pop {r4-r6, pc}
+_0202C34C:
+ ldr r2, _0202C37C ; =0x021C59D8
+ ldr r1, _0202C390 ; =0x0000132E
+ ldr r0, [r2, #0x4]
+ mvn r3, r4
+ ldrh r6, [r0, r1]
+ and r3, r6
+ strh r3, [r0, r1]
+ ldr r0, [r2, #0x4]
+ sub r1, #0xa
+ ldr r1, [r0, r1]
+ cmp r1, #0x0
+ beq _0202C378
+ ldrh r0, [r5, #0x10]
+ blx r1
+ pop {r4-r6, pc}
+_0202C36A:
+ bl FUN_0202C394
+ cmp r0, #0x0
+ bne _0202C378
+ mov r0, #0x9
+ bl FUN_0202C198
+_0202C378:
+ pop {r4-r6, pc}
+ nop
+_0202C37C: .word 0x021C59D8
+_0202C380: .word 0x00001345
+_0202C384: .word 0x00001343
+_0202C388: .word 0x00001334
+_0202C38C: .word 0x02105D54
+_0202C390: .word 0x0000132E
+
+ thumb_func_start FUN_0202C394
+FUN_0202C394: ; 0x0202C394
+ push {r4, lr}
+ sub sp, #0x8
+ ldr r0, _0202C3F0 ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202C3F4 ; =0x00001310
+ ldr r0, [r1, r0]
+ sub r0, r0, #0x4
+ cmp r0, #0x2
+ bhi _0202C3AC
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r4, pc}
+_0202C3AC:
+ mov r0, #0x4
+ bl FUN_0202C198
+ ldr r0, _0202C3F0 ; =0x021C59D8
+ ldr r2, _0202C3F8 ; =0x00001304
+ ldr r4, [r0, #0x4]
+ ldr r3, _0202C3FC ; =0x00001020
+ ldr r0, [r4, r2]
+ add r2, r2, #0x4
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldr r2, [r4, r2]
+ add r1, r4, r3
+ lsl r2, r2, #0x10
+ sub r3, #0xe0
+ ldr r0, _0202C400 ; =FUN_0202C404
+ lsr r2, r2, #0x10
+ add r3, r4, r3
+ bl WM_StartMP
+ cmp r0, #0x2
+ beq _0202C3E8
+ bl FUN_0202C1AC
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r4, pc}
+_0202C3E8:
+ mov r0, #0x1
+ add sp, #0x8
+ pop {r4, pc}
+ nop
+_0202C3F0: .word 0x021C59D8
+_0202C3F4: .word 0x00001310
+_0202C3F8: .word 0x00001304
+_0202C3FC: .word 0x00001020
+_0202C400: .word FUN_0202C404
+
+ thumb_func_start FUN_0202C404
+FUN_0202C404: ; 0x0202C404
+ push {r3, lr}
+ ldrh r1, [r0, #0x2]
+ cmp r1, #0x0
+ beq _0202C41A
+ add r0, r1, #0x0
+ bl FUN_0202C1AC
+ mov r0, #0x9
+ bl FUN_0202C198
+ pop {r3, pc}
+_0202C41A:
+ ldrh r0, [r0, #0x4]
+ sub r0, #0xa
+ cmp r0, #0x3
+ bhi _0202C454
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0202C42E: ; jump table (using 16-bit offset)
+ .short _0202C436 - _0202C42E - 2; case 0
+ .short _0202C454 - _0202C42E - 2; case 1
+ .short _0202C454 - _0202C42E - 2; case 2
+ .short _0202C454 - _0202C42E - 2; case 3
+_0202C436:
+ ldr r0, _0202C458 ; =0x021C59D8
+ ldr r2, [r0, #0x4]
+ ldr r0, _0202C45C ; =0x00001314
+ ldr r1, [r2, r0]
+ cmp r1, #0x2
+ bne _0202C44E
+ sub r0, r0, #0x4
+ ldr r0, [r2, r0]
+ cmp r0, #0x4
+ beq _0202C44E
+ cmp r0, #0x6
+ beq _0202C454
+_0202C44E:
+ mov r0, #0x4
+ bl FUN_0202C198
+_0202C454:
+ pop {r3, pc}
+ nop
+_0202C458: .word 0x021C59D8
+_0202C45C: .word 0x00001314
+
+ thumb_func_start FUN_0202C460
+FUN_0202C460: ; 0x0202C460
+ push {r3, lr}
+ mov r0, #0x3
+ bl FUN_0202C198
+ ldr r0, _0202C480 ; =FUN_0202C484
+ bl WM_EndMP
+ cmp r0, #0x2
+ beq _0202C47A
+ bl FUN_0202C1AC
+ mov r0, #0x0
+ pop {r3, pc}
+_0202C47A:
+ mov r0, #0x1
+ pop {r3, pc}
+ nop
+_0202C480: .word FUN_0202C484
+
+ thumb_func_start FUN_0202C484
+FUN_0202C484: ; 0x0202C484
+ push {r3, lr}
+ ldrh r0, [r0, #0x2]
+ cmp r0, #0x0
+ beq _0202C496
+ bl FUN_0202C1AC
+ bl FUN_0202D0D8
+ pop {r3, pc}
+_0202C496:
+ bl FUN_0202C4A4
+ cmp r0, #0x0
+ bne _0202C4A2
+ bl FUN_0202D0D8
+_0202C4A2:
+ pop {r3, pc}
+
+ thumb_func_start FUN_0202C4A4
+FUN_0202C4A4: ; 0x0202C4A4
+ push {r3, lr}
+ ldr r0, _0202C4BC ; =FUN_0202C4C0
+ bl WM_EndParent
+ cmp r0, #0x2
+ beq _0202C4B8
+ bl FUN_0202C1AC
+ mov r0, #0x0
+ pop {r3, pc}
+_0202C4B8:
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+_0202C4BC: .word FUN_0202C4C0
+
+ thumb_func_start FUN_0202C4C0
+FUN_0202C4C0: ; 0x0202C4C0
+ push {r3, lr}
+ ldrh r0, [r0, #0x2]
+ cmp r0, #0x0
+ beq _0202C4CE
+ bl FUN_0202C1AC
+ pop {r3, pc}
+_0202C4CE:
+ mov r0, #0x1
+ bl FUN_0202C198
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202C4D8
+FUN_0202C4D8: ; 0x0202C4D8
+ push {r3-r7, lr}
+ add r6, r2, #0x0
+ ldr r2, _0202C564 ; =0x021C59D8
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ mov r3, #0x2
+ ldr r0, [r2, #0x4]
+ ldr r1, _0202C568 ; =0x00001308
+ lsl r3, r3, #0x8
+ str r3, [r0, r1]
+ ldr r2, [r2, #0x4]
+ mov r0, #0x40
+ sub r1, r1, #0x4
+ str r0, [r2, r1]
+ mov r0, #0x2
+ bl FUN_0202C198
+ ldr r1, _0202C564 ; =0x021C59D8
+ ldr r0, _0202C56C ; =0x00001256
+ ldr r3, [r1, #0x4]
+ mov r2, #0x1
+ strh r2, [r3, r0]
+ add r7, r0, #0x0
+ ldrh r3, [r4, #0x4]
+ ldr r2, [r1, #0x4]
+ add r7, #0x96
+ strh r3, [r2, r7]
+ add r7, r0, #0x0
+ ldrh r3, [r4, #0x2]
+ ldr r2, [r1, #0x4]
+ add r7, #0x94
+ strh r3, [r2, r7]
+ add r2, r0, #0x0
+ ldrh r4, [r4, #0x0]
+ ldr r3, [r1, #0x4]
+ add r2, #0x92
+ strh r4, [r3, r2]
+ add r2, r0, #0x0
+ ldr r3, [r1, #0x4]
+ add r2, #0xbe
+ str r5, [r3, r2]
+ add r3, r0, #0x0
+ ldr r4, [r1, #0x4]
+ mov r2, #0x0
+ add r3, #0xaa
+ str r2, [r4, r3]
+ add r3, r0, #0x0
+ ldr r4, [r1, #0x4]
+ add r3, #0xb6
+ strh r6, [r4, r3]
+ add r3, r0, #0x0
+ ldr r4, [r1, #0x4]
+ add r3, #0x8e
+ strh r2, [r4, r3]
+ ldr r2, [r1, #0x4]
+ add r0, #0xb8
+ mov r1, #0x1
+ strh r1, [r2, r0]
+ bl FUN_0202C5D8
+ cmp r0, #0x0
+ bne _0202C55E
+ mov r0, #0x9
+ bl FUN_0202C198
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0202C55E:
+ mov r0, #0x1
+ pop {r3-r7, pc}
+ nop
+_0202C564: .word 0x021C59D8
+_0202C568: .word 0x00001308
+_0202C56C: .word 0x00001256
+
+ thumb_func_start FUN_0202C570
+FUN_0202C570: ; 0x0202C570
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ mov r0, #0x2
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_0202C198
+ ldr r1, _0202C5D4 ; =0x021C59D8
+ mov r0, #0x13
+ ldr r2, [r1, #0x4]
+ lsl r0, r0, #0x8
+ str r5, [r2, r0]
+ add r2, r0, #0x0
+ ldr r3, [r1, #0x4]
+ add r2, #0xc
+ strh r6, [r3, r2]
+ add r3, r0, #0x0
+ ldr r5, [r1, #0x4]
+ mov r2, #0x0
+ sub r3, #0x1c
+ strh r2, [r5, r3]
+ add r3, r0, #0x0
+ ldr r5, [r1, #0x4]
+ add r3, #0xe
+ strh r2, [r5, r3]
+ add r2, r0, #0x0
+ ldrh r5, [r4, #0x4]
+ ldr r3, [r1, #0x4]
+ sub r2, #0x14
+ strh r5, [r3, r2]
+ add r2, r0, #0x0
+ ldrh r5, [r4, #0x2]
+ ldr r3, [r1, #0x4]
+ sub r2, #0x16
+ strh r5, [r3, r2]
+ ldrh r2, [r4, #0x0]
+ ldr r1, [r1, #0x4]
+ sub r0, #0x18
+ strh r2, [r1, r0]
+ bl FUN_0202C5D8
+ cmp r0, #0x0
+ bne _0202C5D0
+ mov r0, #0x9
+ bl FUN_0202C198
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0202C5D0:
+ mov r0, #0x1
+ pop {r4-r6, pc}
+ .balign 4
+_0202C5D4: .word 0x021C59D8
+
+ thumb_func_start FUN_0202C5D8
+FUN_0202C5D8: ; 0x0202C5D8
+ push {r3-r7, lr}
+ bl WM_GetAllowedChannel
+ add r5, r0, #0x0
+ mov r0, #0x2
+ lsl r0, r0, #0xe
+ cmp r5, r0
+ bne _0202C5F8
+ mov r0, #0x3
+ bl FUN_0202C1AC
+ mov r0, #0x1
+ bl FUN_020336A0
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0202C5F8:
+ cmp r5, #0x0
+ bne _0202C60C
+ mov r0, #0x16
+ bl FUN_0202C1AC
+ mov r0, #0x1
+ bl FUN_020336A0
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0202C60C:
+ ldr r1, _0202C684 ; =0x021C59D8
+ ldr r0, _0202C688 ; =0x0000130C
+ ldr r3, [r1, #0x4]
+ ldrh r2, [r3, r0]
+ cmp r2, #0x0
+ bne _0202C64C
+ add r7, r0, #0x0
+ mov r3, #0x1
+ add r2, r3, #0x0
+ sub r7, #0x28
+ sub r0, #0x28
+_0202C622:
+ ldr r4, [r1, #0x4]
+ ldr r6, _0202C68C ; =0x000012E4
+ ldrh r6, [r4, r6]
+ add r6, r6, #0x1
+ strh r6, [r4, r7]
+ ldr r4, [r1, #0x4]
+ ldrh r6, [r4, r0]
+ cmp r6, #0x10
+ bls _0202C638
+ ldr r6, _0202C68C ; =0x000012E4
+ strh r3, [r4, r6]
+_0202C638:
+ ldr r6, [r1, #0x4]
+ ldr r4, _0202C68C ; =0x000012E4
+ ldrh r4, [r6, r4]
+ add r6, r2, #0x0
+ sub r4, r4, #0x1
+ lsl r6, r4
+ add r4, r5, #0x0
+ tst r4, r6
+ bne _0202C650
+ b _0202C622
+_0202C64C:
+ sub r0, #0x28
+ strh r2, [r3, r0]
+_0202C650:
+ bl WM_GetDispersionScanPeriod
+ ldr r2, _0202C684 ; =0x021C59D8
+ ldr r1, _0202C690 ; =0x000012E6
+ ldr r3, [r2, #0x4]
+ strh r0, [r3, r1]
+ add r0, r1, #0x0
+ ldr r3, [r2, #0x4]
+ sub r0, #0xc6
+ add r4, r3, r0
+ sub r0, r1, #0x6
+ str r4, [r3, r0]
+ ldr r2, [r2, #0x4]
+ sub r1, r1, #0x6
+ ldr r0, _0202C694 ; =FUN_0202C698
+ add r1, r2, r1
+ bl WM_StartScan
+ cmp r0, #0x2
+ beq _0202C680
+ bl FUN_0202C1AC
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0202C680:
+ mov r0, #0x1
+ pop {r3-r7, pc}
+ .balign 4
+_0202C684: .word 0x021C59D8
+_0202C688: .word 0x0000130C
+_0202C68C: .word 0x000012E4
+_0202C690: .word 0x000012E6
+_0202C694: .word FUN_0202C698
+
+ thumb_func_start FUN_0202C698
+FUN_0202C698: ; 0x0202C698
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldrh r0, [r4, #0x2]
+ cmp r0, #0x0
+ beq _0202C6AE
+ bl FUN_0202C1AC
+ mov r0, #0x9
+ bl FUN_0202C198
+ pop {r4, pc}
+_0202C6AE:
+ ldr r0, _0202C760 ; =0x021C59D8
+ ldr r2, [r0, #0x4]
+ ldr r0, _0202C764 ; =0x00001310
+ ldr r1, [r2, r0]
+ cmp r1, #0x2
+ beq _0202C6D0
+ mov r1, #0x0
+ sub r0, r0, #0x2
+ strh r1, [r2, r0]
+ bl FUN_0202C794
+ cmp r0, #0x0
+ bne _0202C75C
+ mov r0, #0x9
+ bl FUN_0202C198
+ pop {r4, pc}
+_0202C6D0:
+ ldrh r1, [r4, #0x8]
+ cmp r1, #0x3
+ beq _0202C75C
+ cmp r1, #0x4
+ beq _0202C74E
+ cmp r1, #0x5
+ bne _0202C74E
+ sub r0, #0xf0
+ add r0, r2, r0
+ mov r1, #0xc0
+ bl DC_InvalidateRange
+ ldr r0, _0202C760 ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202C768 ; =0x00001320
+ ldr r2, [r1, r0]
+ cmp r2, #0x0
+ beq _0202C704
+ ldrh r0, [r4, #0x36]
+ cmp r0, #0x8
+ blo _0202C704
+ add r1, r4, #0x0
+ add r1, #0x48
+ ldrb r1, [r1, #0x4]
+ ldr r0, [r4, #0x3c]
+ blx r2
+_0202C704:
+ ldrh r0, [r4, #0x36]
+ cmp r0, #0x8
+ blo _0202C74E
+ ldr r0, _0202C760 ; =0x021C59D8
+ ldr r2, [r4, #0x3c]
+ ldr r0, [r0, #0x4]
+ ldr r1, [r0, #0x8]
+ cmp r2, r1
+ bne _0202C74E
+ add r4, #0x43
+ ldrb r2, [r4, #0x0]
+ mov r1, #0x3
+ and r1, r2
+ cmp r1, #0x1
+ bne _0202C74E
+ mov r1, #0x13
+ lsl r1, r1, #0x8
+ ldr r2, [r0, r1]
+ cmp r2, #0x0
+ beq _0202C732
+ sub r1, #0xe0
+ add r0, r0, r1
+ blx r2
+_0202C732:
+ ldr r0, _0202C760 ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202C76C ; =0x0000130E
+ ldrh r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0202C74E
+ bl FUN_0202C794
+ cmp r0, #0x0
+ bne _0202C75C
+ mov r0, #0x9
+ bl FUN_0202C198
+ pop {r4, pc}
+_0202C74E:
+ bl FUN_0202C5D8
+ cmp r0, #0x0
+ bne _0202C75C
+ mov r0, #0x9
+ bl FUN_0202C198
+_0202C75C:
+ pop {r4, pc}
+ nop
+_0202C760: .word 0x021C59D8
+_0202C764: .word 0x00001310
+_0202C768: .word 0x00001320
+_0202C76C: .word 0x0000130E
+
+ thumb_func_start FUN_0202C770
+FUN_0202C770: ; 0x0202C770
+ push {r3, lr}
+ ldr r0, _0202C78C ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202C790 ; =0x00001310
+ ldr r0, [r1, r0]
+ cmp r0, #0x2
+ beq _0202C782
+ mov r0, #0x0
+ pop {r3, pc}
+_0202C782:
+ mov r0, #0x3
+ bl FUN_0202C198
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+_0202C78C: .word 0x021C59D8
+_0202C790: .word 0x00001310
+
+ thumb_func_start FUN_0202C794
+FUN_0202C794: ; 0x0202C794
+ push {r3, lr}
+ ldr r0, _0202C7AC ; =FUN_0202C7B0
+ bl WM_EndScan
+ cmp r0, #0x2
+ beq _0202C7A8
+ bl FUN_0202C1AC
+ mov r0, #0x0
+ pop {r3, pc}
+_0202C7A8:
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+_0202C7AC: .word FUN_0202C7B0
+
+ thumb_func_start FUN_0202C7B0
+FUN_0202C7B0: ; 0x0202C7B0
+ push {r3, lr}
+ ldrh r0, [r0, #0x2]
+ cmp r0, #0x0
+ beq _0202C7BE
+ bl FUN_0202C1AC
+ pop {r3, pc}
+_0202C7BE:
+ mov r0, #0x1
+ bl FUN_0202C198
+ ldr r0, _0202C7E0 ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202C7E4 ; =0x0000130E
+ ldrh r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0202C7DE
+ bl FUN_0202C7E8
+ cmp r0, #0x0
+ bne _0202C7DE
+ mov r0, #0x9
+ bl FUN_0202C198
+_0202C7DE:
+ pop {r3, pc}
+ .balign 4
+_0202C7E0: .word 0x021C59D8
+_0202C7E4: .word 0x0000130E
+
+ thumb_func_start FUN_0202C7E8
+FUN_0202C7E8: ; 0x0202C7E8
+ push {lr}
+ sub sp, #0x24
+ ldr r0, _0202C844 ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202C848 ; =0x00001310
+ ldr r0, [r1, r0]
+ sub r0, r0, #0x4
+ cmp r0, #0x2
+ bhi _0202C800
+ add sp, #0x24
+ mov r0, #0x1
+ pop {pc}
+_0202C800:
+ mov r0, #0x3
+ bl FUN_0202C198
+ add r1, sp, #0x4
+ ldr r0, _0202C84C ; =0x02105D54
+ add r1, #0x1
+ mov r2, #0x3
+ bl MI_CpuCopy8
+ bl FUN_02033534
+ add r1, sp, #0x4
+ strb r0, [r1, #0x0]
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r1, _0202C844 ; =0x021C59D8
+ ldr r0, _0202C850 ; =FUN_0202C858
+ ldr r2, [r1, #0x4]
+ ldr r1, _0202C854 ; =0x00001220
+ mov r3, #0x1
+ add r1, r2, r1
+ add r2, sp, #0x4
+ bl WM_StartConnectEx
+ cmp r0, #0x2
+ beq _0202C83E
+ bl FUN_0202C1AC
+ add sp, #0x24
+ mov r0, #0x0
+ pop {pc}
+_0202C83E:
+ mov r0, #0x1
+ add sp, #0x24
+ pop {pc}
+ .balign 4
+_0202C844: .word 0x021C59D8
+_0202C848: .word 0x00001310
+_0202C84C: .word 0x02105D54
+_0202C850: .word FUN_0202C858
+_0202C854: .word 0x00001220
+
+ thumb_func_start FUN_0202C858
+FUN_0202C858: ; 0x0202C858
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldrh r0, [r4, #0x2]
+ cmp r0, #0x0
+ beq _0202C894
+ bl FUN_0202C1AC
+ ldrh r0, [r4, #0x2]
+ cmp r0, #0xc
+ bne _0202C874
+ mov r0, #0x9
+ bl FUN_0202C198
+ pop {r4, pc}
+_0202C874:
+ cmp r0, #0xb
+ bne _0202C880
+ mov r0, #0x9
+ bl FUN_0202C198
+ pop {r4, pc}
+_0202C880:
+ cmp r0, #0x1
+ bne _0202C88C
+ mov r0, #0x8
+ bl FUN_0202C198
+ pop {r4, pc}
+_0202C88C:
+ mov r0, #0x9
+ bl FUN_0202C198
+ pop {r4, pc}
+_0202C894:
+ ldrh r0, [r4, #0x8]
+ cmp r0, #0x8
+ beq _0202C8FA
+ cmp r0, #0x7
+ bne _0202C8DA
+ ldr r0, _0202C8FC ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202C900 ; =0x00001335
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0202C8B8
+ mov r0, #0x14
+ bl FUN_0202C1AC
+ mov r0, #0x9
+ bl FUN_0202C198
+ pop {r4, pc}
+_0202C8B8:
+ mov r0, #0x4
+ bl FUN_0202C198
+ bl FUN_0202C908
+ cmp r0, #0x0
+ bne _0202C8CE
+ mov r0, #0x3
+ bl FUN_0202C198
+ pop {r4, pc}
+_0202C8CE:
+ ldr r0, _0202C8FC ; =0x021C59D8
+ ldrh r2, [r4, #0xa]
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202C904 ; =0x0000132C
+ strh r2, [r1, r0]
+ pop {r4, pc}
+_0202C8DA:
+ cmp r0, #0x6
+ beq _0202C8FA
+ cmp r0, #0x9
+ bne _0202C8F0
+ mov r0, #0x14
+ bl FUN_0202C1AC
+ mov r0, #0x9
+ bl FUN_0202C198
+ pop {r4, pc}
+_0202C8F0:
+ cmp r0, #0x1a
+ beq _0202C8FA
+ mov r0, #0x9
+ bl FUN_0202C198
+_0202C8FA:
+ pop {r4, pc}
+ .balign 4
+_0202C8FC: .word 0x021C59D8
+_0202C900: .word 0x00001335
+_0202C904: .word 0x0000132C
+
+ thumb_func_start FUN_0202C908
+FUN_0202C908: ; 0x0202C908
+ push {r4, lr}
+ sub sp, #0x8
+ ldr r0, _0202C948 ; =0x021C59D8
+ ldr r2, _0202C94C ; =0x00001304
+ ldr r4, [r0, #0x4]
+ ldr r3, _0202C950 ; =0x00001020
+ ldr r0, [r4, r2]
+ add r1, r4, r3
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ add r2, r2, #0x4
+ ldr r2, [r4, r2]
+ sub r3, #0xe0
+ lsl r2, r2, #0x10
+ ldr r0, _0202C954 ; =FUN_0202C958
+ lsr r2, r2, #0x10
+ add r3, r4, r3
+ bl WM_StartMP
+ cmp r0, #0x2
+ beq _0202C942
+ bl FUN_0202C1AC
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r4, pc}
+_0202C942:
+ mov r0, #0x1
+ add sp, #0x8
+ pop {r4, pc}
+ .balign 4
+_0202C948: .word 0x021C59D8
+_0202C94C: .word 0x00001304
+_0202C950: .word 0x00001020
+_0202C954: .word FUN_0202C958
+
+ thumb_func_start FUN_0202C958
+FUN_0202C958: ; 0x0202C958
+ push {r3, lr}
+ ldrh r1, [r0, #0x2]
+ cmp r1, #0x0
+ beq _0202C97A
+ cmp r1, #0xf
+ beq _0202C9B0
+ cmp r1, #0x9
+ beq _0202C9B0
+ cmp r1, #0xd
+ beq _0202C9B0
+ add r0, r1, #0x0
+ bl FUN_0202C1AC
+ mov r0, #0x9
+ bl FUN_0202C198
+ pop {r3, pc}
+_0202C97A:
+ ldrh r0, [r0, #0x4]
+ sub r0, #0xa
+ cmp r0, #0x3
+ bhi _0202C9B0
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0202C98E: ; jump table (using 16-bit offset)
+ .short _0202C996 - _0202C98E - 2; case 0
+ .short _0202C9B0 - _0202C98E - 2; case 1
+ .short _0202C9B0 - _0202C98E - 2; case 2
+ .short _0202C9B0 - _0202C98E - 2; case 3
+_0202C996:
+ ldr r0, _0202C9B4 ; =0x021C59D8
+ ldr r2, [r0, #0x4]
+ ldr r0, _0202C9B8 ; =0x00001314
+ ldr r1, [r2, r0]
+ cmp r1, #0x3
+ bne _0202C9AA
+ sub r0, r0, #0x4
+ ldr r0, [r2, r0]
+ cmp r0, #0x6
+ beq _0202C9B0
+_0202C9AA:
+ mov r0, #0x4
+ bl FUN_0202C198
+_0202C9B0:
+ pop {r3, pc}
+ nop
+_0202C9B4: .word 0x021C59D8
+_0202C9B8: .word 0x00001314
+
+ thumb_func_start FUN_0202C9BC
+FUN_0202C9BC: ; 0x0202C9BC
+ push {r3, lr}
+ mov r0, #0x3
+ bl FUN_0202C198
+ ldr r0, _0202C9DC ; =FUN_0202C9E0
+ bl WM_EndMP
+ cmp r0, #0x2
+ beq _0202C9D6
+ bl FUN_0202C1AC
+ mov r0, #0x0
+ pop {r3, pc}
+_0202C9D6:
+ mov r0, #0x1
+ pop {r3, pc}
+ nop
+_0202C9DC: .word FUN_0202C9E0
+
+ thumb_func_start FUN_0202C9E0
+FUN_0202C9E0: ; 0x0202C9E0
+ push {r3, lr}
+ ldrh r0, [r0, #0x2]
+ cmp r0, #0x0
+ beq _0202C9F2
+ bl FUN_0202C1AC
+ bl FUN_0202D100
+ pop {r3, pc}
+_0202C9F2:
+ bl FUN_0202CA04
+ cmp r0, #0x0
+ bne _0202CA00
+ mov r0, #0x9
+ bl FUN_0202C198
+_0202CA00:
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202CA04
+FUN_0202CA04: ; 0x0202CA04
+ push {r3, lr}
+ mov r0, #0x3
+ bl FUN_0202C198
+ ldr r0, _0202CA28 ; =FUN_0202CA2C
+ mov r1, #0x0
+ bl WM_Disconnect
+ cmp r0, #0x2
+ beq _0202CA24
+ bl FUN_0202C1AC
+ bl FUN_0202D0D8
+ mov r0, #0x0
+ pop {r3, pc}
+_0202CA24:
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+_0202CA28: .word FUN_0202CA2C
+
+ thumb_func_start FUN_0202CA2C
+FUN_0202CA2C: ; 0x0202CA2C
+ push {r3, lr}
+ ldrh r0, [r0, #0x2]
+ cmp r0, #0x0
+ beq _0202CA3A
+ bl FUN_0202C1AC
+ pop {r3, pc}
+_0202CA3A:
+ mov r0, #0x1
+ bl FUN_0202C198
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202CA44
+FUN_0202CA44: ; 0x0202CA44
+ push {r3, lr}
+ mov r0, #0x3
+ bl FUN_0202C198
+ ldr r0, _0202CA64 ; =FUN_0202CA68
+ bl WM_Reset
+ cmp r0, #0x2
+ beq _0202CA5E
+ bl FUN_0202C1AC
+ mov r0, #0x0
+ pop {r3, pc}
+_0202CA5E:
+ mov r0, #0x1
+ pop {r3, pc}
+ nop
+_0202CA64: .word FUN_0202CA68
+
+ thumb_func_start FUN_0202CA68
+FUN_0202CA68: ; 0x0202CA68
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldrh r0, [r4, #0x2]
+ cmp r0, #0x0
+ beq _0202CA80
+ mov r0, #0x9
+ bl FUN_0202C198
+ ldrh r0, [r4, #0x2]
+ bl FUN_0202C1AC
+ pop {r4, pc}
+_0202CA80:
+ mov r0, #0x1
+ bl FUN_0202C198
+ pop {r4, pc}
+
+ thumb_func_start FUN_0202CA88
+FUN_0202CA88: ; 0x0202CA88
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ ldr r0, _0202CAD0 ; =0x021C59D8
+ add r6, r1, #0x0
+ add r4, r2, #0x0
+ ldr r1, [r0, #0x4]
+ mov r0, #0x3d
+ lsl r0, r0, #0x6
+ ldr r2, _0202CAD4 ; =0x00001304
+ add r0, r1, r0
+ ldr r1, [r1, r2]
+ add r7, r3, #0x0
+ bl DC_FlushRange
+ ldr r0, _0202CAD8 ; =0x0000FFFF
+ add r1, r7, #0x0
+ str r0, [sp, #0x0]
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x4]
+ mov r0, #0x2
+ str r0, [sp, #0x8]
+ ldr r0, _0202CADC ; =FUN_0202CAE0
+ add r2, r5, #0x0
+ add r3, r6, #0x0
+ bl WM_SetMPDataToPortEx
+ cmp r0, #0x2
+ bne _0202CACA
+ add sp, #0xc
+ mov r0, #0x1
+ pop {r4-r7, pc}
+_0202CACA:
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_0202CAD0: .word 0x021C59D8
+_0202CAD4: .word 0x00001304
+_0202CAD8: .word 0x0000FFFF
+_0202CADC: .word FUN_0202CAE0
+
+ thumb_func_start FUN_0202CAE0
+FUN_0202CAE0: ; 0x0202CAE0
+ push {r3, lr}
+ ldrh r1, [r0, #0x2]
+ cmp r1, #0x0
+ beq _0202CAF4
+ cmp r1, #0xf
+ beq _0202CAF4
+ add r0, r1, #0x0
+ bl FUN_0202C1AC
+ pop {r3, pc}
+_0202CAF4:
+ ldr r2, [r0, #0x20]
+ cmp r2, #0x0
+ beq _0202CB06
+ cmp r1, #0x0
+ bne _0202CB02
+ mov r0, #0x1
+ b _0202CB04
+_0202CB02:
+ mov r0, #0x0
+_0202CB04:
+ blx r2
+_0202CB06:
+ pop {r3, pc}
+
+ thumb_func_start FUN_0202CB08
+FUN_0202CB08: ; 0x0202CB08
+ push {r3, lr}
+ add r2, r0, #0x0
+ ldrh r0, [r2, #0x2]
+ cmp r0, #0x0
+ beq _0202CB18
+ bl FUN_0202C1AC
+ pop {r3, pc}
+_0202CB18:
+ ldr r0, _0202CB48 ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202CB4C ; =0x00001318
+ ldr r3, [r1, r0]
+ cmp r3, #0x0
+ beq _0202CB44
+ ldrh r0, [r2, #0x4]
+ cmp r0, #0x19
+ beq _0202CB44
+ cmp r0, #0x15
+ bne _0202CB38
+ ldrh r0, [r2, #0x12]
+ ldr r1, [r2, #0xc]
+ ldrh r2, [r2, #0x10]
+ blx r3
+ pop {r3, pc}
+_0202CB38:
+ cmp r0, #0x9
+ bne _0202CB44
+ ldrh r0, [r2, #0x12]
+ mov r1, #0x0
+ add r2, r1, #0x0
+ blx r3
+_0202CB44:
+ pop {r3, pc}
+ nop
+_0202CB48: .word 0x021C59D8
+_0202CB4C: .word 0x00001318
+
+ thumb_func_start FUN_0202CB50
+FUN_0202CB50: ; 0x0202CB50
+ push {r3, lr}
+ ldrh r0, [r0, #0x2]
+ cmp r0, #0x0
+ beq _0202CB60
+ mov r0, #0xa
+ bl FUN_0202C198
+ pop {r3, pc}
+_0202CB60:
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_02090CC8
+ mov r0, #0x0
+ bl FUN_0202C198
+ pop {r3, pc}
+
+ thumb_func_start FUN_0202CB70
+FUN_0202CB70: ; 0x0202CB70
+ ldr r1, _0202CB78 ; =0x021C59D8
+ ldr r1, [r1, #0x4]
+ str r0, [r1, #0x8]
+ bx lr
+ .balign 4
+_0202CB78: .word 0x021C59D8
+
+ thumb_func_start FUN_0202CB7C
+FUN_0202CB7C: ; 0x0202CB7C
+ ldr r2, _0202CB88 ; =0x021C59D8
+ ldr r3, [r2, #0x4]
+ str r0, [r3, #0x0]
+ ldr r0, [r2, #0x4]
+ strh r1, [r0, #0x4]
+ bx lr
+ .balign 4
+_0202CB88: .word 0x021C59D8
+
+ thumb_func_start FUN_0202CB8C
+FUN_0202CB8C: ; 0x0202CB8C
+ ldr r0, _0202CB98 ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202CB9C ; =0x0000132E
+ ldrh r0, [r1, r0]
+ bx lr
+ nop
+_0202CB98: .word 0x021C59D8
+_0202CB9C: .word 0x0000132E
+
+ thumb_func_start FUN_0202CBA0
+FUN_0202CBA0: ; 0x0202CBA0
+ push {r3-r4}
+ ldr r0, _0202CBCC ; =0x021C59D8
+ mov r2, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202CBD0 ; =0x0000132E
+ add r3, r2, #0x0
+ ldrh r4, [r1, r0]
+ mov r1, #0x1
+_0202CBB0:
+ add r0, r4, #0x0
+ tst r0, r1
+ beq _0202CBB8
+ add r2, r2, #0x1
+_0202CBB8:
+ lsl r0, r4, #0xf
+ add r3, r3, #0x1
+ lsr r4, r0, #0x10
+ cmp r3, #0x10
+ blt _0202CBB0
+ lsl r0, r2, #0x10
+ lsr r0, r0, #0x10
+ pop {r3-r4}
+ bx lr
+ nop
+_0202CBCC: .word 0x021C59D8
+_0202CBD0: .word 0x0000132E
+
+ thumb_func_start FUN_0202CBD4
+FUN_0202CBD4: ; 0x0202CBD4
+ ldr r0, _0202CBE0 ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202CBE4 ; =0x00001310
+ ldr r0, [r1, r0]
+ bx lr
+ nop
+_0202CBE0: .word 0x021C59D8
+_0202CBE4: .word 0x00001310
+
+ thumb_func_start FUN_0202CBE8
+FUN_0202CBE8: ; 0x0202CBE8
+ ldr r0, _0202CBF4 ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202CBF8 ; =0x00001330
+ ldr r0, [r1, r0]
+ bx lr
+ nop
+_0202CBF4: .word 0x021C59D8
+_0202CBF8: .word 0x00001330
+
+ thumb_func_start FUN_0202CBFC
+FUN_0202CBFC: ; 0x0202CBFC
+ push {r3-r5, lr}
+ sub sp, #0x8
+ add r0, sp, #0x0
+ bl OS_GetMacAddress
+ ldr r0, _0202CC84 ; =0x027FFC3C
+ ldr r3, [r0, #0x0]
+ add r0, sp, #0x0
+ ldrh r2, [r0, #0x4]
+ ldrh r1, [r0, #0x2]
+ ldrh r0, [r0, #0x0]
+ add r0, r0, r3
+ add r0, r1, r0
+ add r1, r2, r0
+ ldr r3, _0202CC88 ; =0x021C59D8
+ ldr r2, _0202CC8C ; =0x00001338
+ ldr r0, [r3, #0x4]
+ str r1, [r0, r2]
+ ldr r0, [r3, #0x4]
+ ldr r1, _0202CC90 ; =0x00010DCD
+ ldr r4, [r0, r2]
+ add r5, r4, #0x0
+ mul r5, r1
+ ldr r1, _0202CC94 ; =0x00003039
+ mov r4, #0x0
+ add r1, r5, r1
+ str r1, [r0, r2]
+ ldr r1, [r3, #0x4]
+ add r0, r2, #0x4
+ strh r4, [r1, r0]
+ ldr r1, [r3, #0x4]
+ mov r4, #0x65
+ add r0, r2, #0x6
+ strh r4, [r1, r0]
+ mov r0, #0x3
+ bl FUN_0202C198
+ mov r0, #0x1
+ bl FUN_0202CC98
+ cmp r0, #0x18
+ bne _0202CC68
+ mov r0, #0x18
+ bl FUN_0202C1AC
+ mov r0, #0x9
+ bl FUN_0202C198
+ mov r0, #0x1
+ bl FUN_020336A0
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0202CC68:
+ cmp r0, #0x2
+ beq _0202CC7C
+ bl FUN_0202C1AC
+ mov r0, #0x9
+ bl FUN_0202C198
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0202CC7C:
+ mov r0, #0x1
+ add sp, #0x8
+ pop {r3-r5, pc}
+ nop
+_0202CC84: .word 0x027FFC3C
+_0202CC88: .word 0x021C59D8
+_0202CC8C: .word 0x00001338
+_0202CC90: .word 0x00010DCD
+_0202CC94: .word 0x00003039
+
+ thumb_func_start FUN_0202CC98
+FUN_0202CC98: ; 0x0202CC98
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl WM_GetAllowedChannel
+ mov r1, #0x2
+ lsl r1, r1, #0xe
+ cmp r0, r1
+ bne _0202CCBE
+ mov r0, #0x3
+ bl FUN_0202C1AC
+ mov r0, #0x9
+ bl FUN_0202C198
+ mov r0, #0x1
+ bl FUN_020336A0
+ mov r0, #0x3
+ pop {r4, pc}
+_0202CCBE:
+ cmp r0, #0x0
+ bne _0202CCD8
+ mov r0, #0x16
+ bl FUN_0202C1AC
+ mov r0, #0x9
+ bl FUN_0202C198
+ mov r0, #0x1
+ bl FUN_020336A0
+ mov r0, #0x18
+ pop {r4, pc}
+_0202CCD8:
+ mov r2, #0x1
+ sub r1, r4, #0x1
+ lsl r2, r1
+ add r1, r2, #0x0
+ tst r1, r0
+ bne _0202CD00
+ mov r2, #0x1
+_0202CCE6:
+ add r1, r4, #0x1
+ lsl r1, r1, #0x10
+ lsr r4, r1, #0x10
+ cmp r4, #0x10
+ bls _0202CCF4
+ mov r0, #0x18
+ pop {r4, pc}
+_0202CCF4:
+ sub r1, r4, #0x1
+ add r3, r2, #0x0
+ lsl r3, r1
+ add r1, r3, #0x0
+ tst r1, r0
+ beq _0202CCE6
+_0202CD00:
+ ldr r0, _0202CD10 ; =FUN_0202CD14
+ add r1, r4, #0x0
+ bl FUN_0202CD90
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ pop {r4, pc}
+ nop
+_0202CD10: .word FUN_0202CD14
+
+ thumb_func_start FUN_0202CD14
+FUN_0202CD14: ; 0x0202CD14
+ push {r3-r5, lr}
+ ldrh r1, [r0, #0x2]
+ cmp r1, #0x0
+ beq _0202CD30
+ add r0, r1, #0x0
+ bl FUN_0202C1AC
+ mov r0, #0x9
+ bl FUN_0202C198
+ mov r0, #0x1
+ bl FUN_020336A0
+ pop {r3-r5, pc}
+_0202CD30:
+ ldr r2, _0202CD88 ; =0x021C59D8
+ ldrh r1, [r0, #0x8]
+ ldrh r5, [r0, #0xa]
+ ldr r0, [r2, #0x4]
+ ldr r3, _0202CD8C ; =0x0000133E
+ ldrh r4, [r0, r3]
+ cmp r4, r5
+ bls _0202CD50
+ strh r5, [r0, r3]
+ mov r4, #0x1
+ sub r0, r1, #0x1
+ lsl r4, r0
+ ldr r2, [r2, #0x4]
+ add r0, r3, #0x2
+ strh r4, [r2, r0]
+ b _0202CD64
+_0202CD50:
+ cmp r4, r5
+ bne _0202CD64
+ add r2, r3, #0x2
+ ldrh r5, [r0, r2]
+ mov r4, #0x1
+ sub r2, r1, #0x1
+ lsl r4, r2
+ orr r4, r5
+ add r2, r3, #0x2
+ strh r4, [r0, r2]
+_0202CD64:
+ add r0, r1, #0x1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0202CC98
+ cmp r0, #0x18
+ bne _0202CD7A
+ mov r0, #0x7
+ bl FUN_0202C198
+ pop {r3-r5, pc}
+_0202CD7A:
+ cmp r0, #0x2
+ beq _0202CD84
+ mov r0, #0x9
+ bl FUN_0202C198
+_0202CD84:
+ pop {r3-r5, pc}
+ nop
+_0202CD88: .word 0x021C59D8
+_0202CD8C: .word 0x0000133E
+
+ thumb_func_start FUN_0202CD90
+FUN_0202CD90: ; 0x0202CD90
+ push {r3, lr}
+ add r3, r1, #0x0
+ mov r1, #0x1e
+ str r1, [sp, #0x0]
+ mov r1, #0x3
+ mov r2, #0x11
+ bl WM_MeasureChannel
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202CDA4
+FUN_0202CDA4: ; 0x0202CDA4
+ push {r3, lr}
+ mov r0, #0x1
+ bl FUN_0202C198
+ ldr r0, _0202CDC8 ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ mov r0, #0x4d
+ lsl r0, r0, #0x6
+ ldrh r0, [r1, r0]
+ bl FUN_0202CDD0
+ ldr r2, _0202CDC8 ; =0x021C59D8
+ ldr r1, _0202CDCC ; =0x0000133C
+ ldr r3, [r2, #0x4]
+ strh r0, [r3, r1]
+ ldr r0, [r2, #0x4]
+ ldrh r0, [r0, r1]
+ pop {r3, pc}
+ .balign 4
+_0202CDC8: .word 0x021C59D8
+_0202CDCC: .word 0x0000133C
+
+ thumb_func_start FUN_0202CDD0
+FUN_0202CDD0: ; 0x0202CDD0
+ push {r4-r7}
+ add r4, r0, #0x0
+ mov r0, #0x0
+ add r3, r0, #0x0
+ add r2, r0, #0x0
+ mov r1, #0x1
+_0202CDDC:
+ add r5, r1, #0x0
+ lsl r5, r2
+ tst r5, r4
+ beq _0202CDF0
+ add r0, r2, #0x1
+ add r3, r3, #0x1
+ lsl r0, r0, #0x10
+ lsl r3, r3, #0x10
+ asr r0, r0, #0x10
+ lsr r3, r3, #0x10
+_0202CDF0:
+ add r2, r2, #0x1
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ cmp r2, #0x10
+ blt _0202CDDC
+ cmp r3, #0x1
+ bls _0202CE4E
+ ldr r5, _0202CE54 ; =0x021C59D8
+ ldr r2, _0202CE58 ; =0x00001338
+ ldr r0, [r5, #0x4]
+ ldr r1, _0202CE5C ; =0x00010DCD
+ ldr r6, [r0, r2]
+ add r7, r6, #0x0
+ mul r7, r1
+ ldr r1, _0202CE60 ; =0x00003039
+ add r1, r7, r1
+ str r1, [r0, r2]
+ ldr r0, [r5, #0x4]
+ mov r1, #0x1
+ ldr r0, [r0, r2]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mul r0, r3
+ lsl r0, r0, #0x8
+ lsr r2, r0, #0x10
+ mov r3, #0x0
+_0202CE24:
+ add r0, r4, #0x0
+ tst r0, r1
+ beq _0202CE3E
+ cmp r2, #0x0
+ bne _0202CE38
+ add r0, r3, #0x1
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ pop {r4-r7}
+ bx lr
+_0202CE38:
+ sub r0, r2, #0x1
+ lsl r0, r0, #0x10
+ lsr r2, r0, #0x10
+_0202CE3E:
+ lsl r0, r4, #0xf
+ lsr r4, r0, #0x10
+ add r0, r3, #0x1
+ lsl r0, r0, #0x10
+ asr r3, r0, #0x10
+ cmp r3, #0x10
+ blt _0202CE24
+ mov r0, #0x0
+_0202CE4E:
+ pop {r4-r7}
+ bx lr
+ nop
+_0202CE54: .word 0x021C59D8
+_0202CE58: .word 0x00001338
+_0202CE5C: .word 0x00010DCD
+_0202CE60: .word 0x00003039
+
+ thumb_func_start FUN_0202CE64
+FUN_0202CE64: ; 0x0202CE64
+ push {r3-r5, lr}
+ lsl r1, r0, #0x1b
+ lsr r2, r1, #0x1b
+ beq _0202CE72
+ mov r1, #0x20
+ sub r1, r1, r2
+ add r0, r0, r1
+_0202CE72:
+ ldr r2, _0202CEE4 ; =0x021C59D8
+ ldr r1, _0202CEE8 ; =0x00001308
+ str r0, [r2, #0x4]
+ mov r3, #0x0
+ str r3, [r0, r1]
+ ldr r4, [r2, #0x4]
+ sub r0, r1, #0x4
+ str r3, [r4, r0]
+ add r0, r1, #0x0
+ ldr r4, [r2, #0x4]
+ add r0, #0x10
+ str r3, [r4, r0]
+ add r0, r1, #0x0
+ ldr r4, [r2, #0x4]
+ add r0, #0x24
+ strh r3, [r4, r0]
+ add r0, r1, #0x0
+ ldr r4, [r2, #0x4]
+ mov r5, #0x1
+ add r0, #0x26
+ strh r5, [r4, r0]
+ add r0, r1, #0x0
+ ldr r4, [r2, #0x4]
+ add r0, #0x28
+ str r3, [r4, r0]
+ add r0, r1, #0x0
+ ldr r4, [r2, #0x4]
+ add r0, #0x8
+ str r3, [r4, r0]
+ ldr r0, [r2, #0x4]
+ mov r5, #0x8
+ str r3, [r0, #0x0]
+ ldr r0, [r2, #0x4]
+ strh r3, [r0, #0x4]
+ add r0, r1, #0x0
+ ldr r4, [r2, #0x4]
+ add r0, #0x14
+ str r3, [r4, r0]
+ add r0, r1, #0x0
+ ldr r4, [r2, #0x4]
+ add r0, #0x2c
+ strb r5, [r4, r0]
+ add r0, r1, #0x0
+ ldr r4, [r2, #0x4]
+ add r0, #0x2d
+ strb r3, [r4, r0]
+ ldr r0, [r2, #0x4]
+ add r1, #0x3a
+ strb r3, [r0, r1]
+ bl FUN_0202CF0C
+ cmp r0, #0x0
+ bne _0202CEE0
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0202CEE0:
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+_0202CEE4: .word 0x021C59D8
+_0202CEE8: .word 0x00001308
+
+ thumb_func_start FUN_0202CEEC
+FUN_0202CEEC: ; 0x0202CEEC
+ mov r0, #0x4e
+ lsl r0, r0, #0x6
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202CEF4
+FUN_0202CEF4: ; 0x0202CEF4
+ push {r3, lr}
+ ldrh r0, [r0, #0x2]
+ cmp r0, #0x8
+ bne _0202CF08
+ mov r0, #0x9
+ bl FUN_0202C198
+ mov r0, #0x19
+ bl FUN_0202C1AC
+_0202CF08:
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202CF0C
+FUN_0202CF0C: ; 0x0202CF0C
+ push {r3, lr}
+ mov r0, #0x3
+ bl FUN_0202C198
+ ldr r0, _0202CF38 ; =0x021C59D8
+ ldr r1, _0202CF3C ; =FUN_0202CF40
+ ldr r0, [r0, #0x4]
+ mov r2, #0x2
+ add r0, #0x40
+ bl WM_Initialize
+ cmp r0, #0x2
+ beq _0202CF34
+ bl FUN_0202C1AC
+ mov r0, #0xa
+ bl FUN_0202C198
+ mov r0, #0x0
+ pop {r3, pc}
+_0202CF34:
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+_0202CF38: .word 0x021C59D8
+_0202CF3C: .word FUN_0202CF40
+
+ thumb_func_start FUN_0202CF40
+FUN_0202CF40: ; 0x0202CF40
+ push {r3, lr}
+ ldrh r0, [r0, #0x2]
+ cmp r0, #0x0
+ beq _0202CF5A
+ bl FUN_0202C1AC
+ mov r0, #0xa
+ bl FUN_0202C198
+ mov r0, #0x1
+ bl FUN_020336A0
+ pop {r3, pc}
+_0202CF5A:
+ ldr r0, _0202CF80 ; =FUN_0202CEF4
+ bl WM_SetIndCallback
+ cmp r0, #0x0
+ beq _0202CF76
+ bl FUN_0202C1AC
+ mov r0, #0xa
+ bl FUN_0202C198
+ mov r0, #0x1
+ bl FUN_020336A0
+ pop {r3, pc}
+_0202CF76:
+ mov r0, #0x1
+ bl FUN_0202C198
+ pop {r3, pc}
+ nop
+_0202CF80: .word FUN_0202CEF4
+
+ thumb_func_start FUN_0202CF84
+FUN_0202CF84: ; 0x0202CF84
+ push {r3-r7, lr}
+ add r6, r1, #0x0
+ ldr r1, _0202D02C ; =0x021C59D8
+ add r5, r0, #0x0
+ add r7, r2, #0x0
+ mov r0, #0x7
+ ldr r2, [r1, #0x4]
+ ldr r1, _0202D030 ; =0x00001308
+ lsl r0, r0, #0x6
+ str r0, [r2, r1]
+ ldr r0, _0202D02C ; =0x021C59D8
+ add r4, r3, #0x0
+ ldr r2, [r0, #0x4]
+ sub r0, r1, #0x4
+ mov r3, #0xe0
+ str r3, [r2, r0]
+ ldr r0, _0202D02C ; =0x021C59D8
+ add r1, #0xc
+ ldr r0, [r0, #0x4]
+ str r5, [r0, r1]
+ mov r0, #0x3
+ bl FUN_0202C198
+ ldr r1, _0202D02C ; =0x021C59D8
+ cmp r5, #0x0
+ ldr r0, [r1, #0x4]
+ strh r6, [r0, #0xc]
+ ldr r0, [r1, #0x4]
+ strh r7, [r0, #0x32]
+ add r0, sp, #0x8
+ ldrh r2, [r0, #0x10]
+ ldr r0, [r1, #0x4]
+ strh r2, [r0, #0x18]
+ beq _0202CFCE
+ cmp r5, #0x4
+ beq _0202CFE8
+ b _0202CFF4
+_0202CFCE:
+ ldr r0, [r1, #0x4]
+ mov r2, #0xc0
+ strh r2, [r0, #0x34]
+ cmp r4, #0x5
+ blo _0202CFE0
+ ldr r0, [r1, #0x4]
+ mov r2, #0xc
+ strh r2, [r0, #0x36]
+ b _0202CFF4
+_0202CFE0:
+ ldr r0, [r1, #0x4]
+ mov r2, #0x26
+ strh r2, [r0, #0x36]
+ b _0202CFF4
+_0202CFE8:
+ ldr r0, [r1, #0x4]
+ mov r2, #0x64
+ strh r2, [r0, #0x34]
+ ldr r0, [r1, #0x4]
+ mov r2, #0xc
+ strh r2, [r0, #0x36]
+_0202CFF4:
+ ldr r1, _0202D02C ; =0x021C59D8
+ ldr r0, [r1, #0x4]
+ strh r4, [r0, #0x10]
+ ldr r2, [r1, #0x4]
+ mov r0, #0x0
+ strh r0, [r2, #0x16]
+ ldr r2, [r1, #0x4]
+ cmp r5, #0x2
+ strh r0, [r2, #0x12]
+ ldr r2, [sp, #0x1c]
+ ldr r1, [r1, #0x4]
+ strh r2, [r1, #0xe]
+ bne _0202D010
+ mov r0, #0x1
+_0202D010:
+ ldr r1, _0202D02C ; =0x021C59D8
+ cmp r5, #0x0
+ ldr r1, [r1, #0x4]
+ strh r0, [r1, #0x14]
+ beq _0202D022
+ cmp r5, #0x2
+ beq _0202D022
+ cmp r5, #0x4
+ bne _0202D028
+_0202D022:
+ bl FUN_0202C1C8
+ pop {r3-r7, pc}
+_0202D028:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_0202D02C: .word 0x021C59D8
+_0202D030: .word 0x00001308
+
+ thumb_func_start FUN_0202D034
+FUN_0202D034: ; 0x0202D034
+ push {r4-r6, lr}
+ ldr r2, _0202D094 ; =0x021C59D8
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ mov r3, #0x2
+ ldr r0, [r2, #0x4]
+ ldr r1, _0202D098 ; =0x00001308
+ lsl r3, r3, #0x8
+ str r3, [r0, r1]
+ sub r0, r1, #0x4
+ ldr r3, [r2, #0x4]
+ mov r6, #0x40
+ str r6, [r3, r0]
+ ldr r0, [r2, #0x4]
+ add r1, #0xc
+ str r5, [r0, r1]
+ mov r0, #0x3
+ bl FUN_0202C198
+ cmp r5, #0x1
+ beq _0202D066
+ cmp r5, #0x3
+ beq _0202D066
+ cmp r5, #0x5
+ bne _0202D08E
+_0202D066:
+ ldr r1, _0202D094 ; =0x021C59D8
+ add r0, r4, #0x0
+ ldr r2, [r1, #0x4]
+ ldr r1, _0202D09C ; =0x00001220
+ add r1, r2, r1
+ mov r2, #0xc0
+ bl MI_CpuCopy8
+ ldr r0, _0202D094 ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202D09C ; =0x00001220
+ add r0, r1, r0
+ mov r1, #0xc0
+ bl DC_FlushRange
+ bl DC_WaitWriteBufferEmpty
+ bl FUN_0202C7E8
+ pop {r4-r6, pc}
+_0202D08E:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ nop
+_0202D094: .word 0x021C59D8
+_0202D098: .word 0x00001308
+_0202D09C: .word 0x00001220
+
+ thumb_func_start FUN_0202D0A0
+FUN_0202D0A0: ; 0x0202D0A0
+ push {r3, lr}
+ ldr r2, _0202D0C4 ; =0x021C59D8
+ ldr r3, [r2, #0x4]
+ ldr r2, _0202D0C8 ; =0x00001318
+ str r0, [r3, r2]
+ lsl r0, r1, #0x10
+ ldr r1, _0202D0CC ; =FUN_0202CB08
+ lsr r0, r0, #0x10
+ mov r2, #0x0
+ bl WM_SetPortCallback
+ cmp r0, #0x0
+ beq _0202D0C2
+ mov r0, #0x9
+ bl FUN_0202C198
+_0202D0C0:
+ b _0202D0C0
+_0202D0C2:
+ pop {r3, pc}
+ .balign 4
+_0202D0C4: .word 0x021C59D8
+_0202D0C8: .word 0x00001318
+_0202D0CC: .word FUN_0202CB08
+
+ thumb_func_start FUN_0202D0D0
+FUN_0202D0D0: ; 0x0202D0D0
+ push {r3, lr}
+ bl FUN_0202CA88
+ pop {r3, pc}
+
+ thumb_func_start FUN_0202D0D8
+FUN_0202D0D8: ; 0x0202D0D8
+ push {r3, lr}
+ ldr r0, _0202D0F8 ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202D0FC ; =0x00001310
+ ldr r0, [r1, r0]
+ cmp r0, #0x2
+ bne _0202D0E8
+_0202D0E6:
+ b _0202D0E6
+_0202D0E8:
+ bl FUN_0202CA44
+ cmp r0, #0x0
+ bne _0202D0F6
+ mov r0, #0xa
+ bl FUN_0202C198
+_0202D0F6:
+ pop {r3, pc}
+ .balign 4
+_0202D0F8: .word 0x021C59D8
+_0202D0FC: .word 0x00001310
+
+ thumb_func_start FUN_0202D100
+FUN_0202D100: ; 0x0202D100
+ push {r3, lr}
+ ldr r0, _0202D16C ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202D170 ; =0x00001310
+ ldr r0, [r1, r0]
+ cmp r0, #0x1
+ beq _0202D16A
+ cmp r0, #0x6
+ beq _0202D126
+ cmp r0, #0x5
+ beq _0202D126
+ cmp r0, #0x4
+ beq _0202D126
+ mov r0, #0x3
+ bl FUN_0202C198
+ bl FUN_0202D0D8
+ pop {r3, pc}
+_0202D126:
+ mov r0, #0x3
+ bl FUN_0202C198
+ ldr r0, _0202D16C ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202D174 ; =0x00001314
+ ldr r0, [r1, r0]
+ cmp r0, #0x5
+ bhi _0202D16A
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0202D144: ; jump table (using 16-bit offset)
+ .short _0202D15E - _0202D144 - 2; case 0
+ .short _0202D150 - _0202D144 - 2; case 1
+ .short _0202D16A - _0202D144 - 2; case 2
+ .short _0202D16A - _0202D144 - 2; case 3
+ .short _0202D15E - _0202D144 - 2; case 4
+ .short _0202D150 - _0202D144 - 2; case 5
+_0202D150:
+ bl FUN_0202C9BC
+ cmp r0, #0x0
+ bne _0202D16A
+ bl FUN_0202D0D8
+ pop {r3, pc}
+_0202D15E:
+ bl FUN_0202C460
+ cmp r0, #0x0
+ bne _0202D16A
+ bl FUN_0202D0D8
+_0202D16A:
+ pop {r3, pc}
+ .balign 4
+_0202D16C: .word 0x021C59D8
+_0202D170: .word 0x00001310
+_0202D174: .word 0x00001314
+
+ thumb_func_start FUN_0202D178
+FUN_0202D178: ; 0x0202D178
+ push {r3, lr}
+ mov r0, #0x3
+ bl FUN_0202C198
+ ldr r0, _0202D198 ; =FUN_0202CB50
+ bl WM_End
+ cmp r0, #0x2
+ beq _0202D194
+ mov r0, #0x9
+ bl FUN_0202C198
+ mov r0, #0x0
+ pop {r3, pc}
+_0202D194:
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+_0202D198: .word FUN_0202CB50
+
+ thumb_func_start FUN_0202D19C
+FUN_0202D19C: ; 0x0202D19C
+ ldr r0, _0202D1A8 ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202D1AC ; =0x0000132C
+ ldrh r0, [r1, r0]
+ bx lr
+ nop
+_0202D1A8: .word 0x021C59D8
+_0202D1AC: .word 0x0000132C
+
+ thumb_func_start FUN_0202D1B0
+FUN_0202D1B0: ; 0x0202D1B0
+ ldr r1, _0202D1C0 ; =0x021C59D8
+ ldr r2, [r1, #0x4]
+ cmp r2, #0x0
+ beq _0202D1BC
+ ldr r1, _0202D1C4 ; =0x00001334
+ strb r0, [r2, r1]
+_0202D1BC:
+ bx lr
+ nop
+_0202D1C0: .word 0x021C59D8
+_0202D1C4: .word 0x00001334
+
+ thumb_func_start FUN_0202D1C8
+FUN_0202D1C8: ; 0x0202D1C8
+ ldr r0, _0202D1DC ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202D1E0 ; =0x00001310
+ ldr r0, [r1, r0]
+ cmp r0, #0x1
+ bne _0202D1D8
+ mov r0, #0x1
+ bx lr
+_0202D1D8:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0202D1DC: .word 0x021C59D8
+_0202D1E0: .word 0x00001310
+
+ thumb_func_start FUN_0202D1E4
+FUN_0202D1E4: ; 0x0202D1E4
+ ldr r0, _0202D1F8 ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202D1FC ; =0x00001310
+ ldr r0, [r1, r0]
+ cmp r0, #0x3
+ bne _0202D1F4
+ mov r0, #0x1
+ bx lr
+_0202D1F4:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0202D1F8: .word 0x021C59D8
+_0202D1FC: .word 0x00001310
+
+ thumb_func_start FUN_0202D200
+FUN_0202D200: ; 0x0202D200
+ ldr r0, _0202D214 ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202D218 ; =0x00001310
+ ldr r0, [r1, r0]
+ cmp r0, #0x9
+ bne _0202D210
+ mov r0, #0x1
+ bx lr
+_0202D210:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0202D214: .word 0x021C59D8
+_0202D218: .word 0x00001310
+
+ thumb_func_start FUN_0202D21C
+FUN_0202D21C: ; 0x0202D21C
+ ldr r0, _0202D238 ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ cmp r1, #0x0
+ beq _0202D234
+ ldr r0, _0202D23C ; =0x00001310
+ ldr r0, [r1, r0]
+ cmp r0, #0x2
+ bne _0202D230
+ mov r0, #0x1
+ bx lr
+_0202D230:
+ mov r0, #0x0
+ bx lr
+_0202D234:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0202D238: .word 0x021C59D8
+_0202D23C: .word 0x00001310
+
+ thumb_func_start FUN_0202D240
+FUN_0202D240: ; 0x0202D240
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r6, r0, #0x0
+ ldr r0, _0202D274 ; =0x021C59D8
+ add r5, r1, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202D278 ; =0x00001310
+ add r4, r2, #0x0
+ ldr r0, [r1, r0]
+ cmp r0, #0x4
+ bne _0202D26E
+ lsl r0, r3, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ lsl r2, r5, #0x10
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ add r1, r6, #0x0
+ lsr r2, r2, #0x10
+ add r3, r4, #0x0
+ bl WM_SetGameInfo
+_0202D26E:
+ add sp, #0x8
+ pop {r4-r6, pc}
+ nop
+_0202D274: .word 0x021C59D8
+_0202D278: .word 0x00001310
+
+ thumb_func_start FUN_0202D27C
+FUN_0202D27C: ; 0x0202D27C
+ ldrh r0, [r0, #0x2]
+ cmp r0, #0x0
+ bne _0202D28C
+ ldr r0, _0202D290 ; =0x021C59D8
+ mov r2, #0x1
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202D294 ; =0x00001344
+ strb r2, [r1, r0]
+_0202D28C:
+ bx lr
+ nop
+_0202D290: .word 0x021C59D8
+_0202D294: .word 0x00001344
+
+ thumb_func_start FUN_0202D298
+FUN_0202D298: ; 0x0202D298
+ push {r4, lr}
+ ldr r2, _0202D2C4 ; =0x021C59D8
+ add r1, r0, #0x0
+ ldr r3, [r2, #0x4]
+ ldr r0, _0202D2C8 ; =0x00001344
+ mov r4, #0x0
+ strb r4, [r3, r0]
+ ldr r2, [r2, #0x4]
+ sub r0, #0x34
+ ldr r0, [r2, r0]
+ cmp r0, #0x4
+ bne _0202D2BE
+ ldr r0, _0202D2CC ; =FUN_0202D27C
+ bl WM_SetEntry
+ cmp r0, #0x2
+ bne _0202D2BE
+ mov r0, #0x1
+ pop {r4, pc}
+_0202D2BE:
+ mov r0, #0x0
+ pop {r4, pc}
+ nop
+_0202D2C4: .word 0x021C59D8
+_0202D2C8: .word 0x00001344
+_0202D2CC: .word FUN_0202D27C
+
+ thumb_func_start FUN_0202D2D0
+FUN_0202D2D0: ; 0x0202D2D0
+ ldr r0, _0202D2EC ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ cmp r1, #0x0
+ beq _0202D2E8
+ ldr r0, _0202D2F0 ; =0x00001345
+ ldrb r0, [r1, r0]
+ cmp r0, #0x6
+ blo _0202D2E4
+ mov r0, #0x1
+ bx lr
+_0202D2E4:
+ mov r0, #0x0
+ bx lr
+_0202D2E8:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0202D2EC: .word 0x021C59D8
+_0202D2F0: .word 0x00001345
+
+ thumb_func_start FUN_0202D2F4
+FUN_0202D2F4: ; 0x0202D2F4
+ ldr r0, _0202D300 ; =0x021C59D8
+ mov r2, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202D304 ; =0x00001345
+ strb r2, [r1, r0]
+ bx lr
+ .balign 4
+_0202D300: .word 0x021C59D8
+_0202D304: .word 0x00001345
+
+ thumb_func_start FUN_0202D308
+FUN_0202D308: ; 0x0202D308
+ ldr r1, _0202D314 ; =0x021C59D8
+ ldr r2, [r1, #0x4]
+ ldr r1, _0202D318 ; =0x00001320
+ str r0, [r2, r1]
+ bx lr
+ nop
+_0202D314: .word 0x021C59D8
+_0202D318: .word 0x00001320
+
+ thumb_func_start FUN_0202D31C
+FUN_0202D31C: ; 0x0202D31C
+ ldr r1, _0202D328 ; =0x021C59D8
+ ldr r2, [r1, #0x4]
+ ldr r1, _0202D32C ; =0x00001324
+ str r0, [r2, r1]
+ bx lr
+ nop
+_0202D328: .word 0x021C59D8
+_0202D32C: .word 0x00001324
+
+ thumb_func_start FUN_0202D330
+FUN_0202D330: ; 0x0202D330
+ ldr r1, _0202D33C ; =0x021C59D8
+ ldr r2, [r1, #0x4]
+ ldr r1, _0202D340 ; =0x00001328
+ str r0, [r2, r1]
+ bx lr
+ nop
+_0202D33C: .word 0x021C59D8
+_0202D340: .word 0x00001328
+
+ thumb_func_start FUN_0202D344
+FUN_0202D344: ; 0x0202D344
+ ldr r1, _0202D350 ; =0x021C59D8
+ ldr r2, [r1, #0x4]
+ ldr r1, _0202D354 ; =0x00001342
+ strb r0, [r2, r1]
+ bx lr
+ nop
+_0202D350: .word 0x021C59D8
+_0202D354: .word 0x00001342
+
+ thumb_func_start FUN_0202D358
+FUN_0202D358: ; 0x0202D358
+ ldr r0, _0202D364 ; =0x021C59D8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202D368 ; =0x00001342
+ ldrb r0, [r1, r0]
+ bx lr
+ nop
+_0202D364: .word 0x021C59D8
+_0202D368: .word 0x00001342
+
+ thumb_func_start FUN_0202D36C
+FUN_0202D36C: ; 0x0202D36C
+ ldr r1, _0202D378 ; =0x021C59D8
+ ldr r2, [r1, #0x4]
+ ldr r1, _0202D37C ; =0x00001343
+ strb r0, [r2, r1]
+ bx lr
+ nop
+_0202D378: .word 0x021C59D8
+_0202D37C: .word 0x00001343
+
+ thumb_func_start FUN_0202D380
+FUN_0202D380: ; 0x0202D380
+ ldr r1, _0202D38C ; =0x021C59D8
+ ldr r2, [r1, #0x4]
+ ldr r1, _0202D390 ; =0x00001335
+ strb r0, [r2, r1]
+ bx lr
+ nop
+_0202D38C: .word 0x021C59D8
+_0202D390: .word 0x00001335
+
+ thumb_func_start FUN_0202D394
+FUN_0202D394: ; 0x0202D394
+ str r1, [r0, #0x0]
+ strh r2, [r0, #0xa]
+ mov r1, #0x0
+ strh r1, [r0, #0x4]
+ strh r1, [r0, #0x6]
+ strh r1, [r0, #0x8]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202D3A4
+FUN_0202D3A4: ; 0x0202D3A4
+ push {r3-r7, lr}
+ str r2, [sp, #0x0]
+ add r5, r0, #0x0
+ add r7, r1, #0x0
+ bl FUN_0202D498
+ ldr r1, [sp, #0x0]
+ cmp r0, r1
+ bgt _0202D3BC
+ bl FUN_02031454
+ pop {r3-r7, pc}
+_0202D3BC:
+ mov r0, #0x8
+ ldrsh r4, [r5, r0]
+ ldrsh r1, [r5, r0]
+ ldr r0, [sp, #0x0]
+ mov r6, #0x0
+ add r0, r1, r0
+ cmp r4, r0
+ bge _0202D3F2
+_0202D3CC:
+ cmp r7, #0x0
+ bne _0202D3D4
+ bl ErrorHandling
+_0202D3D4:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0202D4A8
+ ldrb r2, [r7, r6]
+ ldr r1, [r5, #0x0]
+ add r4, r4, #0x1
+ strb r2, [r1, r0]
+ mov r0, #0x8
+ ldrsh r1, [r5, r0]
+ ldr r0, [sp, #0x0]
+ add r6, r6, #0x1
+ add r0, r1, r0
+ cmp r4, r0
+ blt _0202D3CC
+_0202D3F2:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0202D4A8
+ strh r0, [r5, #0x8]
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202D400
+FUN_0202D400: ; 0x0202D400
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_0202D42C
+ mov r1, #0x4
+ add r4, r0, #0x0
+ ldrsh r1, [r5, r1]
+ add r0, r5, #0x0
+ add r1, r1, r4
+ bl FUN_0202D4A8
+ strh r0, [r5, #0x4]
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_0202D41C
+FUN_0202D41C: ; 0x0202D41C
+ push {r3, lr}
+ add r1, sp, #0x0
+ mov r2, #0x1
+ bl FUN_0202D400
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x0]
+ pop {r3, pc}
+
+ thumb_func_start FUN_0202D42C
+FUN_0202D42C: ; 0x0202D42C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ mov r0, #0x4
+ ldrsh r4, [r5, r0]
+ add r7, r2, #0x0
+ str r1, [sp, #0x0]
+ add r0, r4, r7
+ mov r6, #0x0
+ cmp r4, r0
+ bge _0202D472
+_0202D440:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0202D4A8
+ mov r1, #0x6
+ ldrsh r1, [r5, r1]
+ cmp r1, r0
+ bne _0202D454
+ add r0, r6, #0x0
+ pop {r3-r7, pc}
+_0202D454:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0202D4A8
+ ldr r1, [r5, #0x0]
+ add r4, r4, #0x1
+ ldrb r1, [r1, r0]
+ ldr r0, [sp, #0x0]
+ strb r1, [r0, r6]
+ mov r0, #0x4
+ ldrsh r0, [r5, r0]
+ add r6, r6, #0x1
+ add r0, r0, r7
+ cmp r4, r0
+ blt _0202D440
+_0202D472:
+ add r0, r6, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202D478
+FUN_0202D478: ; 0x0202D478
+ mov r1, #0x4
+ mov r3, #0x6
+ ldrsh r1, [r0, r1]
+ ldrsh r2, [r0, r3]
+ cmp r1, r2
+ ble _0202D490
+ mov r2, #0xa
+ ldrsh r2, [r0, r2]
+ ldrsh r0, [r0, r3]
+ add r0, r2, r0
+ sub r0, r0, r1
+ bx lr
+_0202D490:
+ ldrsh r0, [r0, r3]
+ sub r0, r0, r1
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202D498
+FUN_0202D498: ; 0x0202D498
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_0202D478
+ mov r1, #0xa
+ ldrsh r1, [r4, r1]
+ sub r0, r1, r0
+ pop {r4, pc}
+
+ thumb_func_start FUN_0202D4A8
+FUN_0202D4A8: ; 0x0202D4A8
+ push {r3, lr}
+ add r2, r0, #0x0
+ add r0, r1, #0x0
+ mov r1, #0xa
+ ldrsh r1, [r2, r1]
+ bl _s32_div_f
+ add r0, r1, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202D4BC
+FUN_0202D4BC: ; 0x0202D4BC
+ mov r1, #0x8
+ ldrsh r1, [r0, r1]
+ strh r1, [r0, #0x6]
+ bx lr
+
+ thumb_func_start FUN_0202D4C4
+FUN_0202D4C4: ; 0x0202D4C4
+ ldr r3, [r0, #0x1c]
+ mov r2, #0x0
+ ldr r1, [r0, #0x18]
+ cmp r3, #0x0
+ ble _0202D4E0
+_0202D4CE:
+ ldrb r0, [r1, #0xe]
+ cmp r0, #0x0
+ bne _0202D4D8
+ add r0, r1, #0x0
+ bx lr
+_0202D4D8:
+ add r2, r2, #0x1
+ add r1, #0x10
+ cmp r2, r3
+ blt _0202D4CE
+_0202D4E0:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_0202D4E4
+FUN_0202D4E4: ; 0x0202D4E4
+ ldr r3, [r0, #0x1c]
+ mov r2, #0x0
+ ldr r1, [r0, #0x18]
+ cmp r3, #0x0
+ ble _0202D500
+_0202D4EE:
+ ldrb r0, [r1, #0xe]
+ cmp r0, #0x0
+ beq _0202D4F8
+ mov r0, #0x0
+ bx lr
+_0202D4F8:
+ add r2, r2, #0x1
+ add r1, #0x10
+ cmp r2, r3
+ blt _0202D4EE
+_0202D500:
+ mov r0, #0x1
+ bx lr
+
+ thumb_func_start FUN_0202D504
+FUN_0202D504: ; 0x0202D504
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _0202D522
+ ldr r1, [r1, #0x8]
+ cmp r1, #0x0
+ beq _0202D518
+ str r1, [r0, #0x0]
+ mov r0, #0x0
+ str r0, [r1, #0x4]
+ b _0202D51E
+_0202D518:
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ str r1, [r0, #0x4]
+_0202D51E:
+ mov r0, #0x1
+ bx lr
+_0202D522:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202D528
+FUN_0202D528: ; 0x0202D528
+ ldr r2, [r0, #0x0]
+ strb r1, [r2, #0x0]
+ ldr r1, [r0, #0x0]
+ add r1, r1, #0x1
+ str r1, [r0, #0x0]
+ ldr r1, [r0, #0x4]
+ sub r1, r1, #0x1
+ str r1, [r0, #0x4]
+ bne _0202D53E
+ mov r0, #0x1
+ bx lr
+_0202D53E:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202D544
+FUN_0202D544: ; 0x0202D544
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldrb r0, [r5, #0xe]
+ add r4, r1, #0x0
+ bl FUN_0202D9A0
+ add r6, r0, #0x0
+ ldr r0, _0202D5B8 ; =0x0000FFFF
+ cmp r6, r0
+ ldr r0, [r4, #0x4]
+ bne _0202D56A
+ cmp r0, #0x3
+ bge _0202D57A
+ ldrb r1, [r5, #0xf]
+ mov r0, #0x1
+ bic r1, r0
+ strb r1, [r5, #0xf]
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_0202D56A:
+ cmp r0, #0x1
+ bge _0202D57A
+ ldrb r1, [r5, #0xf]
+ mov r0, #0x1
+ bic r1, r0
+ strb r1, [r5, #0xf]
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_0202D57A:
+ ldrb r1, [r5, #0xe]
+ add r0, r4, #0x0
+ bl FUN_0202D528
+ ldr r0, _0202D5B8 ; =0x0000FFFF
+ cmp r6, r0
+ bne _0202D5A4
+ ldrh r1, [r5, #0xc]
+ add r0, r4, #0x0
+ asr r1, r1, #0x8
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_0202D528
+ ldrh r1, [r5, #0xc]
+ add r0, r4, #0x0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_0202D528
+ b _0202D5A6
+_0202D5A4:
+ strh r6, [r5, #0xc]
+_0202D5A6:
+ ldrb r1, [r5, #0xf]
+ mov r0, #0x1
+ bic r1, r0
+ mov r0, #0x1
+ orr r0, r1
+ strb r0, [r5, #0xf]
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ nop
+_0202D5B8: .word 0x0000FFFF
+
+ thumb_func_start FUN_0202D5BC
+FUN_0202D5BC: ; 0x0202D5BC
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ ldrb r0, [r5, #0xe]
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ bl FUN_0202D9A0
+ ldr r1, _0202D680 ; =0x0000FFFF
+ cmp r0, r1
+ bne _0202D5D6
+ mov r2, #0x3
+ b _0202D5D8
+_0202D5D6:
+ mov r2, #0x1
+_0202D5D8:
+ ldrh r0, [r5, #0xc]
+ ldr r1, [r4, #0x4]
+ add r0, r0, r2
+ cmp r1, r0
+ bge _0202D5EA
+ cmp r7, #0x0
+ bne _0202D5EA
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0202D5EA:
+ ldrb r0, [r5, #0xf]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ cmp r0, #0x1
+ beq _0202D604
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0202D544
+ cmp r0, #0x0
+ beq _0202D604
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0202D604:
+ ldrh r3, [r5, #0xc]
+ ldr r2, [r4, #0x4]
+ cmp r2, r3
+ ldrb r0, [r5, #0xf]
+ bge _0202D64E
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ beq _0202D61E
+ ldr r1, [r4, #0x0]
+ add r0, r6, #0x0
+ bl FUN_0202D400
+ b _0202D634
+_0202D61E:
+ mov r3, #0x0
+ cmp r2, #0x0
+ ble _0202D634
+_0202D624:
+ ldr r0, [r5, #0x0]
+ ldrb r1, [r0, r3]
+ ldr r0, [r4, #0x0]
+ strb r1, [r0, r3]
+ ldr r0, [r4, #0x4]
+ add r3, r3, #0x1
+ cmp r3, r0
+ blt _0202D624
+_0202D634:
+ ldr r1, [r5, #0x0]
+ ldr r0, [r4, #0x4]
+ add r0, r1, r0
+ str r0, [r5, #0x0]
+ ldrh r1, [r5, #0xc]
+ ldr r0, [r4, #0x4]
+ sub r0, r1, r0
+ strh r0, [r5, #0xc]
+ mov r0, #0x0
+ mvn r0, r0
+ str r0, [r4, #0x4]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0202D64E:
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ beq _0202D660
+ ldr r1, [r4, #0x0]
+ add r0, r6, #0x0
+ add r2, r3, #0x0
+ bl FUN_0202D400
+ b _0202D66A
+_0202D660:
+ ldr r0, [r5, #0x0]
+ ldr r1, [r4, #0x0]
+ add r2, r3, #0x0
+ bl MI_CpuCopy8
+_0202D66A:
+ ldrh r0, [r5, #0xc]
+ ldr r1, [r4, #0x0]
+ add r0, r1, r0
+ str r0, [r4, #0x0]
+ ldrh r0, [r5, #0xc]
+ ldr r1, [r4, #0x4]
+ sub r0, r1, r0
+ str r0, [r4, #0x4]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+ nop
+_0202D680: .word 0x0000FFFF
+
+ thumb_func_start FUN_0202D684
+FUN_0202D684: ; 0x0202D684
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ str r1, [sp, #0x0]
+ str r2, [sp, #0x4]
+ add r7, r3, #0x0
+ bl FUN_0202D4C4
+ add r4, r0, #0x0
+ bne _0202D69E
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0202D69E:
+ ldr r0, _0202D710 ; =0x0000FFFE
+ cmp r7, r0
+ blt _0202D6A8
+ bl ErrorHandling
+_0202D6A8:
+ ldr r0, [sp, #0x0]
+ bl FUN_0202D9A0
+ add r6, r0, #0x0
+ ldr r0, _0202D714 ; =0x0000FFFF
+ cmp r6, r0
+ bne _0202D6B8
+ add r6, r7, #0x0
+_0202D6B8:
+ ldr r0, [sp, #0x24]
+ cmp r0, #0x0
+ beq _0202D6EA
+ ldr r0, [r5, #0x14]
+ bl FUN_0202D498
+ add r1, r6, #0x3
+ cmp r1, r0
+ blt _0202D6D0
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0202D6D0:
+ ldr r0, [r5, #0x14]
+ ldr r1, [sp, #0x4]
+ ldr r3, _0202D718 ; =0x00000109
+ add r2, r6, #0x0
+ bl FUN_0202D3A4
+ ldr r0, [r5, #0x14]
+ bl FUN_0202D4BC
+ ldrb r1, [r4, #0xf]
+ mov r0, #0x2
+ orr r0, r1
+ strb r0, [r4, #0xf]
+_0202D6EA:
+ ldr r0, [sp, #0x0]
+ strh r6, [r4, #0xc]
+ strb r0, [r4, #0xe]
+ ldr r0, [sp, #0x4]
+ str r0, [r4, #0x0]
+ ldr r0, [r5, #0x4]
+ cmp r0, #0x0
+ bne _0202D700
+ str r4, [r5, #0x4]
+ str r4, [r5, #0x0]
+ b _0202D708
+_0202D700:
+ str r4, [r0, #0x8]
+ ldr r0, [r5, #0x4]
+ str r0, [r4, #0x4]
+ str r4, [r5, #0x4]
+_0202D708:
+ mov r0, #0x1
+ add sp, #0x8
+ pop {r3-r7, pc}
+ nop
+_0202D710: .word 0x0000FFFE
+_0202D714: .word 0x0000FFFF
+_0202D718: .word 0x00000109
+
+ thumb_func_start FUN_0202D71C
+FUN_0202D71C: ; 0x0202D71C
+ ldr r1, [r0, #0x10]
+ cmp r1, #0x0
+ beq _0202D726
+ add r0, r1, #0x0
+ bx lr
+_0202D726:
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _0202D730
+ add r0, r1, #0x0
+ bx lr
+_0202D730:
+ ldr r0, [r0, #0x8]
+ cmp r0, #0x0
+ bne _0202D738
+ mov r0, #0x0
+_0202D738:
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202D73C
+FUN_0202D73C: ; 0x0202D73C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x10]
+ cmp r1, #0x0
+ beq _0202D74C
+ mov r0, #0x0
+ str r0, [r4, #0x10]
+ pop {r4, pc}
+_0202D74C:
+ bl FUN_0202D504
+ cmp r0, #0x0
+ bne _0202D75C
+ add r4, #0x8
+ add r0, r4, #0x0
+ bl FUN_0202D504
+_0202D75C:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202D760
+FUN_0202D760: ; 0x0202D760
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldr r0, [r4, #0x4]
+ mov r7, #0x1
+ str r2, [sp, #0x0]
+ cmp r0, #0x0
+ ble _0202D7B6
+_0202D770:
+ add r0, r5, #0x0
+ bl FUN_0202D71C
+ add r6, r0, #0x0
+ beq _0202D7B6
+ add r0, r5, #0x0
+ bl FUN_0202D73C
+ ldr r2, [r5, #0x14]
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ add r3, r7, #0x0
+ bl FUN_0202D5BC
+ cmp r0, #0x0
+ bne _0202D794
+ str r6, [r5, #0x10]
+ b _0202D7B6
+_0202D794:
+ mov r0, #0x0
+ ldr r1, [r4, #0x4]
+ mvn r0, r0
+ cmp r1, r0
+ bne _0202D7A4
+ str r6, [r5, #0x10]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0202D7A4:
+ add r0, r6, #0x0
+ mov r1, #0x0
+ mov r2, #0x10
+ bl MI_CpuFill8
+ ldr r0, [r4, #0x4]
+ ldr r7, [sp, #0x0]
+ cmp r0, #0x0
+ bgt _0202D770
+_0202D7B6:
+ ldr r0, [r4, #0x4]
+ mov r2, #0x0
+ cmp r0, #0x0
+ ble _0202D7D2
+ mov r1, #0xee
+_0202D7C0:
+ ldr r0, [r4, #0x0]
+ add r2, r2, #0x1
+ strb r1, [r0, #0x0]
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ ldr r0, [r4, #0x4]
+ cmp r2, r0
+ blt _0202D7C0
+_0202D7D2:
+ mov r0, #0x1
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202D7D8
+FUN_0202D7D8: ; 0x0202D7D8
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ mov r1, #0x0
+ mov r2, #0x20
+ add r5, r0, #0x0
+ bl MI_CpuFill8
+ lsl r7, r4, #0x4
+ mov r0, #0xf
+ add r1, r7, #0x0
+ bl FUN_02016998
+ mov r1, #0x0
+ add r2, r7, #0x0
+ str r0, [r5, #0x18]
+ bl MI_CpuFill8
+ str r4, [r5, #0x1c]
+ str r6, [r5, #0x14]
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202D804
+FUN_0202D804: ; 0x0202D804
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r2, [r4, #0x1c]
+ ldr r0, [r4, #0x18]
+ mov r1, #0x0
+ lsl r2, r2, #0x4
+ bl MI_CpuFill8
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ str r0, [r4, #0x4]
+ str r0, [r4, #0x8]
+ str r0, [r4, #0xc]
+ str r0, [r4, #0x10]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202D824
+FUN_0202D824: ; 0x0202D824
+ ldr r3, _0202D82C ; =FUN_02016A18
+ ldr r0, [r0, #0x18]
+ bx r3
+ nop
+_0202D82C: .word FUN_02016A18
+
+ thumb_func_start FUN_0202D830
+FUN_0202D830: ; 0x0202D830
+ push {r3-r4}
+ ldr r4, [r0, #0x1c]
+ mov r2, #0x0
+ ldr r3, [r0, #0x18]
+ cmp r4, #0x0
+ ble _0202D850
+_0202D83C:
+ ldrb r0, [r3, #0xe]
+ cmp r0, r1
+ bne _0202D848
+ mov r0, #0x1
+ pop {r3-r4}
+ bx lr
+_0202D848:
+ add r2, r2, #0x1
+ add r3, #0x10
+ cmp r2, r4
+ blt _0202D83C
+_0202D850:
+ mov r0, #0x0
+ pop {r3-r4}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202D858
+FUN_0202D858: ; 0x0202D858
+ push {r3-r4, lr}
+ sub sp, #0x1c
+ ldr r3, _0202D880 ; =0x020EEB04
+ add r4, r0, #0x0
+ add r2, sp, #0x0
+ mov r1, #0x1a
+_0202D864:
+ ldrb r0, [r3, #0x0]
+ add r3, r3, #0x1
+ strb r0, [r2, #0x0]
+ add r2, r2, #0x1
+ sub r1, r1, #0x1
+ bne _0202D864
+ cmp r4, #0x1a
+ blo _0202D878
+ bl ErrorHandling
+_0202D878:
+ add r0, sp, #0x0
+ ldrb r0, [r0, r4]
+ add sp, #0x1c
+ pop {r3-r4, pc}
+ .balign 4
+_0202D880: .word 0x020EEB04
+
+ thumb_func_start FUN_0202D884
+FUN_0202D884: ; 0x0202D884
+ push {r3-r4, lr}
+ sub sp, #0x1c
+ ldr r3, _0202D8AC ; =0x020EEB1E
+ add r4, r0, #0x0
+ add r2, sp, #0x0
+ mov r1, #0x1a
+_0202D890:
+ ldrb r0, [r3, #0x0]
+ add r3, r3, #0x1
+ strb r0, [r2, #0x0]
+ add r2, r2, #0x1
+ sub r1, r1, #0x1
+ bne _0202D890
+ cmp r4, #0x1a
+ blo _0202D8A4
+ bl ErrorHandling
+_0202D8A4:
+ add r0, sp, #0x0
+ ldrb r0, [r0, r4]
+ add sp, #0x1c
+ pop {r3-r4, pc}
+ .balign 4
+_0202D8AC: .word 0x020EEB1E
+
+ thumb_func_start FUN_0202D8B0
+FUN_0202D8B0: ; 0x0202D8B0
+ cmp r0, #0xd
+ bgt _0202D8C4
+ cmp r0, #0x7
+ blt _0202D8CC
+ beq _0202D8C8
+ cmp r0, #0x9
+ beq _0202D8C8
+ cmp r0, #0xd
+ beq _0202D8C8
+ b _0202D8CC
+_0202D8C4:
+ cmp r0, #0x12
+ bne _0202D8CC
+_0202D8C8:
+ mov r0, #0x1
+ bx lr
+_0202D8CC:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_0202D8D0
+FUN_0202D8D0: ; 0x0202D8D0
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, _0202D914 ; =0x021C59E0
+ add r4, r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r6, r2, #0x0
+ cmp r0, #0x0
+ bne _0202D8EC
+ mov r0, #0xf
+ mov r1, #0x18
+ bl FUN_02016998
+ ldr r1, _0202D914 ; =0x021C59E0
+ str r0, [r1, #0x0]
+_0202D8EC:
+ ldr r0, _0202D914 ; =0x021C59E0
+ mov r3, #0x0
+ ldr r1, [r0, #0x0]
+ add r2, r3, #0x0
+ str r5, [r1, #0x0]
+ ldr r1, [r0, #0x0]
+ str r4, [r1, #0x4]
+ ldr r1, [r0, #0x0]
+ str r6, [r1, #0x8]
+_0202D8FE:
+ ldr r1, [r0, #0x0]
+ add r1, r1, r3
+ add r3, r3, #0x1
+ strb r2, [r1, #0xc]
+ cmp r3, #0x8
+ blt _0202D8FE
+ ldr r0, _0202D914 ; =0x021C59E0
+ ldr r0, [r0, #0x0]
+ strb r2, [r0, #0x14]
+ pop {r4-r6, pc}
+ nop
+_0202D914: .word 0x021C59E0
+
+ thumb_func_start FUN_0202D918
+FUN_0202D918: ; 0x0202D918
+ push {r3, lr}
+ ldr r0, _0202D930 ; =0x021C59E0
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0202D92C
+ bl FUN_02016A18
+ ldr r0, _0202D930 ; =0x021C59E0
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+_0202D92C:
+ pop {r3, pc}
+ nop
+_0202D930: .word 0x021C59E0
+
+ thumb_func_start FUN_0202D934
+FUN_0202D934: ; 0x0202D934
+ push {r3-r7, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ cmp r4, #0x16
+ bge _0202D94C
+ mov r0, #0xc
+ mul r1, r0
+ ldr r0, _0202D998 ; =0x020EEB38
+ ldr r4, [r0, r1]
+ b _0202D974
+_0202D94C:
+ ldr r0, _0202D99C ; =0x021C59E0
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0202D958
+ bl ErrorHandling
+_0202D958:
+ ldr r0, _0202D99C ; =0x021C59E0
+ ldr r1, [r0, #0x0]
+ ldr r0, [r1, #0x4]
+ add r0, #0x16
+ cmp r4, r0
+ ble _0202D96A
+ bl FUN_02031454
+ pop {r3-r7, pc}
+_0202D96A:
+ ldr r1, [r1, #0x0]
+ sub r4, #0x16
+ mov r0, #0xc
+ mul r0, r4
+ ldr r4, [r1, r0]
+_0202D974:
+ cmp r4, #0x0
+ beq _0202D996
+ ldr r0, _0202D99C ; =0x021C59E0
+ ldr r3, [r0, #0x0]
+ cmp r3, #0x0
+ beq _0202D98C
+ ldr r3, [r3, #0x8]
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ blx r4
+ pop {r3-r7, pc}
+_0202D98C:
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ add r2, r7, #0x0
+ mov r3, #0x0
+ blx r4
+_0202D996:
+ pop {r3-r7, pc}
+ .balign 4
+_0202D998: .word 0x020EEB38
+_0202D99C: .word 0x021C59E0
+
+ thumb_func_start FUN_0202D9A0
+FUN_0202D9A0: ; 0x0202D9A0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r4, #0x0
+ cmp r5, #0x16
+ bge _0202D9B6
+ mov r0, #0xc
+ add r1, r5, #0x0
+ mul r1, r0
+ ldr r0, _0202D9FC ; =0x020EEB3C
+ ldr r0, [r0, r1]
+ b _0202D9EE
+_0202D9B6:
+ ldr r0, _0202DA00 ; =0x021C59E0
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0202D9C2
+ bl ErrorHandling
+_0202D9C2:
+ ldr r0, _0202DA00 ; =0x021C59E0
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ bne _0202D9D2
+ bl FUN_02031454
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0202D9D2:
+ ldr r0, [r1, #0x4]
+ add r0, #0x16
+ cmp r5, r0
+ ble _0202D9E2
+ bl FUN_02031454
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0202D9E2:
+ ldr r1, [r1, #0x0]
+ sub r5, #0x16
+ mov r0, #0xc
+ mul r0, r5
+ add r0, r1, r0
+ ldr r0, [r0, #0x4]
+_0202D9EE:
+ cmp r0, #0x0
+ beq _0202D9F6
+ blx r0
+ add r4, r0, #0x0
+_0202D9F6:
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ nop
+_0202D9FC: .word 0x020EEB3C
+_0202DA00: .word 0x021C59E0
+
+ thumb_func_start FUN_0202DA04
+FUN_0202DA04: ; 0x0202DA04
+ cmp r0, #0x16
+ bge _0202DA1C
+ mov r1, #0xc
+ mul r1, r0
+ ldr r0, _0202DA38 ; =0x020EEB40
+ ldr r0, [r0, r1]
+ cmp r0, #0x0
+ beq _0202DA18
+ mov r0, #0x1
+ bx lr
+_0202DA18:
+ mov r0, #0x0
+ bx lr
+_0202DA1C:
+ ldr r1, _0202DA3C ; =0x021C59E0
+ sub r0, #0x16
+ ldr r1, [r1, #0x0]
+ ldr r2, [r1, #0x0]
+ mov r1, #0xc
+ mul r1, r0
+ add r0, r2, r1
+ ldr r0, [r0, #0x8]
+ cmp r0, #0x0
+ beq _0202DA34
+ mov r0, #0x1
+ bx lr
+_0202DA34:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0202DA38: .word 0x020EEB40
+_0202DA3C: .word 0x021C59E0
+
+ thumb_func_start FUN_0202DA40
+FUN_0202DA40: ; 0x0202DA40
+ push {r3-r5, lr}
+ add r3, r0, #0x0
+ cmp r3, #0x16
+ bge _0202DA58
+ mov r4, #0xc
+ mul r4, r3
+ ldr r3, _0202DA70 ; =0x020EEB40
+ add r0, r1, #0x0
+ ldr r3, [r3, r4]
+ mov r1, #0x0
+ blx r3
+ pop {r3-r5, pc}
+_0202DA58:
+ ldr r0, _0202DA74 ; =0x021C59E0
+ sub r3, #0x16
+ ldr r4, [r0, #0x0]
+ add r0, r1, #0x0
+ ldr r1, [r4, #0x8]
+ ldr r5, [r4, #0x0]
+ mov r4, #0xc
+ mul r4, r3
+ add r3, r5, r4
+ ldr r3, [r3, #0x8]
+ blx r3
+ pop {r3-r5, pc}
+ .balign 4
+_0202DA70: .word 0x020EEB40
+_0202DA74: .word 0x021C59E0
+
+ thumb_func_start FUN_0202DA78
+FUN_0202DA78: ; 0x0202DA78
+ ldr r0, _0202DA7C ; =0x0000FFFF
+ bx lr
+ .balign 4
+_0202DA7C: .word 0x0000FFFF
+
+ thumb_func_start FUN_0202DA80
+FUN_0202DA80: ; 0x0202DA80
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_0202DA84
+FUN_0202DA84: ; 0x0202DA84
+ mov r0, #0x1
+ bx lr
+
+ thumb_func_start FUN_0202DA88
+FUN_0202DA88: ; 0x0202DA88
+ mov r0, #0x2
+ bx lr
+
+ thumb_func_start FUN_0202DA8C
+FUN_0202DA8C: ; 0x0202DA8C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _0202DACA
+ ldr r4, _0202DACC ; =0x021C59E0
+ mov r1, #0x1
+ ldr r0, [r4, #0x0]
+ add r0, r0, r5
+ strb r1, [r0, #0xc]
+ mov r5, #0x0
+_0202DAA4:
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ beq _0202DABA
+ ldr r0, [r4, #0x0]
+ add r0, r0, r5
+ ldrb r0, [r0, #0xc]
+ cmp r0, #0x0
+ beq _0202DACA
+_0202DABA:
+ add r5, r5, #0x1
+ cmp r5, #0x8
+ blt _0202DAA4
+ mov r1, #0x0
+ mov r0, #0xe
+ add r2, r1, #0x0
+ bl FUN_02030BC4
+_0202DACA:
+ pop {r3-r5, pc}
+ .balign 4
+_0202DACC: .word 0x021C59E0
+
+ thumb_func_start FUN_0202DAD0
+FUN_0202DAD0: ; 0x0202DAD0
+ ldr r0, _0202DAF0 ; =0x021C59E0
+ mov r3, #0x0
+ ldr r1, [r0, #0x0]
+ str r3, [r1, #0x0]
+ ldr r1, [r0, #0x0]
+ str r3, [r1, #0x4]
+ ldr r1, [r0, #0x0]
+ str r3, [r1, #0x8]
+ ldr r0, [r0, #0x0]
+ mov r1, #0x1
+ strb r1, [r0, #0x14]
+ ldr r3, _0202DAF4 ; =FUN_020311D0
+ mov r0, #0xf
+ add r1, r2, #0x0
+ bx r3
+ nop
+_0202DAF0: .word 0x021C59E0
+_0202DAF4: .word FUN_020311D0
+
+ thumb_func_start FUN_0202DAF8
+FUN_0202DAF8: ; 0x0202DAF8
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _0202DB0E
+ ldr r0, _0202DB10 ; =0x021C59E0
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r0, r0, r4
+ strb r1, [r0, #0xc]
+_0202DB0E:
+ pop {r4, pc}
+ .balign 4
+_0202DB10: .word 0x021C59E0
+
+ thumb_func_start FUN_0202DB14
+FUN_0202DB14: ; 0x0202DB14
+ push {r4-r7, lr}
+ sub sp, #0xc
+ str r0, [sp, #0x0]
+ str r1, [sp, #0x4]
+ bl FUN_020238F4
+ str r0, [sp, #0x8]
+ ldr r0, _0202DBA0 ; =0x021C59E4
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0202DB9A
+ mov r1, #0xe9
+ mov r0, #0xf
+ lsl r1, r1, #0x2
+ bl FUN_02016998
+ ldr r1, _0202DBA0 ; =0x021C59E4
+ mov r2, #0xe9
+ str r0, [r1, #0x0]
+ mov r1, #0x0
+ lsl r2, r2, #0x2
+ bl MI_CpuFill8
+ mov r6, #0x0
+ ldr r7, _0202DBA0 ; =0x021C59E4
+ add r4, r6, #0x0
+ add r5, r6, #0x0
+_0202DB4A:
+ ldr r1, [r7, #0x0]
+ add r0, r1, #0x0
+ add r0, #0x28
+ add r2, r0, r4
+ mov r0, #0xd2
+ add r1, r1, r5
+ lsl r0, r0, #0x2
+ str r2, [r1, r0]
+ add r0, r6, #0x0
+ bl FUN_0202DE78
+ add r6, r6, #0x1
+ add r4, #0x68
+ add r5, r5, #0x4
+ cmp r6, #0x8
+ blt _0202DB4A
+ ldr r2, _0202DBA0 ; =0x021C59E4
+ mov r1, #0x3a
+ ldr r3, [r2, #0x0]
+ mov r0, #0x0
+ lsl r1, r1, #0x4
+ strb r0, [r3, r1]
+ ldr r4, [r2, #0x0]
+ add r3, r1, #0x1
+ strb r0, [r4, r3]
+ add r3, r1, #0x2
+ ldr r4, [r2, #0x0]
+ sub r1, #0x58
+ strb r0, [r4, r3]
+ ldr r3, [r2, #0x0]
+ ldr r0, [sp, #0x0]
+ str r0, [r3, #0x4]
+ ldr r3, [r2, #0x0]
+ ldr r0, [sp, #0x4]
+ str r0, [r3, #0x0]
+ ldr r2, [r2, #0x0]
+ ldr r0, [sp, #0x8]
+ ldr r1, [r2, r1]
+ bl FUN_0202393C
+_0202DB9A:
+ add sp, #0xc
+ pop {r4-r7, pc}
+ nop
+_0202DBA0: .word 0x021C59E4
+
+ thumb_func_start FUN_0202DBA4
+FUN_0202DBA4: ; 0x0202DBA4
+ push {r3-r5, lr}
+ ldr r1, _0202DBDC ; =0x021C59E4
+ ldr r0, [r1, #0x0]
+ cmp r0, #0x0
+ beq _0202DBD8
+ mov r4, #0x0
+ mov r0, #0xd2
+ add r5, r4, #0x0
+ add r3, r4, #0x0
+ lsl r0, r0, #0x2
+_0202DBB8:
+ ldr r2, [r1, #0x0]
+ add r4, r4, #0x1
+ add r2, r2, r5
+ add r5, r5, #0x4
+ str r3, [r2, r0]
+ cmp r4, #0x8
+ blt _0202DBB8
+ ldr r0, _0202DBDC ; =0x021C59E4
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0202DBD2
+ bl FUN_02016A18
+_0202DBD2:
+ ldr r0, _0202DBDC ; =0x021C59E4
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+_0202DBD8:
+ pop {r3-r5, pc}
+ nop
+_0202DBDC: .word 0x021C59E4
+
+ thumb_func_start FUN_0202DBE0
+FUN_0202DBE0: ; 0x0202DBE0
+ push {r3-r7, lr}
+ bl FUN_02031190
+ add r4, r0, #0x0
+ ldr r0, _0202DCD8 ; =0x021C59E4
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x4]
+ bl FUN_0202881C
+ add r7, r0, #0x0
+ ldr r0, _0202DCD8 ; =0x021C59E4
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x4]
+ bl FUN_020286EC
+ str r0, [sp, #0x0]
+ ldr r0, _0202DCD8 ; =0x021C59E4
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x4]
+ bl FUN_02029AFC
+ add r6, r0, #0x0
+ ldr r0, _0202DCD8 ; =0x021C59E4
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x4]
+ bl FUN_020238F4
+ ldr r1, _0202DCD8 ; =0x021C59E4
+ ldr r2, [r1, #0x0]
+ lsl r1, r4, #0x2
+ add r2, r2, r1
+ mov r1, #0xd2
+ lsl r1, r1, #0x2
+ ldr r1, [r2, r1]
+ bl FUN_0202393C
+ mov r0, #0x68
+ add r5, r4, #0x0
+ mul r5, r0
+ ldr r0, _0202DCD8 ; =0x021C59E4
+ ldr r0, [r0, #0x0]
+ add r0, #0x64
+ add r0, r0, r5
+ bl OS_GetMacAddress
+ add r0, r7, #0x0
+ mov r1, #0x1
+ mov r2, #0x0
+ bl FUN_020287A8
+ ldr r1, _0202DCD8 ; =0x021C59E4
+ mov r2, #0x10
+ ldr r1, [r1, #0x0]
+ add r1, #0x54
+ add r1, r1, r5
+ bl MI_CpuCopy8
+ add r0, r6, #0x0
+ bl FUN_02029B38
+ ldr r1, _0202DCD8 ; =0x021C59E4
+ ldr r1, [r1, #0x0]
+ add r1, r1, r5
+ add r1, #0x6b
+ strb r0, [r1, #0x0]
+ add r0, r6, #0x0
+ bl FUN_02029B3C
+ ldr r2, _0202DCD8 ; =0x021C59E4
+ ldr r1, [r2, #0x0]
+ add r1, r1, r5
+ add r1, #0x6c
+ strb r0, [r1, #0x0]
+ ldr r0, [r2, #0x0]
+ ldr r0, [r0, #0x4]
+ bl FUN_02025C18
+ ldr r2, _0202DCD8 ; =0x021C59E4
+ ldr r1, [r2, #0x0]
+ add r1, r1, r5
+ add r1, #0x6d
+ strb r0, [r1, #0x0]
+ ldr r2, [r2, #0x0]
+ mov r0, #0x1
+ add r2, #0x6d
+ ldrb r1, [r2, r5]
+ sub r0, r0, r1
+ strb r0, [r2, r5]
+ ldr r0, [sp, #0x0]
+ bl FUN_02028228
+ ldr r1, _0202DCD8 ; =0x021C59E4
+ ldr r1, [r1, #0x0]
+ add r1, #0x48
+ add r1, r1, r5
+ bl FUN_02096CCC
+ ldr r0, _0202DCD8 ; =0x021C59E4
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ mov r2, #0x20
+ add r0, #0x8
+ add r0, r0, r5
+ bl MI_CpuFill8
+ ldr r0, _0202DCD8 ; =0x021C59E4
+ ldr r1, [r0, #0x0]
+ ldr r0, [r1, #0x0]
+ cmp r0, #0x0
+ beq _0202DCC4
+ add r1, #0x8
+ add r1, r1, r5
+ bl FUN_02023ACC
+_0202DCC4:
+ ldr r1, _0202DCD8 ; =0x021C59E4
+ mov r0, #0x3
+ ldr r1, [r1, #0x0]
+ mov r2, #0x68
+ add r1, #0x8
+ add r1, r1, r5
+ bl FUN_02030ADC
+ pop {r3-r7, pc}
+ nop
+_0202DCD8: .word 0x021C59E4
+
+ thumb_func_start FUN_0202DCDC
+FUN_0202DCDC: ; 0x0202DCDC
+ mov r0, #0x68
+ bx lr
+
+ thumb_func_start FUN_0202DCE0
+FUN_0202DCE0: ; 0x0202DCE0
+ ldr r0, _0202DCF4 ; =0x021C59E4
+ ldr r2, [r0, #0x0]
+ cmp r2, #0x0
+ beq _0202DCF0
+ mov r0, #0x3a
+ mov r1, #0x1
+ lsl r0, r0, #0x4
+ strb r1, [r2, r0]
+_0202DCF0:
+ bx lr
+ nop
+_0202DCF4: .word 0x021C59E4
+
+ thumb_func_start FUN_0202DCF8
+FUN_0202DCF8: ; 0x0202DCF8
+ ldr r0, _0202DD04 ; =0x021C59E4
+ ldr r1, [r0, #0x0]
+ mov r0, #0x3a
+ lsl r0, r0, #0x4
+ ldrb r0, [r1, r0]
+ bx lr
+ .balign 4
+_0202DD04: .word 0x021C59E4
+
+ thumb_func_start FUN_0202DD08
+FUN_0202DD08: ; 0x0202DD08
+ push {r3-r5, lr}
+ ldr r1, _0202DD78 ; =0x021C59E4
+ add r4, r2, #0x0
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ beq _0202DD74
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ beq _0202DD74
+ ldr r1, _0202DD78 ; =0x021C59E4
+ mov r2, #0x68
+ ldr r5, [r1, #0x0]
+ add r1, r4, #0x0
+ add r1, #0x62
+ ldrb r1, [r1, #0x0]
+ add r5, #0x8
+ add r0, r4, #0x0
+ add r3, r1, #0x0
+ mul r3, r2
+ add r1, r5, r3
+ bl MI_CpuCopy8
+ add r4, #0x62
+ ldr r2, _0202DD78 ; =0x021C59E4
+ ldrb r3, [r4, #0x0]
+ ldr r0, [r2, #0x0]
+ ldr r1, _0202DD7C ; =0x000003A2
+ strb r3, [r0, r1]
+ add r0, r1, #0x0
+ ldr r3, [r2, #0x0]
+ sub r0, #0xa
+ add r4, r3, r0
+ ldrb r3, [r3, r1]
+ ldrb r0, [r4, r3]
+ cmp r0, #0x2
+ bhs _0202DD74
+ mov r0, #0x1
+ strb r0, [r4, r3]
+ ldr r0, [r2, #0x0]
+ ldrb r4, [r0, r1]
+ bl FUN_02031190
+ cmp r4, r0
+ bne _0202DD74
+ ldr r0, _0202DD78 ; =0x021C59E4
+ mov r2, #0x3
+ ldr r0, [r0, #0x0]
+ add r1, r0, r4
+ mov r0, #0xe6
+ lsl r0, r0, #0x2
+ strb r2, [r1, r0]
+_0202DD74:
+ pop {r3-r5, pc}
+ nop
+_0202DD78: .word 0x021C59E4
+_0202DD7C: .word 0x000003A2
+
+ thumb_func_start FUN_0202DD80
+FUN_0202DD80: ; 0x0202DD80
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _0202DDE0 ; =0x021C59E4
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _0202DDDC
+ mov r3, #0x68
+ add r4, r5, #0x0
+ add r0, r2, #0x0
+ mul r4, r3
+ add r1, #0x8
+ add r1, r1, r4
+ add r2, r3, #0x0
+ bl MI_CpuCopy8
+ ldr r0, _0202DDE0 ; =0x021C59E4
+ add r1, r5, #0x0
+ ldr r0, [r0, #0x0]
+ add r0, #0x64
+ add r0, r0, r4
+ bl FUN_0202EFAC
+ ldr r0, _0202DDE0 ; =0x021C59E4
+ mov r2, #0x1
+ ldr r0, [r0, #0x0]
+ add r1, r0, r5
+ mov r0, #0xe6
+ lsl r0, r0, #0x2
+ strb r2, [r1, r0]
+ bl FUN_02031190
+ cmp r5, r0
+ bne _0202DDD2
+ ldr r0, _0202DDE0 ; =0x021C59E4
+ mov r2, #0x3
+ ldr r0, [r0, #0x0]
+ add r1, r0, r5
+ mov r0, #0xe6
+ lsl r0, r0, #0x2
+ strb r2, [r1, r0]
+ pop {r3-r5, pc}
+_0202DDD2:
+ ldr r0, _0202DDE0 ; =0x021C59E4
+ mov r2, #0x1
+ ldr r1, [r0, #0x0]
+ ldr r0, _0202DDE4 ; =0x000003A1
+ strb r2, [r1, r0]
+_0202DDDC:
+ pop {r3-r5, pc}
+ nop
+_0202DDE0: .word 0x021C59E4
+_0202DDE4: .word 0x000003A1
+
+ thumb_func_start FUN_0202DDE8
+FUN_0202DDE8: ; 0x0202DDE8
+ push {r3-r7, lr}
+ ldr r0, _0202DE70 ; =0x021C59E4
+ ldr r1, [r0, #0x0]
+ ldr r0, _0202DE74 ; =0x000003A1
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ bne _0202DDFA
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0202DDFA:
+ mov r0, #0x5
+ bl FUN_02031354
+ cmp r0, #0x0
+ bne _0202DE6C
+ mov r4, #0x0
+ add r5, r4, #0x0
+ add r7, r4, #0x0
+_0202DE0A:
+ ldr r0, _0202DE70 ; =0x021C59E4
+ ldr r2, [r0, #0x0]
+ mov r0, #0xe6
+ add r1, r2, r4
+ lsl r0, r0, #0x2
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0202DE4A
+ add r0, r2, r5
+ add r0, #0x6a
+ strb r4, [r0, #0x0]
+ ldr r0, _0202DE70 ; =0x021C59E4
+ ldr r6, [r0, #0x0]
+ bl FUN_02023924
+ add r2, r0, #0x0
+ mov r0, #0xd2
+ add r1, r6, r7
+ lsl r0, r0, #0x2
+ ldr r0, [r1, r0]
+ add r6, #0x28
+ add r1, r6, r5
+ bl MI_CpuCopy8
+ ldr r1, _0202DE70 ; =0x021C59E4
+ mov r0, #0x4
+ ldr r1, [r1, #0x0]
+ mov r2, #0x68
+ add r1, #0x8
+ add r1, r1, r5
+ bl FUN_02031000
+_0202DE4A:
+ add r4, r4, #0x1
+ add r5, #0x68
+ add r7, r7, #0x4
+ cmp r4, #0x8
+ blt _0202DE0A
+ mov r1, #0x0
+ mov r0, #0x5
+ add r2, r1, #0x0
+ bl FUN_02031000
+ ldr r0, _0202DE70 ; =0x021C59E4
+ mov r2, #0x0
+ ldr r1, [r0, #0x0]
+ ldr r0, _0202DE74 ; =0x000003A1
+ strb r2, [r1, r0]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_0202DE6C:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_0202DE70: .word 0x021C59E4
+_0202DE74: .word 0x000003A1
+
+ thumb_func_start FUN_0202DE78
+FUN_0202DE78: ; 0x0202DE78
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _0202DEA0 ; =0x021C59E4
+ ldr r1, [r0, #0x0]
+ lsl r0, r4, #0x2
+ add r1, r1, r0
+ mov r0, #0xd2
+ lsl r0, r0, #0x2
+ ldr r0, [r1, r0]
+ bl FUN_02023948
+ ldr r0, _0202DEA0 ; =0x021C59E4
+ mov r2, #0x0
+ ldr r0, [r0, #0x0]
+ add r1, r0, r4
+ mov r0, #0xe6
+ lsl r0, r0, #0x2
+ strb r2, [r1, r0]
+ pop {r4, pc}
+ nop
+_0202DEA0: .word 0x021C59E4
+
+ thumb_func_start FUN_0202DEA4
+FUN_0202DEA4: ; 0x0202DEA4
+ ldr r1, _0202DEBC ; =0x021C59E4
+ ldr r1, [r1, #0x0]
+ add r1, r1, r0
+ mov r0, #0xe6
+ lsl r0, r0, #0x2
+ ldrb r0, [r1, r0]
+ cmp r0, #0x1
+ bne _0202DEB8
+ mov r0, #0x1
+ bx lr
+_0202DEB8:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0202DEBC: .word 0x021C59E4
+
+ thumb_func_start FUN_0202DEC0
+FUN_0202DEC0: ; 0x0202DEC0
+ ldr r1, _0202DEDC ; =0x021C59E4
+ mov r2, #0x1
+ ldr r1, [r1, #0x0]
+ add r1, r1, r0
+ mov r0, #0xe6
+ lsl r0, r0, #0x2
+ ldrb r0, [r1, r0]
+ cmp r0, #0x2
+ beq _0202DED8
+ cmp r0, #0x1
+ beq _0202DED8
+ mov r2, #0x0
+_0202DED8:
+ add r0, r2, #0x0
+ bx lr
+ .balign 4
+_0202DEDC: .word 0x021C59E4
+
+ thumb_func_start FUN_0202DEE0
+FUN_0202DEE0: ; 0x0202DEE0
+ ldr r1, _0202DEF0 ; =0x021C59E4
+ mov r2, #0x2
+ ldr r1, [r1, #0x0]
+ add r1, r1, r0
+ mov r0, #0xe6
+ lsl r0, r0, #0x2
+ strb r2, [r1, r0]
+ bx lr
+ .balign 4
+_0202DEF0: .word 0x021C59E4
+
+ thumb_func_start FUN_0202DEF4
+FUN_0202DEF4: ; 0x0202DEF4
+ ldr r1, _0202DF04 ; =0x021C59E4
+ mov r2, #0x3
+ ldr r1, [r1, #0x0]
+ add r1, r1, r0
+ mov r0, #0xe6
+ lsl r0, r0, #0x2
+ strb r2, [r1, r0]
+ bx lr
+ .balign 4
+_0202DF04: .word 0x021C59E4
+
+ thumb_func_start FUN_0202DF08
+FUN_0202DF08: ; 0x0202DF08
+ ldr r1, _0202DF24 ; =0x021C59E4
+ mov r0, #0x0
+ ldr r3, [r1, #0x0]
+ mov r1, #0xe6
+ lsl r1, r1, #0x2
+_0202DF12:
+ ldrb r2, [r3, r1]
+ cmp r2, #0x1
+ beq _0202DF22
+ add r0, r0, #0x1
+ add r3, r3, #0x1
+ cmp r0, #0x8
+ blt _0202DF12
+ mov r0, #0xff
+_0202DF22:
+ bx lr
+ .balign 4
+_0202DF24: .word 0x021C59E4
+
+ thumb_func_start FUN_0202DF28
+FUN_0202DF28: ; 0x0202DF28
+ push {r3-r4}
+ ldr r1, _0202DF50 ; =0x021C59E4
+ mov r0, #0x0
+ ldr r4, [r1, #0x0]
+ mov r1, #0xe6
+ add r3, r0, #0x0
+ lsl r1, r1, #0x2
+_0202DF36:
+ ldrb r2, [r4, r1]
+ cmp r2, #0x2
+ beq _0202DF40
+ cmp r2, #0x3
+ bne _0202DF42
+_0202DF40:
+ add r0, r0, #0x1
+_0202DF42:
+ add r3, r3, #0x1
+ add r4, r4, #0x1
+ cmp r3, #0x8
+ blt _0202DF36
+ pop {r3-r4}
+ bx lr
+ nop
+_0202DF50: .word 0x021C59E4
+
+ thumb_func_start FUN_0202DF54
+FUN_0202DF54: ; 0x0202DF54
+ push {r4-r6, lr}
+ ldr r0, _0202DFA0 ; =0x021C59E4
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0202DF9C
+ bl FUN_02030F20
+ cmp r0, #0x0
+ beq _0202DF9C
+ mov r6, #0xe6
+ ldr r4, _0202DFA0 ; =0x021C59E4
+ mov r5, #0x0
+ lsl r6, r6, #0x2
+_0202DF6E:
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ bne _0202DF96
+ cmp r5, #0x0
+ bne _0202DF86
+ bl FUN_02031280
+ cmp r0, #0x0
+ bne _0202DF96
+_0202DF86:
+ ldr r0, [r4, #0x0]
+ add r0, r0, r5
+ ldrb r0, [r0, r6]
+ cmp r0, #0x0
+ beq _0202DF96
+ add r0, r5, #0x0
+ bl FUN_0202DE78
+_0202DF96:
+ add r5, r5, #0x1
+ cmp r5, #0x8
+ blt _0202DF6E
+_0202DF9C:
+ pop {r4-r6, pc}
+ nop
+_0202DFA0: .word 0x021C59E4
+
+ thumb_func_start FUN_0202DFA4
+FUN_0202DFA4: ; 0x0202DFA4
+ ldr r1, _0202DFD4 ; =0x021C59E4
+ ldr r3, [r1, #0x0]
+ cmp r3, #0x0
+ bne _0202DFB0
+ mov r0, #0x0
+ bx lr
+_0202DFB0:
+ mov r1, #0xe6
+ add r2, r3, r0
+ lsl r1, r1, #0x2
+ ldrb r1, [r2, r1]
+ cmp r1, #0x1
+ beq _0202DFC4
+ cmp r1, #0x2
+ beq _0202DFC4
+ cmp r1, #0x3
+ bne _0202DFD0
+_0202DFC4:
+ lsl r0, r0, #0x2
+ add r1, r3, r0
+ mov r0, #0xd2
+ lsl r0, r0, #0x2
+ ldr r0, [r1, r0]
+ bx lr
+_0202DFD0:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0202DFD4: .word 0x021C59E4
+
+ thumb_func_start FUN_0202DFD8
+FUN_0202DFD8: ; 0x0202DFD8
+ ldr r1, _0202DFF8 ; =0x021C59E4
+ ldr r3, [r1, #0x0]
+ mov r1, #0xe6
+ add r2, r3, r0
+ lsl r1, r1, #0x2
+ ldrb r1, [r2, r1]
+ cmp r1, #0x0
+ beq _0202DFF2
+ mov r1, #0x68
+ add r3, #0x48
+ mul r1, r0
+ add r0, r3, r1
+ bx lr
+_0202DFF2:
+ mov r0, #0x0
+ bx lr
+ nop
+_0202DFF8: .word 0x021C59E4
+
+ thumb_func_start FUN_0202DFFC
+FUN_0202DFFC: ; 0x0202DFFC
+ ldr r1, _0202E01C ; =0x021C59E4
+ ldr r3, [r1, #0x0]
+ mov r1, #0xe6
+ add r2, r3, r0
+ lsl r1, r1, #0x2
+ ldrb r1, [r2, r1]
+ cmp r1, #0x0
+ beq _0202E016
+ mov r1, #0x68
+ add r3, #0x54
+ mul r1, r0
+ add r0, r3, r1
+ bx lr
+_0202E016:
+ mov r0, #0x0
+ bx lr
+ nop
+_0202E01C: .word 0x021C59E4
+
+ thumb_func_start FUN_0202E020
+FUN_0202E020: ; 0x0202E020
+ ldr r1, _0202E040 ; =0x021C59E4
+ ldr r3, [r1, #0x0]
+ mov r1, #0xe6
+ add r2, r3, r0
+ lsl r1, r1, #0x2
+ ldrb r1, [r2, r1]
+ cmp r1, #0x0
+ beq _0202E03C
+ mov r1, #0x68
+ mul r1, r0
+ add r0, r3, r1
+ add r0, #0x6b
+ ldrb r0, [r0, #0x0]
+ bx lr
+_0202E03C:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0202E040: .word 0x021C59E4
+
+ thumb_func_start FUN_0202E044
+FUN_0202E044: ; 0x0202E044
+ ldr r1, _0202E064 ; =0x021C59E4
+ ldr r3, [r1, #0x0]
+ mov r1, #0xe6
+ add r2, r3, r0
+ lsl r1, r1, #0x2
+ ldrb r1, [r2, r1]
+ cmp r1, #0x0
+ beq _0202E060
+ mov r1, #0x68
+ mul r1, r0
+ add r0, r3, r1
+ add r0, #0x6c
+ ldrb r0, [r0, #0x0]
+ bx lr
+_0202E060:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0202E064: .word 0x021C59E4
+
+ thumb_func_start FUN_0202E068
+FUN_0202E068: ; 0x0202E068
+ ldr r1, _0202E088 ; =0x021C59E4
+ ldr r3, [r1, #0x0]
+ mov r1, #0xe6
+ add r2, r3, r0
+ lsl r1, r1, #0x2
+ ldrb r1, [r2, r1]
+ cmp r1, #0x0
+ beq _0202E084
+ mov r1, #0x68
+ mul r1, r0
+ add r0, r3, r1
+ add r0, #0x6d
+ ldrb r0, [r0, #0x0]
+ bx lr
+_0202E084:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0202E088: .word 0x021C59E4
+
+ thumb_func_start FUN_0202E08C
+FUN_0202E08C: ; 0x0202E08C
+ push {r4-r6, lr}
+ mov r4, #0x0
+ add r5, r4, #0x0
+ add r6, r4, #0x0
+_0202E094:
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ beq _0202E0E8
+ ldr r0, _0202E0F4 ; =0x021C59E4
+ ldr r0, [r0, #0x0]
+ add r1, r0, r4
+ mov r0, #0xe6
+ lsl r0, r0, #0x2
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0202E0E8
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ beq _0202E0E8
+ ldr r0, _0202E0F4 ; =0x021C59E4
+ ldr r1, _0202E0F8 ; =0x00000399
+ ldr r0, [r0, #0x0]
+ add r2, r0, r4
+ ldrb r1, [r2, r1]
+ cmp r1, #0x0
+ beq _0202E0E8
+ add r1, r6, #0x0
+ add r2, r0, r5
+_0202E0D0:
+ add r3, r2, #0x0
+ add r3, #0x70
+ ldrb r0, [r2, #0x8]
+ ldrb r3, [r3, #0x0]
+ cmp r0, r3
+ beq _0202E0E0
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_0202E0E0:
+ add r1, r1, #0x1
+ add r2, r2, #0x1
+ cmp r1, #0x20
+ blt _0202E0D0
+_0202E0E8:
+ add r4, r4, #0x1
+ add r5, #0x68
+ cmp r4, #0x7
+ blt _0202E094
+ mov r0, #0x1
+ pop {r4-r6, pc}
+ .balign 4
+_0202E0F4: .word 0x021C59E4
+_0202E0F8: .word 0x00000399
+
+ thumb_func_start FUN_0202E0FC
+FUN_0202E0FC: ; 0x0202E0FC
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ ldr r0, _0202E1B4 ; =0x021C59E4
+ add r6, r1, #0x0
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0202E1B0
+ cmp r7, #0x2
+ beq _0202E11C
+ bl FUN_02031190
+ bl FUN_020313CC
+ mov r1, #0x1
+ and r0, r1
+ str r0, [sp, #0x0]
+_0202E11C:
+ mov r4, #0x0
+ bl FUN_02030F20
+ cmp r0, #0x0
+ ble _0202E1B0
+ add r5, r4, #0x0
+_0202E128:
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ beq _0202E1A4
+ ldr r0, _0202E1B4 ; =0x021C59E4
+ mov r1, #0xe6
+ ldr r0, [r0, #0x0]
+ lsl r1, r1, #0x2
+ add r2, r0, r4
+ ldrb r1, [r2, r1]
+ cmp r1, #0x0
+ beq _0202E1A4
+ cmp r7, #0x0
+ bne _0202E16E
+ add r0, r4, #0x0
+ bl FUN_020313CC
+ mov r1, #0x1
+ and r1, r0
+ ldr r0, [sp, #0x0]
+ cmp r0, r1
+ beq _0202E1A4
+ ldr r0, _0202E1B4 ; =0x021C59E4
+ mov r1, #0xda
+ ldr r0, [r0, #0x0]
+ lsl r1, r1, #0x2
+ add r0, r0, r5
+ ldrh r1, [r0, r1]
+ add r2, r1, r6
+ mov r1, #0xda
+ lsl r1, r1, #0x2
+ strh r2, [r0, r1]
+ b _0202E1A4
+_0202E16E:
+ cmp r7, #0x1
+ bne _0202E194
+ add r0, r4, #0x0
+ bl FUN_020313CC
+ mov r1, #0x1
+ and r1, r0
+ ldr r0, [sp, #0x0]
+ cmp r0, r1
+ beq _0202E1A4
+ ldr r0, _0202E1B4 ; =0x021C59E4
+ ldr r1, _0202E1B8 ; =0x0000036A
+ ldr r0, [r0, #0x0]
+ add r0, r0, r5
+ ldrh r1, [r0, r1]
+ add r2, r1, r6
+ ldr r1, _0202E1B8 ; =0x0000036A
+ strh r2, [r0, r1]
+ b _0202E1A4
+_0202E194:
+ mov r1, #0xdb
+ add r0, r0, r5
+ lsl r1, r1, #0x2
+ ldrh r1, [r0, r1]
+ add r2, r1, r6
+ mov r1, #0xdb
+ lsl r1, r1, #0x2
+ strh r2, [r0, r1]
+_0202E1A4:
+ add r5, r5, #0x6
+ add r4, r4, #0x1
+ bl FUN_02030F20
+ cmp r4, r0
+ blt _0202E128
+_0202E1B0:
+ pop {r3-r7, pc}
+ nop
+_0202E1B4: .word 0x021C59E4
+_0202E1B8: .word 0x0000036A
+
+ thumb_func_start FUN_0202E1BC
+FUN_0202E1BC: ; 0x0202E1BC
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r7, r0, #0x0
+ bl FUN_020286EC
+ str r0, [sp, #0x4]
+ mov r4, #0x0
+ bl FUN_02030F20
+ cmp r0, #0x0
+ ble _0202E224
+ add r5, r4, #0x0
+_0202E1D4:
+ add r0, r4, #0x0
+ bl FUN_0202DFD8
+ add r1, r0, #0x0
+ beq _0202E218
+ add r0, r7, #0x0
+ add r2, sp, #0x8
+ bl FUN_02033874
+ cmp r0, #0x0
+ beq _0202E1EE
+ cmp r0, #0x1
+ bne _0202E218
+_0202E1EE:
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x0
+ bge _0202E1F8
+ bl ErrorHandling
+_0202E1F8:
+ ldr r0, _0202E254 ; =0x021C59E4
+ mov r2, #0xda
+ ldr r0, [r0, #0x0]
+ ldr r3, _0202E258 ; =0x0000036A
+ add r6, r0, r5
+ mov r0, #0xdb
+ lsl r0, r0, #0x2
+ ldrh r0, [r6, r0]
+ lsl r2, r2, #0x2
+ str r0, [sp, #0x0]
+ ldrh r2, [r6, r2]
+ ldrh r3, [r6, r3]
+ ldr r0, [sp, #0x4]
+ ldr r1, [sp, #0x8]
+ bl FUN_02028608
+_0202E218:
+ add r5, r5, #0x6
+ add r4, r4, #0x1
+ bl FUN_02030F20
+ cmp r4, r0
+ blt _0202E1D4
+_0202E224:
+ mov r3, #0xda
+ mov r2, #0x0
+ lsl r3, r3, #0x2
+ ldr r6, _0202E254 ; =0x021C59E4
+ add r1, r2, #0x0
+ add r0, r2, #0x0
+ add r4, r3, #0x2
+ add r5, r3, #0x4
+_0202E234:
+ ldr r7, [r6, #0x0]
+ add r2, r2, #0x1
+ add r7, r7, r1
+ strh r0, [r7, r3]
+ ldr r7, [r6, #0x0]
+ add r7, r7, r1
+ strh r0, [r7, r4]
+ ldr r7, [r6, #0x0]
+ add r7, r7, r1
+ add r1, r1, #0x6
+ strh r0, [r7, r5]
+ cmp r2, #0x8
+ blt _0202E234
+ add sp, #0xc
+ pop {r4-r7, pc}
+ nop
+_0202E254: .word 0x021C59E4
+_0202E258: .word 0x0000036A
+
+ thumb_func_start FUN_0202E25C
+FUN_0202E25C: ; 0x0202E25C
+ push {r4, lr}
+ add r4, r0, #0x0
+ cmp r1, #0x1
+ bne _0202E26E
+ mov r0, #0x0
+ mov r1, #0x1
+ bl FUN_0202E0FC
+ b _0202E27E
+_0202E26E:
+ mov r0, #0x0
+ mvn r0, r0
+ cmp r1, r0
+ bne _0202E27E
+ mov r0, #0x1
+ add r1, r0, #0x0
+ bl FUN_0202E0FC
+_0202E27E:
+ add r0, r4, #0x0
+ bl FUN_0202E1BC
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202E288
+FUN_0202E288: ; 0x0202E288
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x2
+ bl FUN_0202E0FC
+ add r0, r4, #0x0
+ bl FUN_0202E1BC
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202E29C
+FUN_0202E29C: ; 0x0202E29C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _0202E334 ; =0x021C59E8
+ ldr r0, [r0, #0x8]
+ cmp r0, #0x0
+ bne _0202E332
+ mov r1, #0xdb
+ mov r0, #0xf
+ lsl r1, r1, #0x4
+ bl FUN_02016998
+ ldr r1, _0202E334 ; =0x021C59E8
+ mov r2, #0xdb
+ str r0, [r1, #0x8]
+ mov r1, #0x0
+ lsl r2, r2, #0x4
+ bl MI_CpuFill8
+ bl FUN_0202CEEC
+ add r1, r0, #0x0
+ mov r0, #0xf
+ bl FUN_02016998
+ ldr r1, _0202E334 ; =0x021C59E8
+ ldr r2, [r1, #0x8]
+ ldr r1, _0202E338 ; =0x00000CA4
+ str r0, [r2, r1]
+ bl FUN_0202CEEC
+ add r2, r0, #0x0
+ ldr r0, _0202E334 ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202E338 ; =0x00000CA4
+ ldr r0, [r1, r0]
+ mov r1, #0x0
+ bl MI_CpuFill8
+ bl FUN_02023AC4
+ add r1, r0, #0x0
+ mov r0, #0xf
+ bl FUN_02016998
+ ldr r1, _0202E334 ; =0x021C59E8
+ ldr r2, [r1, #0x8]
+ ldr r1, _0202E33C ; =0x00000CBC
+ str r0, [r2, r1]
+ bl FUN_02023AC4
+ add r2, r0, #0x0
+ ldr r0, _0202E334 ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202E33C ; =0x00000CBC
+ ldr r0, [r1, r0]
+ mov r1, #0x0
+ bl MI_CpuFill8
+ ldr r2, _0202E334 ; =0x021C59E8
+ mov r1, #0x33
+ ldr r3, _0202E340 ; =0x00000333
+ ldr r0, [r2, #0x8]
+ lsl r1, r1, #0x6
+ str r3, [r0, r1]
+ add r0, r1, #0x0
+ ldr r3, [r2, #0x8]
+ sub r0, #0x8
+ str r4, [r3, r0]
+ ldr r0, [r2, #0x8]
+ sub r1, #0x18
+ add r0, r0, r1
+ bl FUN_02013724
+ bl FUN_0202E500
+_0202E332:
+ pop {r4, pc}
+ .balign 4
+_0202E334: .word 0x021C59E8
+_0202E338: .word 0x00000CA4
+_0202E33C: .word 0x00000CBC
+_0202E340: .word 0x00000333
+
+ thumb_func_start FUN_0202E344
+FUN_0202E344: ; 0x0202E344
+ ldr r0, _0202E354 ; =0x021C59E8
+ ldr r0, [r0, #0x8]
+ cmp r0, #0x0
+ beq _0202E350
+ mov r0, #0x1
+ bx lr
+_0202E350:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0202E354: .word 0x021C59E8
+
+ thumb_func_start FUN_0202E358
+FUN_0202E358: ; 0x0202E358
+ push {r4-r5}
+ mov r5, #0x0
+ cmp r2, #0x0
+ ble _0202E378
+_0202E360:
+ ldrb r4, [r0, #0x0]
+ ldrb r3, [r1, #0x0]
+ cmp r4, r3
+ beq _0202E36E
+ mov r0, #0x0
+ pop {r4-r5}
+ bx lr
+_0202E36E:
+ add r5, r5, #0x1
+ add r0, r0, #0x1
+ add r1, r1, #0x1
+ cmp r5, r2
+ blt _0202E360
+_0202E378:
+ mov r0, #0x1
+ pop {r4-r5}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0202E380
+FUN_0202E380: ; 0x0202E380
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ bl FUN_02033534
+ add r5, r0, #0x0
+ bl FUN_0203354C
+ add r4, r7, #0x0
+ add r6, r0, #0x0
+ add r4, #0x50
+ cmp r5, #0xe
+ beq _0202E3C2
+ ldrb r0, [r4, #0x4]
+ bl FUN_0202D8B0
+ cmp r0, #0x0
+ beq _0202E3AC
+ add r0, r5, #0x0
+ bl FUN_0202D8B0
+ cmp r0, #0x0
+ bne _0202E3C2
+_0202E3AC:
+ add r0, r4, #0x0
+ add r0, #0x54
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0202E3BC
+ ldrb r0, [r4, #0x4]
+ cmp r0, #0xa
+ beq _0202E460
+_0202E3BC:
+ ldrb r0, [r4, #0x4]
+ cmp r0, r5
+ bne _0202E460
+_0202E3C2:
+ cmp r5, #0xe
+ beq _0202E3CC
+ ldrb r0, [r4, #0x5]
+ cmp r0, r6
+ bne _0202E460
+_0202E3CC:
+ mov r6, #0x0
+ add r4, r6, #0x0
+ add r5, r6, #0x0
+_0202E3D2:
+ ldr r0, _0202E464 ; =0x021C59E8
+ ldr r1, _0202E468 ; =0x00000C84
+ ldr r0, [r0, #0x8]
+ add r2, r0, r4
+ ldrh r1, [r2, r1]
+ cmp r1, #0x0
+ beq _0202E412
+ add r0, #0x58
+ add r0, r0, r5
+ add r1, r7, #0x4
+ mov r2, #0x6
+ bl FUN_0202E358
+ cmp r0, #0x0
+ beq _0202E412
+ ldr r2, _0202E464 ; =0x021C59E8
+ lsl r1, r6, #0x1
+ ldr r3, [r2, #0x8]
+ mov r0, #0x96
+ add r3, r3, r1
+ ldr r1, _0202E468 ; =0x00000C84
+ strh r0, [r3, r1]
+ ldr r3, [r2, #0x8]
+ mov r2, #0xc0
+ add r1, r6, #0x0
+ add r3, #0x54
+ mul r1, r2
+ add r0, r7, #0x0
+ add r1, r3, r1
+ bl MI_CpuCopy8
+ pop {r3-r7, pc}
+_0202E412:
+ add r6, r6, #0x1
+ add r4, r4, #0x2
+ add r5, #0xc0
+ cmp r6, #0x10
+ blt _0202E3D2
+ ldr r0, _0202E464 ; =0x021C59E8
+ ldr r2, _0202E468 ; =0x00000C84
+ ldr r0, [r0, #0x8]
+ mov r1, #0x0
+ add r4, r0, #0x0
+_0202E426:
+ ldrh r3, [r4, r2]
+ cmp r3, #0x0
+ beq _0202E434
+ add r1, r1, #0x1
+ add r4, r4, #0x2
+ cmp r1, #0x10
+ blt _0202E426
+_0202E434:
+ cmp r1, #0x10
+ bge _0202E460
+ lsl r2, r1, #0x1
+ add r2, r0, r2
+ ldr r0, _0202E468 ; =0x00000C84
+ mov r3, #0x96
+ strh r3, [r2, r0]
+ ldr r2, _0202E464 ; =0x021C59E8
+ add r3, r1, #0x0
+ ldr r4, [r2, #0x8]
+ mov r2, #0xc0
+ add r4, #0x54
+ mul r3, r2
+ add r0, r7, #0x0
+ add r1, r4, r3
+ bl MI_CpuCopy8
+ ldr r0, _0202E464 ; =0x021C59E8
+ mov r2, #0x1
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202E46C ; =0x00000CB4
+ strb r2, [r1, r0]
+_0202E460:
+ pop {r3-r7, pc}
+ nop
+_0202E464: .word 0x021C59E8
+_0202E468: .word 0x00000C84
+_0202E46C: .word 0x00000CB4
+
+ thumb_func_start FUN_0202E470
+FUN_0202E470: ; 0x0202E470
+ push {r3, lr}
+ cmp r1, #0x0
+ beq _0202E47A
+ bl OS_Terminate
+_0202E47A:
+ ldr r0, _0202E484 ; =0x021C59E8
+ mov r1, #0x2
+ str r1, [r0, #0x4]
+ pop {r3, pc}
+ nop
+_0202E484: .word 0x021C59E8
+
+ thumb_func_start FUN_0202E488
+FUN_0202E488: ; 0x0202E488
+ ldr r0, _0202E494 ; =0x021C59E8
+ mov r1, #0x0
+ str r1, [r0, #0x4]
+ ldr r3, _0202E498 ; =FUN_02016454
+ mov r0, #0x4
+ bx r3
+ .balign 4
+_0202E494: .word 0x021C59E8
+_0202E498: .word FUN_02016454
+
+ thumb_func_start FUN_0202E49C
+FUN_0202E49C: ; 0x0202E49C
+ push {r3, lr}
+ mov r0, #0x4
+ bl FUN_02016444
+ ldr r0, _0202E4C0 ; =0x021C59E8
+ mov r1, #0x1
+ str r1, [r0, #0x4]
+ ldr r1, _0202E4C4 ; =FUN_0202E470
+ mov r0, #0x8
+ mov r2, #0x0
+ bl FUN_02090DB8
+ cmp r0, #0x1
+ beq _0202E4BC
+ bl OS_Terminate
+_0202E4BC:
+ pop {r3, pc}
+ nop
+_0202E4C0: .word 0x021C59E8
+_0202E4C4: .word FUN_0202E470
+
+ thumb_func_start FUN_0202E4C8
+FUN_0202E4C8: ; 0x0202E4C8
+ ldr r0, _0202E4D8 ; =0x021C59E8
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x2
+ bne _0202E4D4
+ mov r0, #0x1
+ bx lr
+_0202E4D4:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0202E4D8: .word 0x021C59E8
+
+ thumb_func_start FUN_0202E4DC
+FUN_0202E4DC: ; 0x0202E4DC
+ ldr r0, _0202E4EC ; =0x021C59E8
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ beq _0202E4E8
+ mov r0, #0x1
+ bx lr
+_0202E4E8:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0202E4EC: .word 0x021C59E8
+
+ thumb_func_start FUN_0202E4F0
+FUN_0202E4F0: ; 0x0202E4F0
+ ldr r3, _0202E4F8 ; =FUN_02090CC8
+ ldr r0, _0202E4FC ; =FUN_0202E488
+ mov r1, #0x0
+ bx r3
+ .balign 4
+_0202E4F8: .word FUN_02090CC8
+_0202E4FC: .word FUN_0202E488
+
+ thumb_func_start FUN_0202E500
+FUN_0202E500: ; 0x0202E500
+ push {r3, lr}
+ ldr r1, _0202E534 ; =0x021C59E8
+ mov r0, #0xcb
+ ldr r2, [r1, #0x8]
+ mov r3, #0x0
+ lsl r0, r0, #0x4
+ str r3, [r2, r0]
+ ldr r1, [r1, #0x8]
+ sub r0, #0xc
+ ldr r2, [r1, r0]
+ mov r0, #0x1f
+ add r1, r2, #0x0
+ and r1, r0
+ mov r0, #0x20
+ sub r0, r0, r1
+ add r0, r2, r0
+ bl FUN_0202CE64
+ ldr r0, _0202E534 ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ mov r0, #0x33
+ lsl r0, r0, #0x6
+ ldr r0, [r1, r0]
+ bl FUN_0202CB70
+ pop {r3, pc}
+ .balign 4
+_0202E534: .word 0x021C59E8
+
+ thumb_func_start FUN_0202E538
+FUN_0202E538: ; 0x0202E538
+ push {r3-r5, lr}
+ mov r4, #0x0
+ ldr r2, _0202E564 ; =0x021C59E8
+ ldr r0, _0202E568 ; =0x00000C84
+ add r5, r4, #0x0
+ add r1, r4, #0x0
+_0202E544:
+ ldr r3, [r2, #0x8]
+ add r4, r4, #0x1
+ add r3, r3, r5
+ add r5, r5, #0x2
+ strh r1, [r3, r0]
+ cmp r4, #0x10
+ blt _0202E544
+ ldr r0, _0202E564 ; =0x021C59E8
+ mov r2, #0x3
+ ldr r0, [r0, #0x8]
+ lsl r2, r2, #0xa
+ add r0, #0x54
+ bl MI_CpuFill8
+ pop {r3-r5, pc}
+ nop
+_0202E564: .word 0x021C59E8
+_0202E568: .word 0x00000C84
+
+ thumb_func_start FUN_0202E56C
+FUN_0202E56C: ; 0x0202E56C
+ push {r3-r4}
+ ldr r1, _0202E58C ; =0x021C59E8
+ lsl r0, r0, #0x18
+ ldr r2, [r1, #0x8]
+ ldr r4, _0202E590 ; =0x00000DAD
+ lsr r0, r0, #0x18
+ ldrb r1, [r2, r4]
+ mov r3, #0x8
+ lsl r0, r0, #0x1f
+ bic r1, r3
+ lsr r0, r0, #0x1c
+ orr r0, r1
+ strb r0, [r2, r4]
+ pop {r3-r4}
+ bx lr
+ nop
+_0202E58C: .word 0x021C59E8
+_0202E590: .word 0x00000DAD
+
+ thumb_func_start FUN_0202E594
+FUN_0202E594: ; 0x0202E594
+ push {r4-r5}
+ ldr r1, _0202E5F0 ; =0x021C59E8
+ ldr r0, _0202E5F4 ; =0x00000CB4
+ ldr r3, [r1, #0x8]
+ mov r2, #0x0
+ strb r2, [r3, r0]
+ add r3, r0, #0x0
+ ldr r5, [r1, #0x8]
+ add r3, #0xf9
+ ldrb r4, [r5, r3]
+ mov r3, #0x1
+ bic r4, r3
+ add r3, r0, #0x0
+ add r3, #0xf9
+ strb r4, [r5, r3]
+ add r3, r0, #0x0
+ ldr r5, [r1, #0x8]
+ add r3, #0xf9
+ ldrb r4, [r5, r3]
+ mov r3, #0x4
+ bic r4, r3
+ add r3, r0, #0x0
+ add r3, #0xf9
+ strb r4, [r5, r3]
+ add r3, r0, #0x0
+ ldr r4, [r1, #0x8]
+ add r3, #0xf6
+ strb r2, [r4, r3]
+ add r3, r0, #0x0
+ ldr r5, [r1, #0x8]
+ add r3, #0xf9
+ ldrb r4, [r5, r3]
+ mov r3, #0x10
+ bic r4, r3
+ add r3, r0, #0x0
+ add r3, #0xf9
+ strb r4, [r5, r3]
+ add r3, r0, #0x0
+ ldr r4, [r1, #0x8]
+ add r3, #0xf8
+ strb r2, [r4, r3]
+ ldr r1, [r1, #0x8]
+ add r0, #0xf7
+ strb r2, [r1, r0]
+ pop {r4-r5}
+ bx lr
+ .balign 4
+_0202E5F0: .word 0x021C59E8
+_0202E5F4: .word 0x00000CB4
+
+ thumb_func_start FUN_0202E5F8
+FUN_0202E5F8: ; 0x0202E5F8
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ bl FUN_0202E594
+ add r0, r5, #0x0
+ bl FUN_0202E56C
+ bl FUN_0202D2F4
+ ldr r0, _0202E65C ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202E660 ; =0x00000DAB
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ bne _0202E62A
+ ldr r0, _0202E664 ; =FUN_020303BC
+ mov r1, #0xe
+ bl FUN_0202D0A0
+ ldr r0, _0202E65C ; =0x021C59E8
+ mov r2, #0x1
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202E660 ; =0x00000DAB
+ strb r2, [r1, r0]
+_0202E62A:
+ ldr r0, _0202E65C ; =0x021C59E8
+ ldr r3, _0202E668 ; =0x00000DAD
+ ldr r1, [r0, #0x8]
+ mov r2, #0x20
+ ldrb r0, [r1, r3]
+ bic r0, r2
+ lsl r2, r4, #0x18
+ lsr r2, r2, #0x18
+ lsl r2, r2, #0x1f
+ lsr r2, r2, #0x1a
+ orr r0, r2
+ strb r0, [r1, r3]
+ bl FUN_0202CBD4
+ cmp r0, #0x1
+ bne _0202E656
+ bl FUN_0202CBFC
+ cmp r0, #0x0
+ beq _0202E656
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0202E656:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ nop
+_0202E65C: .word 0x021C59E8
+_0202E660: .word 0x00000DAB
+_0202E664: .word FUN_020303BC
+_0202E668: .word 0x00000DAD
+
+ thumb_func_start FUN_0202E66C
+FUN_0202E66C: ; 0x0202E66C
+ push {r4, lr}
+ sub sp, #0x8
+ add r4, r1, #0x0
+ bl FUN_0202E594
+ cmp r4, #0x0
+ beq _0202E67E
+ bl FUN_0202E538
+_0202E67E:
+ ldr r0, _0202E6DC ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202E6E0 ; =0x00000DAB
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ bne _0202E69C
+ ldr r0, _0202E6E4 ; =FUN_02030238
+ mov r1, #0xe
+ bl FUN_0202D0A0
+ ldr r0, _0202E6DC ; =0x021C59E8
+ mov r2, #0x1
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202E6E0 ; =0x00000DAB
+ strb r2, [r1, r0]
+_0202E69C:
+ bl FUN_0202CBD4
+ cmp r0, #0x1
+ bne _0202E6D4
+ ldr r2, _0202E6E8 ; =0x020EEC40
+ add r0, sp, #0x0
+ ldrb r3, [r2, #0x0]
+ add r1, sp, #0x0
+ strb r3, [r0, #0x0]
+ ldrb r3, [r2, #0x1]
+ strb r3, [r0, #0x1]
+ ldrb r3, [r2, #0x2]
+ strb r3, [r0, #0x2]
+ ldrb r3, [r2, #0x3]
+ strb r3, [r0, #0x3]
+ ldrb r3, [r2, #0x4]
+ ldrb r2, [r2, #0x5]
+ strb r3, [r0, #0x4]
+ strb r2, [r0, #0x5]
+ ldr r0, _0202E6EC ; =FUN_0202E380
+ mov r2, #0x0
+ bl FUN_0202C570
+ cmp r0, #0x0
+ beq _0202E6D4
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r4, pc}
+_0202E6D4:
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r4, pc}
+ nop
+_0202E6DC: .word 0x021C59E8
+_0202E6E0: .word 0x00000DAB
+_0202E6E4: .word FUN_02030238
+_0202E6E8: .word 0x020EEC40
+_0202E6EC: .word FUN_0202E380
+
+ thumb_func_start FUN_0202E6F0
+FUN_0202E6F0: ; 0x0202E6F0
+ push {r3, lr}
+ ldr r0, _0202E77C ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ cmp r1, #0x0
+ bne _0202E6FE
+ mov r0, #0x1
+ pop {r3, pc}
+_0202E6FE:
+ ldr r0, _0202E780 ; =0x00000DAC
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0202E710
+ cmp r0, #0x1
+ beq _0202E740
+ cmp r0, #0x2
+ beq _0202E758
+ b _0202E776
+_0202E710:
+ bl FUN_0202D21C
+ cmp r0, #0x0
+ beq _0202E728
+ bl FUN_0202C770
+ ldr r0, _0202E77C ; =0x021C59E8
+ mov r2, #0x1
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202E780 ; =0x00000DAC
+ strb r2, [r1, r0]
+ b _0202E776
+_0202E728:
+ bl FUN_0202D1E4
+ cmp r0, #0x0
+ bne _0202E776
+ bl FUN_0202D100
+ ldr r0, _0202E77C ; =0x021C59E8
+ mov r2, #0x2
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202E780 ; =0x00000DAC
+ strb r2, [r1, r0]
+ b _0202E776
+_0202E740:
+ bl FUN_0202D1E4
+ cmp r0, #0x0
+ bne _0202E776
+ bl FUN_0202D100
+ ldr r0, _0202E77C ; =0x021C59E8
+ mov r2, #0x2
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202E780 ; =0x00000DAC
+ strb r2, [r1, r0]
+ b _0202E776
+_0202E758:
+ bl FUN_0202D1C8
+ cmp r0, #0x0
+ beq _0202E764
+ mov r0, #0x1
+ pop {r3, pc}
+_0202E764:
+ bl FUN_0202D200
+ cmp r0, #0x0
+ beq _0202E776
+ ldr r0, _0202E77C ; =0x021C59E8
+ mov r2, #0x1
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202E780 ; =0x00000DAC
+ strb r2, [r1, r0]
+_0202E776:
+ mov r0, #0x0
+ pop {r3, pc}
+ nop
+_0202E77C: .word 0x021C59E8
+_0202E780: .word 0x00000DAC
+
+ thumb_func_start FUN_0202E784
+FUN_0202E784: ; 0x0202E784
+ push {r3, lr}
+ ldr r0, _0202E7A8 ; =0x021C59E8
+ ldr r2, [r0, #0x8]
+ cmp r2, #0x0
+ beq _0202E7A2
+ ldr r0, _0202E7AC ; =0x00000DAA
+ ldrb r1, [r2, r0]
+ cmp r1, #0x0
+ bne _0202E7A2
+ mov r1, #0x1
+ strb r1, [r2, r0]
+ bl FUN_0202D100
+ mov r0, #0x1
+ pop {r3, pc}
+_0202E7A2:
+ mov r0, #0x0
+ pop {r3, pc}
+ nop
+_0202E7A8: .word 0x021C59E8
+_0202E7AC: .word 0x00000DAA
+
+ thumb_func_start FUN_0202E7B0
+FUN_0202E7B0: ; 0x0202E7B0
+ push {r3, lr}
+ ldr r1, _0202E7D0 ; =0x021C59E8
+ ldr r2, [r1, #0x8]
+ cmp r2, #0x0
+ beq _0202E7CE
+ cmp r0, #0x0
+ ldr r0, _0202E7D4 ; =0x00000DAA
+ beq _0202E7C6
+ mov r1, #0x2
+ strb r1, [r2, r0]
+ pop {r3, pc}
+_0202E7C6:
+ mov r1, #0x0
+ strb r1, [r2, r0]
+ bl FUN_0202E500
+_0202E7CE:
+ pop {r3, pc}
+ .balign 4
+_0202E7D0: .word 0x021C59E8
+_0202E7D4: .word 0x00000DAA
+
+ thumb_func_start FUN_0202E7D8
+FUN_0202E7D8: ; 0x0202E7D8
+ push {r3, lr}
+ ldr r0, _0202E804 ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202E808 ; =0x00000CBC
+ ldr r0, [r1, r0]
+ bl FUN_02016A18
+ ldr r0, _0202E804 ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202E80C ; =0x00000CA4
+ ldr r0, [r1, r0]
+ bl FUN_02016A18
+ ldr r0, _0202E804 ; =0x021C59E8
+ ldr r0, [r0, #0x8]
+ bl FUN_02016A18
+ ldr r0, _0202E804 ; =0x021C59E8
+ mov r1, #0x0
+ str r1, [r0, #0x8]
+ pop {r3, pc}
+ nop
+_0202E804: .word 0x021C59E8
+_0202E808: .word 0x00000CBC
+_0202E80C: .word 0x00000CA4
+
+ thumb_func_start FUN_0202E810
+FUN_0202E810: ; 0x0202E810
+ push {r4, lr}
+ bl FUN_02030F40
+ cmp r0, #0x0
+ bne _0202E81E
+ mov r0, #0x0
+ pop {r4, pc}
+_0202E81E:
+ ldr r1, _0202E83C ; =0x021C59E8
+ mov r0, #0x0
+ ldr r4, [r1, #0x8]
+ ldr r1, _0202E840 ; =0x00000C84
+ add r3, r0, #0x0
+_0202E828:
+ ldrh r2, [r4, r1]
+ cmp r2, #0x0
+ beq _0202E830
+ add r0, r0, #0x1
+_0202E830:
+ add r3, r3, #0x1
+ add r4, r4, #0x2
+ cmp r3, #0x10
+ blt _0202E828
+ pop {r4, pc}
+ nop
+_0202E83C: .word 0x021C59E8
+_0202E840: .word 0x00000C84
+
+ thumb_func_start FUN_0202E844
+FUN_0202E844: ; 0x0202E844
+ push {r3-r5, lr}
+ ldr r1, _0202E870 ; =0x021C59E8
+ mov r4, #0x0
+ ldr r5, [r1, #0x8]
+ ldr r1, _0202E874 ; =0x00000C84
+ add r3, r4, #0x0
+_0202E850:
+ ldrh r2, [r5, r1]
+ cmp r2, #0x0
+ beq _0202E860
+ cmp r4, r0
+ bne _0202E85E
+ add r0, r3, #0x0
+ pop {r3-r5, pc}
+_0202E85E:
+ add r4, r4, #0x1
+_0202E860:
+ add r3, r3, #0x1
+ add r5, r5, #0x2
+ cmp r3, #0x10
+ blt _0202E850
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_0202E870: .word 0x021C59E8
+_0202E874: .word 0x00000C84
+
+ thumb_func_start FUN_0202E878
+FUN_0202E878: ; 0x0202E878
+ ldr r0, _0202E884 ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202E888 ; =0x00000CB4
+ ldrb r0, [r1, r0]
+ bx lr
+ nop
+_0202E884: .word 0x021C59E8
+_0202E888: .word 0x00000CB4
+
+ thumb_func_start FUN_0202E88C
+FUN_0202E88C: ; 0x0202E88C
+ ldr r0, _0202E898 ; =0x021C59E8
+ mov r2, #0x0
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202E89C ; =0x00000CB4
+ strb r2, [r1, r0]
+ bx lr
+ .balign 4
+_0202E898: .word 0x021C59E8
+_0202E89C: .word 0x00000CB4
+
+ thumb_func_start FUN_0202E8A0
+FUN_0202E8A0: ; 0x0202E8A0
+ ldr r1, _0202E8C8 ; =0x021C59E8
+ ldr r3, [r1, #0x8]
+ lsl r1, r0, #0x1
+ add r2, r3, r1
+ ldr r1, _0202E8CC ; =0x00000C84
+ ldrh r1, [r2, r1]
+ cmp r1, #0x0
+ beq _0202E8C2
+ mov r1, #0xc0
+ mul r1, r0
+ add r0, r3, r1
+ add r0, #0xaa
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0202E8C4
+ mov r0, #0x1
+ bx lr
+_0202E8C2:
+ mov r0, #0x0
+_0202E8C4:
+ bx lr
+ nop
+_0202E8C8: .word 0x021C59E8
+_0202E8CC: .word 0x00000C84
+
+ thumb_func_start FUN_0202E8D0
+FUN_0202E8D0: ; 0x0202E8D0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r4, #0xf
+_0202E8D6:
+ add r0, r4, #0x0
+ bl FUN_0202E8A0
+ cmp r0, r5
+ ble _0202E8E8
+ cmp r0, #0x8
+ bge _0202E8E8
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+_0202E8E8:
+ sub r4, r4, #0x1
+ bpl _0202E8D6
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202E8F4
+FUN_0202E8F4: ; 0x0202E8F4
+ push {r3-r7, lr}
+ bl FUN_0202E810
+ cmp r0, #0x0
+ bne _0202E904
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r7, pc}
+_0202E904:
+ mov r5, #0x2d
+ ldr r7, _0202E948 ; =0x021C59E8
+ mov r6, #0xf
+ mov r4, #0x1e
+ lsl r5, r5, #0x6
+_0202E90E:
+ ldr r0, [r7, #0x8]
+ ldr r1, _0202E94C ; =0x00000C84
+ add r2, r0, r4
+ ldrh r1, [r2, r1]
+ cmp r1, #0x0
+ beq _0202E938
+ add r0, #0x58
+ add r0, r0, r5
+ bl FUN_0202EFE4
+ cmp r0, #0x0
+ beq _0202E938
+ add r0, r6, #0x0
+ bl FUN_0202E8A0
+ cmp r0, #0x1
+ ble _0202E938
+ cmp r0, #0x8
+ bge _0202E938
+ add r0, r6, #0x0
+ pop {r3-r7, pc}
+_0202E938:
+ sub r4, r4, #0x2
+ sub r5, #0xc0
+ sub r6, r6, #0x1
+ bpl _0202E90E
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r7, pc}
+ nop
+_0202E948: .word 0x021C59E8
+_0202E94C: .word 0x00000C84
+
+ thumb_func_start FUN_0202E950
+FUN_0202E950: ; 0x0202E950
+ push {r3-r7, lr}
+ bl FUN_0202E810
+ cmp r0, #0x0
+ bne _0202E960
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r3-r7, pc}
+_0202E960:
+ mov r5, #0x2d
+ ldr r7, _0202E9A4 ; =0x021C59E8
+ mov r6, #0xf
+ mov r4, #0x1e
+ lsl r5, r5, #0x6
+_0202E96A:
+ ldr r0, [r7, #0x8]
+ ldr r1, _0202E9A8 ; =0x00000C84
+ add r2, r0, r4
+ ldrh r1, [r2, r1]
+ cmp r1, #0x0
+ beq _0202E986
+ add r0, #0x58
+ add r0, r0, r5
+ bl FUN_0202EFE4
+ cmp r0, #0x0
+ beq _0202E986
+ add r0, r6, #0x0
+ pop {r3-r7, pc}
+_0202E986:
+ sub r4, r4, #0x2
+ sub r5, #0xc0
+ sub r6, r6, #0x1
+ bpl _0202E96A
+ mov r0, #0x1
+ bl FUN_0202E8D0
+ mov r1, #0x0
+ mvn r1, r1
+ cmp r0, r1
+ bne _0202E9A2
+ mov r0, #0x0
+ bl FUN_0202E8D0
+_0202E9A2:
+ pop {r3-r7, pc}
+ .balign 4
+_0202E9A4: .word 0x021C59E8
+_0202E9A8: .word 0x00000C84
+
+ thumb_func_start FUN_0202E9AC
+FUN_0202E9AC: ; 0x0202E9AC
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ ldr r1, _0202E9E0 ; =0x021C59E8
+ mov r5, #0x0
+ ldr r6, [r1, #0x8]
+ ldr r1, _0202E9E4 ; =0x00000C84
+ add r3, r5, #0x0
+_0202E9BA:
+ ldrh r2, [r6, r1]
+ cmp r2, #0x0
+ beq _0202E9D4
+ cmp r0, r5
+ bne _0202E9D2
+ add r0, r3, #0x0
+ bl FUN_0202EF84
+ add r1, r4, #0x0
+ bl FUN_0202393C
+ pop {r4-r6, pc}
+_0202E9D2:
+ add r5, r5, #0x1
+_0202E9D4:
+ add r3, r3, #0x1
+ add r6, r6, #0x2
+ cmp r3, #0x10
+ blt _0202E9BA
+ pop {r4-r6, pc}
+ nop
+_0202E9E0: .word 0x021C59E8
+_0202E9E4: .word 0x00000C84
+
+ thumb_func_start FUN_0202E9E8
+FUN_0202E9E8: ; 0x0202E9E8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_0202CBD4
+ cmp r0, #0x2
+ bne _0202E9FC
+ bl FUN_0202C770
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0202E9FC:
+ bl FUN_0202CBD4
+ cmp r0, #0x1
+ bne _0202EA48
+ bl FUN_02033534
+ mov r1, #0xc0
+ add r4, r5, #0x0
+ mul r4, r1
+ ldr r1, _0202EA4C ; =0x021C59E8
+ ldr r3, [r1, #0x8]
+ add r1, r3, r4
+ add r1, #0x8a
+ ldrh r2, [r1, #0x0]
+ ldr r1, _0202EA50 ; =0x00000DA8
+ strb r2, [r3, r1]
+ bl FUN_0202D8B0
+ cmp r0, #0x0
+ beq _0202EA36
+ ldr r1, _0202EA4C ; =0x021C59E8
+ mov r0, #0x1
+ ldr r1, [r1, #0x8]
+ mov r2, #0x0
+ add r1, #0x58
+ add r1, r1, r4
+ bl FUN_0202C4D8
+ b _0202EA44
+_0202EA36:
+ ldr r1, _0202EA4C ; =0x021C59E8
+ mov r0, #0x1
+ ldr r1, [r1, #0x8]
+ add r1, #0x54
+ add r1, r1, r4
+ bl FUN_0202D034
+_0202EA44:
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_0202EA48:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_0202EA4C: .word 0x021C59E8
+_0202EA50: .word 0x00000DA8
+
+ thumb_func_start FUN_0202EA54
+FUN_0202EA54: ; 0x0202EA54
+ push {r4-r7}
+ mov r4, #0x0
+ ldr r1, _0202EA90 ; =0x021C59E8
+ ldr r0, _0202EA94 ; =0x00000C84
+ add r5, r4, #0x0
+ mov r2, #0x1
+_0202EA60:
+ ldr r3, [r1, #0x8]
+ add r3, r3, r5
+ ldrh r6, [r3, r0]
+ cmp r6, #0x0
+ beq _0202EA84
+ beq _0202EA84
+ ldr r6, _0202EA94 ; =0x00000C84
+ ldrh r6, [r3, r6]
+ sub r7, r6, #0x1
+ ldr r6, _0202EA94 ; =0x00000C84
+ strh r7, [r3, r6]
+ ldr r3, [r1, #0x8]
+ add r7, r3, r5
+ ldrh r6, [r7, r6]
+ cmp r6, #0x0
+ bne _0202EA84
+ ldr r6, _0202EA98 ; =0x00000CB4
+ strb r2, [r3, r6]
+_0202EA84:
+ add r4, r4, #0x1
+ add r5, r5, #0x2
+ cmp r4, #0x10
+ blt _0202EA60
+ pop {r4-r7}
+ bx lr
+ .balign 4
+_0202EA90: .word 0x021C59E8
+_0202EA94: .word 0x00000C84
+_0202EA98: .word 0x00000CB4
+
+ thumb_func_start FUN_0202EA9C
+FUN_0202EA9C: ; 0x0202EA9C
+ push {r3-r5, lr}
+ bl FUN_02033534
+ add r5, r0, #0x0
+ bl FUN_0202EF70
+ add r4, r0, #0x0
+ cmp r5, #0xf
+ beq _0202EB24
+ ldr r0, _0202EB6C ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202EB70 ; =0x00000CC4
+ add r5, r1, r0
+ bl FUN_02023AC4
+ cmp r0, #0x20
+ ble _0202EAC2
+ bl ErrorHandling
+_0202EAC2:
+ bl FUN_02023924
+ cmp r0, #0x20
+ beq _0202EACE
+ bl ErrorHandling
+_0202EACE:
+ bl FUN_02023924
+ add r1, r5, #0x0
+ add r2, r0, #0x0
+ add r0, r4, #0x0
+ add r1, #0x10
+ bl MI_CpuCopy8
+ bl FUN_02023AC4
+ add r2, r0, #0x0
+ ldr r0, _0202EB6C ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202EB74 ; =0x00000CBC
+ ldr r0, [r1, r0]
+ add r1, r5, #0x0
+ add r1, #0x30
+ bl MI_CpuCopy8
+ add r0, r4, #0x0
+ bl FUN_020239BC
+ str r0, [r5, #0x0]
+ bl FUN_02033534
+ strb r0, [r5, #0x4]
+ bl FUN_0203354C
+ strb r0, [r5, #0x5]
+ ldr r0, _0202EB6C ; =0x021C59E8
+ mov r2, #0x8
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202EB78 ; =0x00000CA8
+ add r0, r1, r0
+ add r1, r5, #0x0
+ add r1, #0x8
+ bl MI_CpuCopy8
+ bl FUN_0202D358
+ add r5, #0x54
+ strb r0, [r5, #0x0]
+ b _0202EB4E
+_0202EB24:
+ ldr r1, _0202EB6C ; =0x021C59E8
+ ldr r4, [r1, #0x8]
+ ldr r1, _0202EB70 ; =0x00000CC4
+ add r5, r4, r1
+ bl FUN_020239BC
+ ldr r1, _0202EB70 ; =0x00000CC4
+ str r0, [r4, r1]
+ bl FUN_02033534
+ strb r0, [r5, #0x4]
+ bl FUN_0203354C
+ strb r0, [r5, #0x5]
+ ldr r0, _0202EB6C ; =0x021C59E8
+ add r5, #0x8
+ ldr r0, [r0, #0x8]
+ add r1, r5, #0x0
+ mov r2, #0x54
+ bl MI_CpuCopy8
+_0202EB4E:
+ ldr r0, _0202EB6C ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202EB70 ; =0x00000CC4
+ add r0, r1, r0
+ mov r1, #0x5c
+ bl DC_FlushRange
+ ldr r0, _0202EB6C ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202EB70 ; =0x00000CC4
+ add r0, r1, r0
+ mov r1, #0x5c
+ bl FUN_0202CB7C
+ pop {r3-r5, pc}
+ .balign 4
+_0202EB6C: .word 0x021C59E8
+_0202EB70: .word 0x00000CC4
+_0202EB74: .word 0x00000CBC
+_0202EB78: .word 0x00000CA8
+
+ thumb_func_start FUN_0202EB7C
+FUN_0202EB7C: ; 0x0202EB7C
+ push {r4, lr}
+ ldr r0, _0202EBC8 ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202EBCC ; =0x00000CC4
+ add r4, r1, r0
+ bl FUN_0202EDB8
+ ldrb r1, [r4, #0x6]
+ cmp r1, r0
+ beq _0202EBC6
+ bl FUN_0202EDB8
+ strb r0, [r4, #0x6]
+ ldr r0, _0202EBC8 ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202EBCC ; =0x00000CC4
+ add r0, r1, r0
+ mov r1, #0x5c
+ bl DC_FlushRange
+ ldr r0, _0202EBC8 ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202EBCC ; =0x00000CC4
+ add r0, r1, r0
+ mov r1, #0x5c
+ bl FUN_0202CB7C
+ ldr r3, _0202EBC8 ; =0x021C59E8
+ ldr r2, _0202EBCC ; =0x00000CC4
+ ldr r4, [r3, #0x8]
+ ldrh r3, [r3, #0x0]
+ add r0, r4, r2
+ sub r2, r2, #0x4
+ ldr r2, [r4, r2]
+ mov r1, #0x5c
+ bl FUN_0202D240
+_0202EBC6:
+ pop {r4, pc}
+ .balign 4
+_0202EBC8: .word 0x021C59E8
+_0202EBCC: .word 0x00000CC4
+
+ thumb_func_start FUN_0202EBD0
+FUN_0202EBD0: ; 0x0202EBD0
+ push {r3-r5, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ bl FUN_0202CBD4
+ add r5, r0, #0x0
+ bl FUN_0202DF54
+ bl FUN_0202EB7C
+ bl FUN_0202D19C
+ cmp r0, #0x0
+ bne _0202EC0C
+ bl FUN_0202EE24
+ cmp r0, #0x0
+ bne _0202EC0C
+ ldr r0, _0202ED50 ; =0x021C59E8
+ ldr r2, [r0, #0x8]
+ ldr r0, _0202ED54 ; =0x00000DAD
+ ldrb r1, [r2, r0]
+ lsl r3, r1, #0x1d
+ lsr r3, r3, #0x1f
+ beq _0202EC0C
+ mov r3, #0x1
+ bic r1, r3
+ mov r3, #0x1
+ orr r1, r3
+ strb r1, [r2, r0]
+_0202EC0C:
+ ldr r0, _0202ED50 ; =0x021C59E8
+ ldr r1, _0202ED58 ; =0x0000FFFF
+ ldr r3, [r0, #0x8]
+ ldr r0, _0202ED5C ; =0x00000DA6
+ ldrh r2, [r3, r0]
+ cmp r2, r1
+ bne _0202EC1C
+ strh r4, [r3, r0]
+_0202EC1C:
+ ldr r0, _0202ED50 ; =0x021C59E8
+ ldr r2, [r0, #0x8]
+ ldr r0, _0202ED54 ; =0x00000DAD
+ ldrb r1, [r2, r0]
+ lsl r3, r1, #0x1e
+ lsr r3, r3, #0x1f
+ beq _0202EC3C
+ sub r3, r0, #0x7
+ ldrh r3, [r2, r3]
+ cmp r3, r4
+ bls _0202EC3C
+ mov r3, #0x1
+ bic r1, r3
+ mov r3, #0x1
+ orr r1, r3
+ strb r1, [r2, r0]
+_0202EC3C:
+ bl FUN_0202CBE8
+ cmp r0, #0x19
+ bne _0202EC4A
+ mov r0, #0x0
+ bl FUN_020335D0
+_0202EC4A:
+ cmp r5, #0x9
+ bhi _0202ED4C
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0202EC5A: ; jump table (using 16-bit offset)
+ .short _0202EC6E - _0202EC5A - 2; case 0
+ .short _0202EC8E - _0202EC5A - 2; case 1
+ .short _0202ED4C - _0202EC5A - 2; case 2
+ .short _0202ED4C - _0202EC5A - 2; case 3
+ .short _0202ED4C - _0202EC5A - 2; case 4
+ .short _0202ED4C - _0202EC5A - 2; case 5
+ .short _0202ED4C - _0202EC5A - 2; case 6
+ .short _0202ECD2 - _0202EC5A - 2; case 7
+ .short _0202ECB8 - _0202EC5A - 2; case 8
+ .short _0202ECB8 - _0202EC5A - 2; case 9
+_0202EC6E:
+ ldr r0, _0202ED50 ; =0x021C59E8
+ ldr r2, [r0, #0x8]
+ ldr r0, _0202ED60 ; =0x00000DAA
+ ldrb r1, [r2, r0]
+ cmp r1, #0x1
+ bne _0202EC82
+ bl FUN_0202E7D8
+ add sp, #0x8
+ pop {r3-r5, pc}
+_0202EC82:
+ cmp r1, #0x2
+ bne _0202ED4C
+ mov r1, #0x3
+ strb r1, [r2, r0]
+ add sp, #0x8
+ pop {r3-r5, pc}
+_0202EC8E:
+ ldr r0, _0202ED50 ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202ED60 ; =0x00000DAA
+ ldrb r0, [r1, r0]
+ cmp r0, #0x1
+ bne _0202ECA2
+ bl FUN_0202D178
+ cmp r0, #0x0
+ bne _0202ED4C
+_0202ECA2:
+ ldr r0, _0202ED50 ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202ED60 ; =0x00000DAA
+ ldrb r0, [r1, r0]
+ cmp r0, #0x2
+ bne _0202ED4C
+ bl FUN_0202D178
+ add sp, #0x8
+ cmp r0, #0x0
+ pop {r3-r5, pc}
+_0202ECB8:
+ ldr r0, _0202ED50 ; =0x021C59E8
+ ldr r3, [r0, #0x8]
+ cmp r3, #0x0
+ beq _0202ED4C
+ ldr r1, _0202ED54 ; =0x00000DAD
+ mov r0, #0x1
+ ldrb r2, [r3, r1]
+ add sp, #0x8
+ bic r2, r0
+ mov r0, #0x1
+ orr r0, r2
+ strb r0, [r3, r1]
+ pop {r3-r5, pc}
+_0202ECD2:
+ bl FUN_0202CDA4
+ ldr r3, _0202ED50 ; =0x021C59E8
+ ldr r2, _0202ED64 ; =0x00000DA9
+ ldr r4, [r3, #0x8]
+ ldrb r1, [r4, r2]
+ cmp r1, #0x0
+ bne _0202ECEE
+ sub r1, r2, #0x5
+ strh r0, [r4, r1]
+ ldr r0, [r3, #0x8]
+ mov r1, #0x5
+ strb r1, [r0, r2]
+ b _0202ECF2
+_0202ECEE:
+ sub r0, r1, #0x1
+ strb r0, [r4, r2]
+_0202ECF2:
+ ldr r1, _0202ED50 ; =0x021C59E8
+ ldr r0, _0202ED68 ; =0x00000DA4
+ ldr r2, [r1, #0x8]
+ ldrh r5, [r2, r0]
+ add r0, #0x9
+ ldrb r0, [r2, r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ beq _0202ED0A
+ ldrh r0, [r1, #0x0]
+ add r0, r0, #0x1
+ strh r0, [r1, #0x0]
+_0202ED0A:
+ bl FUN_0202EA9C
+ bl FUN_02033534
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0202D858
+ add r4, r0, #0x0
+ bl FUN_02033534
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0202EEE8
+ str r0, [sp, #0x0]
+ ldr r1, _0202ED50 ; =0x021C59E8
+ ldr r0, _0202ED54 ; =0x00000DAD
+ ldr r2, [r1, #0x8]
+ add r3, r4, #0x0
+ ldrb r0, [r2, r0]
+ add r2, r5, #0x0
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1f
+ str r0, [sp, #0x4]
+ ldrh r1, [r1, #0x0]
+ mov r0, #0x0
+ bl FUN_0202CF84
+ ldr r0, _0202ED50 ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202ED6C ; =0x00000DA8
+ strb r5, [r1, r0]
+_0202ED4C:
+ add sp, #0x8
+ pop {r3-r5, pc}
+ .balign 4
+_0202ED50: .word 0x021C59E8
+_0202ED54: .word 0x00000DAD
+_0202ED58: .word 0x0000FFFF
+_0202ED5C: .word 0x00000DA6
+_0202ED60: .word 0x00000DAA
+_0202ED64: .word 0x00000DA9
+_0202ED68: .word 0x00000DA4
+_0202ED6C: .word 0x00000DA8
+
+ thumb_func_start FUN_0202ED70
+FUN_0202ED70: ; 0x0202ED70
+ push {r3, lr}
+ ldr r1, _0202ED80 ; =0x021C59E8
+ ldr r1, [r1, #0x8]
+ cmp r1, #0x0
+ beq _0202ED7E
+ bl FUN_0202EBD0
+_0202ED7E:
+ pop {r3, pc}
+ .balign 4
+_0202ED80: .word 0x021C59E8
+
+ thumb_func_start FUN_0202ED84
+FUN_0202ED84: ; 0x0202ED84
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _0202EDB4 ; =0x021C59E8
+ ldr r0, [r0, #0x8]
+ cmp r0, #0x0
+ bne _0202ED94
+ mov r0, #0x0
+ pop {r4, pc}
+_0202ED94:
+ bl FUN_0202CBD4
+ cmp r0, #0x4
+ beq _0202EDA0
+ mov r0, #0x0
+ pop {r4, pc}
+_0202EDA0:
+ bl FUN_0202CB8C
+ mov r2, #0x1
+ add r1, r2, #0x0
+ lsl r1, r4
+ tst r0, r1
+ bne _0202EDB0
+ mov r2, #0x0
+_0202EDB0:
+ add r0, r2, #0x0
+ pop {r4, pc}
+ .balign 4
+_0202EDB4: .word 0x021C59E8
+
+ thumb_func_start FUN_0202EDB8
+FUN_0202EDB8: ; 0x0202EDB8
+ push {r3-r5, lr}
+ mov r4, #0x0
+ add r5, r4, #0x0
+_0202EDBE:
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0202ED84
+ cmp r0, #0x0
+ beq _0202EDCC
+ add r4, r4, #0x1
+_0202EDCC:
+ add r5, r5, #0x1
+ cmp r5, #0x8
+ blt _0202EDBE
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202EDD8
+FUN_0202EDD8: ; 0x0202EDD8
+ ldr r0, _0202EDF0 ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ cmp r1, #0x0
+ beq _0202EDEC
+ ldr r0, _0202EDF4 ; =0x00000DAA
+ ldrb r0, [r1, r0]
+ cmp r0, #0x3
+ bne _0202EDEC
+ mov r0, #0x1
+ bx lr
+_0202EDEC:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0202EDF0: .word 0x021C59E8
+_0202EDF4: .word 0x00000DAA
+
+ thumb_func_start FUN_0202EDF8
+FUN_0202EDF8: ; 0x0202EDF8
+ ldr r0, _0202EE08 ; =0x021C59E8
+ ldr r0, [r0, #0x8]
+ cmp r0, #0x0
+ beq _0202EE04
+ mov r0, #0x1
+ bx lr
+_0202EE04:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0202EE08: .word 0x021C59E8
+
+ thumb_func_start FUN_0202EE0C
+FUN_0202EE0C: ; 0x0202EE0C
+ push {r3, lr}
+ ldr r0, _0202EE20 ; =0x021C59E8
+ ldr r0, [r0, #0x8]
+ cmp r0, #0x0
+ beq _0202EE1C
+ bl FUN_0202D1C8
+ pop {r3, pc}
+_0202EE1C:
+ mov r0, #0x1
+ pop {r3, pc}
+ .balign 4
+_0202EE20: .word 0x021C59E8
+
+ thumb_func_start FUN_0202EE24
+FUN_0202EE24: ; 0x0202EE24
+ push {r3, lr}
+ ldr r0, _0202EE3C ; =0x021C59E8
+ ldr r0, [r0, #0x8]
+ cmp r0, #0x0
+ beq _0202EE38
+ bl FUN_0202CB8C
+ ldr r1, _0202EE40 ; =0x0000FFFE
+ and r0, r1
+ pop {r3, pc}
+_0202EE38:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+_0202EE3C: .word 0x021C59E8
+_0202EE40: .word 0x0000FFFE
+
+ thumb_func_start FUN_0202EE44
+FUN_0202EE44: ; 0x0202EE44
+ push {r3, lr}
+ bl FUN_0202EE60
+ cmp r0, #0x0
+ beq _0202EE5A
+ bl FUN_0202CBE8
+ cmp r0, #0x14
+ bne _0202EE5A
+ mov r0, #0x1
+ pop {r3, pc}
+_0202EE5A:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202EE60
+FUN_0202EE60: ; 0x0202EE60
+ ldr r0, _0202EE7C ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ cmp r1, #0x0
+ beq _0202EE76
+ ldr r0, _0202EE80 ; =0x00000DAD
+ ldrb r0, [r1, r0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ beq _0202EE76
+ mov r0, #0x1
+ bx lr
+_0202EE76:
+ mov r0, #0x0
+ bx lr
+ nop
+_0202EE7C: .word 0x021C59E8
+_0202EE80: .word 0x00000DAD
+
+ thumb_func_start FUN_0202EE84
+FUN_0202EE84: ; 0x0202EE84
+ push {r3-r4}
+ ldr r1, _0202EEA8 ; =0x021C59E8
+ ldr r2, [r1, #0x8]
+ cmp r2, #0x0
+ beq _0202EEA2
+ ldr r4, _0202EEAC ; =0x00000DAD
+ lsl r0, r0, #0x18
+ ldrb r1, [r2, r4]
+ lsr r0, r0, #0x18
+ mov r3, #0x4
+ lsl r0, r0, #0x1f
+ bic r1, r3
+ lsr r0, r0, #0x1d
+ orr r0, r1
+ strb r0, [r2, r4]
+_0202EEA2:
+ pop {r3-r4}
+ bx lr
+ nop
+_0202EEA8: .word 0x021C59E8
+_0202EEAC: .word 0x00000DAD
+
+ thumb_func_start FUN_0202EEB0
+FUN_0202EEB0: ; 0x0202EEB0
+ push {r4-r5}
+ ldr r5, _0202EEDC ; =0x021C59E8
+ ldr r2, [r5, #0x8]
+ cmp r2, #0x0
+ beq _0202EED6
+ ldr r4, _0202EEE0 ; =0x00000DAD
+ lsl r0, r0, #0x18
+ ldrb r1, [r2, r4]
+ lsr r0, r0, #0x18
+ mov r3, #0x2
+ lsl r0, r0, #0x1f
+ bic r1, r3
+ lsr r0, r0, #0x1e
+ orr r0, r1
+ strb r0, [r2, r4]
+ ldr r2, _0202EEE4 ; =0x0000FFFF
+ ldr r1, [r5, #0x8]
+ sub r0, r4, #0x7
+ strh r2, [r1, r0]
+_0202EED6:
+ pop {r4-r5}
+ bx lr
+ nop
+_0202EEDC: .word 0x021C59E8
+_0202EEE0: .word 0x00000DAD
+_0202EEE4: .word 0x0000FFFF
+
+ thumb_func_start FUN_0202EEE8
+FUN_0202EEE8: ; 0x0202EEE8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl WM_GetDispersionBeaconPeriod
+ add r4, r0, #0x0
+ cmp r5, #0x1a
+ blo _0202EEFA
+ bl ErrorHandling
+_0202EEFA:
+ cmp r5, #0xa
+ bne _0202EF04
+ lsl r0, r4, #0xe
+ lsr r0, r0, #0x10
+ pop {r3-r5, pc}
+_0202EF04:
+ cmp r5, #0x9
+ beq _0202EF0C
+ cmp r5, #0xd
+ bne _0202EF12
+_0202EF0C:
+ lsl r0, r4, #0xe
+ lsr r0, r0, #0x10
+ pop {r3-r5, pc}
+_0202EF12:
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202EF18
+FUN_0202EF18: ; 0x0202EF18
+ ldr r1, _0202EF3C ; =0x021C59E8
+ ldr r3, [r1, #0x8]
+ cmp r3, #0x0
+ beq _0202EF36
+ lsl r1, r0, #0x1
+ add r2, r3, r1
+ ldr r1, _0202EF40 ; =0x00000C84
+ ldrh r1, [r2, r1]
+ cmp r1, #0x0
+ beq _0202EF36
+ mov r1, #0xc0
+ add r3, #0x54
+ mul r1, r0
+ add r0, r3, r1
+ bx lr
+_0202EF36:
+ mov r0, #0x0
+ bx lr
+ nop
+_0202EF3C: .word 0x021C59E8
+_0202EF40: .word 0x00000C84
+
+ thumb_func_start FUN_0202EF44
+FUN_0202EF44: ; 0x0202EF44
+ ldr r1, _0202EF68 ; =0x021C59E8
+ ldr r3, [r1, #0x8]
+ cmp r3, #0x0
+ beq _0202EF62
+ lsl r1, r0, #0x1
+ add r2, r3, r1
+ ldr r1, _0202EF6C ; =0x00000C84
+ ldrh r1, [r2, r1]
+ cmp r1, #0x0
+ beq _0202EF62
+ mov r1, #0xc0
+ add r3, #0xa4
+ mul r1, r0
+ add r0, r3, r1
+ bx lr
+_0202EF62:
+ mov r0, #0x0
+ bx lr
+ nop
+_0202EF68: .word 0x021C59E8
+_0202EF6C: .word 0x00000C84
+
+ thumb_func_start FUN_0202EF70
+FUN_0202EF70: ; 0x0202EF70
+ ldr r0, _0202EF7C ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ ldr r0, _0202EF80 ; =0x00000CB8
+ ldr r0, [r1, r0]
+ bx lr
+ nop
+_0202EF7C: .word 0x021C59E8
+_0202EF80: .word 0x00000CB8
+
+ thumb_func_start FUN_0202EF84
+FUN_0202EF84: ; 0x0202EF84
+ ldr r1, _0202EFA4 ; =0x021C59E8
+ ldr r3, [r1, #0x8]
+ lsl r1, r0, #0x1
+ add r2, r3, r1
+ ldr r1, _0202EFA8 ; =0x00000C84
+ ldrh r1, [r2, r1]
+ cmp r1, #0x0
+ bne _0202EF98
+ mov r0, #0x0
+ bx lr
+_0202EF98:
+ mov r1, #0xc0
+ add r3, #0xa4
+ mul r1, r0
+ add r0, r3, r1
+ add r0, #0x10
+ bx lr
+ .balign 4
+_0202EFA4: .word 0x021C59E8
+_0202EFA8: .word 0x00000C84
+
+ thumb_func_start FUN_0202EFAC
+FUN_0202EFAC: ; 0x0202EFAC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _0202EFDC ; =0x021C59E8
+ add r4, r1, #0x0
+ ldr r0, [r0, #0x8]
+ cmp r0, #0x0
+ beq _0202EFD8
+ cmp r4, #0x8
+ blt _0202EFC2
+ bl ErrorHandling
+_0202EFC2:
+ ldr r1, _0202EFDC ; =0x021C59E8
+ add r0, r5, #0x0
+ ldr r2, [r1, #0x8]
+ ldr r1, _0202EFE0 ; =0x00000C54
+ add r3, r2, r1
+ mov r2, #0x6
+ add r1, r4, #0x0
+ mul r1, r2
+ add r1, r3, r1
+ bl MI_CpuCopy8
+_0202EFD8:
+ pop {r3-r5, pc}
+ nop
+_0202EFDC: .word 0x021C59E8
+_0202EFE0: .word 0x00000C54
+
+ thumb_func_start FUN_0202EFE4
+FUN_0202EFE4: ; 0x0202EFE4
+ push {r4-r5}
+ ldr r2, _0202F034 ; =0x021C59E8
+ mov r1, #0x0
+ ldr r3, [r2, #0x8]
+ ldr r2, _0202F038 ; =0x00000C54
+ add r2, r3, r2
+ ldrb r3, [r0, #0x0]
+_0202EFF2:
+ ldrb r4, [r2, #0x0]
+ cmp r4, r3
+ bne _0202F026
+ ldrb r5, [r2, #0x1]
+ ldrb r4, [r0, #0x1]
+ cmp r5, r4
+ bne _0202F026
+ ldrb r5, [r2, #0x2]
+ ldrb r4, [r0, #0x2]
+ cmp r5, r4
+ bne _0202F026
+ ldrb r5, [r2, #0x3]
+ ldrb r4, [r0, #0x3]
+ cmp r5, r4
+ bne _0202F026
+ ldrb r5, [r2, #0x4]
+ ldrb r4, [r0, #0x4]
+ cmp r5, r4
+ bne _0202F026
+ ldrb r5, [r2, #0x5]
+ ldrb r4, [r0, #0x5]
+ cmp r5, r4
+ bne _0202F026
+ mov r0, #0x1
+ pop {r4-r5}
+ bx lr
+_0202F026:
+ add r1, r1, #0x1
+ add r2, r2, #0x6
+ cmp r1, #0x8
+ blt _0202EFF2
+ mov r0, #0x0
+ pop {r4-r5}
+ bx lr
+ .balign 4
+_0202F034: .word 0x021C59E8
+_0202F038: .word 0x00000C54
+
+ thumb_func_start FUN_0202F03C
+FUN_0202F03C: ; 0x0202F03C
+ ldr r0, _0202F054 ; =0x021C59E8
+ ldr r1, [r0, #0x8]
+ cmp r1, #0x0
+ beq _0202F04E
+ ldr r0, _0202F058 ; =0x00000DAD
+ ldrb r0, [r1, r0]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1f
+ bx lr
+_0202F04E:
+ mov r0, #0x0
+ bx lr
+ nop
+_0202F054: .word 0x021C59E8
+_0202F058: .word 0x00000DAD
+
+ thumb_func_start FUN_0202F05C
+FUN_0202F05C: ; 0x0202F05C
+ ldr r0, _0202F070 ; =0x021C59E8
+ ldr r3, [r0, #0x8]
+ cmp r3, #0x0
+ beq _0202F06E
+ ldr r1, _0202F074 ; =0x00000DAD
+ mov r0, #0x10
+ ldrb r2, [r3, r1]
+ orr r0, r2
+ strb r0, [r3, r1]
+_0202F06E:
+ bx lr
+ .balign 4
+_0202F070: .word 0x021C59E8
+_0202F074: .word 0x00000DAD
+
+ thumb_func_start FUN_0202F078
+FUN_0202F078: ; 0x0202F078
+ ldr r1, _0202F088 ; =0x021C59E8
+ ldr r3, _0202F08C ; =MI_CpuCopy8
+ ldr r2, [r1, #0x8]
+ ldr r1, _0202F090 ; =0x00000CA8
+ add r1, r2, r1
+ mov r2, #0x8
+ bx r3
+ nop
+_0202F088: .word 0x021C59E8
+_0202F08C: .word MI_CpuCopy8
+_0202F090: .word 0x00000CA8
+
+ thumb_func_start FUN_0202F094
+FUN_0202F094: ; 0x0202F094
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02023AC4
+ ldr r1, _0202F0B0 ; =0x021C59E8
+ add r2, r0, #0x0
+ ldr r3, [r1, #0x8]
+ ldr r1, _0202F0B4 ; =0x00000CBC
+ add r0, r4, #0x0
+ ldr r1, [r3, r1]
+ bl MI_CpuCopy8
+ pop {r4, pc}
+ nop
+_0202F0B0: .word 0x021C59E8
+_0202F0B4: .word 0x00000CBC
+
+ thumb_func_start FUN_0202F0B8
+FUN_0202F0B8: ; 0x0202F0B8
+ push {r4, lr}
+ bl FUN_0202EA9C
+ ldr r3, _0202F0D4 ; =0x021C59E8
+ ldr r2, _0202F0D8 ; =0x00000CC4
+ ldr r4, [r3, #0x8]
+ ldrh r3, [r3, #0x0]
+ add r0, r4, r2
+ sub r2, r2, #0x4
+ ldr r2, [r4, r2]
+ mov r1, #0x5c
+ bl FUN_0202D240
+ pop {r4, pc}
+ .balign 4
+_0202F0D4: .word 0x021C59E8
+_0202F0D8: .word 0x00000CC4
+
+ thumb_func_start FUN_0202F0DC
+FUN_0202F0DC: ; 0x0202F0DC
+ push {r4-r6, lr}
+ mov r5, #0x0
+ add r6, r0, #0x0
+ add r4, r5, #0x0
+_0202F0E4:
+ add r0, r4, #0x0
+ bl FUN_0202EF44
+ cmp r0, #0x0
+ beq _0202F0F8
+ ldrb r1, [r0, #0x4]
+ cmp r1, r6
+ bne _0202F0F8
+ ldrb r0, [r0, #0x6]
+ add r5, r5, r0
+_0202F0F8:
+ add r4, r4, #0x1
+ cmp r4, #0x10
+ blt _0202F0E4
+ add r0, r5, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202F104
+FUN_0202F104: ; 0x0202F104
+ ldr r3, _0202F108 ; =FUN_0202D2D0
+ bx r3
+ .balign 4
+_0202F108: .word FUN_0202D2D0
+
+ thumb_func_start FUN_0202F10C
+FUN_0202F10C: ; 0x0202F10C
+ push {r3, lr}
+ ldr r1, _0202F120 ; =0x021C59E8
+ mov r2, #0x54
+ ldr r1, [r1, #0x8]
+ bl MI_CpuCopy8
+ bl FUN_0202F0B8
+ pop {r3, pc}
+ nop
+_0202F120: .word 0x021C59E8
+
+ thumb_func_start FUN_0202F124
+FUN_0202F124: ; 0x0202F124
+ ldr r1, _0202F148 ; =0x021C59E8
+ ldr r3, [r1, #0x8]
+ cmp r3, #0x0
+ beq _0202F144
+ lsl r1, r0, #0x1
+ add r2, r3, r1
+ ldr r1, _0202F14C ; =0x00000C84
+ ldrh r1, [r2, r1]
+ cmp r1, #0x0
+ beq _0202F144
+ mov r1, #0xc0
+ add r3, #0xa4
+ mul r1, r0
+ add r0, r3, r1
+ add r0, #0x8
+ bx lr
+_0202F144:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0202F148: .word 0x021C59E8
+_0202F14C: .word 0x00000C84
+
+ thumb_func_start FUN_0202F150
+FUN_0202F150: ; 0x0202F150
+ push {r4-r6, lr}
+ add r6, r1, #0x0
+ mov r4, #0x0
+ ldr r1, _0202F2BC ; =0x021C59F4
+ cmp r0, #0x0
+ strb r4, [r1, #0x0]
+ beq _0202F25C
+ bl FUN_02033534
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0202D858
+ add r5, r0, #0x1
+ ldr r0, _0202F2BC ; =0x021C59F4
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ beq _0202F178
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_0202F178:
+ mov r0, #0xf
+ bl FUN_02031480
+ ldr r1, _0202F2C0 ; =0x0000068C
+ mov r0, #0xf
+ bl FUN_02016998
+ ldr r1, _0202F2BC ; =0x021C59F4
+ ldr r2, _0202F2C0 ; =0x0000068C
+ str r0, [r1, #0x4]
+ add r1, r4, #0x0
+ bl MI_CpuFill8
+ ldr r2, _0202F2BC ; =0x021C59F4
+ ldr r1, _0202F2C4 ; =0x00000658
+ ldr r0, [r2, #0x4]
+ add r6, #0x40
+ str r6, [r0, r1]
+ add r0, r1, #0x0
+ ldr r3, [r2, #0x4]
+ add r6, r4, #0x0
+ add r0, #0x25
+ strb r6, [r3, r0]
+ add r0, r1, #0x0
+ ldr r3, [r2, #0x4]
+ mov r6, #0x1b
+ add r0, #0x26
+ strb r6, [r3, r0]
+ ldr r2, [r2, #0x4]
+ mov r0, #0xf
+ ldr r1, [r2, r1]
+ lsl r1, r1, #0x1
+ bl FUN_02016998
+ ldr r2, _0202F2BC ; =0x021C59F4
+ ldr r1, _0202F2C8 ; =0x0000045C
+ ldr r3, [r2, #0x4]
+ str r0, [r3, r1]
+ ldr r2, [r2, #0x4]
+ ldr r1, _0202F2C4 ; =0x00000658
+ mov r0, #0xf
+ ldr r1, [r2, r1]
+ bl FUN_02016998
+ ldr r2, _0202F2BC ; =0x021C59F4
+ mov r1, #0x46
+ ldr r3, [r2, #0x4]
+ lsl r1, r1, #0x4
+ str r0, [r3, r1]
+ ldr r2, [r2, #0x4]
+ ldr r1, _0202F2C4 ; =0x00000658
+ mov r0, #0xf
+ ldr r1, [r2, r1]
+ mul r1, r5
+ bl FUN_02016998
+ ldr r2, _0202F2BC ; =0x021C59F4
+ ldr r1, _0202F2CC ; =0x00000458
+ ldr r3, [r2, #0x4]
+ str r0, [r3, r1]
+ ldr r2, [r2, #0x4]
+ ldr r1, _0202F2C4 ; =0x00000658
+ mov r0, #0xf
+ ldr r1, [r2, r1]
+ mul r1, r5
+ bl FUN_02016998
+ ldr r1, _0202F2BC ; =0x021C59F4
+ ldr r2, [r1, #0x4]
+ ldr r1, _0202F2D0 ; =0x00000454
+ str r0, [r2, r1]
+ bl FUN_02033534
+ cmp r0, #0xa
+ ldr r2, _0202F2D4 ; =0x0000054C
+ bne _0202F236
+ ldr r0, _0202F2BC ; =0x021C59F4
+ mov r1, #0x64
+ ldr r3, [r0, #0x4]
+ add r0, r3, r2
+ sub r2, #0xe8
+ add r2, r3, r2
+ bl FUN_0202D7D8
+ ldr r0, _0202F2BC ; =0x021C59F4
+ mov r1, #0x32
+ ldr r3, [r0, #0x4]
+ ldr r2, _0202F2D8 ; =0x0000056C
+ lsl r1, r1, #0x4
+ add r0, r3, r2
+ sub r2, #0x90
+ add r2, r3, r2
+ bl FUN_0202D7D8
+ b _0202F268
+_0202F236:
+ ldr r0, _0202F2BC ; =0x021C59F4
+ mov r1, #0x14
+ ldr r3, [r0, #0x4]
+ add r0, r3, r2
+ sub r2, #0xe8
+ add r2, r3, r2
+ bl FUN_0202D7D8
+ ldr r0, _0202F2BC ; =0x021C59F4
+ add r1, r6, #0x0
+ ldr r3, [r0, #0x4]
+ ldr r2, _0202F2D8 ; =0x0000056C
+ add r1, #0xfd
+ add r0, r3, r2
+ sub r2, #0x90
+ add r2, r3, r2
+ bl FUN_0202D7D8
+ b _0202F268
+_0202F25C:
+ ldr r0, [r1, #0x4]
+ mov r4, #0x1
+ cmp r0, #0x0
+ bne _0202F268
+ bl ErrorHandling
+_0202F268:
+ ldr r2, _0202F2BC ; =0x021C59F4
+ ldr r1, _0202F2DC ; =0x0000065C
+ ldr r3, [r2, #0x4]
+ mov r0, #0x0
+ strh r0, [r3, r1]
+ mov r5, #0xff
+ add r1, #0x1b
+_0202F276:
+ ldr r3, [r2, #0x4]
+ add r3, r3, r0
+ add r0, r0, #0x1
+ strb r5, [r3, r1]
+ cmp r0, #0x4
+ blt _0202F276
+ cmp r4, #0x0
+ bne _0202F28A
+ bl FUN_0202F2F0
+_0202F28A:
+ ldr r0, _0202F2BC ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202F2E0 ; =0x000005F8
+ add r0, r1, r0
+ bl FUN_020312BC
+ cmp r4, #0x0
+ bne _0202F2AC
+ mov r1, #0x0
+ ldr r0, _0202F2E4 ; =FUN_0202FB20
+ add r2, r1, #0x0
+ bl FUN_0200CA60
+ ldr r1, _0202F2BC ; =0x021C59F4
+ ldr r2, [r1, #0x4]
+ ldr r1, _0202F2E8 ; =0x00000548
+ str r0, [r2, r1]
+_0202F2AC:
+ ldr r0, _0202F2BC ; =0x021C59F4
+ mov r2, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202F2EC ; =0x00000687
+ strb r2, [r1, r0]
+ mov r0, #0x1
+ pop {r4-r6, pc}
+ nop
+_0202F2BC: .word 0x021C59F4
+_0202F2C0: .word 0x0000068C
+_0202F2C4: .word 0x00000658
+_0202F2C8: .word 0x0000045C
+_0202F2CC: .word 0x00000458
+_0202F2D0: .word 0x00000454
+_0202F2D4: .word 0x0000054C
+_0202F2D8: .word 0x0000056C
+_0202F2DC: .word 0x0000065C
+_0202F2E0: .word 0x000005F8
+_0202F2E4: .word FUN_0202FB20
+_0202F2E8: .word 0x00000548
+_0202F2EC: .word 0x00000687
+
+ thumb_func_start FUN_0202F2F0
+FUN_0202F2F0: ; 0x0202F2F0
+ push {r3-r7, lr}
+ ldr r3, _0202F54C ; =0x021C59F4
+ ldr r2, _0202F550 ; =0x0000062C
+ ldr r1, [r3, #0x4]
+ mov r0, #0x0
+ strb r0, [r1, r2]
+ ldr r4, [r3, #0x4]
+ add r1, r2, #0x1
+ strb r0, [r4, r1]
+ add r1, r2, #0x0
+ ldr r4, [r3, #0x4]
+ add r1, #0x53
+ strb r0, [r4, r1]
+ ldr r1, [r3, #0x4]
+ add r2, #0x54
+ strb r0, [r1, r2]
+ bl FUN_02033534
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0202D858
+ add r6, r0, #0x1
+ ldr r0, _0202F54C ; =0x021C59F4
+ ldr r2, _0202F554 ; =0x00000658
+ ldr r3, [r0, #0x4]
+ ldr r0, _0202F558 ; =0x00000458
+ mov r1, #0x0
+ ldr r0, [r3, r0]
+ ldr r3, [r3, r2]
+ add r2, r3, #0x0
+ mul r2, r6
+ bl MI_CpuFill8
+ mov r4, #0x0
+ cmp r6, #0x0
+ ble _0202F360
+ ldr r7, _0202F54C ; =0x021C59F4
+ add r5, r4, #0x0
+_0202F33E:
+ ldr r3, [r7, #0x4]
+ ldr r0, _0202F554 ; =0x00000658
+ ldr r1, _0202F558 ; =0x00000458
+ ldr r2, [r3, r0]
+ ldr r0, _0202F55C ; =0x000004E8
+ add r0, r3, r0
+ ldr r3, [r3, r1]
+ add r1, r4, #0x0
+ mul r1, r2
+ add r0, r0, r5
+ add r1, r3, r1
+ bl FUN_0202D394
+ add r4, r4, #0x1
+ add r5, #0xc
+ cmp r4, r6
+ blt _0202F33E
+_0202F360:
+ ldr r0, _0202F54C ; =0x021C59F4
+ ldr r2, _0202F554 ; =0x00000658
+ ldr r3, [r0, #0x4]
+ ldr r0, _0202F560 ; =0x00000454
+ mov r1, #0x0
+ ldr r0, [r3, r0]
+ ldr r3, [r3, r2]
+ add r2, r3, #0x0
+ mul r2, r6
+ bl MI_CpuFill8
+ mov r5, #0x0
+ cmp r6, #0x0
+ ble _0202F3A2
+ ldr r7, _0202F54C ; =0x021C59F4
+ add r4, r5, #0x0
+_0202F380:
+ ldr r3, [r7, #0x4]
+ ldr r0, _0202F554 ; =0x00000658
+ ldr r1, _0202F560 ; =0x00000454
+ ldr r2, [r3, r0]
+ ldr r0, _0202F564 ; =0x0000047C
+ add r0, r3, r0
+ ldr r3, [r3, r1]
+ add r1, r5, #0x0
+ mul r1, r2
+ add r0, r0, r4
+ add r1, r3, r1
+ bl FUN_0202D394
+ add r5, r5, #0x1
+ add r4, #0xc
+ cmp r5, r6
+ blt _0202F380
+_0202F3A2:
+ ldr r0, _0202F54C ; =0x021C59F4
+ mov r2, #0x6
+ ldr r1, [r0, #0x4]
+ mov r0, #0xb5
+ lsl r0, r0, #0x2
+ add r0, r1, r0
+ mov r1, #0x0
+ lsl r2, r2, #0x6
+ bl MI_CpuFill8
+ ldr r0, _0202F54C ; =0x021C59F4
+ mov r1, #0xb5
+ ldr r2, [r0, #0x4]
+ ldr r0, _0202F568 ; =0x000004DC
+ lsl r1, r1, #0x2
+ add r0, r2, r0
+ add r1, r2, r1
+ mov r2, #0x6
+ lsl r2, r2, #0x6
+ bl FUN_0202D394
+ mov r0, #0xee
+ add r2, r0, #0x0
+ mov r3, #0x85
+ ldr r4, _0202F54C ; =0x021C59F4
+ mov r1, #0x0
+ add r2, #0x66
+ lsl r3, r3, #0x2
+_0202F3DA:
+ ldr r5, [r4, #0x4]
+ add r5, r5, r1
+ strb r0, [r5, r2]
+ ldr r5, [r4, #0x4]
+ add r5, r5, r1
+ add r1, r1, #0x1
+ strb r0, [r5, r3]
+ cmp r1, #0xc0
+ blt _0202F3DA
+ ldr r0, _0202F54C ; =0x021C59F4
+ mov r2, #0x42
+ ldr r0, [r0, #0x4]
+ mov r1, #0x0
+ add r0, #0x4c
+ lsl r2, r2, #0x2
+ bl MI_CpuFill8
+ ldr r0, _0202F54C ; =0x021C59F4
+ mov r2, #0x42
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202F56C ; =0x00000464
+ lsl r2, r2, #0x2
+ add r0, r1, r0
+ add r1, #0x4c
+ bl FUN_0202D394
+ ldr r1, _0202F54C ; =0x021C59F4
+ mov r2, #0xff
+ ldr r0, [r1, #0x4]
+ mov r3, #0x1
+ strb r2, [r0, #0x0]
+ ldr r0, [r1, #0x4]
+ add r0, #0x26
+ strb r2, [r0, #0x0]
+ mov r2, #0xee
+_0202F420:
+ ldr r0, [r1, #0x4]
+ strb r2, [r0, r3]
+ ldr r0, [r1, #0x4]
+ add r0, r0, r3
+ add r0, #0x26
+ add r3, r3, #0x1
+ strb r2, [r0, #0x0]
+ cmp r3, #0x26
+ blt _0202F420
+ ldr r0, _0202F54C ; =0x021C59F4
+ ldr r2, _0202F554 ; =0x00000658
+ ldr r3, [r0, #0x4]
+ ldr r0, _0202F570 ; =0x0000045C
+ ldr r2, [r3, r2]
+ ldr r0, [r3, r0]
+ mov r1, #0x0
+ lsl r2, r2, #0x1
+ bl MI_CpuFill8
+ ldr r0, _0202F54C ; =0x021C59F4
+ mov r1, #0x47
+ ldr r3, [r0, #0x4]
+ ldr r2, _0202F554 ; =0x00000658
+ lsl r1, r1, #0x4
+ add r0, r3, r1
+ sub r1, #0x14
+ ldr r2, [r3, r2]
+ ldr r1, [r3, r1]
+ lsl r2, r2, #0x1
+ bl FUN_0202D394
+ mov r2, #0x0
+ ldr r0, _0202F54C ; =0x021C59F4
+ ldr r1, _0202F574 ; =0x00000684
+ ldr r3, [r0, #0x4]
+ mov r12, r2
+ strb r2, [r3, r1]
+ ldr r3, [r0, #0x4]
+ add r1, r1, #0x1
+ strb r2, [r3, r1]
+ add r1, r2, #0x0
+ add r7, r2, #0x0
+ add r6, r2, #0x0
+_0202F476:
+ ldr r3, [r0, #0x4]
+ add r4, r3, r2
+ ldr r3, _0202F578 ; =0x0000065F
+ strb r6, [r4, r3]
+ ldr r3, [r0, #0x4]
+ ldr r4, _0202F57C ; =0x00000667
+ add r5, r3, r2
+ mov r3, #0x1
+ strb r3, [r5, r4]
+ ldr r3, [r0, #0x4]
+ add r4, #0x8
+ add r5, r3, r2
+ mov r3, #0x1
+ strb r3, [r5, r4]
+ ldr r4, [r0, #0x4]
+ mov r3, r12
+ add r4, r4, r3
+ mov r3, #0x61
+ lsl r3, r3, #0x4
+ strh r6, [r4, r3]
+ ldr r3, [r0, #0x4]
+ mov r4, #0xee
+ add r5, r3, r1
+ ldr r3, _0202F580 ; =0x00000596
+ add r2, r2, #0x1
+ strb r4, [r5, r3]
+ ldr r3, [r0, #0x4]
+ ldr r4, _0202F584 ; =0x0000FFFF
+ add r5, r3, r1
+ ldr r3, _0202F588 ; =0x00000594
+ strh r4, [r5, r3]
+ ldr r3, [r0, #0x4]
+ add r4, r3, r1
+ mov r3, #0x59
+ lsl r3, r3, #0x4
+ str r6, [r4, r3]
+ ldr r3, [r0, #0x4]
+ add r4, r3, r1
+ ldr r3, _0202F58C ; =0x0000058C
+ add r1, #0xc
+ str r6, [r4, r3]
+ ldr r3, [r0, #0x4]
+ add r4, r3, r7
+ ldr r3, _0202F590 ; =0x00000638
+ add r7, r7, #0x4
+ str r6, [r4, r3]
+ mov r3, r12
+ add r3, r3, #0x2
+ mov r12, r3
+ cmp r2, #0x8
+ blt _0202F476
+ ldr r1, _0202F54C ; =0x021C59F4
+ ldr r0, _0202F594 ; =0x00000634
+ ldr r2, [r1, #0x4]
+ sub r3, r0, #0x4
+ str r6, [r2, r0]
+ ldr r4, [r1, #0x4]
+ mov r2, #0x1
+ str r2, [r4, r3]
+ add r3, r0, #0x0
+ ldr r4, [r1, #0x4]
+ sub r3, #0x3e
+ mov r2, #0xee
+ strb r2, [r4, r3]
+ add r3, r0, #0x0
+ ldr r4, [r1, #0x4]
+ ldr r2, _0202F584 ; =0x0000FFFF
+ sub r3, #0x40
+ strh r2, [r4, r3]
+ add r2, r0, #0x0
+ ldr r3, [r1, #0x4]
+ sub r2, #0x44
+ str r6, [r3, r2]
+ add r2, r0, #0x0
+ ldr r3, [r1, #0x4]
+ sub r2, #0x48
+ str r6, [r3, r2]
+ add r3, r0, #0x0
+ ldr r4, [r1, #0x4]
+ add r3, #0x4e
+ mov r2, #0x1
+ strb r2, [r4, r3]
+ add r3, r0, #0x0
+ ldr r4, [r1, #0x4]
+ add r3, #0x4f
+ strb r2, [r4, r3]
+ ldr r2, _0202F598 ; =0x02105D58
+ mov r3, #0x4
+ strb r3, [r2, #0x1]
+ strb r3, [r2, #0x0]
+ ldr r1, [r1, #0x4]
+ sub r0, #0xe8
+ add r0, r1, r0
+ bl FUN_0202D804
+ ldr r0, _0202F54C ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202F59C ; =0x0000056C
+ add r0, r1, r0
+ bl FUN_0202D804
+ ldr r0, _0202F54C ; =0x021C59F4
+ mov r2, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202F5A0 ; =0x00000688
+ strb r2, [r1, r0]
+ pop {r3-r7, pc}
+ .balign 4
+_0202F54C: .word 0x021C59F4
+_0202F550: .word 0x0000062C
+_0202F554: .word 0x00000658
+_0202F558: .word 0x00000458
+_0202F55C: .word 0x000004E8
+_0202F560: .word 0x00000454
+_0202F564: .word 0x0000047C
+_0202F568: .word 0x000004DC
+_0202F56C: .word 0x00000464
+_0202F570: .word 0x0000045C
+_0202F574: .word 0x00000684
+_0202F578: .word 0x0000065F
+_0202F57C: .word 0x00000667
+_0202F580: .word 0x00000596
+_0202F584: .word 0x0000FFFF
+_0202F588: .word 0x00000594
+_0202F58C: .word 0x0000058C
+_0202F590: .word 0x00000638
+_0202F594: .word 0x00000634
+_0202F598: .word 0x02105D58
+_0202F59C: .word 0x0000056C
+_0202F5A0: .word 0x00000688
+
+ thumb_func_start FUN_0202F5A4
+FUN_0202F5A4: ; 0x0202F5A4
+ push {r3-r7, lr}
+ ldr r1, _0202F7D4 ; =0x021C59F4
+ ldr r0, _0202F7D8 ; =0x0000062C
+ ldr r2, [r1, #0x4]
+ mov r3, #0x0
+ strb r3, [r2, r0]
+ ldr r1, [r1, #0x4]
+ add r0, r0, #0x1
+ strb r3, [r1, r0]
+ bl FUN_02033534
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0202D858
+ add r6, r0, #0x1
+ ldr r0, _0202F7D4 ; =0x021C59F4
+ ldr r2, _0202F7DC ; =0x00000658
+ ldr r3, [r0, #0x4]
+ ldr r0, _0202F7E0 ; =0x00000458
+ mov r1, #0x0
+ ldr r0, [r3, r0]
+ ldr r3, [r3, r2]
+ add r2, r3, #0x0
+ mul r2, r6
+ bl MI_CpuFill8
+ mov r4, #0x0
+ cmp r6, #0x0
+ ble _0202F606
+ ldr r7, _0202F7D4 ; =0x021C59F4
+ add r5, r4, #0x0
+_0202F5E4:
+ ldr r3, [r7, #0x4]
+ ldr r0, _0202F7DC ; =0x00000658
+ ldr r1, _0202F7E0 ; =0x00000458
+ ldr r2, [r3, r0]
+ ldr r0, _0202F7E4 ; =0x000004E8
+ add r0, r3, r0
+ ldr r3, [r3, r1]
+ add r1, r4, #0x0
+ mul r1, r2
+ add r0, r0, r5
+ add r1, r3, r1
+ bl FUN_0202D394
+ add r4, r4, #0x1
+ add r5, #0xc
+ cmp r4, r6
+ blt _0202F5E4
+_0202F606:
+ ldr r0, _0202F7D4 ; =0x021C59F4
+ ldr r2, _0202F7DC ; =0x00000658
+ ldr r3, [r0, #0x4]
+ ldr r0, _0202F7E8 ; =0x00000454
+ mov r1, #0x0
+ ldr r0, [r3, r0]
+ ldr r3, [r3, r2]
+ add r2, r3, #0x0
+ mul r2, r6
+ bl MI_CpuFill8
+ mov r5, #0x0
+ cmp r6, #0x0
+ ble _0202F648
+ ldr r7, _0202F7D4 ; =0x021C59F4
+ add r4, r5, #0x0
+_0202F626:
+ ldr r3, [r7, #0x4]
+ ldr r0, _0202F7DC ; =0x00000658
+ ldr r1, _0202F7E8 ; =0x00000454
+ ldr r2, [r3, r0]
+ ldr r0, _0202F7EC ; =0x0000047C
+ add r0, r3, r0
+ ldr r3, [r3, r1]
+ add r1, r5, #0x0
+ mul r1, r2
+ add r0, r0, r4
+ add r1, r3, r1
+ bl FUN_0202D394
+ add r5, r5, #0x1
+ add r4, #0xc
+ cmp r5, r6
+ blt _0202F626
+_0202F648:
+ ldr r0, _0202F7D4 ; =0x021C59F4
+ mov r2, #0x6
+ ldr r1, [r0, #0x4]
+ mov r0, #0xb5
+ lsl r0, r0, #0x2
+ add r0, r1, r0
+ mov r1, #0x0
+ lsl r2, r2, #0x6
+ bl MI_CpuFill8
+ ldr r0, _0202F7D4 ; =0x021C59F4
+ mov r1, #0xb5
+ ldr r2, [r0, #0x4]
+ ldr r0, _0202F7F0 ; =0x000004DC
+ lsl r1, r1, #0x2
+ add r0, r2, r0
+ add r1, r2, r1
+ mov r2, #0x6
+ lsl r2, r2, #0x6
+ bl FUN_0202D394
+ mov r0, #0xee
+ add r2, r0, #0x0
+ mov r3, #0x85
+ ldr r4, _0202F7D4 ; =0x021C59F4
+ mov r1, #0x0
+ add r2, #0x66
+ lsl r3, r3, #0x2
+_0202F680:
+ ldr r5, [r4, #0x4]
+ add r5, r5, r1
+ strb r0, [r5, r2]
+ ldr r5, [r4, #0x4]
+ add r5, r5, r1
+ add r1, r1, #0x1
+ strb r0, [r5, r3]
+ cmp r1, #0xc0
+ blt _0202F680
+ ldr r0, _0202F7D4 ; =0x021C59F4
+ mov r2, #0x42
+ ldr r0, [r0, #0x4]
+ mov r1, #0x0
+ add r0, #0x4c
+ lsl r2, r2, #0x2
+ bl MI_CpuFill8
+ ldr r0, _0202F7D4 ; =0x021C59F4
+ mov r2, #0x42
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202F7F4 ; =0x00000464
+ lsl r2, r2, #0x2
+ add r0, r1, r0
+ add r1, #0x4c
+ bl FUN_0202D394
+ ldr r1, _0202F7D4 ; =0x021C59F4
+ mov r2, #0xff
+ ldr r0, [r1, #0x4]
+ mov r3, #0x1
+ strb r2, [r0, #0x0]
+ ldr r0, [r1, #0x4]
+ add r0, #0x26
+ strb r2, [r0, #0x0]
+ mov r2, #0xee
+_0202F6C6:
+ ldr r0, [r1, #0x4]
+ strb r2, [r0, r3]
+ ldr r0, [r1, #0x4]
+ add r0, r0, r3
+ add r0, #0x26
+ add r3, r3, #0x1
+ strb r2, [r0, #0x0]
+ cmp r3, #0x26
+ blt _0202F6C6
+ ldr r0, _0202F7D4 ; =0x021C59F4
+ ldr r2, _0202F7DC ; =0x00000658
+ ldr r3, [r0, #0x4]
+ ldr r0, _0202F7F8 ; =0x0000045C
+ ldr r2, [r3, r2]
+ ldr r0, [r3, r0]
+ mov r1, #0x0
+ lsl r2, r2, #0x1
+ bl MI_CpuFill8
+ ldr r0, _0202F7D4 ; =0x021C59F4
+ mov r1, #0x47
+ ldr r3, [r0, #0x4]
+ ldr r2, _0202F7DC ; =0x00000658
+ lsl r1, r1, #0x4
+ add r0, r3, r1
+ sub r1, #0x14
+ ldr r2, [r3, r2]
+ ldr r1, [r3, r1]
+ lsl r2, r2, #0x1
+ bl FUN_0202D394
+ ldr r0, _0202F7D4 ; =0x021C59F4
+ mov r3, #0x0
+ ldr r2, [r0, #0x4]
+ ldr r1, _0202F7FC ; =0x00000684
+ add r7, r3, #0x0
+ strb r3, [r2, r1]
+ ldr r2, [r0, #0x4]
+ add r1, r1, #0x1
+ strb r3, [r2, r1]
+ add r1, r3, #0x0
+ add r2, r3, #0x0
+_0202F71A:
+ ldr r4, [r0, #0x4]
+ add r5, r4, r3
+ ldr r4, _0202F800 ; =0x0000065F
+ strb r7, [r5, r4]
+ ldr r4, [r0, #0x4]
+ ldr r5, _0202F804 ; =0x00000667
+ add r6, r4, r3
+ mov r4, #0x1
+ strb r4, [r6, r5]
+ ldr r4, [r0, #0x4]
+ add r5, #0x8
+ add r6, r4, r3
+ mov r4, #0x1
+ strb r4, [r6, r5]
+ ldr r4, [r0, #0x4]
+ add r3, r3, #0x1
+ add r5, r4, r1
+ mov r4, #0x61
+ lsl r4, r4, #0x4
+ strh r7, [r5, r4]
+ ldr r4, [r0, #0x4]
+ ldr r5, _0202F808 ; =0x00000596
+ add r6, r4, r2
+ mov r4, #0xee
+ strb r4, [r6, r5]
+ ldr r4, [r0, #0x4]
+ ldr r5, _0202F80C ; =0x0000FFFF
+ add r6, r4, r2
+ ldr r4, _0202F810 ; =0x00000594
+ add r1, r1, #0x2
+ strh r5, [r6, r4]
+ ldr r4, [r0, #0x4]
+ add r5, r4, r2
+ mov r4, #0x59
+ lsl r4, r4, #0x4
+ str r7, [r5, r4]
+ ldr r4, [r0, #0x4]
+ add r5, r4, r2
+ ldr r4, _0202F814 ; =0x0000058C
+ add r2, #0xc
+ str r7, [r5, r4]
+ cmp r3, #0x8
+ blt _0202F71A
+ ldr r1, _0202F7D4 ; =0x021C59F4
+ add r0, r4, #0x0
+ ldr r3, [r1, #0x4]
+ add r0, #0xa4
+ mov r2, #0x1
+ str r2, [r3, r0]
+ add r3, r0, #0x0
+ ldr r4, [r1, #0x4]
+ sub r3, #0x3a
+ mov r2, #0xee
+ strb r2, [r4, r3]
+ add r3, r0, #0x0
+ ldr r4, [r1, #0x4]
+ ldr r2, _0202F80C ; =0x0000FFFF
+ sub r3, #0x3c
+ strh r2, [r4, r3]
+ add r2, r0, #0x0
+ ldr r3, [r1, #0x4]
+ sub r2, #0x40
+ str r7, [r3, r2]
+ add r2, r0, #0x0
+ ldr r3, [r1, #0x4]
+ sub r2, #0x44
+ str r7, [r3, r2]
+ add r3, r0, #0x0
+ ldr r4, [r1, #0x4]
+ add r3, #0x52
+ mov r2, #0x1
+ strb r2, [r4, r3]
+ add r3, r0, #0x0
+ ldr r4, [r1, #0x4]
+ add r3, #0x53
+ strb r2, [r4, r3]
+ ldr r1, [r1, #0x4]
+ sub r0, #0xe4
+ add r0, r1, r0
+ bl FUN_0202D804
+ ldr r0, _0202F7D4 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202F818 ; =0x0000056C
+ add r0, r1, r0
+ bl FUN_0202D804
+ ldr r0, _0202F7D4 ; =0x021C59F4
+ mov r2, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202F81C ; =0x00000688
+ strb r2, [r1, r0]
+ pop {r3-r7, pc}
+ .balign 4
+_0202F7D4: .word 0x021C59F4
+_0202F7D8: .word 0x0000062C
+_0202F7DC: .word 0x00000658
+_0202F7E0: .word 0x00000458
+_0202F7E4: .word 0x000004E8
+_0202F7E8: .word 0x00000454
+_0202F7EC: .word 0x0000047C
+_0202F7F0: .word 0x000004DC
+_0202F7F4: .word 0x00000464
+_0202F7F8: .word 0x0000045C
+_0202F7FC: .word 0x00000684
+_0202F800: .word 0x0000065F
+_0202F804: .word 0x00000667
+_0202F808: .word 0x00000596
+_0202F80C: .word 0x0000FFFF
+_0202F810: .word 0x00000594
+_0202F814: .word 0x0000058C
+_0202F818: .word 0x0000056C
+_0202F81C: .word 0x00000688
+
+ thumb_func_start FUN_0202F820
+FUN_0202F820: ; 0x0202F820
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, _0202F8B8 ; =0x021C59F4
+ ldr r3, _0202F8BC ; =0x0000065F
+ ldr r1, [r0, #0x4]
+ mov r2, #0x0
+ add r1, r1, r5
+ strb r2, [r1, r3]
+ ldr r4, [r0, #0x4]
+ mov r1, #0x1
+ add r6, r4, r5
+ add r4, r3, #0x0
+ add r4, #0x8
+ strb r1, [r6, r4]
+ ldr r6, [r0, #0x4]
+ lsl r4, r5, #0x2
+ add r6, r6, r4
+ add r4, r3, #0x0
+ sub r4, #0x27
+ str r2, [r6, r4]
+ ldr r2, [r0, #0x4]
+ add r4, r2, r5
+ add r2, r3, #0x0
+ add r2, #0x10
+ strb r1, [r4, r2]
+ ldr r1, [r0, #0x4]
+ sub r0, r3, #0x7
+ ldr r2, [r1, r0]
+ ldr r3, _0202F8C0 ; =0x0000047C
+ mov r0, #0xc
+ add r4, r5, #0x0
+ mul r4, r0
+ add r0, r1, r3
+ sub r3, #0x28
+ ldr r3, [r1, r3]
+ add r1, r5, #0x0
+ mul r1, r2
+ add r0, r0, r4
+ add r1, r3, r1
+ bl FUN_0202D394
+ ldr r0, _0202F8B8 ; =0x021C59F4
+ ldr r3, _0202F8C4 ; =0x000004E8
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202F8C8 ; =0x00000658
+ ldr r2, [r1, r0]
+ add r0, r1, r3
+ sub r3, #0x90
+ ldr r3, [r1, r3]
+ add r1, r5, #0x0
+ mul r1, r2
+ add r0, r0, r4
+ add r1, r3, r1
+ bl FUN_0202D394
+ ldr r3, _0202F8B8 ; =0x021C59F4
+ ldr r2, _0202F8CC ; =0x00000596
+ ldr r0, [r3, #0x4]
+ mov r1, #0xee
+ add r0, r0, r4
+ strb r1, [r0, r2]
+ ldr r0, [r3, #0x4]
+ ldr r5, _0202F8D0 ; =0x0000FFFF
+ add r1, r0, r4
+ sub r0, r2, #0x2
+ strh r5, [r1, r0]
+ ldr r1, [r3, #0x4]
+ mov r0, #0x0
+ add r5, r1, r4
+ sub r1, r2, #0x6
+ str r0, [r5, r1]
+ ldr r1, [r3, #0x4]
+ sub r2, #0xa
+ add r1, r1, r4
+ str r0, [r1, r2]
+ pop {r4-r6, pc}
+ .balign 4
+_0202F8B8: .word 0x021C59F4
+_0202F8BC: .word 0x0000065F
+_0202F8C0: .word 0x0000047C
+_0202F8C4: .word 0x000004E8
+_0202F8C8: .word 0x00000658
+_0202F8CC: .word 0x00000596
+_0202F8D0: .word 0x0000FFFF
+
+ thumb_func_start FUN_0202F8D4
+FUN_0202F8D4: ; 0x0202F8D4
+ push {r4-r6, lr}
+ ldr r4, _0202F908 ; =0x021C59F4
+ ldr r6, _0202F90C ; =0x00000667
+ mov r5, #0x1
+_0202F8DC:
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ bne _0202F900
+ ldr r0, [r4, #0x4]
+ add r0, r0, r5
+ ldrb r0, [r0, r6]
+ cmp r0, #0x0
+ bne _0202F900
+ bl FUN_02031280
+ cmp r0, #0x0
+ bne _0202F900
+ add r0, r5, #0x0
+ bl FUN_0202F820
+_0202F900:
+ add r5, r5, #0x1
+ cmp r5, #0x8
+ blt _0202F8DC
+ pop {r4-r6, pc}
+ .balign 4
+_0202F908: .word 0x021C59F4
+_0202F90C: .word 0x00000667
+
+ thumb_func_start FUN_0202F910
+FUN_0202F910: ; 0x0202F910
+ ldr r3, _0202F914 ; =FUN_0202F820
+ bx r3
+ .balign 4
+_0202F914: .word FUN_0202F820
+
+ thumb_func_start FUN_0202F918
+FUN_0202F918: ; 0x0202F918
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ str r3, [sp, #0x0]
+ mov r4, #0x1
+ bl FUN_02033534
+ cmp r0, #0x13
+ bge _0202F93E
+ ldr r2, [sp, #0x0]
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_0202E5F8
+ add r4, r0, #0x0
+ ldr r0, _0202F94C ; =FUN_0202F910
+ bl FUN_0202D330
+_0202F93E:
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ bl FUN_0202F150
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ nop
+_0202F94C: .word FUN_0202F910
+
+ thumb_func_start FUN_0202F950
+FUN_0202F950: ; 0x0202F950
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r7, r2, #0x0
+ mov r4, #0x1
+ bl FUN_02033534
+ cmp r0, #0x13
+ bge _0202F96C
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_0202E66C
+ add r4, r0, #0x0
+_0202F96C:
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ bl FUN_0202F150
+ ldr r0, _0202F980 ; =0x02105D58
+ mov r1, #0x4
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ nop
+_0202F980: .word 0x02105D58
+
+ thumb_func_start FUN_0202F984
+FUN_0202F984: ; 0x0202F984
+ push {r4, lr}
+ mov r4, #0x0
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _0202F99A
+ ldr r0, _0202F9D4 ; =0x02105D58
+ ldrb r0, [r0, #0x1]
+ cmp r0, #0x4
+ beq _0202F9A2
+ pop {r4, pc}
+_0202F99A:
+ ldr r0, _0202F9D4 ; =0x02105D58
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x4
+ bne _0202F9D0
+_0202F9A2:
+ ldr r0, _0202F9D8 ; =0x021C59F4
+ ldr r2, [r0, #0x4]
+ ldr r0, _0202F9DC ; =0x0000067D
+ ldrb r1, [r2, r0]
+ cmp r1, #0x2
+ bne _0202F9B4
+ mov r1, #0x0
+ strb r1, [r2, r0]
+ mov r4, #0x1
+_0202F9B4:
+ ldr r0, _0202F9D8 ; =0x021C59F4
+ ldr r2, [r0, #0x4]
+ ldr r0, _0202F9DC ; =0x0000067D
+ ldrb r1, [r2, r0]
+ cmp r1, #0x3
+ bne _0202F9C4
+ mov r4, #0x1
+ strb r4, [r2, r0]
+_0202F9C4:
+ cmp r4, #0x0
+ beq _0202F9CC
+ bl FUN_0202F5A4
+_0202F9CC:
+ bl FUN_02031088
+_0202F9D0:
+ pop {r4, pc}
+ nop
+_0202F9D4: .word 0x02105D58
+_0202F9D8: .word 0x021C59F4
+_0202F9DC: .word 0x0000067D
+
+ thumb_func_start FUN_0202F9E0
+FUN_0202F9E0: ; 0x0202F9E0
+ ldr r1, _0202FA08 ; =0x021C59F4
+ ldr r3, [r1, #0x4]
+ ldr r1, _0202FA0C ; =0x0000067D
+ ldrb r2, [r3, r1]
+ cmp r2, #0x0
+ bne _0202F9F6
+ cmp r0, #0x1
+ bne _0202F9F6
+ mov r0, #0x3
+ strb r0, [r3, r1]
+ bx lr
+_0202F9F6:
+ cmp r2, #0x1
+ bne _0202FA04
+ cmp r0, #0x0
+ bne _0202FA04
+ ldr r0, _0202FA0C ; =0x0000067D
+ mov r1, #0x2
+ strb r1, [r3, r0]
+_0202FA04:
+ bx lr
+ nop
+_0202FA08: .word 0x021C59F4
+_0202FA0C: .word 0x0000067D
+
+ thumb_func_start FUN_0202FA10
+FUN_0202FA10: ; 0x0202FA10
+ ldr r3, _0202FA18 ; =FUN_0202F9E0
+ mov r0, #0x1
+ bx r3
+ nop
+_0202FA18: .word FUN_0202F9E0
+
+ thumb_func_start FUN_0202FA1C
+FUN_0202FA1C: ; 0x0202FA1C
+ ldr r3, _0202FA24 ; =FUN_0202F9E0
+ mov r0, #0x0
+ bx r3
+ nop
+_0202FA24: .word FUN_0202F9E0
+
+ thumb_func_start FUN_0202FA28
+FUN_0202FA28: ; 0x0202FA28
+ ldr r0, _0202FA40 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202FA44 ; =0x0000067D
+ ldrb r0, [r1, r0]
+ cmp r0, #0x2
+ bne _0202FA38
+ mov r0, #0x1
+ bx lr
+_0202FA38:
+ cmp r0, #0x3
+ bne _0202FA3E
+ mov r0, #0x0
+_0202FA3E:
+ bx lr
+ .balign 4
+_0202FA40: .word 0x021C59F4
+_0202FA44: .word 0x0000067D
+
+ thumb_func_start FUN_0202FA48
+FUN_0202FA48: ; 0x0202FA48
+ push {r3, lr}
+ bl FUN_0202FA28
+ cmp r0, #0x1
+ bne _0202FA56
+ mov r0, #0x1
+ pop {r3, pc}
+_0202FA56:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202FA5C
+FUN_0202FA5C: ; 0x0202FA5C
+ push {r4, lr}
+ ldr r0, _0202FB00 ; =0x021C59F4
+ mov r4, #0x0
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ beq _0202FA82
+ bl FUN_02033534
+ cmp r0, #0x13
+ blt _0202FA78
+ bl MOD04_021D83C0
+ mov r4, #0x1
+ b _0202FA82
+_0202FA78:
+ bl FUN_0202E784
+ cmp r0, #0x0
+ beq _0202FA82
+ mov r4, #0x1
+_0202FA82:
+ cmp r4, #0x0
+ beq _0202FAFE
+ bl FUN_020314D0
+ bl FUN_0202DBA4
+ ldr r0, _0202FB00 ; =0x021C59F4
+ mov r1, #0x0
+ strb r1, [r0, #0x0]
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202FB04 ; =0x00000548
+ ldr r0, [r1, r0]
+ bl FUN_0200CAB4
+ ldr r1, _0202FB00 ; =0x021C59F4
+ ldr r0, _0202FB04 ; =0x00000548
+ ldr r2, [r1, #0x4]
+ mov r3, #0x0
+ str r3, [r2, r0]
+ ldr r1, [r1, #0x4]
+ sub r0, #0xec
+ ldr r0, [r1, r0]
+ bl FUN_02016A18
+ ldr r0, _0202FB00 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ mov r0, #0x46
+ lsl r0, r0, #0x4
+ ldr r0, [r1, r0]
+ bl FUN_02016A18
+ ldr r0, _0202FB00 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202FB08 ; =0x00000458
+ ldr r0, [r1, r0]
+ bl FUN_02016A18
+ ldr r0, _0202FB00 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202FB0C ; =0x00000454
+ ldr r0, [r1, r0]
+ bl FUN_02016A18
+ ldr r0, _0202FB00 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202FB10 ; =0x0000056C
+ add r0, r1, r0
+ bl FUN_0202D824
+ ldr r0, _0202FB00 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202FB14 ; =0x0000054C
+ add r0, r1, r0
+ bl FUN_0202D824
+ ldr r0, _0202FB00 ; =0x021C59F4
+ ldr r0, [r0, #0x4]
+ bl FUN_02016A18
+ ldr r0, _0202FB00 ; =0x021C59F4
+ mov r1, #0x0
+ str r1, [r0, #0x4]
+_0202FAFE:
+ pop {r4, pc}
+ .balign 4
+_0202FB00: .word 0x021C59F4
+_0202FB04: .word 0x00000548
+_0202FB08: .word 0x00000458
+_0202FB0C: .word 0x00000454
+_0202FB10: .word 0x0000056C
+_0202FB14: .word 0x0000054C
+
+ thumb_func_start FUN_0202FB18
+FUN_0202FB18: ; 0x0202FB18
+ ldr r3, _0202FB1C ; =FUN_0202E9E8
+ bx r3
+ .balign 4
+_0202FB1C: .word FUN_0202E9E8
+
+ thumb_func_start FUN_0202FB20
+FUN_0202FB20: ; 0x0202FB20
+ push {r3, lr}
+ ldr r0, _0202FB54 ; =0x021C59F4
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0202FB52
+ bl FUN_0203050C
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _0202FB40
+ mov r0, #0x0
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ bne _0202FB48
+_0202FB40:
+ bl FUN_02031280
+ cmp r0, #0x0
+ beq _0202FB4C
+_0202FB48:
+ bl FUN_0202FEEC
+_0202FB4C:
+ ldr r0, _0202FB54 ; =0x021C59F4
+ mov r1, #0x0
+ strb r1, [r0, #0x0]
+_0202FB52:
+ pop {r3, pc}
+ .balign 4
+_0202FB54: .word 0x021C59F4
+
+ thumb_func_start FUN_0202FB58
+FUN_0202FB58: ; 0x0202FB58
+ push {r3, lr}
+ bl FUN_0202F03C
+ cmp r0, #0x0
+ beq _0202FB7C
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _0202FB78
+ bl FUN_0202EE24
+ cmp r0, #0x0
+ bne _0202FB7C
+ bl FUN_0202FA5C
+ pop {r3, pc}
+_0202FB78:
+ bl FUN_0202FA5C
+_0202FB7C:
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0202FB80
+FUN_0202FB80: ; 0x0202FB80
+ push {r4, lr}
+ bl FUN_02031CDC
+ ldr r1, _0202FC48 ; =0x021C59F4
+ ldr r2, [r1, #0x4]
+ cmp r2, #0x0
+ beq _0202FC34
+ ldr r0, _0202FC4C ; =0x0000068A
+ ldrb r0, [r2, r0]
+ cmp r0, #0x0
+ bne _0202FC16
+ mov r0, #0x0
+ strb r0, [r1, #0x0]
+ bl FUN_0202F984
+ ldr r0, _0202FC48 ; =0x021C59F4
+ ldr r1, _0202FC50 ; =0x021C48B8
+ ldr r0, [r0, #0x4]
+ ldr r2, _0202FC54 ; =0x00000628
+ ldr r3, [r1, #0x44]
+ ldr r1, _0202FC58 ; =0x00007FFF
+ ldrh r4, [r0, r2]
+ and r1, r3
+ orr r1, r4
+ strh r1, [r0, r2]
+ bl FUN_02030674
+ bl FUN_0202FCCC
+ ldr r0, _0202FC48 ; =0x021C59F4
+ ldr r1, _0202FC54 ; =0x00000628
+ ldr r3, [r0, #0x4]
+ mov r0, #0x2
+ ldrh r2, [r3, r1]
+ lsl r0, r0, #0xe
+ and r0, r2
+ strh r0, [r3, r1]
+ bl FUN_0202FA28
+ cmp r0, #0x0
+ bne _0202FBD6
+ bl FUN_02030DA4
+_0202FBD6:
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _0202FBE8
+ mov r0, #0x0
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ bne _0202FBF0
+_0202FBE8:
+ bl FUN_02031280
+ cmp r0, #0x0
+ beq _0202FBF4
+_0202FBF0:
+ bl FUN_02030074
+_0202FBF4:
+ bl FUN_02031190
+ cmp r0, #0x0
+ beq _0202FC0C
+ bl FUN_0202FA28
+ cmp r0, #0x1
+ beq _0202FC0C
+ bl FUN_02031280
+ cmp r0, #0x0
+ beq _0202FC10
+_0202FC0C:
+ bl FUN_02030DFC
+_0202FC10:
+ ldr r0, _0202FC48 ; =0x021C59F4
+ mov r1, #0x1
+ strb r1, [r0, #0x0]
+_0202FC16:
+ ldr r0, _0202FC48 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202FC5C ; =0x0000065C
+ ldrh r0, [r1, r0]
+ bl FUN_0202ED70
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _0202FC2E
+ bl FUN_0202F8D4
+_0202FC2E:
+ bl FUN_0202FB58
+ b _0202FC3A
+_0202FC34:
+ mov r0, #0x0
+ bl FUN_0202ED70
+_0202FC3A:
+ mov r0, #0x0
+ bl FUN_020335F4
+ bl FUN_020315A4
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+_0202FC48: .word 0x021C59F4
+_0202FC4C: .word 0x0000068A
+_0202FC50: .word 0x021C48B8
+_0202FC54: .word 0x00000628
+_0202FC58: .word 0x00007FFF
+_0202FC5C: .word 0x0000065C
+
+ thumb_func_start FUN_0202FC60
+FUN_0202FC60: ; 0x0202FC60
+ push {r4, lr}
+ ldr r0, _0202FC7C ; =0x021C59F4
+ mov r1, #0x0
+ ldrb r4, [r0, #0x0]
+ strb r1, [r0, #0x0]
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ beq _0202FC74
+ bl FUN_0202F2F0
+_0202FC74:
+ ldr r0, _0202FC7C ; =0x021C59F4
+ strb r4, [r0, #0x0]
+ pop {r4, pc}
+ nop
+_0202FC7C: .word 0x021C59F4
+
+ thumb_func_start FUN_0202FC80
+FUN_0202FC80: ; 0x0202FC80
+ push {r4, lr}
+ ldr r0, _0202FCA0 ; =0x021C59F4
+ mov r1, #0x0
+ ldrb r4, [r0, #0x0]
+ strb r1, [r0, #0x0]
+ ldr r2, [r0, #0x4]
+ cmp r2, #0x0
+ beq _0202FC9A
+ ldr r0, _0202FCA4 ; =0x0000067D
+ mov r1, #0x1
+ strb r1, [r2, r0]
+ bl FUN_0202F2F0
+_0202FC9A:
+ ldr r0, _0202FCA0 ; =0x021C59F4
+ strb r4, [r0, #0x0]
+ pop {r4, pc}
+ .balign 4
+_0202FCA0: .word 0x021C59F4
+_0202FCA4: .word 0x0000067D
+
+ thumb_func_start FUN_0202FCA8
+FUN_0202FCA8: ; 0x0202FCA8
+ push {r4, lr}
+ ldr r0, _0202FCC8 ; =0x021C59F4
+ mov r1, #0x0
+ ldrb r4, [r0, #0x0]
+ strb r1, [r0, #0x0]
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ beq _0202FCC0
+ bl FUN_0202F2F0
+ bl FUN_0202E538
+_0202FCC0:
+ ldr r0, _0202FCC8 ; =0x021C59F4
+ strb r4, [r0, #0x0]
+ pop {r4, pc}
+ nop
+_0202FCC8: .word 0x021C59F4
+
+ thumb_func_start FUN_0202FCCC
+FUN_0202FCCC: ; 0x0202FCCC
+ push {r3, lr}
+ ldr r0, _0202FE14 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202FE18 ; =0x00000683
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0202FD40
+ bl FUN_02033534
+ cmp r0, #0x13
+ blt _0202FD06
+ ldr r0, _0202FE14 ; =0x021C59F4
+ ldr r1, _0202FE1C ; =0x00000687
+ ldr r0, [r0, #0x4]
+ ldrb r1, [r0, r1]
+ cmp r1, #0x0
+ beq _0202FCF8
+ mov r1, #0x26
+ bl MOD04_021D78FC
+ cmp r0, #0x0
+ bne _0202FCFA
+_0202FCF8:
+ b _0202FE10
+_0202FCFA:
+ ldr r0, _0202FE14 ; =0x021C59F4
+ mov r2, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202FE18 ; =0x00000683
+ strb r2, [r1, r0]
+ pop {r3, pc}
+_0202FD06:
+ bl FUN_0202CBD4
+ cmp r0, #0x4
+ bne _0202FD1A
+ bl FUN_02031190
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ bne _0202FD22
+_0202FD1A:
+ bl FUN_02031280
+ cmp r0, #0x0
+ beq _0202FE10
+_0202FD22:
+ ldr r0, _0202FE20 ; =0x02105D58
+ mov r1, #0x0
+ strb r1, [r0, #0x0]
+ bl FUN_0203050C
+ ldr r0, _0202FE20 ; =0x02105D58
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0202FE10
+ ldr r0, _0202FE14 ; =0x021C59F4
+ mov r2, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202FE18 ; =0x00000683
+ strb r2, [r1, r0]
+ pop {r3, pc}
+_0202FD40:
+ bl FUN_02033534
+ cmp r0, #0x13
+ blt _0202FDB2
+ ldr r0, _0202FE14 ; =0x021C59F4
+ ldr r2, _0202FE1C ; =0x00000687
+ ldr r0, [r0, #0x4]
+ ldrb r1, [r0, r2]
+ cmp r1, #0x0
+ beq _0202FE10
+ add r1, r2, #0x0
+ sub r1, #0x57
+ ldr r1, [r0, r1]
+ cmp r1, #0x0
+ beq _0202FD7A
+ sub r2, #0x53
+ ldr r1, [r0, r2]
+ cmp r1, #0x3
+ bgt _0202FE10
+ ldr r1, _0202FE20 ; =0x02105D58
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x4
+ bne _0202FD90
+ bl FUN_02030930
+ ldr r0, _0202FE20 ; =0x02105D58
+ mov r1, #0x2
+ strb r1, [r0, #0x0]
+ b _0202FD90
+_0202FD7A:
+ ldr r1, _0202FE20 ; =0x02105D58
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x4
+ bne _0202FD90
+ bl FUN_02030930
+ cmp r0, #0x0
+ beq _0202FE10
+ ldr r0, _0202FE20 ; =0x02105D58
+ mov r1, #0x2
+ strb r1, [r0, #0x0]
+_0202FD90:
+ ldr r0, _0202FE14 ; =0x021C59F4
+ mov r1, #0x26
+ ldr r0, [r0, #0x4]
+ bl MOD04_021D78FC
+ cmp r0, #0x0
+ beq _0202FE10
+ ldr r0, _0202FE20 ; =0x02105D58
+ mov r1, #0x4
+ strb r1, [r0, #0x0]
+ ldr r0, _0202FE14 ; =0x021C59F4
+ ldr r2, [r0, #0x4]
+ ldr r0, _0202FE24 ; =0x00000634
+ ldr r1, [r2, r0]
+ add r1, r1, #0x1
+ str r1, [r2, r0]
+ pop {r3, pc}
+_0202FDB2:
+ bl FUN_0202CBD4
+ cmp r0, #0x4
+ bne _0202FDC6
+ bl FUN_02031190
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ bne _0202FDCE
+_0202FDC6:
+ bl FUN_02031280
+ cmp r0, #0x0
+ beq _0202FE10
+_0202FDCE:
+ ldr r0, _0202FE20 ; =0x02105D58
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x4
+ bne _0202FE10
+ ldr r0, _0202FE14 ; =0x021C59F4
+ ldr r2, [r0, #0x4]
+ ldr r0, _0202FE24 ; =0x00000634
+ ldr r1, [r2, r0]
+ cmp r1, #0x3
+ bgt _0202FE10
+ add r0, #0x4b
+ ldrb r1, [r2, r0]
+ mov r0, #0x26
+ mul r0, r1
+ add r0, r2, r0
+ bl FUN_02030930
+ ldr r0, _0202FE14 ; =0x021C59F4
+ ldr r2, [r0, #0x4]
+ ldr r0, _0202FE28 ; =0x0000067F
+ ldrb r1, [r2, r0]
+ mov r0, #0x1
+ sub r1, r0, r1
+ mov r0, #0x26
+ mul r0, r1
+ add r0, r2, r0
+ bl FUN_02030930
+ ldr r0, _0202FE20 ; =0x02105D58
+ mov r1, #0x0
+ strb r1, [r0, #0x0]
+ bl FUN_0203050C
+_0202FE10:
+ pop {r3, pc}
+ nop
+_0202FE14: .word 0x021C59F4
+_0202FE18: .word 0x00000683
+_0202FE1C: .word 0x00000687
+_0202FE20: .word 0x02105D58
+_0202FE24: .word 0x00000634
+_0202FE28: .word 0x0000067F
+
+ thumb_func_start FUN_0202FE2C
+FUN_0202FE2C: ; 0x0202FE2C
+ push {r3-r7, lr}
+ sub sp, #0x10
+ str r0, [sp, #0x0]
+ mov r0, #0x0
+ str r0, [sp, #0x4]
+ bl FUN_02033534
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02031228
+ str r0, [sp, #0xc]
+ bl FUN_02033534
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0202D858
+ add r0, r0, #0x1
+ mov r7, #0x0
+ str r0, [sp, #0x8]
+ cmp r0, #0x0
+ ble _0202FED0
+ ldr r0, [sp, #0x0]
+ mov r1, #0xc0
+ add r6, r0, #0x0
+ add r4, r7, #0x0
+ add r5, r7, #0x0
+ mul r6, r1
+_0202FE66:
+ ldr r0, _0202FEE4 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202FEE8 ; =0x0000047C
+ add r0, r1, r0
+ add r0, r0, r4
+ bl FUN_0202D4BC
+ lsl r0, r7, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ beq _0202FE90
+ ldr r0, _0202FEE4 ; =0x021C59F4
+ mov r1, #0xe
+ ldr r0, [r0, #0x4]
+ add r0, r6, r0
+ add r2, r5, r0
+ mov r0, #0x55
+ lsl r0, r0, #0x2
+ strb r1, [r2, r0]
+_0202FE90:
+ ldr r0, _0202FEE4 ; =0x021C59F4
+ mov r2, #0x55
+ ldr r1, [r0, #0x4]
+ ldr r0, _0202FEE8 ; =0x0000047C
+ lsl r2, r2, #0x2
+ add r0, r1, r0
+ add r1, r1, r2
+ add r1, r1, r6
+ ldr r2, [sp, #0xc]
+ add r0, r0, r4
+ add r1, r1, r5
+ bl FUN_0202D400
+ ldr r0, _0202FEE4 ; =0x021C59F4
+ ldr r0, [r0, #0x4]
+ add r0, r6, r0
+ add r1, r5, r0
+ mov r0, #0x55
+ lsl r0, r0, #0x2
+ ldrb r0, [r1, r0]
+ cmp r0, #0xe
+ bne _0202FEC2
+ ldr r0, [sp, #0x4]
+ add r0, r0, #0x1
+ str r0, [sp, #0x4]
+_0202FEC2:
+ ldr r0, [sp, #0xc]
+ add r7, r7, #0x1
+ add r5, r5, r0
+ ldr r0, [sp, #0x8]
+ add r4, #0xc
+ cmp r7, r0
+ blt _0202FE66
+_0202FED0:
+ ldr r1, [sp, #0x4]
+ ldr r0, [sp, #0x8]
+ cmp r1, r0
+ bne _0202FEDE
+ add sp, #0x10
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_0202FEDE:
+ mov r0, #0x1
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+_0202FEE4: .word 0x021C59F4
+_0202FEE8: .word 0x0000047C
+
+ thumb_func_start FUN_0202FEEC
+FUN_0202FEEC: ; 0x0202FEEC
+ push {r3-r7, lr}
+ ldr r0, _02030064 ; =0x021C59F4
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ beq _0202FEFE
+ bl FUN_02033534
+ cmp r0, #0x13
+ blt _0202FF00
+_0202FEFE:
+ b _02030062
+_0202FF00:
+ bl FUN_02033534
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02031228
+ str r0, [sp, #0x0]
+ bl FUN_02033534
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0202D858
+ add r6, r0, #0x1
+ ldr r0, _02030068 ; =0x02105D58
+ ldrb r1, [r0, #0x1]
+ cmp r1, #0x2
+ beq _0202FF2C
+ ldrb r0, [r0, #0x1]
+ cmp r0, #0x0
+ beq _0202FF2C
+ b _02030062
+_0202FF2C:
+ ldr r0, _02030068 ; =0x02105D58
+ ldrb r1, [r0, #0x1]
+ add r1, r1, #0x1
+ strb r1, [r0, #0x1]
+ bl FUN_0202FA28
+ cmp r0, #0x1
+ bne _0202FF4A
+ ldr r0, _02030064 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ mov r0, #0x1a
+ lsl r0, r0, #0x6
+ ldrb r0, [r1, r0]
+ bl FUN_0202FE2C
+_0202FF4A:
+ bl FUN_0202CBD4
+ cmp r0, #0x4
+ bne _0202FF86
+ bl FUN_02031280
+ cmp r0, #0x0
+ bne _0202FF86
+ ldr r0, _02030064 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ mov r0, #0x55
+ lsl r0, r0, #0x2
+ add r3, r1, r0
+ mov r0, #0x1a
+ lsl r0, r0, #0x6
+ ldrb r0, [r1, r0]
+ mov r1, #0xc0
+ add r2, r0, #0x0
+ mul r2, r1
+ add r0, r3, r2
+ ldr r3, _0203006C ; =FUN_020304F0
+ mov r2, #0xe
+ bl FUN_0202D0D0
+ cmp r0, #0x0
+ bne _0202FF86
+ ldr r0, _02030068 ; =0x02105D58
+ ldrb r1, [r0, #0x1]
+ sub r1, r1, #0x1
+ strb r1, [r0, #0x1]
+_0202FF86:
+ ldr r0, _02030068 ; =0x02105D58
+ ldrb r1, [r0, #0x1]
+ cmp r1, #0x1
+ beq _0202FF94
+ ldrb r0, [r0, #0x1]
+ cmp r0, #0x3
+ bne _0203000A
+_0202FF94:
+ mov r4, #0x0
+ cmp r6, #0x0
+ ble _0202FFDC
+ ldr r7, _02030064 ; =0x021C59F4
+ add r5, r4, #0x0
+_0202FF9E:
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ beq _0202FFBA
+ ldr r0, [r7, #0x4]
+ ldr r1, _02030070 ; =0x00000638
+ add r0, r0, r5
+ ldr r1, [r0, r1]
+ add r2, r1, #0x1
+ ldr r1, _02030070 ; =0x00000638
+ str r2, [r0, r1]
+ b _0202FFD4
+_0202FFBA:
+ bl FUN_02031280
+ cmp r0, #0x0
+ beq _0202FFD4
+ cmp r4, #0x0
+ bne _0202FFD4
+ ldr r0, [r7, #0x4]
+ ldr r1, _02030070 ; =0x00000638
+ add r0, r0, r5
+ ldr r1, [r0, r1]
+ add r2, r1, #0x1
+ ldr r1, _02030070 ; =0x00000638
+ str r2, [r0, r1]
+_0202FFD4:
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, r6
+ blt _0202FF9E
+_0202FFDC:
+ ldr r0, _02030064 ; =0x021C59F4
+ mov r1, #0x55
+ ldr r2, [r0, #0x4]
+ lsl r1, r1, #0x2
+ add r4, r2, r1
+ mov r1, #0x1a
+ lsl r1, r1, #0x6
+ ldrb r1, [r2, r1]
+ mov r2, #0xc0
+ mov r0, #0x0
+ add r3, r1, #0x0
+ mul r3, r2
+ add r1, r4, r3
+ bl FUN_0203026C
+ ldr r0, _02030064 ; =0x021C59F4
+ mov r1, #0x1a
+ ldr r3, [r0, #0x4]
+ lsl r1, r1, #0x6
+ ldrb r2, [r3, r1]
+ mov r0, #0x1
+ sub r0, r0, r2
+ strb r0, [r3, r1]
+_0203000A:
+ mov r5, #0x0
+ cmp r6, #0x0
+ ble _0203004A
+ add r4, r5, #0x0
+ mov r7, #0xff
+_02030014:
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ bne _02030040
+ bl FUN_0202FA28
+ cmp r0, #0x1
+ bne _02030040
+ ldr r0, _02030064 ; =0x021C59F4
+ mov r1, #0x1a
+ ldr r0, [r0, #0x4]
+ lsl r1, r1, #0x6
+ ldrb r2, [r0, r1]
+ mov r1, #0xc0
+ mul r1, r2
+ add r0, r0, r1
+ add r1, r4, r0
+ mov r0, #0x55
+ lsl r0, r0, #0x2
+ strb r7, [r1, r0]
+_02030040:
+ ldr r0, [sp, #0x0]
+ add r5, r5, #0x1
+ add r4, r4, r0
+ cmp r5, r6
+ blt _02030014
+_0203004A:
+ bl FUN_0202CBD4
+ cmp r0, #0x4
+ bne _0203005A
+ bl FUN_02031280
+ cmp r0, #0x0
+ beq _02030062
+_0203005A:
+ ldr r0, _02030068 ; =0x02105D58
+ ldrb r1, [r0, #0x1]
+ add r1, r1, #0x1
+ strb r1, [r0, #0x1]
+_02030062:
+ pop {r3-r7, pc}
+ .balign 4
+_02030064: .word 0x021C59F4
+_02030068: .word 0x02105D58
+_0203006C: .word FUN_020304F0
+_02030070: .word 0x00000638
+
+ thumb_func_start FUN_02030074
+FUN_02030074: ; 0x02030074
+ push {r3-r7, lr}
+ ldr r0, _02030228 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _0203022C ; =0x00000683
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ beq _020300DC
+ bl FUN_02033534
+ cmp r0, #0x13
+ blt _020300B4
+ mov r0, #0x0
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ beq _020300DC
+ ldr r0, _02030228 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ mov r0, #0x55
+ lsl r0, r0, #0x2
+ add r0, r1, r0
+ mov r1, #0x4c
+ bl MOD04_021D79B4
+ cmp r0, #0x0
+ beq _020300DC
+ ldr r0, _02030228 ; =0x021C59F4
+ mov r2, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _0203022C ; =0x00000683
+ strb r2, [r1, r0]
+ pop {r3-r7, pc}
+_020300B4:
+ bl FUN_0202CBD4
+ cmp r0, #0x4
+ beq _020300C4
+ bl FUN_02031280
+ cmp r0, #0x0
+ beq _020300DC
+_020300C4:
+ bl FUN_0202FEEC
+ ldr r0, _02030230 ; =0x02105D58
+ ldrb r0, [r0, #0x1]
+ cmp r0, #0x2
+ bne _020300DC
+ ldr r0, _02030228 ; =0x021C59F4
+ mov r2, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _0203022C ; =0x00000683
+ strb r2, [r1, r0]
+ pop {r3-r7, pc}
+_020300DC:
+ bl FUN_02033534
+ cmp r0, #0x13
+ blt _02030184
+ mov r0, #0x0
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ bne _020300F0
+ b _02030224
+_020300F0:
+ ldr r0, _02030228 ; =0x021C59F4
+ mov r1, #0x63
+ ldr r2, [r0, #0x4]
+ lsl r1, r1, #0x4
+ ldr r0, [r2, r1]
+ cmp r0, #0x0
+ beq _02030130
+ add r0, r1, #0x0
+ add r0, #0xc
+ ldr r0, [r2, r0]
+ cmp r0, #0x3
+ bgt _02030110
+ add r1, #0x8
+ ldr r0, [r2, r1]
+ cmp r0, #0x3
+ ble _02030112
+_02030110:
+ b _02030224
+_02030112:
+ ldr r0, _02030230 ; =0x02105D58
+ ldrb r0, [r0, #0x1]
+ cmp r0, #0x4
+ bne _02030150
+ bl FUN_0202FA28
+ cmp r0, #0x1
+ bne _02030128
+ mov r0, #0x0
+ bl FUN_0202FE2C
+_02030128:
+ ldr r0, _02030230 ; =0x02105D58
+ mov r1, #0x2
+ strb r1, [r0, #0x1]
+ b _02030150
+_02030130:
+ ldr r0, _02030230 ; =0x02105D58
+ ldrb r0, [r0, #0x1]
+ cmp r0, #0x4
+ bne _0203014A
+ bl FUN_0202FA28
+ cmp r0, #0x1
+ bne _0203014A
+ mov r0, #0x0
+ bl FUN_0202FE2C
+ cmp r0, #0x0
+ beq _02030224
+_0203014A:
+ ldr r0, _02030230 ; =0x02105D58
+ mov r1, #0x2
+ strb r1, [r0, #0x1]
+_02030150:
+ ldr r0, _02030228 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ mov r0, #0x55
+ lsl r0, r0, #0x2
+ add r0, r1, r0
+ mov r1, #0x4c
+ bl MOD04_021D79B4
+ cmp r0, #0x0
+ beq _02030224
+ ldr r0, _02030230 ; =0x02105D58
+ mov r1, #0x4
+ strb r1, [r0, #0x1]
+ ldr r1, _02030228 ; =0x021C59F4
+ ldr r0, _02030234 ; =0x00000638
+ ldr r3, [r1, #0x4]
+ ldr r2, [r3, r0]
+ add r2, r2, #0x1
+ str r2, [r3, r0]
+ ldr r2, [r1, #0x4]
+ add r1, r0, #0x4
+ ldr r1, [r2, r1]
+ add r0, r0, #0x4
+ add r1, r1, #0x1
+ str r1, [r2, r0]
+ pop {r3-r7, pc}
+_02030184:
+ bl FUN_0202CBD4
+ cmp r0, #0x4
+ beq _02030194
+ bl FUN_02031280
+ cmp r0, #0x0
+ beq _02030224
+_02030194:
+ ldr r0, _02030230 ; =0x02105D58
+ ldrb r0, [r0, #0x1]
+ cmp r0, #0x4
+ bne _02030224
+ ldr r6, _02030228 ; =0x021C59F4
+ ldr r7, _02030234 ; =0x00000638
+ mov r4, #0x1
+ mov r5, #0x4
+_020301A4:
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ beq _020301BC
+ ldr r0, [r6, #0x4]
+ add r0, r0, r5
+ ldr r0, [r0, r7]
+ cmp r0, #0x3
+ ble _020301D2
+ pop {r3-r7, pc}
+_020301BC:
+ cmp r4, #0x0
+ bne _020301D2
+ bl FUN_02031280
+ cmp r0, #0x0
+ beq _020301D2
+ ldr r1, [r6, #0x4]
+ ldr r0, _02030234 ; =0x00000638
+ ldr r0, [r1, r0]
+ cmp r0, #0x3
+ bgt _02030224
+_020301D2:
+ add r4, r4, #0x1
+ add r5, r5, #0x4
+ cmp r4, #0x8
+ blt _020301A4
+ bl FUN_0202FA28
+ cmp r0, #0x0
+ bne _0203021A
+ ldr r0, _02030228 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ mov r0, #0x55
+ lsl r0, r0, #0x2
+ add r2, r1, r0
+ mov r0, #0x1a
+ lsl r0, r0, #0x6
+ ldrb r1, [r1, r0]
+ mov r0, #0xc0
+ mul r0, r1
+ add r0, r2, r0
+ bl FUN_02030A00
+ ldr r0, _02030228 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ mov r0, #0x55
+ lsl r0, r0, #0x2
+ add r2, r1, r0
+ mov r0, #0x1a
+ lsl r0, r0, #0x6
+ ldrb r1, [r1, r0]
+ mov r0, #0x1
+ sub r1, r0, r1
+ mov r0, #0xc0
+ mul r0, r1
+ add r0, r2, r0
+ bl FUN_02030A00
+_0203021A:
+ ldr r0, _02030230 ; =0x02105D58
+ mov r1, #0x0
+ strb r1, [r0, #0x1]
+ bl FUN_0202FEEC
+_02030224:
+ pop {r3-r7, pc}
+ nop
+_02030228: .word 0x021C59F4
+_0203022C: .word 0x00000683
+_02030230: .word 0x02105D58
+_02030234: .word 0x00000638
+
+ thumb_func_start FUN_02030238
+FUN_02030238: ; 0x02030238
+ push {r4-r6, lr}
+ ldr r4, _02030264 ; =0x021C59F4
+ ldr r3, _02030268 ; =0x0000066F
+ ldr r5, [r4, #0x4]
+ ldrb r6, [r5, r3]
+ cmp r6, #0x0
+ beq _0203025C
+ add r0, r3, #0x0
+ sub r0, #0x3b
+ ldr r0, [r5, r0]
+ sub r1, r0, #0x1
+ add r0, r3, #0x0
+ sub r0, #0x3b
+ str r1, [r5, r0]
+ ldr r0, [r4, #0x4]
+ mov r1, #0x0
+ strb r1, [r0, r3]
+ pop {r4-r6, pc}
+_0203025C:
+ bl FUN_0203026C
+ pop {r4-r6, pc}
+ nop
+_02030264: .word 0x021C59F4
+_02030268: .word 0x0000066F
+
+ thumb_func_start FUN_0203026C
+FUN_0203026C: ; 0x0203026C
+ push {r3-r7, lr}
+ sub sp, #0x8
+ ldr r0, _020303A0 ; =0x021C59F4
+ add r5, r1, #0x0
+ ldr r2, [r0, #0x4]
+ ldr r0, _020303A4 ; =0x00000634
+ ldr r1, [r2, r0]
+ sub r1, r1, #0x1
+ str r1, [r2, r0]
+ cmp r5, #0x0
+ beq _02030290
+ ldrb r0, [r5, #0x0]
+ cmp r0, #0xb
+ bne _02030296
+ bl FUN_0202FA28
+ cmp r0, #0x1
+ bne _02030292
+_02030290:
+ b _0203039C
+_02030292:
+ add r5, r5, #0x1
+ b _0203029E
+_02030296:
+ bl FUN_0202FA28
+ cmp r0, #0x0
+ beq _0203039C
+_0203029E:
+ ldr r0, _020303A0 ; =0x021C59F4
+ ldr r1, _020303A8 ; =0x00000682
+ ldr r0, [r0, #0x4]
+ ldrb r1, [r0, r1]
+ cmp r1, #0x0
+ beq _020302B2
+ ldrb r2, [r5, #0x0]
+ mov r1, #0x1
+ tst r1, r2
+ bne _0203039C
+_020302B2:
+ ldr r1, _020303A8 ; =0x00000682
+ mov r2, #0x0
+ strb r2, [r0, r1]
+ bl FUN_0202FA28
+ cmp r0, #0x1
+ bne _0203036E
+ bl FUN_02033534
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02031228
+ add r6, r0, #0x0
+ bl FUN_02033534
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0202D858
+ add r0, r0, #0x1
+ mov r4, #0x0
+ str r0, [sp, #0x4]
+ cmp r0, #0x0
+ ble _0203039C
+ sub r0, r6, #0x1
+ add r7, r4, #0x0
+ str r0, [sp, #0x0]
+_020302EA:
+ ldrb r0, [r5, #0x0]
+ cmp r0, #0xff
+ bne _02030302
+ ldr r0, _020303A0 ; =0x021C59F4
+ mov r2, #0x1
+ ldr r1, [r0, #0x4]
+ ldr r0, _020303AC ; =0x0000065C
+ lsl r2, r4
+ ldrh r0, [r1, r0]
+ mvn r2, r2
+ and r2, r0
+ b _02030310
+_02030302:
+ ldr r0, _020303A0 ; =0x021C59F4
+ mov r2, #0x1
+ ldr r1, [r0, #0x4]
+ ldr r0, _020303AC ; =0x0000065C
+ lsl r2, r4
+ ldrh r0, [r1, r0]
+ orr r2, r0
+_02030310:
+ ldr r0, _020303AC ; =0x0000065C
+ strh r2, [r1, r0]
+ ldrb r2, [r5, #0x0]
+ cmp r2, #0xff
+ bne _0203031E
+ add r5, r5, r6
+ b _02030360
+_0203031E:
+ cmp r2, #0xe
+ bne _02030326
+ add r5, r5, r6
+ b _02030360
+_02030326:
+ ldr r0, _020303A0 ; =0x021C59F4
+ ldr r3, [r0, #0x4]
+ ldr r0, _020303B0 ; =0x00000667
+ add r1, r3, r4
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0203033E
+ mov r0, #0x1
+ tst r0, r2
+ beq _0203033E
+ add r5, r5, r6
+ b _02030360
+_0203033E:
+ ldr r0, _020303B4 ; =0x000004E8
+ add r5, r5, #0x1
+ add r0, r3, r0
+ ldr r2, [sp, #0x0]
+ ldr r3, _020303B8 ; =0x000005E6
+ add r0, r0, r7
+ add r1, r5, #0x0
+ bl FUN_0202D3A4
+ ldr r0, [sp, #0x0]
+ mov r1, #0x0
+ add r5, r5, r0
+ ldr r0, _020303A0 ; =0x021C59F4
+ ldr r0, [r0, #0x4]
+ add r2, r0, r4
+ ldr r0, _020303B0 ; =0x00000667
+ strb r1, [r2, r0]
+_02030360:
+ ldr r0, [sp, #0x4]
+ add r4, r4, #0x1
+ add r7, #0xc
+ cmp r4, r0
+ blt _020302EA
+ add sp, #0x8
+ pop {r3-r7, pc}
+_0203036E:
+ ldr r0, _020303A0 ; =0x021C59F4
+ ldrb r2, [r5, #0x1]
+ ldr r1, [r0, #0x4]
+ ldr r3, _020303AC ; =0x0000065C
+ strh r2, [r1, r3]
+ ldr r2, [r0, #0x4]
+ ldrh r1, [r2, r3]
+ lsl r1, r1, #0x8
+ strh r1, [r2, r3]
+ ldr r4, [r0, #0x4]
+ ldrb r1, [r5, #0x2]
+ ldrh r2, [r4, r3]
+ add r1, r2, r1
+ strh r1, [r4, r3]
+ ldr r1, [r0, #0x4]
+ mov r0, #0x47
+ lsl r0, r0, #0x4
+ add r0, r1, r0
+ ldrb r2, [r5, #0x3]
+ add r1, r5, #0x4
+ sub r3, #0x5d
+ bl FUN_0202D3A4
+_0203039C:
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_020303A0: .word 0x021C59F4
+_020303A4: .word 0x00000634
+_020303A8: .word 0x00000682
+_020303AC: .word 0x0000065C
+_020303B0: .word 0x00000667
+_020303B4: .word 0x000004E8
+_020303B8: .word 0x000005E6
+
+ thumb_func_start FUN_020303BC
+FUN_020303BC: ; 0x020303BC
+ push {r4-r6, lr}
+ ldr r3, _020303EC ; =0x021C59F4
+ ldr r6, _020303F0 ; =0x0000066F
+ ldr r5, [r3, #0x4]
+ add r4, r5, r0
+ ldrb r4, [r4, r6]
+ cmp r4, #0x0
+ beq _020303E4
+ add r1, r6, #0x0
+ sub r1, #0x37
+ add r4, r5, r1
+ lsl r2, r0, #0x2
+ ldr r1, [r4, r2]
+ sub r1, r1, #0x1
+ str r1, [r4, r2]
+ ldr r1, [r3, #0x4]
+ mov r2, #0x0
+ add r0, r1, r0
+ strb r2, [r0, r6]
+ pop {r4-r6, pc}
+_020303E4:
+ bl FUN_020303F4
+ pop {r4-r6, pc}
+ nop
+_020303EC: .word 0x021C59F4
+_020303F0: .word 0x0000066F
+
+ thumb_func_start FUN_020303F4
+FUN_020303F4: ; 0x020303F4
+ push {r4-r6, lr}
+ ldr r3, _020304B8 ; =0x021C59F4
+ add r5, r0, #0x0
+ ldr r0, [r3, #0x4]
+ ldr r2, _020304BC ; =0x00000638
+ add r4, r1, #0x0
+ add r1, r0, r2
+ lsl r0, r5, #0x2
+ ldr r6, [r1, r0]
+ sub r6, r6, #0x1
+ str r6, [r1, r0]
+ cmp r4, #0x0
+ beq _020304B4
+ ldr r0, [r3, #0x4]
+ add r2, #0x2f
+ add r0, r0, r2
+ ldrb r1, [r0, r5]
+ cmp r1, #0x0
+ beq _02030422
+ ldrb r2, [r4, #0x0]
+ mov r1, #0x1
+ tst r1, r2
+ bne _020304B4
+_02030422:
+ mov r1, #0x0
+ strb r1, [r0, r5]
+ bl FUN_0202FA28
+ cmp r0, #0x1
+ bne _02030478
+ bl FUN_02033534
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02031228
+ add r6, r0, #0x0
+ bl FUN_02033534
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0202D858
+ ldrb r1, [r4, #0x0]
+ mov r0, #0x2
+ tst r0, r1
+ bne _02030468
+ ldr r0, _020304B8 ; =0x021C59F4
+ ldr r3, _020304C0 ; =0x0000065E
+ ldr r1, [r0, #0x4]
+ ldr r0, _020304C4 ; =0x0000047C
+ add r2, r6, #0x0
+ add r1, r1, r0
+ mov r0, #0xc
+ mul r0, r5
+ add r0, r1, r0
+ add r1, r4, #0x0
+ bl FUN_0202D3A4
+_02030468:
+ ldr r0, _020304B8 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _020304C8 ; =0x0000065F
+ add r1, r1, r0
+ ldrb r0, [r1, r5]
+ add r0, r0, #0x1
+ strb r0, [r1, r5]
+ pop {r4-r6, pc}
+_02030478:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_020307E4
+ ldrb r1, [r4, #0x0]
+ mov r0, #0x2
+ tst r0, r1
+ bne _020304B4
+ mov r0, #0xc
+ add r6, r5, #0x0
+ mul r6, r0
+ ldr r0, _020304B8 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _020304CC ; =0x000004E8
+ add r0, r1, r0
+ add r0, r0, r6
+ bl FUN_0202D498
+ cmp r0, #0xb
+ blt _020304B4
+ ldr r0, _020304B8 ; =0x021C59F4
+ ldr r3, _020304D0 ; =0x0000066E
+ ldr r1, [r0, #0x4]
+ ldr r0, _020304CC ; =0x000004E8
+ mov r2, #0xb
+ add r0, r1, r0
+ add r0, r0, r6
+ add r1, r4, #0x1
+ bl FUN_0202D3A4
+_020304B4:
+ pop {r4-r6, pc}
+ nop
+_020304B8: .word 0x021C59F4
+_020304BC: .word 0x00000638
+_020304C0: .word 0x0000065E
+_020304C4: .word 0x0000047C
+_020304C8: .word 0x0000065F
+_020304CC: .word 0x000004E8
+_020304D0: .word 0x0000066E
+
+ thumb_func_start FUN_020304D4
+FUN_020304D4: ; 0x020304D4
+ push {r3, lr}
+ cmp r0, #0x0
+ beq _020304E4
+ ldr r0, _020304EC ; =0x02105D58
+ ldrb r1, [r0, #0x0]
+ add r1, r1, #0x1
+ strb r1, [r0, #0x0]
+ pop {r3, pc}
+_020304E4:
+ bl ErrorHandling
+ pop {r3, pc}
+ nop
+_020304EC: .word 0x02105D58
+
+ thumb_func_start FUN_020304F0
+FUN_020304F0: ; 0x020304F0
+ push {r3, lr}
+ cmp r0, #0x0
+ beq _02030500
+ ldr r0, _02030508 ; =0x02105D58
+ ldrb r1, [r0, #0x1]
+ add r1, r1, #0x1
+ strb r1, [r0, #0x1]
+ pop {r3, pc}
+_02030500:
+ bl ErrorHandling
+ pop {r3, pc}
+ nop
+_02030508: .word 0x02105D58
+
+ thumb_func_start FUN_0203050C
+FUN_0203050C: ; 0x0203050C
+ push {r4, lr}
+ ldr r0, _02030660 ; =0x021C59F4
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ beq _0203051E
+ bl FUN_02033534
+ cmp r0, #0x13
+ blt _02030520
+_0203051E:
+ b _0203065E
+_02030520:
+ bl FUN_02033534
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02031228
+ add r4, r0, #0x0
+ bl FUN_02033534
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0202D858
+ bl FUN_02031280
+ cmp r0, #0x0
+ beq _02030594
+ ldr r0, _02030664 ; =0x02105D58
+ ldrb r1, [r0, #0x0]
+ cmp r1, #0x2
+ beq _02030550
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02030594
+_02030550:
+ ldr r0, _02030664 ; =0x02105D58
+ ldrb r1, [r0, #0x0]
+ add r1, r1, #0x1
+ strb r1, [r0, #0x0]
+ mov r0, #0x1
+ bl FUN_020304D4
+ ldr r0, _02030660 ; =0x021C59F4
+ ldr r1, _02030668 ; =0x0000067F
+ ldr r3, [r0, #0x4]
+ mov r0, #0x0
+ ldrb r2, [r3, r1]
+ mov r1, #0x26
+ mul r1, r2
+ lsl r2, r4, #0x10
+ add r1, r3, r1
+ lsr r2, r2, #0x10
+ bl FUN_020303F4
+ ldr r2, _02030660 ; =0x021C59F4
+ ldr r1, _02030668 ; =0x0000067F
+ ldr r4, [r2, #0x4]
+ mov r0, #0x1
+ ldrb r3, [r4, r1]
+ sub r0, r0, r3
+ strb r0, [r4, r1]
+ add r0, r1, #0x0
+ ldr r2, [r2, #0x4]
+ sub r0, #0x4b
+ ldr r0, [r2, r0]
+ sub r1, #0x4b
+ add r0, r0, #0x1
+ str r0, [r2, r1]
+ pop {r4, pc}
+_02030594:
+ bl FUN_0202CBD4
+ cmp r0, #0x4
+ bne _0203065E
+ bl FUN_02031190
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ bne _020305AE
+ bl FUN_02031190
+ pop {r4, pc}
+_020305AE:
+ ldr r0, _02030664 ; =0x02105D58
+ ldrb r1, [r0, #0x0]
+ cmp r1, #0x2
+ beq _020305BC
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0203065E
+_020305BC:
+ bl FUN_02031190
+ cmp r0, #0x0
+ beq _02030612
+ ldr r0, _02030664 ; =0x02105D58
+ ldr r3, _0203066C ; =FUN_020304D4
+ ldrb r1, [r0, #0x0]
+ add r1, r1, #0x1
+ strb r1, [r0, #0x0]
+ ldr r0, _02030660 ; =0x021C59F4
+ ldr r2, [r0, #0x4]
+ ldr r0, _02030668 ; =0x0000067F
+ ldrb r1, [r2, r0]
+ mov r0, #0x26
+ mul r0, r1
+ lsl r1, r4, #0x10
+ add r0, r2, r0
+ lsr r1, r1, #0x10
+ mov r2, #0xe
+ bl FUN_0202D0D0
+ cmp r0, #0x0
+ bne _020305F4
+ ldr r0, _02030664 ; =0x02105D58
+ ldrb r1, [r0, #0x0]
+ sub r1, r1, #0x1
+ strb r1, [r0, #0x0]
+ pop {r4, pc}
+_020305F4:
+ ldr r2, _02030660 ; =0x021C59F4
+ ldr r1, _02030668 ; =0x0000067F
+ ldr r4, [r2, #0x4]
+ mov r0, #0x1
+ ldrb r3, [r4, r1]
+ sub r0, r0, r3
+ strb r0, [r4, r1]
+ add r0, r1, #0x0
+ ldr r2, [r2, #0x4]
+ sub r0, #0x4b
+ ldr r0, [r2, r0]
+ sub r1, #0x4b
+ add r0, r0, #0x1
+ str r0, [r2, r1]
+ pop {r4, pc}
+_02030612:
+ bl FUN_0202CB8C
+ ldr r1, _02030670 ; =0x0000FFFE
+ tst r0, r1
+ beq _0203065E
+ ldr r0, _02030664 ; =0x02105D58
+ ldrb r1, [r0, #0x0]
+ add r1, r1, #0x1
+ strb r1, [r0, #0x0]
+ mov r0, #0x1
+ bl FUN_020304D4
+ ldr r0, _02030660 ; =0x021C59F4
+ ldr r1, _02030668 ; =0x0000067F
+ ldr r3, [r0, #0x4]
+ mov r0, #0x0
+ ldrb r2, [r3, r1]
+ mov r1, #0x26
+ mul r1, r2
+ lsl r2, r4, #0x10
+ add r1, r3, r1
+ lsr r2, r2, #0x10
+ bl FUN_020303F4
+ ldr r2, _02030660 ; =0x021C59F4
+ ldr r1, _02030668 ; =0x0000067F
+ ldr r4, [r2, #0x4]
+ mov r0, #0x1
+ ldrb r3, [r4, r1]
+ sub r0, r0, r3
+ strb r0, [r4, r1]
+ add r0, r1, #0x0
+ ldr r2, [r2, #0x4]
+ sub r0, #0x4b
+ ldr r0, [r2, r0]
+ sub r1, #0x4b
+ add r0, r0, #0x1
+ str r0, [r2, r1]
+_0203065E:
+ pop {r4, pc}
+ .balign 4
+_02030660: .word 0x021C59F4
+_02030664: .word 0x02105D58
+_02030668: .word 0x0000067F
+_0203066C: .word FUN_020304D4
+_02030670: .word 0x0000FFFE
+
+ thumb_func_start FUN_02030674
+FUN_02030674: ; 0x02030674
+ push {r3-r7, lr}
+ ldr r7, _02030798 ; =0x021C59F4
+ mov r6, #0x0
+ ldr r5, [r7, #0x4]
+ ldr r2, _0203079C ; =0x0000062C
+ add r4, r6, #0x0
+ ldrb r0, [r5, r2]
+ cmp r0, #0x0
+ beq _02030690
+ sub r1, r2, #0x4
+ ldrh r1, [r5, r1]
+ mov r3, #0xf0
+ tst r3, r1
+ bne _02030692
+_02030690:
+ b _02030794
+_02030692:
+ cmp r0, #0x2
+ bne _020306D0
+ mov r0, #0x20
+ tst r0, r1
+ beq _020306A4
+ mov r0, #0x10
+ orr r0, r6
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_020306A4:
+ mov r0, #0x10
+ tst r0, r1
+ beq _020306B2
+ mov r0, #0x20
+ orr r0, r4
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_020306B2:
+ mov r0, #0x40
+ tst r0, r1
+ beq _020306C0
+ mov r0, #0x80
+ orr r0, r4
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_020306C0:
+ mov r0, #0x80
+ tst r0, r1
+ beq _0203077E
+ mov r0, #0x40
+ orr r0, r4
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0203077E
+_020306D0:
+ add r0, r2, #0x2
+ ldrh r0, [r5, r0]
+ cmp r0, #0x0
+ beq _020306F2
+ add r4, r0, #0x0
+ add r0, r2, #0x1
+ ldrsb r0, [r5, r0]
+ sub r1, r0, #0x1
+ add r0, r2, #0x1
+ strb r1, [r5, r0]
+ ldr r1, [r7, #0x4]
+ ldrsb r0, [r1, r0]
+ cmp r0, #0x0
+ bge _0203077E
+ add r0, r2, #0x2
+ strh r6, [r1, r0]
+ b _0203077E
+_020306F2:
+ add r0, r2, #0x0
+ sub r0, #0x34
+ add r6, r5, r0
+ sub r2, #0x34
+ ldr r0, [r6, #0x8]
+ ldr r1, [r6, #0xc]
+ ldr r2, [r5, r2]
+ ldr r3, [r6, #0x4]
+ bl _ll_mul
+ add r3, r0, #0x0
+ add r2, r1, #0x0
+ ldr r0, [r6, #0x10]
+ ldr r1, [r6, #0x14]
+ add r0, r0, r3
+ adc r1, r2
+ ldr r2, _020307A0 ; =0x000005F8
+ str r0, [r5, r2]
+ mov r2, #0x0
+ str r1, [r6, #0x4]
+ lsr r0, r1, #0x1e
+ lsl r1, r2, #0x2
+ orr r1, r0
+ cmp r1, #0x3
+ bhi _02030746
+ add r0, r1, r1
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02030730: ; jump table (using 16-bit offset)
+ .short _02030738 - _02030730 - 2; case 0
+ .short _0203073C - _02030730 - 2; case 1
+ .short _02030740 - _02030730 - 2; case 2
+ .short _02030744 - _02030730 - 2; case 3
+_02030738:
+ mov r4, #0x20
+ b _02030746
+_0203073C:
+ mov r4, #0x10
+ b _02030746
+_02030740:
+ mov r4, #0x40
+ b _02030746
+_02030744:
+ mov r4, #0x80
+_02030746:
+ ldr r0, _02030798 ; =0x021C59F4
+ ldr r5, [r0, #0x4]
+ ldr r0, _020307A0 ; =0x000005F8
+ add r6, r5, r0
+ ldr r0, [r6, #0x8]
+ ldr r1, [r6, #0xc]
+ ldr r2, [r6, #0x0]
+ ldr r3, [r6, #0x4]
+ bl _ll_mul
+ ldr r3, [r6, #0x10]
+ ldr r2, [r6, #0x14]
+ add r0, r3, r0
+ adc r2, r1
+ ldr r1, _020307A0 ; =0x000005F8
+ mov r3, #0x0
+ str r0, [r5, r1]
+ str r2, [r6, #0x4]
+ lsr r0, r2, #0x1c
+ lsl r2, r3, #0x4
+ orr r2, r0
+ add r0, r1, #0x0
+ add r0, #0x35
+ strb r2, [r5, r0]
+ ldr r0, _02030798 ; =0x021C59F4
+ add r1, #0x36
+ ldr r0, [r0, #0x4]
+ strh r4, [r0, r1]
+_0203077E:
+ ldr r2, _02030798 ; =0x021C59F4
+ ldr r1, _020307A4 ; =0x00000628
+ ldr r5, [r2, #0x4]
+ mov r0, #0xf0
+ ldrh r3, [r5, r1]
+ bic r3, r0
+ strh r3, [r5, r1]
+ ldr r2, [r2, #0x4]
+ ldrh r0, [r2, r1]
+ add r0, r0, r4
+ strh r0, [r2, r1]
+_02030794:
+ pop {r3-r7, pc}
+ nop
+_02030798: .word 0x021C59F4
+_0203079C: .word 0x0000062C
+_020307A0: .word 0x000005F8
+_020307A4: .word 0x00000628
+
+ thumb_func_start FUN_020307A8
+FUN_020307A8: ; 0x020307A8
+ ldr r0, _020307B4 ; =0x021C59F4
+ mov r2, #0x1
+ ldr r1, [r0, #0x4]
+ ldr r0, _020307B8 ; =0x0000062C
+ strb r2, [r1, r0]
+ bx lr
+ .balign 4
+_020307B4: .word 0x021C59F4
+_020307B8: .word 0x0000062C
+
+ thumb_func_start FUN_020307BC
+FUN_020307BC: ; 0x020307BC
+ ldr r0, _020307C8 ; =0x021C59F4
+ mov r2, #0x2
+ ldr r1, [r0, #0x4]
+ ldr r0, _020307CC ; =0x0000062C
+ strb r2, [r1, r0]
+ bx lr
+ .balign 4
+_020307C8: .word 0x021C59F4
+_020307CC: .word 0x0000062C
+
+ thumb_func_start FUN_020307D0
+FUN_020307D0: ; 0x020307D0
+ ldr r0, _020307DC ; =0x021C59F4
+ mov r2, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _020307E0 ; =0x0000062C
+ strb r2, [r1, r0]
+ bx lr
+ .balign 4
+_020307DC: .word 0x021C59F4
+_020307E0: .word 0x0000062C
+
+ thumb_func_start FUN_020307E4
+FUN_020307E4: ; 0x020307E4
+ push {r4-r7}
+ ldr r4, _02030868 ; =0x021C59F4
+ lsl r6, r1, #0x1
+ ldr r2, [r4, #0x4]
+ mov r5, #0x0
+ add r3, r2, r6
+ mov r2, #0x61
+ lsl r2, r2, #0x4
+ strh r5, [r3, r2]
+ ldrb r5, [r0, #0x0]
+ mov r3, #0x10
+ add r7, r5, #0x0
+ and r7, r3
+ cmp r7, #0x10
+ bne _02030860
+ mov r7, #0xc
+ and r5, r7
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ bne _0203081A
+ ldr r3, [r4, #0x4]
+ add r4, r3, r2
+ ldrh r3, [r4, r6]
+ mov r2, #0x40
+ orr r2, r3
+ strh r2, [r4, r6]
+ b _0203084C
+_0203081A:
+ cmp r5, #0x4
+ bne _0203082C
+ ldr r3, [r4, #0x4]
+ add r4, r3, r2
+ ldrh r3, [r4, r6]
+ mov r2, #0x80
+ orr r2, r3
+ strh r2, [r4, r6]
+ b _0203084C
+_0203082C:
+ cmp r5, #0x8
+ bne _0203083E
+ ldr r3, [r4, #0x4]
+ add r4, r3, r2
+ ldrh r3, [r4, r6]
+ mov r2, #0x20
+ orr r2, r3
+ strh r2, [r4, r6]
+ b _0203084C
+_0203083E:
+ cmp r5, #0xc
+ bne _0203084C
+ ldr r4, [r4, #0x4]
+ add r4, r4, r2
+ ldrh r2, [r4, r6]
+ orr r2, r3
+ strh r2, [r4, r6]
+_0203084C:
+ ldrb r0, [r0, #0x0]
+ asr r2, r0, #0x5
+ mov r0, #0x7
+ and r2, r0
+ ldr r0, _02030868 ; =0x021C59F4
+ ldr r0, [r0, #0x4]
+ add r1, r0, r1
+ mov r0, #0x62
+ lsl r0, r0, #0x4
+ strb r2, [r1, r0]
+_02030860:
+ mov r0, #0x1
+ pop {r4-r7}
+ bx lr
+ nop
+_02030868: .word 0x021C59F4
+
+ thumb_func_start FUN_0203086C
+FUN_0203086C: ; 0x0203086C
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02030870
+FUN_02030870: ; 0x02030870
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _0203091C ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _02030920 ; =0x0000062A
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ beq _02030884
+ mov r0, #0x0
+ pop {r4, pc}
+_02030884:
+ bl FUN_02030FE0
+ cmp r0, #0x0
+ bne _02030890
+ mov r0, #0x0
+ pop {r4, pc}
+_02030890:
+ ldr r0, _0203091C ; =0x021C59F4
+ ldr r2, [r0, #0x4]
+ ldr r0, _02030924 ; =0x00000681
+ ldrb r1, [r2, r0]
+ cmp r1, #0x0
+ beq _020308A0
+ sub r1, r1, #0x1
+ strb r1, [r2, r0]
+_020308A0:
+ ldr r1, _0203091C ; =0x021C59F4
+ ldr r0, _02030928 ; =0x00000628
+ ldr r2, [r1, #0x4]
+ mov r3, #0x40
+ ldrh r2, [r2, r0]
+ tst r3, r2
+ beq _020308C0
+ ldrb r3, [r4, #0x0]
+ mov r2, #0x10
+ add r0, #0x59
+ orr r2, r3
+ strb r2, [r4, #0x0]
+ ldr r1, [r1, #0x4]
+ mov r2, #0x8
+ strb r2, [r1, r0]
+ b _02030906
+_020308C0:
+ mov r3, #0x80
+ tst r3, r2
+ beq _020308D8
+ ldrb r3, [r4, #0x0]
+ mov r2, #0x14
+ add r0, #0x59
+ orr r2, r3
+ strb r2, [r4, #0x0]
+ ldr r1, [r1, #0x4]
+ mov r2, #0x8
+ strb r2, [r1, r0]
+ b _02030906
+_020308D8:
+ mov r3, #0x20
+ tst r3, r2
+ beq _020308F0
+ ldrb r3, [r4, #0x0]
+ mov r2, #0x18
+ add r0, #0x59
+ orr r2, r3
+ strb r2, [r4, #0x0]
+ ldr r1, [r1, #0x4]
+ mov r2, #0x8
+ strb r2, [r1, r0]
+ b _02030906
+_020308F0:
+ mov r3, #0x10
+ tst r2, r3
+ beq _02030906
+ ldrb r3, [r4, #0x0]
+ mov r2, #0x1c
+ add r0, #0x59
+ orr r2, r3
+ strb r2, [r4, #0x0]
+ ldr r1, [r1, #0x4]
+ mov r2, #0x8
+ strb r2, [r1, r0]
+_02030906:
+ ldr r0, _0203091C ; =0x021C59F4
+ ldrb r2, [r4, #0x0]
+ ldr r1, [r0, #0x4]
+ ldr r0, _0203092C ; =0x0000062B
+ ldrb r0, [r1, r0]
+ lsl r0, r0, #0x5
+ orr r0, r2
+ strb r0, [r4, #0x0]
+ mov r0, #0x0
+ pop {r4, pc}
+ nop
+_0203091C: .word 0x021C59F4
+_02030920: .word 0x0000062A
+_02030924: .word 0x00000681
+_02030928: .word 0x00000628
+_0203092C: .word 0x0000062B
+
+ thumb_func_start FUN_02030930
+FUN_02030930: ; 0x02030930
+ push {r3-r5, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ bl FUN_02033534
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02031228
+ add r5, r0, #0x0
+ bl FUN_02033534
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0202D858
+ ldr r0, _020309F0 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _020309F4 ; =0x00000684
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ bne _02030960
+ mov r0, #0x0
+ b _02030962
+_02030960:
+ mov r0, #0x1
+_02030962:
+ strb r0, [r4, #0x0]
+ bl FUN_0202FA28
+ cmp r0, #0x0
+ bne _02030972
+ add r0, r4, #0x0
+ bl FUN_02030870
+_02030972:
+ ldr r1, _020309F0 ; =0x021C59F4
+ ldr r0, _020309F4 ; =0x00000684
+ ldr r2, [r1, #0x4]
+ mov r3, #0x0
+ strb r3, [r2, r0]
+ ldr r1, [r1, #0x4]
+ ldr r0, _020309F8 ; =0x0000054C
+ add r0, r1, r0
+ bl FUN_0202D4E4
+ cmp r0, #0x0
+ beq _0203099E
+ ldrb r1, [r4, #0x0]
+ mov r0, #0x2
+ orr r0, r1
+ strb r0, [r4, #0x0]
+ ldrb r0, [r4, #0x0]
+ cmp r0, #0x2
+ bne _020309E8
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_0203099E:
+ sub r0, r5, #0x1
+ str r0, [sp, #0x4]
+ add r0, r4, #0x1
+ str r0, [sp, #0x0]
+ ldr r0, _020309F0 ; =0x021C59F4
+ mov r2, #0x1
+ ldr r1, [r0, #0x4]
+ ldr r0, _020309F8 ; =0x0000054C
+ add r0, r1, r0
+ add r1, sp, #0x0
+ bl FUN_0202D760
+ cmp r0, #0x0
+ bne _020309C4
+ ldr r0, _020309F0 ; =0x021C59F4
+ mov r2, #0x1
+ ldr r1, [r0, #0x4]
+ ldr r0, _020309F4 ; =0x00000684
+ strb r2, [r1, r0]
+_020309C4:
+ bl FUN_0202FA28
+ cmp r0, #0x1
+ bne _020309E8
+ ldr r2, _020309F0 ; =0x021C59F4
+ ldr r1, _020309FC ; =0x0000065E
+ ldr r3, [r2, #0x4]
+ ldrb r0, [r3, r1]
+ add r0, r0, #0x1
+ strb r0, [r3, r1]
+ ldr r2, [r2, #0x4]
+ ldrb r0, [r4, #0x0]
+ ldrb r1, [r2, r1]
+ lsl r2, r1, #0x4
+ mov r1, #0xf0
+ and r1, r2
+ orr r0, r1
+ strb r0, [r4, #0x0]
+_020309E8:
+ mov r0, #0x1
+ add sp, #0x8
+ pop {r3-r5, pc}
+ nop
+_020309F0: .word 0x021C59F4
+_020309F4: .word 0x00000684
+_020309F8: .word 0x0000054C
+_020309FC: .word 0x0000065E
+
+ thumb_func_start FUN_02030A00
+FUN_02030A00: ; 0x02030A00
+ push {r4, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ mov r0, #0xb
+ strb r0, [r4, #0x0]
+ ldr r0, _02030A6C ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _02030A70 ; =0x00000685
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ bne _02030A1A
+ mov r0, #0x0
+ b _02030A1C
+_02030A1A:
+ mov r0, #0x1
+_02030A1C:
+ strb r0, [r4, #0x1]
+ bl FUN_0202CB8C
+ asr r1, r0, #0x8
+ strb r1, [r4, #0x2]
+ strb r0, [r4, #0x3]
+ mov r0, #0xbb
+ str r0, [sp, #0x4]
+ add r0, r4, #0x5
+ str r0, [sp, #0x0]
+ ldr r0, _02030A6C ; =0x021C59F4
+ mov r2, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _02030A74 ; =0x0000056C
+ add r0, r1, r0
+ add r1, sp, #0x0
+ bl FUN_0202D760
+ cmp r0, #0x0
+ beq _02030A5A
+ ldr r0, _02030A6C ; =0x021C59F4
+ mov r2, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _02030A70 ; =0x00000685
+ strb r2, [r1, r0]
+ ldr r1, [sp, #0x4]
+ mov r0, #0xbb
+ sub r0, r0, r1
+ add sp, #0x8
+ strb r0, [r4, #0x4]
+ pop {r4, pc}
+_02030A5A:
+ ldr r0, _02030A6C ; =0x021C59F4
+ mov r2, #0x1
+ ldr r1, [r0, #0x4]
+ ldr r0, _02030A70 ; =0x00000685
+ strb r2, [r1, r0]
+ mov r0, #0xbb
+ strb r0, [r4, #0x4]
+ add sp, #0x8
+ pop {r4, pc}
+ .balign 4
+_02030A6C: .word 0x021C59F4
+_02030A70: .word 0x00000685
+_02030A74: .word 0x0000056C
+
+ thumb_func_start FUN_02030A78
+FUN_02030A78: ; 0x02030A78
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_02031190
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ bne _02030A9C
+ bl FUN_02031280
+ cmp r0, #0x0
+ bne _02030A9C
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02030A9C:
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ mov r0, #0x0
+ str r0, [sp, #0x4]
+ ldr r0, _02030AD4 ; =0x021C59F4
+ add r2, r4, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _02030AD8 ; =0x0000054C
+ add r3, r6, #0x0
+ add r0, r1, r0
+ add r1, r5, #0x0
+ bl FUN_0202D684
+ cmp r0, #0x0
+ beq _02030AC0
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02030AC0:
+ bl FUN_02033534
+ cmp r0, #0xa
+ bne _02030ACC
+ bl FUN_02031454
+_02030ACC:
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r4-r6, pc}
+ nop
+_02030AD4: .word 0x021C59F4
+_02030AD8: .word 0x0000054C
+
+ thumb_func_start FUN_02030ADC
+FUN_02030ADC: ; 0x02030ADC
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_02031190
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ bne _02030B00
+ bl FUN_02031280
+ cmp r0, #0x0
+ bne _02030B00
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02030B00:
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ ldr r0, _02030B34 ; =0x021C59F4
+ add r2, r4, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _02030B38 ; =0x0000054C
+ add r3, r6, #0x0
+ add r0, r1, r0
+ add r1, r5, #0x0
+ bl FUN_0202D684
+ cmp r0, #0x0
+ beq _02030B22
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02030B22:
+ bl FUN_02033534
+ cmp r0, #0xa
+ bne _02030B2E
+ bl FUN_02031454
+_02030B2E:
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r4-r6, pc}
+ .balign 4
+_02030B34: .word 0x021C59F4
+_02030B38: .word 0x0000054C
+
+ thumb_func_start FUN_02030B3C
+FUN_02030B3C: ; 0x02030B3C
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_02031190
+ cmp r0, #0x0
+ beq _02030B58
+ bl ErrorHandling
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02030B58:
+ mov r0, #0x0
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ bne _02030B70
+ bl FUN_02031280
+ cmp r0, #0x0
+ bne _02030B70
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02030B70:
+ bl FUN_0202FA28
+ cmp r0, #0x1
+ bne _02030B86
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_02030A78
+ add sp, #0x8
+ pop {r4-r6, pc}
+_02030B86:
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ mov r0, #0x0
+ str r0, [sp, #0x4]
+ ldr r0, _02030BBC ; =0x021C59F4
+ add r2, r4, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _02030BC0 ; =0x0000056C
+ add r3, r6, #0x0
+ add r0, r1, r0
+ add r1, r5, #0x0
+ bl FUN_0202D684
+ cmp r0, #0x0
+ beq _02030BAA
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02030BAA:
+ bl FUN_02033534
+ cmp r0, #0xa
+ bne _02030BB6
+ bl FUN_02031454
+_02030BB6:
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r4-r6, pc}
+ .balign 4
+_02030BBC: .word 0x021C59F4
+_02030BC0: .word 0x0000056C
+
+ thumb_func_start FUN_02030BC4
+FUN_02030BC4: ; 0x02030BC4
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_02031190
+ cmp r0, #0x0
+ beq _02030BE0
+ bl FUN_02031454
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02030BE0:
+ mov r0, #0x0
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ bne _02030BF8
+ bl FUN_02031280
+ cmp r0, #0x0
+ bne _02030BF8
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02030BF8:
+ bl FUN_0202FA28
+ cmp r0, #0x1
+ bne _02030C0E
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_02030ADC
+ add sp, #0x8
+ pop {r4-r6, pc}
+_02030C0E:
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ ldr r0, _02030C44 ; =0x021C59F4
+ add r2, r4, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _02030C48 ; =0x0000056C
+ add r3, r6, #0x0
+ add r0, r1, r0
+ add r1, r5, #0x0
+ bl FUN_0202D684
+ cmp r0, #0x0
+ beq _02030C30
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02030C30:
+ bl FUN_02033534
+ cmp r0, #0xa
+ bne _02030C3C
+ bl FUN_02031454
+_02030C3C:
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r4-r6, pc}
+ nop
+_02030C44: .word 0x021C59F4
+_02030C48: .word 0x0000056C
+
+ thumb_func_start FUN_02030C4C
+FUN_02030C4C: ; 0x02030C4C
+ ldr r3, _02030C54 ; =FUN_02030BC4
+ mov r2, #0x0
+ bx r3
+ nop
+_02030C54: .word FUN_02030BC4
+
+ thumb_func_start FUN_02030C58
+FUN_02030C58: ; 0x02030C58
+ ldr r0, _02030C64 ; =0x021C59F4
+ ldr r3, _02030C68 ; =FUN_0202D498
+ ldr r1, [r0, #0x4]
+ ldr r0, _02030C6C ; =0x00000464
+ add r0, r1, r0
+ bx r3
+ .balign 4
+_02030C64: .word 0x021C59F4
+_02030C68: .word FUN_0202D498
+_02030C6C: .word 0x00000464
+
+ thumb_func_start FUN_02030C70
+FUN_02030C70: ; 0x02030C70
+ push {r4, lr}
+ ldr r4, [sp, #0x8]
+ bl FUN_0202D934
+ mov r0, #0xee
+ strb r0, [r4, #0xa]
+ ldr r0, _02030C88 ; =0x0000FFFF
+ strh r0, [r4, #0x8]
+ mov r0, #0x0
+ str r0, [r4, #0x4]
+ str r0, [r4, #0x0]
+ pop {r4, pc}
+ .balign 4
+_02030C88: .word 0x0000FFFF
+
+ thumb_func_start FUN_02030C8C
+FUN_02030C8C: ; 0x02030C8C
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r6, r0, #0x0
+ str r1, [sp, #0x4]
+ str r2, [sp, #0x8]
+ ldr r5, [sp, #0x28]
+ bl FUN_0202D478
+ cmp r0, #0x0
+ beq _02030D94
+_02030CA0:
+ ldrb r7, [r5, #0xa]
+ cmp r7, #0xee
+ bne _02030CB2
+ add r0, r6, #0x0
+ bl FUN_0202D41C
+ add r7, r0, #0x0
+ cmp r7, #0xee
+ beq _02030D8A
+_02030CB2:
+ mov r0, #0x4
+ ldrsh r0, [r6, r0]
+ strb r7, [r5, #0xa]
+ ldrh r4, [r5, #0x8]
+ str r0, [sp, #0x10]
+ ldr r0, _02030D98 ; =0x0000FFFF
+ cmp r4, r0
+ bne _02030D06
+ add r0, r7, #0x0
+ bl FUN_0202D9A0
+ add r4, r0, #0x0
+ ldr r0, _02030D9C ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _02030DA0 ; =0x00000689
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ bne _02030D94
+ ldr r0, _02030D98 ; =0x0000FFFF
+ cmp r4, r0
+ bne _02030D04
+ add r0, r6, #0x0
+ bl FUN_0202D478
+ cmp r0, #0x1
+ bge _02030CEE
+ ldr r0, [sp, #0x10]
+ add sp, #0x14
+ strh r0, [r6, #0x4]
+ pop {r4-r7, pc}
+_02030CEE:
+ add r0, r6, #0x0
+ bl FUN_0202D41C
+ lsl r4, r0, #0x8
+ add r0, r6, #0x0
+ bl FUN_0202D41C
+ add r4, r4, r0
+ mov r0, #0x4
+ ldrsh r0, [r6, r0]
+ str r0, [sp, #0x10]
+_02030D04:
+ strh r4, [r5, #0x8]
+_02030D06:
+ add r0, r7, #0x0
+ bl FUN_0202DA04
+ cmp r0, #0x0
+ beq _02030D5E
+ ldr r0, [r5, #0x4]
+ cmp r0, #0x0
+ bne _02030D22
+ ldrh r2, [r5, #0x8]
+ ldr r1, [sp, #0x4]
+ add r0, r7, #0x0
+ bl FUN_0202DA40
+ str r0, [r5, #0x4]
+_02030D22:
+ ldr r2, [r5, #0x0]
+ ldr r1, [sp, #0x8]
+ add r0, r6, #0x0
+ sub r2, r4, r2
+ bl FUN_0202D400
+ ldr r2, [r5, #0x4]
+ str r0, [sp, #0xc]
+ cmp r2, #0x0
+ beq _02030D42
+ ldr r1, [r5, #0x0]
+ ldr r0, [sp, #0x8]
+ add r1, r2, r1
+ ldr r2, [sp, #0xc]
+ bl MI_CpuCopy8
+_02030D42:
+ ldr r1, [r5, #0x0]
+ ldr r0, [sp, #0xc]
+ add r0, r1, r0
+ str r0, [r5, #0x0]
+ cmp r0, r4
+ blt _02030D8A
+ str r5, [sp, #0x0]
+ ldr r0, [sp, #0x4]
+ ldr r3, [r5, #0x4]
+ add r1, r7, #0x0
+ add r2, r4, #0x0
+ bl FUN_02030C70
+ b _02030D8A
+_02030D5E:
+ add r0, r6, #0x0
+ bl FUN_0202D478
+ cmp r0, r4
+ blt _02030D82
+ ldr r1, [sp, #0x8]
+ add r0, r6, #0x0
+ add r2, r4, #0x0
+ bl FUN_0202D400
+ ldr r0, [sp, #0x4]
+ ldr r3, [sp, #0x8]
+ add r1, r7, #0x0
+ add r2, r4, #0x0
+ str r5, [sp, #0x0]
+ bl FUN_02030C70
+ b _02030D8A
+_02030D82:
+ ldr r0, [sp, #0x10]
+ add sp, #0x14
+ strh r0, [r6, #0x4]
+ pop {r4-r7, pc}
+_02030D8A:
+ add r0, r6, #0x0
+ bl FUN_0202D478
+ cmp r0, #0x0
+ bne _02030CA0
+_02030D94:
+ add sp, #0x14
+ pop {r4-r7, pc}
+ .balign 4
+_02030D98: .word 0x0000FFFF
+_02030D9C: .word 0x021C59F4
+_02030DA0: .word 0x00000689
+
+ thumb_func_start FUN_02030DA4
+FUN_02030DA4: ; 0x02030DA4
+ push {r3, lr}
+ ldr r0, _02030DF0 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ cmp r1, #0x0
+ beq _02030DEE
+ ldr r0, _02030DF4 ; =0x0000068B
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ bne _02030DEE
+ mov r0, #0x47
+ lsl r0, r0, #0x4
+ add r0, r1, r0
+ bl FUN_0202D4BC
+ ldr r0, _02030DF0 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ mov r0, #0x47
+ lsl r0, r0, #0x4
+ add r0, r1, r0
+ bl FUN_0202D478
+ cmp r0, #0x0
+ ble _02030DEE
+ ldr r0, _02030DF0 ; =0x021C59F4
+ mov r2, #0x47
+ ldr r3, [r0, #0x4]
+ ldr r0, _02030DF8 ; =0x000005EC
+ lsl r2, r2, #0x4
+ add r0, r3, r0
+ str r0, [sp, #0x0]
+ add r0, r3, r2
+ sub r2, #0x10
+ ldr r2, [r3, r2]
+ mov r1, #0x0
+ mov r3, #0x1
+ bl FUN_02030C8C
+_02030DEE:
+ pop {r3, pc}
+ .balign 4
+_02030DF0: .word 0x021C59F4
+_02030DF4: .word 0x0000068B
+_02030DF8: .word 0x000005EC
+
+ thumb_func_start FUN_02030DFC
+FUN_02030DFC: ; 0x02030DFC
+ push {r3-r7, lr}
+ ldr r0, _02030E6C ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ cmp r1, #0x0
+ beq _02030E68
+ ldr r0, _02030E70 ; =0x0000068B
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ bne _02030E68
+ bl FUN_02033534
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0202D858
+ add r7, r0, #0x1
+ mov r4, #0x0
+ cmp r7, #0x0
+ ble _02030E68
+ ldr r6, _02030E6C ; =0x021C59F4
+ add r5, r4, #0x0
+_02030E26:
+ ldr r1, [r6, #0x4]
+ ldr r0, _02030E74 ; =0x000004E8
+ add r0, r1, r0
+ add r0, r0, r5
+ bl FUN_0202D4BC
+ ldr r1, [r6, #0x4]
+ ldr r0, _02030E74 ; =0x000004E8
+ add r0, r1, r0
+ add r0, r0, r5
+ bl FUN_0202D478
+ cmp r0, #0x0
+ ble _02030E60
+ ldr r3, [r6, #0x4]
+ ldr r0, _02030E78 ; =0x0000058C
+ mov r2, #0x46
+ add r0, r3, r0
+ add r0, r0, r5
+ str r0, [sp, #0x0]
+ ldr r0, _02030E74 ; =0x000004E8
+ lsl r2, r2, #0x4
+ add r0, r3, r0
+ ldr r2, [r3, r2]
+ add r0, r0, r5
+ add r1, r4, #0x0
+ mov r3, #0x0
+ bl FUN_02030C8C
+_02030E60:
+ add r4, r4, #0x1
+ add r5, #0xc
+ cmp r4, r7
+ blt _02030E26
+_02030E68:
+ pop {r3-r7, pc}
+ nop
+_02030E6C: .word 0x021C59F4
+_02030E70: .word 0x0000068B
+_02030E74: .word 0x000004E8
+_02030E78: .word 0x0000058C
+
+ thumb_func_start FUN_02030E7C
+FUN_02030E7C: ; 0x02030E7C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _02030F14 ; =0x021C59F4
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ bne _02030E8C
+ mov r0, #0x0
+ pop {r4, pc}
+_02030E8C:
+ bl FUN_02033534
+ cmp r0, #0x13
+ blt _02030EC0
+ ldr r0, _02030F14 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _02030F18 ; =0x00000687
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ beq _02030EBC
+ bl MOD04_021D8018
+ mov r1, #0x0
+ mvn r1, r1
+ cmp r0, r1
+ beq _02030EBC
+ cmp r4, #0x0
+ bne _02030EB4
+ mov r0, #0x1
+ pop {r4, pc}
+_02030EB4:
+ cmp r4, #0x1
+ bne _02030EBC
+ mov r0, #0x1
+ pop {r4, pc}
+_02030EBC:
+ mov r0, #0x0
+ pop {r4, pc}
+_02030EC0:
+ bl FUN_02030F40
+ cmp r0, #0x0
+ bne _02030ECC
+ mov r0, #0x0
+ pop {r4, pc}
+_02030ECC:
+ bl FUN_0202CBD4
+ cmp r0, #0x4
+ beq _02030ED8
+ mov r0, #0x0
+ pop {r4, pc}
+_02030ED8:
+ bl FUN_02031190
+ cmp r4, r0
+ bne _02030EE4
+ mov r0, #0x1
+ pop {r4, pc}
+_02030EE4:
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _02030EFE
+ bl FUN_0202CB8C
+ mov r1, #0x1
+ add r2, r1, #0x0
+ lsl r2, r4
+ tst r0, r2
+ beq _02030F10
+ add r0, r1, #0x0
+ pop {r4, pc}
+_02030EFE:
+ ldr r0, _02030F14 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _02030F1C ; =0x0000065C
+ ldrh r2, [r1, r0]
+ mov r0, #0x1
+ add r1, r0, #0x0
+ lsl r1, r4
+ tst r1, r2
+ bne _02030F12
+_02030F10:
+ mov r0, #0x0
+_02030F12:
+ pop {r4, pc}
+ .balign 4
+_02030F14: .word 0x021C59F4
+_02030F18: .word 0x00000687
+_02030F1C: .word 0x0000065C
+
+ thumb_func_start FUN_02030F20
+FUN_02030F20: ; 0x02030F20
+ push {r3-r5, lr}
+ mov r4, #0x0
+ add r5, r4, #0x0
+_02030F26:
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ beq _02030F34
+ add r4, r4, #0x1
+_02030F34:
+ add r5, r5, #0x1
+ cmp r5, #0x8
+ blt _02030F26
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02030F40
+FUN_02030F40: ; 0x02030F40
+ push {r3, lr}
+ ldr r0, _02030F5C ; =0x021C59F4
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ beq _02030F56
+ bl FUN_02033534
+ cmp r0, #0x13
+ blt _02030F56
+ mov r0, #0x1
+ pop {r3, pc}
+_02030F56:
+ bl FUN_0202EDF8
+ pop {r3, pc}
+ .balign 4
+_02030F5C: .word 0x021C59F4
+
+ thumb_func_start FUN_02030F60
+FUN_02030F60: ; 0x02030F60
+ ldr r1, _02030F6C ; =0x021C59F4
+ ldr r2, [r1, #0x4]
+ ldr r1, _02030F70 ; =0x0000062B
+ strb r0, [r2, r1]
+ bx lr
+ nop
+_02030F6C: .word 0x021C59F4
+_02030F70: .word 0x0000062B
+
+ thumb_func_start FUN_02030F74
+FUN_02030F74: ; 0x02030F74
+ ldr r1, _02030F84 ; =0x021C59F4
+ ldr r1, [r1, #0x4]
+ add r1, r1, r0
+ mov r0, #0x62
+ lsl r0, r0, #0x4
+ ldrb r0, [r1, r0]
+ bx lr
+ nop
+_02030F84: .word 0x021C59F4
+
+ thumb_func_start FUN_02030F88
+FUN_02030F88: ; 0x02030F88
+ ldr r1, _02030FA4 ; =0x021C59F4
+ ldr r2, [r1, #0x4]
+ cmp r2, #0x0
+ bne _02030F94
+ mov r0, #0x0
+ bx lr
+_02030F94:
+ mov r1, #0x61
+ lsl r1, r1, #0x4
+ add r3, r2, r1
+ lsl r2, r0, #0x1
+ ldrh r0, [r3, r2]
+ mov r1, #0x0
+ strh r1, [r3, r2]
+ bx lr
+ .balign 4
+_02030FA4: .word 0x021C59F4
+
+ thumb_func_start FUN_02030FA8
+FUN_02030FA8: ; 0x02030FA8
+ ldr r0, _02030FC0 ; =0x021C59F4
+ ldr r3, [r0, #0x4]
+ cmp r3, #0x0
+ beq _02030FBC
+ ldr r1, _02030FC4 ; =0x00000628
+ mov r0, #0x2
+ ldrh r2, [r3, r1]
+ lsl r0, r0, #0xe
+ orr r0, r2
+ strh r0, [r3, r1]
+_02030FBC:
+ bx lr
+ nop
+_02030FC0: .word 0x021C59F4
+_02030FC4: .word 0x00000628
+
+ thumb_func_start FUN_02030FC8
+FUN_02030FC8: ; 0x02030FC8
+ ldr r0, _02030FD8 ; =0x021C59F4
+ ldr r2, [r0, #0x4]
+ cmp r2, #0x0
+ beq _02030FD6
+ ldr r0, _02030FDC ; =0x00000628
+ mov r1, #0x0
+ strh r1, [r2, r0]
+_02030FD6:
+ bx lr
+ .balign 4
+_02030FD8: .word 0x021C59F4
+_02030FDC: .word 0x00000628
+
+ thumb_func_start FUN_02030FE0
+FUN_02030FE0: ; 0x02030FE0
+ ldr r0, _02030FF8 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ cmp r1, #0x0
+ beq _02030FF4
+ ldr r0, _02030FFC ; =0x00000628
+ ldrh r1, [r1, r0]
+ mov r0, #0x2
+ lsl r0, r0, #0xe
+ and r0, r1
+ bx lr
+_02030FF4:
+ mov r0, #0x1
+ bx lr
+ .balign 4
+_02030FF8: .word 0x021C59F4
+_02030FFC: .word 0x00000628
+
+ thumb_func_start FUN_02031000
+FUN_02031000: ; 0x02031000
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_0202FA28
+ cmp r0, #0x1
+ bne _02031030
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ mov r0, #0x0
+ str r0, [sp, #0x4]
+ ldr r0, _02031050 ; =0x021C59F4
+ add r2, r4, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _02031054 ; =0x0000054C
+ add r3, r6, #0x0
+ add r0, r1, r0
+ add r1, r5, #0x0
+ bl FUN_0202D684
+ add sp, #0x8
+ pop {r4-r6, pc}
+_02031030:
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ mov r0, #0x0
+ str r0, [sp, #0x4]
+ ldr r0, _02031050 ; =0x021C59F4
+ add r2, r4, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _02031058 ; =0x0000056C
+ add r3, r6, #0x0
+ add r0, r1, r0
+ add r1, r5, #0x0
+ bl FUN_0202D684
+ add sp, #0x8
+ pop {r4-r6, pc}
+ nop
+_02031050: .word 0x021C59F4
+_02031054: .word 0x0000054C
+_02031058: .word 0x0000056C
+
+ thumb_func_start FUN_0203105C
+FUN_0203105C: ; 0x0203105C
+ push {r3-r5, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ str r0, [sp, #0x4]
+ ldr r0, _02031080 ; =0x021C59F4
+ add r4, r1, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _02031084 ; =0x0000054C
+ add r3, r2, #0x0
+ add r0, r1, r0
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_0202D684
+ add sp, #0x8
+ pop {r3-r5, pc}
+ .balign 4
+_02031080: .word 0x021C59F4
+_02031084: .word 0x0000054C
+
+ thumb_func_start FUN_02031088
+FUN_02031088: ; 0x02031088
+ push {r3, lr}
+ ldr r0, _02031100 ; =0x021C59F4
+ ldr r2, [r0, #0x4]
+ cmp r2, #0x0
+ beq _020310FC
+ ldr r1, _02031104 ; =0x0000067B
+ ldrb r0, [r2, r1]
+ cmp r0, #0x1
+ beq _020310A0
+ cmp r0, #0x3
+ beq _020310D8
+ pop {r3, pc}
+_020310A0:
+ bl FUN_0202FA28
+ cmp r0, #0x1
+ bne _020310B8
+ ldr r1, _02031100 ; =0x021C59F4
+ mov r0, #0xb
+ ldr r2, [r1, #0x4]
+ ldr r1, _02031108 ; =0x0000067C
+ add r1, r2, r1
+ bl FUN_020311D0
+ b _020310C8
+_020310B8:
+ ldr r1, _02031100 ; =0x021C59F4
+ mov r0, #0xb
+ ldr r2, [r1, #0x4]
+ ldr r1, _02031108 ; =0x0000067C
+ add r1, r2, r1
+ mov r2, #0x1
+ bl FUN_02030BC4
+_020310C8:
+ cmp r0, #0x0
+ beq _020310FC
+ ldr r0, _02031100 ; =0x021C59F4
+ mov r2, #0x2
+ ldr r1, [r0, #0x4]
+ ldr r0, _02031104 ; =0x0000067B
+ strb r2, [r1, r0]
+ pop {r3, pc}
+_020310D8:
+ add r1, r1, #0x1
+ mov r0, #0xc
+ add r1, r2, r1
+ bl FUN_020311D0
+ cmp r0, #0x0
+ beq _020310FC
+ ldr r0, _02031100 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _02031108 ; =0x0000067C
+ ldrb r0, [r1, r0]
+ bl FUN_0202F9E0
+ ldr r0, _02031100 ; =0x021C59F4
+ mov r2, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _02031104 ; =0x0000067B
+ strb r2, [r1, r0]
+_020310FC:
+ pop {r3, pc}
+ nop
+_02031100: .word 0x021C59F4
+_02031104: .word 0x0000067B
+_02031108: .word 0x0000067C
+
+ thumb_func_start FUN_0203110C
+FUN_0203110C: ; 0x0203110C
+ push {r4, lr}
+ add r4, r2, #0x0
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _0203112A
+ ldr r1, _0203112C ; =0x021C59F4
+ ldr r0, _02031130 ; =0x0000067B
+ ldr r2, [r1, #0x4]
+ mov r3, #0x1
+ strb r3, [r2, r0]
+ ldrb r2, [r4, #0x0]
+ ldr r1, [r1, #0x4]
+ add r0, r0, #0x1
+ strb r2, [r1, r0]
+_0203112A:
+ pop {r4, pc}
+ .balign 4
+_0203112C: .word 0x021C59F4
+_02031130: .word 0x0000067B
+
+ thumb_func_start FUN_02031134
+FUN_02031134: ; 0x02031134
+ push {r4, lr}
+ add r4, r2, #0x0
+ bl FUN_02031190
+ cmp r0, #0x0
+ beq _02031152
+ ldr r1, _02031154 ; =0x021C59F4
+ ldrb r3, [r4, #0x0]
+ ldr r2, [r1, #0x4]
+ ldr r0, _02031158 ; =0x0000067C
+ strb r3, [r2, r0]
+ ldr r1, [r1, #0x4]
+ mov r2, #0x3
+ sub r0, r0, #0x1
+ strb r2, [r1, r0]
+_02031152:
+ pop {r4, pc}
+ .balign 4
+_02031154: .word 0x021C59F4
+_02031158: .word 0x0000067C
+
+ thumb_func_start FUN_0203115C
+FUN_0203115C: ; 0x0203115C
+ push {r4, lr}
+ add r4, r2, #0x0
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _02031184
+ ldr r0, _02031188 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _0203118C ; =0x0000067B
+ ldrb r0, [r1, r0]
+ cmp r0, #0x2
+ bne _02031184
+ ldrb r0, [r4, #0x0]
+ bl FUN_0202F9E0
+ ldr r0, _02031188 ; =0x021C59F4
+ mov r2, #0x0
+ ldr r1, [r0, #0x4]
+ ldr r0, _0203118C ; =0x0000067B
+ strb r2, [r1, r0]
+_02031184:
+ pop {r4, pc}
+ nop
+_02031188: .word 0x021C59F4
+_0203118C: .word 0x0000067B
+
+ thumb_func_start FUN_02031190
+FUN_02031190: ; 0x02031190
+ push {r3, lr}
+ ldr r0, _020311CC ; =0x021C59F4
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ beq _020311C6
+ bl FUN_02033534
+ cmp r0, #0x13
+ blt _020311B4
+ bl MOD04_021D8018
+ mov r1, #0x0
+ mvn r1, r1
+ cmp r0, r1
+ beq _020311C6
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ pop {r3, pc}
+_020311B4:
+ bl FUN_02031280
+ cmp r0, #0x0
+ beq _020311C0
+ mov r0, #0x0
+ pop {r3, pc}
+_020311C0:
+ bl FUN_0202D19C
+ pop {r3, pc}
+_020311C6:
+ mov r0, #0x0
+ pop {r3, pc}
+ nop
+_020311CC: .word 0x021C59F4
+
+ thumb_func_start FUN_020311D0
+FUN_020311D0: ; 0x020311D0
+ ldr r3, _020311D8 ; =FUN_02030ADC
+ mov r2, #0x0
+ bx r3
+ nop
+_020311D8: .word FUN_02030ADC
+
+ thumb_func_start FUN_020311DC
+FUN_020311DC: ; 0x020311DC
+ ldr r3, _020311E4 ; =FUN_02030ADC
+ mov r1, #0x0
+ add r2, r1, #0x0
+ bx r3
+ .balign 4
+_020311E4: .word FUN_02030ADC
+
+ thumb_func_start FUN_020311E8
+FUN_020311E8: ; 0x020311E8
+ ldr r3, _020311EC ; =FUN_0202EE24
+ bx r3
+ .balign 4
+_020311EC: .word FUN_0202EE24
+
+ thumb_func_start FUN_020311F0
+FUN_020311F0: ; 0x020311F0
+ push {r3, lr}
+ bl FUN_02031280
+ cmp r0, #0x0
+ beq _020311FE
+ mov r0, #0x0
+ pop {r3, pc}
+_020311FE:
+ ldr r0, _02031220 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ cmp r1, #0x0
+ beq _0203121A
+ ldr r0, _02031224 ; =0x00000689
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ beq _0203121A
+ mov r0, #0x1
+ add r1, r0, #0x0
+ bl FUN_020334E8
+ mov r0, #0x1
+ pop {r3, pc}
+_0203121A:
+ bl FUN_0202EE60
+ pop {r3, pc}
+ .balign 4
+_02031220: .word 0x021C59F4
+_02031224: .word 0x00000689
+
+ thumb_func_start FUN_02031228
+FUN_02031228: ; 0x02031228
+ push {r3, lr}
+ bl FUN_0202D858
+ cmp r0, #0x5
+ blo _02031236
+ mov r0, #0xc
+ pop {r3, pc}
+_02031236:
+ bl FUN_0202FA28
+ cmp r0, #0x0
+ bne _02031242
+ mov r0, #0xc
+ pop {r3, pc}
+_02031242:
+ mov r0, #0x26
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02031248
+FUN_02031248: ; 0x02031248
+ push {r3, lr}
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0202D858
+ add r0, r0, #0x1
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02031258
+FUN_02031258: ; 0x02031258
+ push {r3, lr}
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0202D884
+ add r0, r0, #0x1
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02031268
+FUN_02031268: ; 0x02031268
+ ldr r1, _02031278 ; =0x021C59F4
+ ldr r2, [r1, #0x4]
+ cmp r2, #0x0
+ beq _02031274
+ ldr r1, _0203127C ; =0x00000686
+ strb r0, [r2, r1]
+_02031274:
+ bx lr
+ nop
+_02031278: .word 0x021C59F4
+_0203127C: .word 0x00000686
+
+ thumb_func_start FUN_02031280
+FUN_02031280: ; 0x02031280
+ ldr r0, _02031294 ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ cmp r1, #0x0
+ beq _0203128E
+ ldr r0, _02031298 ; =0x00000686
+ ldrb r0, [r1, r0]
+ bx lr
+_0203128E:
+ mov r0, #0x0
+ bx lr
+ nop
+_02031294: .word 0x021C59F4
+_02031298: .word 0x00000686
+
+ thumb_func_start FUN_0203129C
+FUN_0203129C: ; 0x0203129C
+ push {r3, lr}
+ bl FUN_0202F03C
+ cmp r0, #0x0
+ bne _020312B6
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _020312B6
+ mov r0, #0x2
+ add r1, sp, #0x0
+ bl FUN_02030C4C
+_020312B6:
+ bl FUN_0202F05C
+ pop {r3, pc}
+
+ thumb_func_start FUN_020312BC
+FUN_020312BC: ; 0x020312BC
+ push {r3-r7, lr}
+ sub sp, #0x20
+ add r4, r0, #0x0
+ add r0, sp, #0x10
+ add r1, sp, #0x4
+ bl FUN_0201265C
+ ldr r0, _02031340 ; =0x021C48B8
+ ldr r6, [sp, #0x10]
+ mov r5, #0x0
+ lsr r7, r6, #0x1c
+ lsl r5, r5, #0x4
+ ldr r1, [sp, #0xc]
+ ldr r0, [r0, #0x2c]
+ lsl r6, r6, #0x4
+ add r3, r1, r0
+ ldr r0, [sp, #0x18]
+ orr r5, r7
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x14]
+ ldr r1, [sp, #0x4]
+ add r6, r0, r6
+ ldr r0, _02031344 ; =0x00000000
+ ldr r2, [sp, #0x8]
+ adc r0, r5
+ lsr r5, r6, #0x1b
+ lsl r0, r0, #0x5
+ orr r0, r5
+ ldr r5, [sp, #0x0]
+ lsl r6, r6, #0x5
+ add r6, r5, r6
+ ldr r5, _02031344 ; =0x00000000
+ adc r5, r0
+ lsr r0, r6, #0x1b
+ lsl r5, r5, #0x5
+ orr r5, r0
+ lsl r0, r6, #0x5
+ add r6, r1, r0
+ ldr r1, _02031344 ; =0x00000000
+ adc r1, r5
+ lsr r0, r6, #0x1a
+ lsl r1, r1, #0x6
+ orr r1, r0
+ lsl r0, r6, #0x6
+ add r5, r2, r0
+ ldr r2, _02031344 ; =0x00000000
+ adc r2, r1
+ lsr r0, r5, #0x1a
+ lsl r1, r2, #0x6
+ orr r1, r0
+ lsl r0, r5, #0x6
+ add r2, r3, r0
+ ldr r0, _02031344 ; =0x00000000
+ str r2, [r4, #0x0]
+ adc r0, r1
+ str r0, [r4, #0x4]
+ ldr r1, _02031348 ; =0x6C078965
+ ldr r0, _0203134C ; =0x5D588B65
+ str r1, [r4, #0x8]
+ str r0, [r4, #0xc]
+ ldr r0, _02031350 ; =0x00269EC3
+ str r0, [r4, #0x10]
+ mov r0, #0x0
+ str r0, [r4, #0x14]
+ add sp, #0x20
+ pop {r3-r7, pc}
+ .balign 4
+_02031340: .word 0x021C48B8
+_02031344: .word 0x00000000
+_02031348: .word 0x6C078965
+_0203134C: .word 0x5D588B65
+_02031350: .word 0x00269EC3
+
+ thumb_func_start FUN_02031354
+FUN_02031354: ; 0x02031354
+ add r1, r0, #0x0
+ ldr r0, _02031364 ; =0x021C59F4
+ ldr r3, _02031368 ; =FUN_0202D830
+ ldr r2, [r0, #0x4]
+ ldr r0, _0203136C ; =0x0000056C
+ add r0, r2, r0
+ bx r3
+ nop
+_02031364: .word 0x021C59F4
+_02031368: .word FUN_0202D830
+_0203136C: .word 0x0000056C
+
+ thumb_func_start FUN_02031370
+FUN_02031370: ; 0x02031370
+ ldr r0, _0203137C ; =0x021C59F4
+ ldr r3, _02031380 ; =FUN_0202D4E4
+ ldr r1, [r0, #0x4]
+ ldr r0, _02031384 ; =0x0000056C
+ add r0, r1, r0
+ bx r3
+ .balign 4
+_0203137C: .word 0x021C59F4
+_02031380: .word FUN_0202D4E4
+_02031384: .word 0x0000056C
+
+ thumb_func_start FUN_02031388
+FUN_02031388: ; 0x02031388
+ ldr r0, _02031394 ; =0x021C59F4
+ ldr r3, _02031398 ; =FUN_0202D4E4
+ ldr r1, [r0, #0x4]
+ ldr r0, _0203139C ; =0x0000054C
+ add r0, r1, r0
+ bx r3
+ .balign 4
+_02031394: .word 0x021C59F4
+_02031398: .word FUN_0202D4E4
+_0203139C: .word 0x0000054C
+
+ thumb_func_start FUN_020313A0
+FUN_020313A0: ; 0x020313A0
+ ldr r1, _020313AC ; =0x021C59F4
+ ldr r2, [r1, #0x4]
+ ldr r1, _020313B0 ; =0x00000687
+ strb r0, [r2, r1]
+ bx lr
+ nop
+_020313AC: .word 0x021C59F4
+_020313B0: .word 0x00000687
+
+ thumb_func_start FUN_020313B4
+FUN_020313B4: ; 0x020313B4
+ ldr r2, _020313C4 ; =0x021C59F4
+ ldr r2, [r2, #0x4]
+ cmp r2, #0x0
+ beq _020313C2
+ add r2, r2, r1
+ ldr r1, _020313C8 ; =0x00000677
+ strb r0, [r2, r1]
+_020313C2:
+ bx lr
+ .balign 4
+_020313C4: .word 0x021C59F4
+_020313C8: .word 0x00000677
+
+ thumb_func_start FUN_020313CC
+FUN_020313CC: ; 0x020313CC
+ ldr r1, _020313E4 ; =0x021C59F4
+ ldr r1, [r1, #0x4]
+ cmp r1, #0x0
+ beq _020313E0
+ add r2, r1, r0
+ ldr r1, _020313E8 ; =0x00000677
+ ldrb r1, [r2, r1]
+ cmp r1, #0xff
+ beq _020313E0
+ add r0, r1, #0x0
+_020313E0:
+ bx lr
+ nop
+_020313E4: .word 0x021C59F4
+_020313E8: .word 0x00000677
+
+ thumb_func_start FUN_020313EC
+FUN_020313EC: ; 0x020313EC
+ push {r3, lr}
+ bl FUN_02033534
+ cmp r0, #0x13
+ bge _020313FA
+ mov r0, #0x0
+ pop {r3, pc}
+_020313FA:
+ bl MOD04_021D8624
+ pop {r3, pc}
+
+ thumb_func_start FUN_02031400
+FUN_02031400: ; 0x02031400
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02033534
+ cmp r0, #0x13
+ blt _02031430
+ ldr r2, _02031434 ; =0x021C59F4
+ mov r1, #0x63
+ ldr r0, [r2, #0x4]
+ lsl r1, r1, #0x4
+ str r4, [r0, r1]
+ cmp r4, #0x0
+ beq _02031430
+ ldr r3, [r2, #0x4]
+ mov r4, #0x0
+ add r0, r1, #0x4
+ str r4, [r3, r0]
+ add r0, r1, #0x0
+ ldr r3, [r2, #0x4]
+ add r0, #0x8
+ str r4, [r3, r0]
+ ldr r0, [r2, #0x4]
+ add r1, #0xc
+ str r4, [r0, r1]
+_02031430:
+ pop {r4, pc}
+ nop
+_02031434: .word 0x021C59F4
+
+ thumb_func_start FUN_02031438
+FUN_02031438: ; 0x02031438
+ ldr r0, _0203144C ; =0x021C59F4
+ ldr r1, [r0, #0x4]
+ ldr r0, _02031450 ; =0x00000681
+ ldrb r0, [r1, r0]
+ cmp r0, #0x0
+ beq _02031448
+ mov r0, #0x1
+ bx lr
+_02031448:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0203144C: .word 0x021C59F4
+_02031450: .word 0x00000681
+
+ thumb_func_start FUN_02031454
+FUN_02031454: ; 0x02031454
+ ldr r0, _02031460 ; =0x021C59F4
+ mov r2, #0x1
+ ldr r1, [r0, #0x4]
+ ldr r0, _02031464 ; =0x00000689
+ strb r2, [r1, r0]
+ bx lr
+ .balign 4
+_02031460: .word 0x021C59F4
+_02031464: .word 0x00000689
+
+ thumb_func_start FUN_02031468
+FUN_02031468: ; 0x02031468
+ ldr r0, _02031478 ; =0x021C59F4
+ ldr r2, [r0, #0x4]
+ cmp r2, #0x0
+ beq _02031476
+ ldr r0, _0203147C ; =0x0000068A
+ mov r1, #0x1
+ strb r1, [r2, r0]
+_02031476:
+ bx lr
+ .balign 4
+_02031478: .word 0x021C59F4
+_0203147C: .word 0x0000068A
+
+ thumb_func_start FUN_02031480
+FUN_02031480: ; 0x02031480
+ push {r4, lr}
+ ldr r1, _020314C8 ; =0x021C59FC
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ bne _0203149C
+ ldr r1, _020314CC ; =0x00000253
+ bl FUN_02016998
+ ldr r1, _020314C8 ; =0x021C59FC
+ ldr r2, _020314CC ; =0x00000253
+ str r0, [r1, #0x0]
+ mov r1, #0x0
+ bl MI_CpuFill8
+_0203149C:
+ ldr r1, _020314C8 ; =0x021C59FC
+ mov r3, #0x0
+ mov r0, #0xff
+_020314A2:
+ ldr r2, [r1, #0x0]
+ add r2, r2, r3
+ add r3, r3, #0x1
+ strb r0, [r2, #0x10]
+ cmp r3, #0x8
+ blt _020314A2
+ ldr r3, _020314C8 ; =0x021C59FC
+ mov r1, #0x25
+ ldr r2, [r3, #0x0]
+ lsl r1, r1, #0x4
+ strb r0, [r2, r1]
+ ldr r4, [r3, #0x0]
+ add r2, r1, #0x1
+ strb r0, [r4, r2]
+ ldr r2, [r3, #0x0]
+ mov r4, #0x0
+ add r0, r1, #0x2
+ strb r4, [r2, r0]
+ pop {r4, pc}
+ .balign 4
+_020314C8: .word 0x021C59FC
+_020314CC: .word 0x00000253
+
+ thumb_func_start FUN_020314D0
+FUN_020314D0: ; 0x020314D0
+ push {r3, lr}
+ ldr r0, _020314E4 ; =0x021C59FC
+ ldr r0, [r0, #0x0]
+ bl FUN_02016A18
+ ldr r0, _020314E4 ; =0x021C59FC
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ pop {r3, pc}
+ nop
+_020314E4: .word 0x021C59FC
+
+ thumb_func_start FUN_020314E8
+FUN_020314E8: ; 0x020314E8
+ ldr r0, _020314F8 ; =0x021C59FC
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020314F4
+ mov r0, #0x1
+ bx lr
+_020314F4:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_020314F8: .word 0x021C59FC
+
+ thumb_func_start FUN_020314FC
+FUN_020314FC: ; 0x020314FC
+ push {r3-r6, lr}
+ sub sp, #0x4
+ ldrb r1, [r2, #0x0]
+ add r5, r0, #0x0
+ add r0, sp, #0x0
+ strb r1, [r0, #0x0]
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _02031556
+ add r0, sp, #0x0
+ strb r5, [r0, #0x1]
+ ldrb r1, [r0, #0x0]
+ strb r1, [r0, #0x2]
+ add r1, sp, #0x0
+ mov r0, #0x12
+ add r1, #0x1
+ bl FUN_02030C4C
+ ldr r6, _0203155C ; =0x021C59FC
+ add r4, sp, #0x0
+ ldr r0, [r6, #0x0]
+ ldrb r1, [r4, #0x0]
+ add r0, r0, r5
+ mov r5, #0x0
+ strb r1, [r0, #0x10]
+_02031530:
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ beq _02031548
+ ldr r0, [r6, #0x0]
+ ldrb r1, [r4, #0x0]
+ add r0, r0, r5
+ ldrb r0, [r0, #0x10]
+ cmp r1, r0
+ bne _02031556
+_02031548:
+ add r5, r5, #0x1
+ cmp r5, #0x8
+ blt _02031530
+ mov r0, #0x11
+ add r1, sp, #0x0
+ bl FUN_02030C4C
+_02031556:
+ add sp, #0x4
+ pop {r3-r6, pc}
+ nop
+_0203155C: .word 0x021C59FC
+
+ thumb_func_start FUN_02031560
+FUN_02031560: ; 0x02031560
+ ldr r0, _02031570 ; =0x021C59FC
+ ldrb r3, [r2, #0x1]
+ ldr r1, [r0, #0x0]
+ ldrb r0, [r2, #0x0]
+ add r0, r1, r0
+ strb r3, [r0, #0x10]
+ bx lr
+ nop
+_02031570: .word 0x021C59FC
+
+ thumb_func_start FUN_02031574
+FUN_02031574: ; 0x02031574
+ ldr r0, _02031584 ; =0x021C59FC
+ ldrb r2, [r2, #0x0]
+ ldr r1, [r0, #0x0]
+ mov r0, #0x25
+ lsl r0, r0, #0x4
+ strb r2, [r1, r0]
+ bx lr
+ nop
+_02031584: .word 0x021C59FC
+
+ thumb_func_start FUN_02031588
+FUN_02031588: ; 0x02031588
+ ldr r2, _0203159C ; =0x021C59FC
+ ldr r1, _020315A0 ; =0x00000251
+ ldr r3, [r2, #0x0]
+ strb r0, [r3, r1]
+ ldr r2, [r2, #0x0]
+ mov r3, #0x1
+ add r0, r1, #0x1
+ strb r3, [r2, r0]
+ bx lr
+ nop
+_0203159C: .word 0x021C59FC
+_020315A0: .word 0x00000251
+
+ thumb_func_start FUN_020315A4
+FUN_020315A4: ; 0x020315A4
+ push {r3, lr}
+ ldr r0, _020315D0 ; =0x021C59FC
+ ldr r2, [r0, #0x0]
+ cmp r2, #0x0
+ beq _020315CE
+ ldr r1, _020315D4 ; =0x00000252
+ ldrb r0, [r2, r1]
+ cmp r0, #0x0
+ beq _020315CE
+ sub r1, r1, #0x1
+ mov r0, #0x10
+ add r1, r2, r1
+ bl FUN_020311D0
+ cmp r0, #0x0
+ beq _020315CE
+ ldr r0, _020315D0 ; =0x021C59FC
+ mov r2, #0x0
+ ldr r1, [r0, #0x0]
+ ldr r0, _020315D4 ; =0x00000252
+ strb r2, [r1, r0]
+_020315CE:
+ pop {r3, pc}
+ .balign 4
+_020315D0: .word 0x021C59FC
+_020315D4: .word 0x00000252
+
+ thumb_func_start FUN_020315D8
+FUN_020315D8: ; 0x020315D8
+ ldr r1, _020315F8 ; =0x021C59FC
+ ldr r2, [r1, #0x0]
+ cmp r2, #0x0
+ bne _020315E4
+ mov r0, #0x1
+ bx lr
+_020315E4:
+ mov r1, #0x25
+ lsl r1, r1, #0x4
+ ldrb r1, [r2, r1]
+ cmp r1, r0
+ bne _020315F2
+ mov r0, #0x1
+ bx lr
+_020315F2:
+ mov r0, #0x0
+ bx lr
+ nop
+_020315F8: .word 0x021C59FC
+
+ thumb_func_start FUN_020315FC
+FUN_020315FC: ; 0x020315FC
+ ldr r1, _02031608 ; =0x021C59FC
+ ldr r1, [r1, #0x0]
+ add r0, r1, r0
+ ldrb r0, [r0, #0x10]
+ bx lr
+ nop
+_02031608: .word 0x021C59FC
+
+ thumb_func_start FUN_0203160C
+FUN_0203160C: ; 0x0203160C
+ push {r3-r4}
+ lsl r4, r0, #0x1
+ ldr r0, _02031624 ; =0x021C59FC
+ ldrb r3, [r2, #0x0]
+ ldr r1, [r0, #0x0]
+ strb r3, [r1, r4]
+ ldr r0, [r0, #0x0]
+ ldrb r1, [r2, #0x1]
+ add r0, r0, r4
+ strb r1, [r0, #0x1]
+ pop {r3-r4}
+ bx lr
+ .balign 4
+_02031624: .word 0x021C59FC
+
+ thumb_func_start FUN_02031628
+FUN_02031628: ; 0x02031628
+ mov r0, #0x2
+ bx lr
+
+ thumb_func_start FUN_0203162C
+FUN_0203162C: ; 0x0203162C
+ push {r3, lr}
+ add r2, sp, #0x0
+ strb r0, [r2, #0x0]
+ strb r1, [r2, #0x1]
+ mov r0, #0x13
+ add r1, sp, #0x0
+ bl FUN_020311D0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02031640
+FUN_02031640: ; 0x02031640
+ ldr r2, _02031664 ; =0x021C59FC
+ ldr r3, [r2, #0x0]
+ cmp r3, #0x0
+ bne _0203164E
+ mov r0, #0x0
+ mvn r0, r0
+ bx lr
+_0203164E:
+ lsl r2, r0, #0x1
+ ldrb r0, [r3, r2]
+ cmp r1, r0
+ bne _0203165C
+ add r0, r3, r2
+ ldrb r0, [r0, #0x1]
+ bx lr
+_0203165C:
+ mov r0, #0x0
+ mvn r0, r0
+ bx lr
+ nop
+_02031664: .word 0x021C59FC
+
+ thumb_func_start FUN_02031668
+FUN_02031668: ; 0x02031668
+ push {r3-r7, lr}
+ mov r4, #0x0
+ ldr r6, _02031688 ; =0x021C59FC
+ add r5, r4, #0x0
+ add r7, r4, #0x0
+_02031672:
+ ldr r0, [r6, #0x0]
+ add r1, r7, #0x0
+ add r0, r0, r5
+ mov r2, #0x2
+ bl MI_CpuFill8
+ add r4, r4, #0x1
+ add r5, r5, #0x2
+ cmp r4, #0x8
+ blt _02031672
+ pop {r3-r7, pc}
+ .balign 4
+_02031688: .word 0x021C59FC
+
+ thumb_func_start FUN_0203168C
+FUN_0203168C: ; 0x0203168C
+ push {r3-r4}
+ mov r4, #0x0
+ mov r0, #0x92
+ ldr r1, _020316A8 ; =0x021C59FC
+ add r3, r4, #0x0
+ lsl r0, r0, #0x2
+_02031698:
+ ldr r2, [r1, #0x0]
+ add r2, r2, r4
+ add r4, r4, #0x1
+ strb r3, [r2, r0]
+ cmp r4, #0x8
+ blt _02031698
+ pop {r3-r4}
+ bx lr
+ .balign 4
+_020316A8: .word 0x021C59FC
+
+ thumb_func_start FUN_020316AC
+FUN_020316AC: ; 0x020316AC
+ push {r4, lr}
+ ldr r2, _020316DC ; =0x021C59FC
+ ldr r3, [r2, #0x0]
+ cmp r3, #0x0
+ beq _020316D8
+ add r4, r0, #0x0
+ mov r2, #0x46
+ mul r4, r2
+ add r3, #0x18
+ add r0, r1, #0x0
+ add r1, r3, r4
+ bl MI_CpuCopy8
+ ldr r1, _020316DC ; =0x021C59FC
+ mov r0, #0x14
+ ldr r1, [r1, #0x0]
+ add r1, #0x18
+ add r1, r1, r4
+ bl FUN_020311D0
+ mov r0, #0x1
+ pop {r4, pc}
+_020316D8:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+_020316DC: .word 0x021C59FC
+
+ thumb_func_start FUN_020316E0
+FUN_020316E0: ; 0x020316E0
+ ldr r1, _02031700 ; =0x021C59FC
+ ldr r3, [r1, #0x0]
+ mov r1, #0x92
+ add r2, r3, r0
+ lsl r1, r1, #0x2
+ ldrb r1, [r2, r1]
+ cmp r1, #0x0
+ beq _020316FA
+ mov r1, #0x46
+ add r3, #0x18
+ mul r1, r0
+ add r0, r3, r1
+ bx lr
+_020316FA:
+ mov r0, #0x0
+ bx lr
+ nop
+_02031700: .word 0x021C59FC
+
+ thumb_func_start FUN_02031704
+FUN_02031704: ; 0x02031704
+ push {r3-r5, lr}
+ ldr r3, _0203172C ; =0x021C59FC
+ add r1, r0, #0x0
+ ldr r0, [r3, #0x0]
+ mov r5, #0x1
+ add r4, r0, r1
+ mov r0, #0x92
+ lsl r0, r0, #0x2
+ strb r5, [r4, r0]
+ ldr r4, [r3, #0x0]
+ add r0, r2, #0x0
+ mov r2, #0x46
+ add r3, r1, #0x0
+ add r4, #0x18
+ mul r3, r2
+ add r1, r4, r3
+ bl MI_CpuCopy8
+ pop {r3-r5, pc}
+ nop
+_0203172C: .word 0x021C59FC
+
+ thumb_func_start FUN_02031730
+FUN_02031730: ; 0x02031730
+ mov r0, #0x46
+ bx lr
+
+ thumb_func_start FUN_02031734
+FUN_02031734: ; 0x02031734
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _020317BC ; =0x021C5A00
+ add r4, r1, #0x0
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _020317B8
+ bl FUN_0202E49C
+ mov r0, #0xf
+ mov r1, #0x50
+ bl FUN_02016998
+ ldr r1, _020317BC ; =0x021C5A00
+ mov r2, #0x50
+ str r0, [r1, #0x0]
+ mov r1, #0x0
+ bl MI_CpuFill8
+ ldr r0, _020317BC ; =0x021C5A00
+ mov r2, #0x32
+ ldr r1, [r0, #0x0]
+ strh r2, [r1, #0x3a]
+ ldr r1, [r0, #0x0]
+ mov r2, #0x1
+ add r1, #0x43
+ strb r2, [r1, #0x0]
+ ldr r0, [r0, #0x0]
+ str r5, [r0, #0x28]
+ add r0, r5, #0x0
+ bl FUN_020238F4
+ ldr r1, _020317BC ; =0x021C5A00
+ ldr r2, [r1, #0x0]
+ str r0, [r2, #0x2c]
+ ldr r0, [r1, #0x0]
+ mov r2, #0x2
+ add r0, #0x3c
+ strb r2, [r0, #0x0]
+ ldr r0, [r1, #0x0]
+ mov r2, #0x0
+ add r0, #0x3d
+ strb r2, [r0, #0x0]
+ ldr r0, [r1, #0x0]
+ add r0, #0x48
+ strb r2, [r0, #0x0]
+ ldr r0, [r1, #0x0]
+ add r0, #0x3f
+ strb r4, [r0, #0x0]
+ ldr r0, [r1, #0x0]
+ add r0, #0xc
+ bl FUN_020312BC
+ mov r0, #0x0
+ add r1, r0, #0x0
+ add r2, r0, #0x0
+ bl FUN_0202D8D0
+ cmp r4, #0x9
+ beq _020317B8
+ cmp r4, #0x11
+ beq _020317B8
+ cmp r4, #0xf
+ beq _020317B8
+ bl FUN_02033E74
+_020317B8:
+ pop {r3-r5, pc}
+ nop
+_020317BC: .word 0x021C5A00
+
+ thumb_func_start FUN_020317C0
+FUN_020317C0: ; 0x020317C0
+ push {r3, lr}
+ ldr r0, _0203180C ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0203180A
+ bl FUN_0202D918
+ ldr r0, _0203180C ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020317DC
+ bl FUN_02016A18
+_020317DC:
+ ldr r0, _0203180C ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ add r0, #0x3f
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x13
+ blo _020317EE
+ mov r0, #0x31
+ bl FUN_020168D0
+_020317EE:
+ bl FUN_02033ED0
+ bl FUN_0202E4F0
+ ldr r0, _0203180C ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ bl FUN_02016A18
+ mov r0, #0xf
+ bl FUN_020168D0
+ ldr r0, _0203180C ; =0x021C5A00
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+_0203180A:
+ pop {r3, pc}
+ .balign 4
+_0203180C: .word 0x021C5A00
+
+ thumb_func_start FUN_02031810
+FUN_02031810: ; 0x02031810
+ ldr r0, _02031820 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0203181C
+ mov r0, #0x1
+ bx lr
+_0203181C:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_02031820: .word 0x021C5A00
+
+ thumb_func_start FUN_02031824
+FUN_02031824: ; 0x02031824
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _02031858 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02031856
+ mov r2, #0xe
+ mov r0, #0x3
+ mov r1, #0xf
+ lsl r2, r2, #0xc
+ bl FUN_02016828
+ add r0, r4, #0x0
+ mov r1, #0xa
+ bl FUN_02031734
+ ldr r0, _02031858 ; =0x021C5A00
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r0, #0x40
+ strb r1, [r0, #0x0]
+ ldr r0, _0203185C ; =FUN_02031D30
+ mov r1, #0x32
+ bl FUN_02031D20
+_02031856:
+ pop {r4, pc}
+ .balign 4
+_02031858: .word 0x021C5A00
+_0203185C: .word FUN_02031D30
+
+ thumb_func_start FUN_02031860
+FUN_02031860: ; 0x02031860
+ push {r3, lr}
+ ldr r0, _02031878 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02031876
+ bl FUN_02031468
+ ldr r0, _0203187C ; =FUN_020323CC
+ mov r1, #0x0
+ bl FUN_02031D20
+_02031876:
+ pop {r3, pc}
+ .balign 4
+_02031878: .word 0x021C5A00
+_0203187C: .word FUN_020323CC
+
+ thumb_func_start FUN_02031880
+FUN_02031880: ; 0x02031880
+ push {r3, lr}
+ bl FUN_0202FC60
+ bl FUN_02031190
+ ldr r1, _0203189C ; =0x021C5A00
+ ldr r1, [r1, #0x0]
+ strh r0, [r1, #0x38]
+ ldr r0, _020318A0 ; =FUN_020321B8
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+ nop
+_0203189C: .word 0x021C5A00
+_020318A0: .word FUN_020321B8
+
+ thumb_func_start FUN_020318A4
+FUN_020318A4: ; 0x020318A4
+ ldr r1, _020318B0 ; =0x021C5A00
+ ldr r1, [r1, #0x0]
+ add r1, #0x4f
+ strb r0, [r1, #0x0]
+ bx lr
+ nop
+_020318B0: .word 0x021C5A00
+
+ thumb_func_start FUN_020318B4
+FUN_020318B4: ; 0x020318B4
+ ldr r3, _020318BC ; =FUN_02031D20
+ ldr r0, _020318C0 ; =FUN_02032028
+ mov r1, #0x0
+ bx r3
+ .balign 4
+_020318BC: .word FUN_02031D20
+_020318C0: .word FUN_02032028
+
+ thumb_func_start FUN_020318C4
+FUN_020318C4: ; 0x020318C4
+ push {r4}
+ sub sp, #0xc
+ ldr r4, _0203190C ; =0x020EEC50
+ add r3, sp, #0x0
+ ldmia r4!, {r0-r1}
+ add r2, r3, #0x0
+ stmia r3!, {r0-r1}
+ ldr r0, [r4, #0x0]
+ str r0, [r3, #0x0]
+ ldr r0, _02031910 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ ldr r1, [r0, #0x24]
+ cmp r0, #0x0
+ bne _020318E8
+ add sp, #0xc
+ mov r0, #0x0
+ pop {r4}
+ bx lr
+_020318E8:
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x0
+ beq _02031904
+_020318EE:
+ ldr r0, [r2, #0x0]
+ cmp r1, r0
+ bne _020318FC
+ add sp, #0xc
+ mov r0, #0x1
+ pop {r4}
+ bx lr
+_020318FC:
+ add r2, r2, #0x4
+ ldr r0, [r2, #0x0]
+ cmp r0, #0x0
+ bne _020318EE
+_02031904:
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r4}
+ bx lr
+ .balign 4
+_0203190C: .word 0x020EEC50
+_02031910: .word 0x021C5A00
+
+ thumb_func_start FUN_02031914
+FUN_02031914: ; 0x02031914
+ ldr r3, _0203191C ; =FUN_02031D20
+ ldr r0, _02031920 ; =FUN_02032178
+ mov r1, #0x0
+ bx r3
+ .balign 4
+_0203191C: .word FUN_02031D20
+_02031920: .word FUN_02032178
+
+ thumb_func_start FUN_02031924
+FUN_02031924: ; 0x02031924
+ ldr r0, _02031930 ; =0x021C5A00
+ mov r1, #0x1
+ ldr r0, [r0, #0x0]
+ add r0, #0x4c
+ strb r1, [r0, #0x0]
+ bx lr
+ .balign 4
+_02031930: .word 0x021C5A00
+
+ thumb_func_start FUN_02031934
+FUN_02031934: ; 0x02031934
+ push {r3, lr}
+ bl FUN_0202E49C
+ ldr r0, _02031944 ; =FUN_02032194
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+ .balign 4
+_02031944: .word FUN_02032194
+
+ thumb_func_start FUN_02031948
+FUN_02031948: ; 0x02031948
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ add r7, r1, #0x0
+ add r5, r2, #0x0
+ add r4, r3, #0x0
+ bl FUN_02030F40
+ cmp r0, #0x0
+ bne _02031980
+ ldr r2, _02031984 ; =0x00007080
+ mov r0, #0x3
+ mov r1, #0xf
+ bl FUN_02016828
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ bl FUN_02031734
+ ldr r0, _02031988 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ add r1, #0x40
+ strb r5, [r1, #0x0]
+ ldr r0, [r0, #0x0]
+ mov r1, #0x0
+ str r4, [r0, #0x30]
+ ldr r0, _0203198C ; =FUN_020321D0
+ bl FUN_02031D20
+_02031980:
+ pop {r3-r7, pc}
+ nop
+_02031984: .word 0x00007080
+_02031988: .word 0x021C5A00
+_0203198C: .word FUN_020321D0
+
+ thumb_func_start FUN_02031990
+FUN_02031990: ; 0x02031990
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ add r7, r1, #0x0
+ add r5, r2, #0x0
+ add r4, r3, #0x0
+ bl FUN_02030F40
+ cmp r0, #0x0
+ bne _020319C8
+ ldr r2, _020319CC ; =0x00007080
+ mov r0, #0x3
+ mov r1, #0xf
+ bl FUN_02016828
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ bl FUN_02031734
+ ldr r0, _020319D0 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ add r1, #0x40
+ strb r5, [r1, #0x0]
+ ldr r0, [r0, #0x0]
+ mov r1, #0x0
+ str r4, [r0, #0x30]
+ ldr r0, _020319D4 ; =FUN_0203224C
+ bl FUN_02031D20
+_020319C8:
+ pop {r3-r7, pc}
+ nop
+_020319CC: .word 0x00007080
+_020319D0: .word 0x021C5A00
+_020319D4: .word FUN_0203224C
+
+ thumb_func_start FUN_020319D8
+FUN_020319D8: ; 0x020319D8
+ ldr r1, _020319E8 ; =0x021C5A00
+ ldr r3, _020319EC ; =FUN_02031D20
+ ldr r1, [r1, #0x0]
+ add r1, #0x3e
+ strb r0, [r1, #0x0]
+ ldr r0, _020319F0 ; =FUN_02032298
+ mov r1, #0x0
+ bx r3
+ .balign 4
+_020319E8: .word 0x021C5A00
+_020319EC: .word FUN_02031D20
+_020319F0: .word FUN_02032298
+
+ thumb_func_start FUN_020319F4
+FUN_020319F4: ; 0x020319F4
+ push {r3, lr}
+ bl FUN_0202FCA8
+ ldr r0, _02031A04 ; =FUN_02032364
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+ .balign 4
+_02031A04: .word FUN_02032364
+
+ thumb_func_start FUN_02031A08
+FUN_02031A08: ; 0x02031A08
+ push {r3, lr}
+ ldr r0, _02031A1C ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02031A1A
+ ldr r0, _02031A20 ; =FUN_02032440
+ mov r1, #0x5
+ bl FUN_02031D20
+_02031A1A:
+ pop {r3, pc}
+ .balign 4
+_02031A1C: .word 0x021C5A00
+_02031A20: .word FUN_02032440
+
+ thumb_func_start FUN_02031A24
+FUN_02031A24: ; 0x02031A24
+ ldr r3, _02031A28 ; =FUN_0202D298
+ bx r3
+ .balign 4
+_02031A28: .word FUN_0202D298
+
+ thumb_func_start FUN_02031A2C
+FUN_02031A2C: ; 0x02031A2C
+ push {r4}
+ sub sp, #0xc
+ ldr r4, _02031A74 ; =0x020EEC5C
+ add r3, sp, #0x0
+ ldmia r4!, {r0-r1}
+ add r2, r3, #0x0
+ stmia r3!, {r0-r1}
+ ldr r0, [r4, #0x0]
+ str r0, [r3, #0x0]
+ ldr r0, _02031A78 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ ldr r1, [r0, #0x24]
+ cmp r0, #0x0
+ bne _02031A50
+ add sp, #0xc
+ mov r0, #0x0
+ pop {r4}
+ bx lr
+_02031A50:
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x0
+ beq _02031A6C
+_02031A56:
+ ldr r0, [r2, #0x0]
+ cmp r1, r0
+ bne _02031A64
+ add sp, #0xc
+ mov r0, #0x1
+ pop {r4}
+ bx lr
+_02031A64:
+ add r2, r2, #0x4
+ ldr r0, [r2, #0x0]
+ cmp r0, #0x0
+ bne _02031A56
+_02031A6C:
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r4}
+ bx lr
+ .balign 4
+_02031A74: .word 0x020EEC5C
+_02031A78: .word 0x021C5A00
+
+ thumb_func_start FUN_02031A7C
+FUN_02031A7C: ; 0x02031A7C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _02031ABC ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02031ABA
+ ldr r2, _02031AC0 ; =0x00007080
+ mov r0, #0x3
+ mov r1, #0xf
+ bl FUN_02016828
+ cmp r0, #0x0
+ bne _02031A9A
+ bl FUN_020335E0
+_02031A9A:
+ add r0, r4, #0x0
+ mov r1, #0x9
+ bl FUN_02031734
+ ldr r0, _02031ABC ; =0x021C5A00
+ mov r2, #0x9
+ ldr r1, [r0, #0x0]
+ add r1, #0x3f
+ strb r2, [r1, #0x0]
+ ldr r0, [r0, #0x0]
+ mov r1, #0x0
+ add r0, #0x40
+ strb r1, [r0, #0x0]
+ ldr r0, _02031AC4 ; =FUN_02032478
+ bl FUN_02031D20
+_02031ABA:
+ pop {r4, pc}
+ .balign 4
+_02031ABC: .word 0x021C5A00
+_02031AC0: .word 0x00007080
+_02031AC4: .word FUN_02032478
+
+ thumb_func_start FUN_02031AC8
+FUN_02031AC8: ; 0x02031AC8
+ push {r3, lr}
+ ldr r1, _02031AEC ; =0x021C5A00
+ ldr r2, [r1, #0x0]
+ add r2, #0x3e
+ strb r0, [r2, #0x0]
+ ldr r0, [r1, #0x0]
+ mov r2, #0x3
+ strh r2, [r0, #0x38]
+ mov r0, #0x1
+ bl FUN_0202D344
+ bl FUN_02033E74
+ ldr r0, _02031AF0 ; =FUN_02032628
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+ .balign 4
+_02031AEC: .word 0x021C5A00
+_02031AF0: .word FUN_02032628
+
+ thumb_func_start FUN_02031AF4
+FUN_02031AF4: ; 0x02031AF4
+ ldr r0, _02031B20 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02031B02
+ mov r0, #0x0
+ mvn r0, r0
+ bx lr
+_02031B02:
+ ldr r1, [r0, #0x24]
+ ldr r0, _02031B24 ; =FUN_0203279C
+ cmp r1, r0
+ bne _02031B0E
+ mov r0, #0x1
+ bx lr
+_02031B0E:
+ ldr r0, _02031B28 ; =FUN_020327B4
+ cmp r1, r0
+ bne _02031B18
+ mov r0, #0x1
+ b _02031B1A
+_02031B18:
+ mov r0, #0x0
+_02031B1A:
+ neg r0, r0
+ bx lr
+ nop
+_02031B20: .word 0x021C5A00
+_02031B24: .word FUN_0203279C
+_02031B28: .word FUN_020327B4
+
+ thumb_func_start FUN_02031B2C
+FUN_02031B2C: ; 0x02031B2C
+ ldr r0, _02031B48 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02031B38
+ mov r0, #0x0
+ bx lr
+_02031B38:
+ ldr r1, [r0, #0x24]
+ ldr r0, _02031B4C ; =FUN_020327FC
+ cmp r1, r0
+ bne _02031B44
+ mov r0, #0x1
+ bx lr
+_02031B44:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_02031B48: .word 0x021C5A00
+_02031B4C: .word FUN_020327FC
+
+ thumb_func_start FUN_02031B50
+FUN_02031B50: ; 0x02031B50
+ push {r3, lr}
+ mov r0, #0x0
+ bl FUN_0202D344
+ ldr r0, _02031BC4 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ add r0, r1, #0x0
+ add r0, #0x44
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x1
+ bne _02031B78
+ add r0, r1, #0x0
+ add r0, #0x45
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x1
+ bne _02031B78
+ add r1, #0x3f
+ ldrb r0, [r1, #0x0]
+ cmp r0, #0x9
+ bne _02031B80
+_02031B78:
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_020334E8
+_02031B80:
+ bl FUN_02033ED0
+ ldr r0, _02031BC4 ; =0x021C5A00
+ mov r2, #0x9
+ ldr r1, [r0, #0x0]
+ add r1, #0x3f
+ strb r2, [r1, #0x0]
+ ldr r1, [r0, #0x0]
+ mov r2, #0x0
+ add r1, #0x48
+ strb r2, [r1, #0x0]
+ ldr r0, [r0, #0x0]
+ add r0, #0x3c
+ ldrb r0, [r0, #0x0]
+ bl FUN_0202D1B0
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _02031BB8
+ mov r0, #0x1
+ bl FUN_0202D36C
+ ldr r0, _02031BC8 ; =FUN_020323DC
+ mov r1, #0xf
+ bl FUN_02031D20
+ pop {r3, pc}
+_02031BB8:
+ ldr r0, _02031BCC ; =FUN_02032424
+ mov r1, #0x5
+ bl FUN_02031D20
+ pop {r3, pc}
+ nop
+_02031BC4: .word 0x021C5A00
+_02031BC8: .word FUN_020323DC
+_02031BCC: .word FUN_02032424
+
+ thumb_func_start FUN_02031BD0
+FUN_02031BD0: ; 0x02031BD0
+ ldr r0, _02031BEC ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02031BDC
+ mov r0, #0x1
+ bx lr
+_02031BDC:
+ ldr r1, [r0, #0x24]
+ ldr r0, _02031BF0 ; =FUN_020324F8
+ cmp r1, r0
+ beq _02031BE8
+ mov r0, #0x1
+ bx lr
+_02031BE8:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_02031BEC: .word 0x021C5A00
+_02031BF0: .word FUN_020324F8
+
+ thumb_func_start FUN_02031BF4
+FUN_02031BF4: ; 0x02031BF4
+ push {r3, lr}
+ ldr r0, _02031C08 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02031C06
+ ldr r0, _02031C0C ; =FUN_02032440
+ mov r1, #0x5
+ bl FUN_02031D20
+_02031C06:
+ pop {r3, pc}
+ .balign 4
+_02031C08: .word 0x021C5A00
+_02031C0C: .word FUN_02032440
+
+ thumb_func_start FUN_02031C10
+FUN_02031C10: ; 0x02031C10
+ push {r3, lr}
+ ldr r0, _02031C28 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _02031C24
+ mov r0, #0x1
+ add r1, #0x48
+ strb r0, [r1, #0x0]
+ bl FUN_0202D344
+_02031C24:
+ pop {r3, pc}
+ nop
+_02031C28: .word 0x021C5A00
+
+ thumb_func_start FUN_02031C2C
+FUN_02031C2C: ; 0x02031C2C
+ push {r3, lr}
+ ldr r0, _02031C4C ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _02031C48
+ mov r0, #0x1
+ add r1, #0x48
+ strb r0, [r1, #0x0]
+ bl FUN_0202D344
+ ldr r0, _02031C50 ; =FUN_02032850
+ mov r1, #0x0
+ bl FUN_02031D20
+_02031C48:
+ pop {r3, pc}
+ nop
+_02031C4C: .word 0x021C5A00
+_02031C50: .word FUN_02032850
+
+ thumb_func_start FUN_02031C54
+FUN_02031C54: ; 0x02031C54
+ ldr r0, _02031C60 ; =0x021C5A00
+ mov r1, #0x12
+ ldr r0, [r0, #0x0]
+ add r0, #0x3f
+ strb r1, [r0, #0x0]
+ bx lr
+ .balign 4
+_02031C60: .word 0x021C5A00
+
+ thumb_func_start FUN_02031C64
+FUN_02031C64: ; 0x02031C64
+ ldr r0, _02031C70 ; =0x021C5A00
+ mov r1, #0x9
+ ldr r0, [r0, #0x0]
+ add r0, #0x3f
+ strb r1, [r0, #0x0]
+ bx lr
+ .balign 4
+_02031C70: .word 0x021C5A00
+
+ thumb_func_start FUN_02031C74
+FUN_02031C74: ; 0x02031C74
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02030F40
+ cmp r0, #0x0
+ bne _02031C9C
+ ldr r2, _02031CA0 ; =0x00007080
+ mov r0, #0x3
+ mov r1, #0xf
+ bl FUN_02016828
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02031734
+ ldr r0, _02031CA4 ; =FUN_02032E00
+ mov r1, #0x0
+ bl FUN_02031D20
+_02031C9C:
+ pop {r3-r5, pc}
+ nop
+_02031CA0: .word 0x00007080
+_02031CA4: .word FUN_02032E00
+
+ thumb_func_start FUN_02031CA8
+FUN_02031CA8: ; 0x02031CA8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02030F40
+ cmp r0, #0x0
+ bne _02031CD0
+ ldr r2, _02031CD4 ; =0x00007080
+ mov r0, #0x3
+ mov r1, #0xf
+ bl FUN_02016828
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02031734
+ ldr r0, _02031CD8 ; =FUN_02032E48
+ mov r1, #0x0
+ bl FUN_02031D20
+_02031CD0:
+ pop {r3-r5, pc}
+ nop
+_02031CD4: .word 0x00007080
+_02031CD8: .word FUN_02032E48
+
+ thumb_func_start FUN_02031CDC
+FUN_02031CDC: ; 0x02031CDC
+ push {r3, lr}
+ ldr r0, _02031D1C ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02031CEE
+ ldr r0, [r0, #0x24]
+ cmp r0, #0x0
+ beq _02031CEE
+ blx r0
+_02031CEE:
+ bl FUN_02033590
+ cmp r0, #0x0
+ beq _02031D04
+ bl MOD04_021DDB08
+ mov r1, #0x3
+ sub r0, r1, r0
+ bl FUN_02033EEC
+ pop {r3, pc}
+_02031D04:
+ bl FUN_0202EDF8
+ cmp r0, #0x0
+ beq _02031D18
+ bl WM_GetLinkLevel
+ mov r1, #0x3
+ sub r0, r1, r0
+ bl FUN_02033EEC
+_02031D18:
+ pop {r3, pc}
+ nop
+_02031D1C: .word 0x021C5A00
+
+ thumb_func_start FUN_02031D20
+FUN_02031D20: ; 0x02031D20
+ ldr r2, _02031D2C ; =0x021C5A00
+ ldr r3, [r2, #0x0]
+ str r0, [r3, #0x24]
+ ldr r0, [r2, #0x0]
+ strh r1, [r0, #0x3a]
+ bx lr
+ .balign 4
+_02031D2C: .word 0x021C5A00
+
+ thumb_func_start FUN_02031D30
+FUN_02031D30: ; 0x02031D30
+ push {r3-r5, lr}
+ ldr r0, _02031DF8 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3a]
+ cmp r0, #0x0
+ beq _02031D42
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3a]
+ pop {r3-r5, pc}
+_02031D42:
+ bl FUN_0202E4C8
+ cmp r0, #0x0
+ beq _02031DF6
+ ldr r0, _02031DF8 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x2c]
+ bl FUN_0202E29C
+ ldr r0, _02031DF8 ; =0x021C5A00
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x28]
+ bl FUN_0202DB14
+ mov r0, #0x1
+ bl FUN_02031268
+ bl FUN_02030FA8
+ ldr r0, _02031DF8 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ add r0, r1, #0x0
+ add r0, #0x4a
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02031DC8
+ add r1, #0x43
+ ldrb r1, [r1, #0x0]
+ mov r0, #0x1
+ mov r2, #0x7d
+ lsl r2, r2, #0x2
+ add r3, r0, #0x0
+ bl FUN_0202F918
+ cmp r0, #0x0
+ beq _02031DF6
+ ldr r0, _02031DF8 ; =0x021C5A00
+ ldr r5, [r0, #0x0]
+ add r4, r5, #0x0
+ add r4, #0xc
+ ldr r0, [r4, #0x8]
+ ldr r1, [r4, #0xc]
+ ldr r2, [r5, #0xc]
+ ldr r3, [r4, #0x4]
+ bl _ll_mul
+ ldr r2, [r4, #0x10]
+ ldr r3, [r4, #0x14]
+ add r0, r2, r0
+ adc r3, r1
+ str r0, [r5, #0xc]
+ str r3, [r4, #0x4]
+ add r0, r3, #0x0
+ mov r1, #0x0
+ mov r2, #0x14
+ mov r3, #0x0
+ bl _ll_mul
+ mov r0, #0x0
+ add r5, #0x43
+ strb r0, [r5, #0x0]
+ ldr r0, _02031DFC ; =FUN_020320C4
+ add r1, #0x14
+ bl FUN_02031D20
+ pop {r3-r5, pc}
+_02031DC8:
+ mov r0, #0x1
+ mov r2, #0x7d
+ add r1, r0, #0x0
+ lsl r2, r2, #0x2
+ bl FUN_0202F950
+ cmp r0, #0x0
+ beq _02031DF6
+ ldr r0, _02031DF8 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ add r0, #0x4c
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02031DEE
+ ldr r0, _02031E00 ; =FUN_020323B8
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3-r5, pc}
+_02031DEE:
+ ldr r0, _02031E04 ; =FUN_02031EE0
+ mov r1, #0x40
+ bl FUN_02031D20
+_02031DF6:
+ pop {r3-r5, pc}
+ .balign 4
+_02031DF8: .word 0x021C5A00
+_02031DFC: .word FUN_020320C4
+_02031E00: .word FUN_020323B8
+_02031E04: .word FUN_02031EE0
+
+ thumb_func_start FUN_02031E08
+FUN_02031E08: ; 0x02031E08
+ push {r3-r5, lr}
+ bl FUN_0202EE0C
+ cmp r0, #0x0
+ beq _02031E7C
+ mov r0, #0x1
+ bl FUN_02031268
+ bl FUN_02030FA8
+ ldr r0, _02031E80 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ add r0, #0x4a
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02031E32
+ ldr r0, _02031E84 ; =FUN_02032058
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3-r5, pc}
+_02031E32:
+ mov r2, #0x7d
+ mov r0, #0x0
+ mov r1, #0x1
+ lsl r2, r2, #0x2
+ bl FUN_0202F950
+ cmp r0, #0x0
+ beq _02031E7C
+ ldr r0, _02031E80 ; =0x021C5A00
+ ldr r5, [r0, #0x0]
+ add r4, r5, #0x0
+ add r4, #0xc
+ ldr r0, [r4, #0x8]
+ ldr r1, [r4, #0xc]
+ ldr r2, [r5, #0xc]
+ ldr r3, [r4, #0x4]
+ bl _ll_mul
+ ldr r2, [r4, #0x10]
+ ldr r3, [r4, #0x14]
+ add r0, r2, r0
+ adc r3, r1
+ str r0, [r5, #0xc]
+ mov r1, #0x0
+ str r3, [r4, #0x4]
+ lsr r0, r3, #0x1a
+ lsl r1, r1, #0x6
+ orr r1, r0
+ ldrh r0, [r5, #0x38]
+ cmp r0, #0x0
+ beq _02031E76
+ lsl r1, r0, #0x6
+ mov r0, #0x0
+ strh r0, [r5, #0x38]
+_02031E76:
+ ldr r0, _02031E88 ; =FUN_02031EE0
+ bl FUN_02031D20
+_02031E7C:
+ pop {r3-r5, pc}
+ nop
+_02031E80: .word 0x021C5A00
+_02031E84: .word FUN_02032058
+_02031E88: .word FUN_02031EE0
+
+ thumb_func_start FUN_02031E8C
+FUN_02031E8C: ; 0x02031E8C
+ push {r3-r5, lr}
+ bl FUN_0202EE0C
+ cmp r0, #0x0
+ beq _02031ED6
+ mov r0, #0x0
+ mov r2, #0x7d
+ add r1, r0, #0x0
+ lsl r2, r2, #0x2
+ bl FUN_0202F950
+ cmp r0, #0x0
+ beq _02031ED6
+ ldr r0, _02031ED8 ; =0x021C5A00
+ ldr r4, [r0, #0x0]
+ add r5, r4, #0x0
+ add r5, #0xc
+ ldr r0, [r5, #0x8]
+ ldr r1, [r5, #0xc]
+ ldr r2, [r4, #0xc]
+ ldr r3, [r5, #0x4]
+ bl _ll_mul
+ ldr r2, [r5, #0x10]
+ ldr r3, [r5, #0x14]
+ add r0, r2, r0
+ adc r3, r1
+ str r0, [r4, #0xc]
+ mov r1, #0x0
+ lsr r2, r3, #0x1b
+ lsl r1, r1, #0x5
+ orr r1, r2
+ ldr r0, _02031EDC ; =FUN_02031EE0
+ add r1, #0x10
+ str r3, [r5, #0x4]
+ bl FUN_02031D20
+_02031ED6:
+ pop {r3-r5, pc}
+ .balign 4
+_02031ED8: .word 0x021C5A00
+_02031EDC: .word FUN_02031EE0
+
+ thumb_func_start FUN_02031EE0
+FUN_02031EE0: ; 0x02031EE0
+ push {r3, lr}
+ bl FUN_0202EA54
+ ldr r0, _02031F54 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ add r0, r1, #0x0
+ add r0, #0x4f
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02031F50
+ add r1, #0x4b
+ ldrb r0, [r1, #0x0]
+ cmp r0, #0x0
+ bne _02031F50
+ bl FUN_0202E8F4
+ mov r1, #0x0
+ mvn r1, r1
+ cmp r0, r1
+ beq _02031F1A
+ ldr r1, _02031F54 ; =0x021C5A00
+ ldr r1, [r1, #0x0]
+ add r1, #0x3e
+ strb r0, [r1, #0x0]
+ ldr r0, _02031F58 ; =FUN_02031F60
+ mov r1, #0x20
+ bl FUN_02031D20
+ pop {r3, pc}
+_02031F1A:
+ ldr r0, _02031F54 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3a]
+ cmp r0, #0x0
+ beq _02031F2A
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3a]
+ pop {r3, pc}
+_02031F2A:
+ bl FUN_0202E950
+ mov r1, #0x0
+ mvn r1, r1
+ cmp r0, r1
+ beq _02031F48
+ ldr r1, _02031F54 ; =0x021C5A00
+ ldr r1, [r1, #0x0]
+ add r1, #0x3e
+ strb r0, [r1, #0x0]
+ ldr r0, _02031F58 ; =FUN_02031F60
+ mov r1, #0x20
+ bl FUN_02031D20
+ pop {r3, pc}
+_02031F48:
+ ldr r0, _02031F5C ; =FUN_02032028
+ mov r1, #0x0
+ bl FUN_02031D20
+_02031F50:
+ pop {r3, pc}
+ nop
+_02031F54: .word 0x021C5A00
+_02031F58: .word FUN_02031F60
+_02031F5C: .word FUN_02032028
+
+ thumb_func_start FUN_02031F60
+FUN_02031F60: ; 0x02031F60
+ push {r3, lr}
+ bl FUN_0202EA54
+ ldr r0, _02031FBC ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ add r0, #0x3e
+ ldrb r0, [r0, #0x0]
+ bl FUN_0202E8A0
+ cmp r0, #0x0
+ beq _02031F90
+ ldr r0, _02031FBC ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ add r0, #0x3e
+ ldrb r0, [r0, #0x0]
+ bl FUN_0202FB18
+ cmp r0, #0x0
+ beq _02031F90
+ ldr r0, _02031FC0 ; =FUN_02031FC8
+ mov r1, #0x64
+ bl FUN_02031D20
+ pop {r3, pc}
+_02031F90:
+ bl FUN_020311F0
+ cmp r0, #0x0
+ beq _02031FA2
+ ldr r0, _02031FC4 ; =FUN_02032028
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_02031FA2:
+ ldr r0, _02031FBC ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3a]
+ cmp r0, #0x0
+ beq _02031FB2
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3a]
+ pop {r3, pc}
+_02031FB2:
+ ldr r0, _02031FC4 ; =FUN_02032028
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+ .balign 4
+_02031FBC: .word 0x021C5A00
+_02031FC0: .word FUN_02031FC8
+_02031FC4: .word FUN_02032028
+
+ thumb_func_start FUN_02031FC8
+FUN_02031FC8: ; 0x02031FC8
+ push {r3, lr}
+ bl FUN_02031190
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ beq _02031FEE
+ bl FUN_0202FC60
+ mov r0, #0x0
+ bl FUN_02031268
+ bl FUN_02030FA8
+ ldr r0, _0203201C ; =FUN_0203213C
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_02031FEE:
+ bl FUN_020311F0
+ cmp r0, #0x0
+ beq _02032000
+ ldr r0, _02032020 ; =FUN_02032028
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_02032000:
+ ldr r0, _02032024 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3a]
+ cmp r0, #0x0
+ beq _02032010
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3a]
+ pop {r3, pc}
+_02032010:
+ ldr r0, _02032020 ; =FUN_02032028
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+ nop
+_0203201C: .word FUN_0203213C
+_02032020: .word FUN_02032028
+_02032024: .word 0x021C5A00
+
+ thumb_func_start FUN_02032028
+FUN_02032028: ; 0x02032028
+ push {r3, lr}
+ bl FUN_0202E6F0
+ cmp r0, #0x0
+ beq _0203203A
+ ldr r0, _0203203C ; =FUN_02032058
+ mov r1, #0x0
+ bl FUN_02031D20
+_0203203A:
+ pop {r3, pc}
+ .balign 4
+_0203203C: .word FUN_02032058
+
+ thumb_func_start FUN_02032040
+FUN_02032040: ; 0x02032040
+ push {r3, lr}
+ bl FUN_0202E6F0
+ cmp r0, #0x0
+ beq _02032052
+ ldr r0, _02032054 ; =FUN_02031E8C
+ mov r1, #0x0
+ bl FUN_02031D20
+_02032052:
+ pop {r3, pc}
+ .balign 4
+_02032054: .word FUN_02031E8C
+
+ thumb_func_start FUN_02032058
+FUN_02032058: ; 0x02032058
+ push {r3-r5, lr}
+ bl FUN_0202EE0C
+ cmp r0, #0x0
+ beq _020320BA
+ mov r0, #0x1
+ bl FUN_02031268
+ ldr r1, _020320BC ; =0x021C5A00
+ mov r2, #0x7d
+ ldr r1, [r1, #0x0]
+ mov r0, #0x0
+ add r1, #0x43
+ ldrb r1, [r1, #0x0]
+ lsl r2, r2, #0x2
+ mov r3, #0x1
+ bl FUN_0202F918
+ cmp r0, #0x0
+ beq _020320BA
+ ldr r0, _020320BC ; =0x021C5A00
+ ldr r5, [r0, #0x0]
+ add r4, r5, #0x0
+ add r4, #0xc
+ ldr r0, [r4, #0x8]
+ ldr r1, [r4, #0xc]
+ ldr r2, [r5, #0xc]
+ ldr r3, [r4, #0x4]
+ bl _ll_mul
+ ldr r2, [r4, #0x10]
+ ldr r3, [r4, #0x14]
+ add r0, r2, r0
+ adc r3, r1
+ str r0, [r5, #0xc]
+ str r3, [r4, #0x4]
+ add r0, r3, #0x0
+ mov r1, #0x0
+ mov r2, #0x14
+ mov r3, #0x0
+ bl _ll_mul
+ mov r0, #0x0
+ add r5, #0x43
+ strb r0, [r5, #0x0]
+ ldr r0, _020320C0 ; =FUN_020320C4
+ add r1, #0x14
+ bl FUN_02031D20
+_020320BA:
+ pop {r3-r5, pc}
+ .balign 4
+_020320BC: .word 0x021C5A00
+_020320C0: .word FUN_020320C4
+
+ thumb_func_start FUN_020320C4
+FUN_020320C4: ; 0x020320C4
+ push {r3, lr}
+ bl FUN_020311E8
+ cmp r0, #0x0
+ beq _020320E2
+ ldr r0, _0203210C ; =0x021C5A00
+ mov r1, #0x1
+ ldr r0, [r0, #0x0]
+ add r0, #0x43
+ strb r1, [r0, #0x0]
+ ldr r0, _02032110 ; =FUN_02032118
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_020320E2:
+ ldr r0, _0203210C ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3a]
+ cmp r0, #0x0
+ beq _020320F2
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3a]
+ pop {r3, pc}
+_020320F2:
+ add r1, #0x4a
+ ldrb r0, [r1, #0x0]
+ cmp r0, #0x0
+ bne _0203210A
+ bl FUN_0202E6F0
+ cmp r0, #0x0
+ beq _0203210A
+ ldr r0, _02032114 ; =FUN_02032040
+ mov r1, #0x2
+ bl FUN_02031D20
+_0203210A:
+ pop {r3, pc}
+ .balign 4
+_0203210C: .word 0x021C5A00
+_02032110: .word FUN_02032118
+_02032114: .word FUN_02032040
+
+ thumb_func_start FUN_02032118
+FUN_02032118: ; 0x02032118
+ push {r3, lr}
+ mov r0, #0x0
+ bl FUN_02031268
+ mov r0, #0x1
+ bl FUN_0202EE84
+ bl FUN_02030FA8
+ ldr r0, _02032134 ; =FUN_02032138
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+ .balign 4
+_02032134: .word FUN_02032138
+
+ thumb_func_start FUN_02032138
+FUN_02032138: ; 0x02032138
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0203213C
+FUN_0203213C: ; 0x0203213C
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02032140
+FUN_02032140: ; 0x02032140
+ push {r3, lr}
+ ldr r0, _02032170 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ add r0, #0x3f
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x13
+ bhs _02032166
+ bl FUN_0202EE0C
+ cmp r0, #0x0
+ beq _0203216E
+ mov r0, #0x1
+ bl FUN_02031268
+ bl FUN_02030FA8
+ mov r0, #0x1
+ bl FUN_0202E7B0
+_02032166:
+ ldr r0, _02032174 ; =FUN_020323B8
+ mov r1, #0x0
+ bl FUN_02031D20
+_0203216E:
+ pop {r3, pc}
+ .balign 4
+_02032170: .word 0x021C5A00
+_02032174: .word FUN_020323B8
+
+ thumb_func_start FUN_02032178
+FUN_02032178: ; 0x02032178
+ push {r3, lr}
+ bl FUN_0202E6F0
+ cmp r0, #0x0
+ beq _0203218E
+ bl FUN_0202FC60
+ ldr r0, _02032190 ; =FUN_02032140
+ mov r1, #0x0
+ bl FUN_02031D20
+_0203218E:
+ pop {r3, pc}
+ .balign 4
+_02032190: .word FUN_02032140
+
+ thumb_func_start FUN_02032194
+FUN_02032194: ; 0x02032194
+ push {r3, lr}
+ bl FUN_0202E4C8
+ cmp r0, #0x0
+ beq _020321B0
+ mov r0, #0x0
+ bl FUN_0202E7B0
+ bl FUN_0202FC60
+ ldr r0, _020321B4 ; =FUN_02031E08
+ mov r1, #0x0
+ bl FUN_02031D20
+_020321B0:
+ pop {r3, pc}
+ nop
+_020321B4: .word FUN_02031E08
+
+ thumb_func_start FUN_020321B8
+FUN_020321B8: ; 0x020321B8
+ push {r3, lr}
+ bl FUN_0202E6F0
+ cmp r0, #0x0
+ beq _020321CA
+ ldr r0, _020321CC ; =FUN_02031E08
+ mov r1, #0x0
+ bl FUN_02031D20
+_020321CA:
+ pop {r3, pc}
+ .balign 4
+_020321CC: .word FUN_02031E08
+
+ thumb_func_start FUN_020321D0
+FUN_020321D0: ; 0x020321D0
+ push {r3, lr}
+ bl FUN_0202E4C8
+ cmp r0, #0x0
+ beq _0203220C
+ ldr r0, _02032210 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x2c]
+ bl FUN_0202E29C
+ ldr r0, _02032210 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ ldr r0, [r1, #0x28]
+ ldr r1, [r1, #0x30]
+ bl FUN_0202DB14
+ mov r0, #0x1
+ add r1, r0, #0x0
+ lsl r2, r0, #0x9
+ add r3, r0, #0x0
+ bl FUN_0202F918
+ cmp r0, #0x0
+ beq _0203220C
+ bl FUN_0202FA10
+ ldr r0, _02032214 ; =FUN_02032218
+ mov r1, #0x0
+ bl FUN_02031D20
+_0203220C:
+ pop {r3, pc}
+ nop
+_02032210: .word 0x021C5A00
+_02032214: .word FUN_02032218
+
+ thumb_func_start FUN_02032218
+FUN_02032218: ; 0x02032218
+ push {r3, lr}
+ bl FUN_02031190
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ beq _0203222E
+ ldr r0, _02032230 ; =FUN_02032234
+ mov r1, #0x0
+ bl FUN_02031D20
+_0203222E:
+ pop {r3, pc}
+ .balign 4
+_02032230: .word FUN_02032234
+
+ thumb_func_start FUN_02032234
+FUN_02032234: ; 0x02032234
+ push {r3, lr}
+ bl FUN_02030F40
+ cmp r0, #0x0
+ bne _02032246
+ ldr r0, _02032248 ; =FUN_020323BC
+ mov r1, #0x0
+ bl FUN_02031D20
+_02032246:
+ pop {r3, pc}
+ .balign 4
+_02032248: .word FUN_020323BC
+
+ thumb_func_start FUN_0203224C
+FUN_0203224C: ; 0x0203224C
+ push {r3, lr}
+ bl FUN_0202E4C8
+ cmp r0, #0x0
+ beq _02032286
+ ldr r0, _02032288 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x2c]
+ bl FUN_0202E29C
+ ldr r0, _02032288 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ ldr r0, [r1, #0x28]
+ ldr r1, [r1, #0x30]
+ bl FUN_0202DB14
+ mov r0, #0x1
+ add r1, r0, #0x0
+ lsl r2, r0, #0x9
+ bl FUN_0202F950
+ cmp r0, #0x0
+ beq _02032286
+ bl FUN_0202FA10
+ ldr r0, _0203228C ; =FUN_02032290
+ mov r1, #0x0
+ bl FUN_02031D20
+_02032286:
+ pop {r3, pc}
+ .balign 4
+_02032288: .word 0x021C5A00
+_0203228C: .word FUN_02032290
+
+ thumb_func_start FUN_02032290
+FUN_02032290: ; 0x02032290
+ ldr r3, _02032294 ; =FUN_0202EA54
+ bx r3
+ .balign 4
+_02032294: .word FUN_0202EA54
+
+ thumb_func_start FUN_02032298
+FUN_02032298: ; 0x02032298
+ push {r3, lr}
+ bl FUN_0202EA54
+ ldr r0, _020322B8 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ add r0, #0x3e
+ ldrb r0, [r0, #0x0]
+ bl FUN_0202FB18
+ cmp r0, #0x0
+ beq _020322B6
+ ldr r0, _020322BC ; =FUN_020322C0
+ mov r1, #0xa
+ bl FUN_02031D20
+_020322B6:
+ pop {r3, pc}
+ .balign 4
+_020322B8: .word 0x021C5A00
+_020322BC: .word FUN_020322C0
+
+ thumb_func_start FUN_020322C0
+FUN_020322C0: ; 0x020322C0
+ push {r3, lr}
+ bl FUN_020311F0
+ cmp r0, #0x0
+ beq _020322D2
+ ldr r0, _020322F0 ; =FUN_020322F8
+ mov r1, #0x0
+ bl FUN_02031D20
+_020322D2:
+ bl FUN_02031190
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ beq _020322EE
+ bl FUN_02031190
+ cmp r0, #0x0
+ beq _020322EE
+ ldr r0, _020322F4 ; =FUN_0203234C
+ mov r1, #0x0
+ bl FUN_02031D20
+_020322EE:
+ pop {r3, pc}
+ .balign 4
+_020322F0: .word FUN_020322F8
+_020322F4: .word FUN_0203234C
+
+ thumb_func_start FUN_020322F8
+FUN_020322F8: ; 0x020322F8
+ push {r3, lr}
+ bl FUN_0202E6F0
+ ldr r0, _02032308 ; =FUN_0203230C
+ mov r1, #0x2
+ bl FUN_02031D20
+ pop {r3, pc}
+ .balign 4
+_02032308: .word FUN_0203230C
+
+ thumb_func_start FUN_0203230C
+FUN_0203230C: ; 0x0203230C
+ push {r3, lr}
+ ldr r0, _02032344 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3a]
+ cmp r0, #0x0
+ beq _0203231E
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3a]
+ pop {r3, pc}
+_0203231E:
+ bl FUN_0202EE0C
+ cmp r0, #0x0
+ beq _02032340
+ mov r1, #0x1
+ mov r0, #0x0
+ lsl r2, r1, #0x9
+ bl FUN_0202F950
+ cmp r0, #0x0
+ beq _02032340
+ bl FUN_0202FA10
+ ldr r0, _02032348 ; =FUN_02032298
+ mov r1, #0xa
+ bl FUN_02031D20
+_02032340:
+ pop {r3, pc}
+ nop
+_02032344: .word 0x021C5A00
+_02032348: .word FUN_02032298
+
+ thumb_func_start FUN_0203234C
+FUN_0203234C: ; 0x0203234C
+ push {r3, lr}
+ bl FUN_02030F40
+ cmp r0, #0x0
+ bne _0203235E
+ ldr r0, _02032360 ; =FUN_020323BC
+ mov r1, #0x0
+ bl FUN_02031D20
+_0203235E:
+ pop {r3, pc}
+ .balign 4
+_02032360: .word FUN_020323BC
+
+ thumb_func_start FUN_02032364
+FUN_02032364: ; 0x02032364
+ push {r3, lr}
+ bl FUN_0202E6F0
+ ldr r0, _02032374 ; =FUN_02032378
+ mov r1, #0x2
+ bl FUN_02031D20
+ pop {r3, pc}
+ .balign 4
+_02032374: .word FUN_02032378
+
+ thumb_func_start FUN_02032378
+FUN_02032378: ; 0x02032378
+ push {r3, lr}
+ ldr r0, _020323B0 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3a]
+ cmp r0, #0x0
+ beq _0203238A
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3a]
+ pop {r3, pc}
+_0203238A:
+ bl FUN_0202EE0C
+ cmp r0, #0x0
+ beq _020323AC
+ mov r1, #0x1
+ mov r0, #0x0
+ lsl r2, r1, #0x9
+ bl FUN_0202F950
+ cmp r0, #0x0
+ beq _020323AC
+ bl FUN_0202FA10
+ ldr r0, _020323B4 ; =FUN_02032290
+ mov r1, #0xa
+ bl FUN_02031D20
+_020323AC:
+ pop {r3, pc}
+ nop
+_020323B0: .word 0x021C5A00
+_020323B4: .word FUN_02032290
+
+ thumb_func_start FUN_020323B8
+FUN_020323B8: ; 0x020323B8
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020323BC
+FUN_020323BC: ; 0x020323BC
+ push {r3, lr}
+ bl FUN_02030F40
+ cmp r0, #0x0
+ bne _020323CA
+ bl FUN_020317C0
+_020323CA:
+ pop {r3, pc}
+
+ thumb_func_start FUN_020323CC
+FUN_020323CC: ; 0x020323CC
+ ldr r3, _020323D4 ; =FUN_02031D20
+ ldr r0, _020323D8 ; =FUN_02032440
+ mov r1, #0x5
+ bx r3
+ .balign 4
+_020323D4: .word FUN_02031D20
+_020323D8: .word FUN_02032440
+
+ thumb_func_start FUN_020323DC
+FUN_020323DC: ; 0x020323DC
+ push {r3, lr}
+ bl FUN_02030F20
+ cmp r0, #0x1
+ bgt _020323F8
+ mov r0, #0x0
+ bl FUN_0202D36C
+ bl FUN_0202FC80
+ ldr r0, _0203241C ; =FUN_020324F8
+ mov r1, #0x0
+ bl FUN_02031D20
+_020323F8:
+ ldr r0, _02032420 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3a]
+ cmp r0, #0x0
+ beq _02032408
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3a]
+ pop {r3, pc}
+_02032408:
+ mov r0, #0x0
+ bl FUN_0202D36C
+ bl FUN_0202FC80
+ ldr r0, _0203241C ; =FUN_020324F8
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+ .balign 4
+_0203241C: .word FUN_020324F8
+_02032420: .word 0x021C5A00
+
+ thumb_func_start FUN_02032424
+FUN_02032424: ; 0x02032424
+ push {r3, lr}
+ bl FUN_0202E6F0
+ cmp r0, #0x0
+ beq _0203243A
+ bl FUN_0202FC60
+ ldr r0, _0203243C ; =FUN_020324F8
+ mov r1, #0x0
+ bl FUN_02031D20
+_0203243A:
+ pop {r3, pc}
+ .balign 4
+_0203243C: .word FUN_020324F8
+
+ thumb_func_start FUN_02032440
+FUN_02032440: ; 0x02032440
+ push {r3, lr}
+ ldr r0, _02032470 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3a]
+ cmp r0, #0x0
+ beq _02032450
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3a]
+_02032450:
+ bl FUN_0202E6F0
+ cmp r0, #0x0
+ beq _0203246E
+ ldr r0, _02032470 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ ldrh r0, [r0, #0x3a]
+ cmp r0, #0x0
+ bne _0203246E
+ bl FUN_0202FA5C
+ ldr r0, _02032474 ; =FUN_020323BC
+ mov r1, #0x0
+ bl FUN_02031D20
+_0203246E:
+ pop {r3, pc}
+ .balign 4
+_02032470: .word 0x021C5A00
+_02032474: .word FUN_020323BC
+
+ thumb_func_start FUN_02032478
+FUN_02032478: ; 0x02032478
+ push {r3, lr}
+ bl FUN_0202E4C8
+ cmp r0, #0x0
+ beq _020324BE
+ ldr r0, _020324C0 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x2c]
+ bl FUN_0202E29C
+ ldr r0, _020324C0 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ add r0, #0x3c
+ ldrb r0, [r0, #0x0]
+ bl FUN_0202D1B0
+ ldr r0, _020324C0 ; =0x021C5A00
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x28]
+ bl FUN_0202DB14
+ mov r0, #0x1
+ add r1, r0, #0x0
+ lsl r2, r0, #0x9
+ bl FUN_0202F950
+ cmp r0, #0x0
+ beq _020324BE
+ bl FUN_0202FA10
+ ldr r0, _020324C4 ; =FUN_020324C8
+ mov r1, #0x40
+ bl FUN_02031D20
+_020324BE:
+ pop {r3, pc}
+ .balign 4
+_020324C0: .word 0x021C5A00
+_020324C4: .word FUN_020324C8
+
+ thumb_func_start FUN_020324C8
+FUN_020324C8: ; 0x020324C8
+ push {r3, lr}
+ bl FUN_0202EA54
+ ldr r0, _020324F0 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3a]
+ cmp r0, #0x0
+ beq _020324DE
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3a]
+ pop {r3, pc}
+_020324DE:
+ bl FUN_0202E6F0
+ cmp r0, #0x0
+ beq _020324EE
+ ldr r0, _020324F4 ; =FUN_02032510
+ mov r1, #0x0
+ bl FUN_02031D20
+_020324EE:
+ pop {r3, pc}
+ .balign 4
+_020324F0: .word 0x021C5A00
+_020324F4: .word FUN_02032510
+
+ thumb_func_start FUN_020324F8
+FUN_020324F8: ; 0x020324F8
+ push {r3, lr}
+ bl FUN_0202E6F0
+ cmp r0, #0x0
+ beq _0203250A
+ ldr r0, _0203250C ; =FUN_02032510
+ mov r1, #0x0
+ bl FUN_02031D20
+_0203250A:
+ pop {r3, pc}
+ .balign 4
+_0203250C: .word FUN_02032510
+
+ thumb_func_start FUN_02032510
+FUN_02032510: ; 0x02032510
+ push {r3-r5, lr}
+ bl FUN_0202EE0C
+ cmp r0, #0x0
+ beq _02032568
+ ldr r1, _0203256C ; =0x021C5A00
+ mov r2, #0x2
+ ldr r1, [r1, #0x0]
+ mov r0, #0x0
+ add r1, #0x43
+ ldrb r1, [r1, #0x0]
+ lsl r2, r2, #0x8
+ mov r3, #0x1
+ bl FUN_0202F918
+ cmp r0, #0x0
+ beq _02032568
+ ldr r0, _0203256C ; =0x021C5A00
+ ldr r4, [r0, #0x0]
+ add r5, r4, #0x0
+ add r5, #0xc
+ ldr r0, [r5, #0x8]
+ ldr r1, [r5, #0xc]
+ ldr r2, [r4, #0xc]
+ ldr r3, [r5, #0x4]
+ bl _ll_mul
+ ldr r2, [r5, #0x10]
+ ldr r3, [r5, #0x14]
+ add r0, r2, r0
+ adc r3, r1
+ str r0, [r4, #0xc]
+ str r3, [r5, #0x4]
+ bl FUN_0202FA10
+ ldr r0, _0203256C ; =0x021C5A00
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r0, #0x43
+ strb r1, [r0, #0x0]
+ ldr r0, _02032570 ; =FUN_02032578
+ ldr r1, _02032574 ; =0x00002710
+ bl FUN_02031D20
+_02032568:
+ pop {r3-r5, pc}
+ nop
+_0203256C: .word 0x021C5A00
+_02032570: .word FUN_02032578
+_02032574: .word 0x00002710
+
+ thumb_func_start FUN_02032578
+FUN_02032578: ; 0x02032578
+ push {r3, lr}
+ bl FUN_0202F104
+ cmp r0, #0x0
+ bne _020325B2
+ bl FUN_020311E8
+ cmp r0, #0x0
+ beq _020325A2
+ ldr r0, _020325C4 ; =0x021C5A00
+ mov r1, #0x1
+ ldr r0, [r0, #0x0]
+ add r0, #0x43
+ strb r1, [r0, #0x0]
+ bl FUN_02033E74
+ ldr r0, _020325C8 ; =FUN_020327FC
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_020325A2:
+ ldr r0, _020325C4 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3a]
+ cmp r0, #0x0
+ beq _020325B2
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3a]
+ pop {r3, pc}
+_020325B2:
+ bl FUN_0202E6F0
+ cmp r0, #0x0
+ beq _020325C2
+ ldr r0, _020325CC ; =FUN_020325D0
+ mov r1, #0x0
+ bl FUN_02031D20
+_020325C2:
+ pop {r3, pc}
+ .balign 4
+_020325C4: .word 0x021C5A00
+_020325C8: .word FUN_020327FC
+_020325CC: .word FUN_020325D0
+
+ thumb_func_start FUN_020325D0
+FUN_020325D0: ; 0x020325D0
+ push {r3-r5, lr}
+ bl FUN_0202EE0C
+ cmp r0, #0x0
+ beq _0203261C
+ mov r0, #0x0
+ mov r2, #0x2
+ add r1, r0, #0x0
+ lsl r2, r2, #0x8
+ bl FUN_0202F950
+ cmp r0, #0x0
+ beq _0203261C
+ bl FUN_0202FA10
+ ldr r0, _02032620 ; =0x021C5A00
+ ldr r4, [r0, #0x0]
+ add r5, r4, #0x0
+ add r5, #0xc
+ ldr r0, [r5, #0x8]
+ ldr r1, [r5, #0xc]
+ ldr r2, [r4, #0xc]
+ ldr r3, [r5, #0x4]
+ bl _ll_mul
+ ldr r2, [r5, #0x10]
+ ldr r3, [r5, #0x14]
+ add r0, r2, r0
+ adc r3, r1
+ str r0, [r4, #0xc]
+ mov r1, #0x0
+ ldr r0, _02032624 ; =FUN_020324C8
+ lsr r2, r3, #0x1b
+ lsl r1, r1, #0x5
+ orr r1, r2
+ str r3, [r5, #0x4]
+ bl FUN_02031D20
+_0203261C:
+ pop {r3-r5, pc}
+ nop
+_02032620: .word 0x021C5A00
+_02032624: .word FUN_020324C8
+
+ thumb_func_start FUN_02032628
+FUN_02032628: ; 0x02032628
+ push {r3, lr}
+ bl FUN_0202E6F0
+ cmp r0, #0x0
+ beq _0203263A
+ ldr r0, _0203263C ; =FUN_02032640
+ mov r1, #0x0
+ bl FUN_02031D20
+_0203263A:
+ pop {r3, pc}
+ .balign 4
+_0203263C: .word FUN_02032640
+
+ thumb_func_start FUN_02032640
+FUN_02032640: ; 0x02032640
+ push {r3, lr}
+ bl FUN_0202EE0C
+ cmp r0, #0x0
+ beq _02032666
+ mov r0, #0x0
+ mov r2, #0x2
+ add r1, r0, #0x0
+ lsl r2, r2, #0x8
+ bl FUN_0202F950
+ cmp r0, #0x0
+ beq _02032666
+ bl FUN_0202FA10
+ ldr r0, _02032668 ; =FUN_0203266C
+ mov r1, #0x64
+ bl FUN_02031D20
+_02032666:
+ pop {r3, pc}
+ .balign 4
+_02032668: .word FUN_0203266C
+
+ thumb_func_start FUN_0203266C
+FUN_0203266C: ; 0x0203266C
+ push {r3, lr}
+ ldr r0, _020326C4 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ add r0, #0x3e
+ ldrb r0, [r0, #0x0]
+ bl FUN_0202E8A0
+ cmp r0, #0x0
+ beq _02032698
+ ldr r0, _020326C4 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ add r0, #0x3e
+ ldrb r0, [r0, #0x0]
+ bl FUN_0202FB18
+ cmp r0, #0x0
+ beq _02032698
+ ldr r0, _020326C8 ; =FUN_020326D0
+ mov r1, #0x64
+ bl FUN_02031D20
+ pop {r3, pc}
+_02032698:
+ bl FUN_020311F0
+ cmp r0, #0x0
+ beq _020326AA
+ ldr r0, _020326CC ; =FUN_020327B8
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_020326AA:
+ ldr r0, _020326C4 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3a]
+ cmp r0, #0x0
+ beq _020326BA
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3a]
+ pop {r3, pc}
+_020326BA:
+ ldr r0, _020326CC ; =FUN_020327B8
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+ .balign 4
+_020326C4: .word 0x021C5A00
+_020326C8: .word FUN_020326D0
+_020326CC: .word FUN_020327B8
+
+ thumb_func_start FUN_020326D0
+FUN_020326D0: ; 0x020326D0
+ push {r3, lr}
+ bl FUN_020311F0
+ cmp r0, #0x0
+ beq _020326E4
+ ldr r0, _02032728 ; =FUN_020327B8
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_020326E4:
+ bl FUN_02031190
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ beq _0203270C
+ ldr r0, _0203272C ; =0x021C5A00
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r0, #0x3d
+ strb r1, [r0, #0x0]
+ ldr r1, _02032730 ; =0x02105D5C
+ mov r0, #0x6
+ bl FUN_020311D0
+ ldr r0, _02032734 ; =FUN_02032738
+ mov r1, #0x78
+ bl FUN_02031D20
+ pop {r3, pc}
+_0203270C:
+ ldr r0, _0203272C ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3a]
+ cmp r0, #0x0
+ beq _0203271C
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3a]
+ pop {r3, pc}
+_0203271C:
+ ldr r0, _02032728 ; =FUN_020327B8
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+ nop
+_02032728: .word FUN_020327B8
+_0203272C: .word 0x021C5A00
+_02032730: .word 0x02105D5C
+_02032734: .word FUN_02032738
+
+ thumb_func_start FUN_02032738
+FUN_02032738: ; 0x02032738
+ push {r3, lr}
+ bl FUN_020311F0
+ cmp r0, #0x0
+ beq _0203274C
+ ldr r0, _0203278C ; =FUN_020327B8
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_0203274C:
+ ldr r0, _02032790 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ add r0, r1, #0x0
+ add r0, #0x3d
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x2
+ bne _02032764
+ ldr r0, _02032794 ; =FUN_020327B4
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_02032764:
+ cmp r0, #0x1
+ bne _02032776
+ bl FUN_0202DBE0
+ ldr r0, _02032798 ; =FUN_0203279C
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_02032776:
+ ldrh r0, [r1, #0x3a]
+ cmp r0, #0x0
+ beq _02032782
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3a]
+ pop {r3, pc}
+_02032782:
+ ldr r0, _0203278C ; =FUN_020327B8
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+ .balign 4
+_0203278C: .word FUN_020327B8
+_02032790: .word 0x021C5A00
+_02032794: .word FUN_020327B4
+_02032798: .word FUN_0203279C
+
+ thumb_func_start FUN_0203279C
+FUN_0203279C: ; 0x0203279C
+ push {r3, lr}
+ bl FUN_020311F0
+ cmp r0, #0x0
+ beq _020327AE
+ ldr r0, _020327B0 ; =FUN_020327B8
+ mov r1, #0x0
+ bl FUN_02031D20
+_020327AE:
+ pop {r3, pc}
+ .balign 4
+_020327B0: .word FUN_020327B8
+
+ thumb_func_start FUN_020327B4
+FUN_020327B4: ; 0x020327B4
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020327B8
+FUN_020327B8: ; 0x020327B8
+ push {r3, lr}
+ ldr r0, _020327F0 ; =0x021C5A00
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r0, #0x3d
+ strb r1, [r0, #0x0]
+ bl FUN_0202E6F0
+ cmp r0, #0x0
+ beq _020327EC
+ ldr r0, _020327F0 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x38]
+ cmp r0, #0x0
+ beq _020327E4
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x38]
+ ldr r0, _020327F4 ; =FUN_02032640
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_020327E4:
+ ldr r0, _020327F8 ; =FUN_020327B4
+ mov r1, #0x0
+ bl FUN_02031D20
+_020327EC:
+ pop {r3, pc}
+ nop
+_020327F0: .word 0x021C5A00
+_020327F4: .word FUN_02032640
+_020327F8: .word FUN_020327B4
+
+ thumb_func_start FUN_020327FC
+FUN_020327FC: ; 0x020327FC
+ push {r3, lr}
+ bl FUN_020311E8
+ cmp r0, #0x0
+ bne _02032820
+ bl FUN_02033510
+ cmp r0, #0x0
+ bne _0203282C
+ bl FUN_0202E6F0
+ cmp r0, #0x0
+ beq _0203282C
+ ldr r0, _02032848 ; =FUN_020325D0
+ mov r1, #0x0
+ bl FUN_02031D20
+ b _0203282C
+_02032820:
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _0203282C
+ bl FUN_0202DDE8
+_0203282C:
+ bl FUN_020311F0
+ cmp r0, #0x0
+ beq _02032844
+ bl FUN_02033510
+ cmp r0, #0x0
+ bne _02032844
+ ldr r0, _0203284C ; =FUN_020327B8
+ mov r1, #0x0
+ bl FUN_02031D20
+_02032844:
+ pop {r3, pc}
+ nop
+_02032848: .word FUN_020325D0
+_0203284C: .word FUN_020327B8
+
+ thumb_func_start FUN_02032850
+FUN_02032850: ; 0x02032850
+ push {r3, lr}
+ bl FUN_0202EE0C
+ cmp r0, #0x0
+ beq _0203287E
+ ldr r1, _02032880 ; =0x021C5A00
+ mov r0, #0x0
+ ldr r1, [r1, #0x0]
+ mov r2, #0x2
+ add r1, #0x43
+ ldrb r1, [r1, #0x0]
+ lsl r2, r2, #0x8
+ add r3, r0, #0x0
+ bl FUN_0202F918
+ cmp r0, #0x0
+ beq _0203287E
+ bl FUN_0202FA10
+ ldr r0, _02032884 ; =FUN_020323B8
+ mov r1, #0x0
+ bl FUN_02031D20
+_0203287E:
+ pop {r3, pc}
+ .balign 4
+_02032880: .word 0x021C5A00
+_02032884: .word FUN_020323B8
+
+ thumb_func_start FUN_02032888
+FUN_02032888: ; 0x02032888
+ push {r3, lr}
+ ldr r0, _020328BC ; =0x021C5A00
+ mov r1, #0xd
+ ldr r0, [r0, #0x0]
+ add r0, #0x3f
+ strb r1, [r0, #0x0]
+ bl FUN_02031190
+ cmp r0, #0x0
+ add r0, sp, #0x0
+ bne _020328AE
+ mov r1, #0x0
+ strb r1, [r0, #0x1]
+ add r1, sp, #0x0
+ mov r0, #0xa
+ add r1, #0x1
+ bl FUN_020311D0
+ pop {r3, pc}
+_020328AE:
+ mov r1, #0x0
+ strb r1, [r0, #0x0]
+ mov r0, #0xa
+ add r1, sp, #0x0
+ bl FUN_020311D0
+ pop {r3, pc}
+ .balign 4
+_020328BC: .word 0x021C5A00
+
+ thumb_func_start FUN_020328C0
+FUN_020328C0: ; 0x020328C0
+ ldr r1, _020328D8 ; =0x021C5A00
+ ldr r3, _020328DC ; =FUN_02031D20
+ ldr r2, [r1, #0x0]
+ add r2, #0x3e
+ strb r0, [r2, #0x0]
+ ldr r0, [r1, #0x0]
+ mov r2, #0x3
+ strh r2, [r0, #0x38]
+ ldr r0, _020328E0 ; =FUN_02032924
+ mov r1, #0x0
+ bx r3
+ nop
+_020328D8: .word 0x021C5A00
+_020328DC: .word FUN_02031D20
+_020328E0: .word FUN_02032924
+
+ thumb_func_start FUN_020328E4
+FUN_020328E4: ; 0x020328E4
+ ldr r0, _020328F0 ; =0x021C5A00
+ mov r1, #0x7
+ ldr r0, [r0, #0x0]
+ add r0, #0x3f
+ strb r1, [r0, #0x0]
+ bx lr
+ .balign 4
+_020328F0: .word 0x021C5A00
+
+ thumb_func_start FUN_020328F4
+FUN_020328F4: ; 0x020328F4
+ push {r3, lr}
+ ldr r1, _0203291C ; =0x021C5A00
+ ldr r2, [r1, #0x0]
+ add r2, #0x3e
+ strb r0, [r2, #0x0]
+ ldr r0, [r1, #0x0]
+ mov r2, #0x7
+ add r0, #0x3f
+ strb r2, [r0, #0x0]
+ ldr r0, [r1, #0x0]
+ mov r2, #0x3
+ strh r2, [r0, #0x38]
+ bl FUN_02033E74
+ ldr r0, _02032920 ; =FUN_02032628
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+ nop
+_0203291C: .word 0x021C5A00
+_02032920: .word FUN_02032628
+
+ thumb_func_start FUN_02032924
+FUN_02032924: ; 0x02032924
+ push {r3, lr}
+ bl FUN_0202E6F0
+ cmp r0, #0x0
+ beq _02032936
+ ldr r0, _02032938 ; =FUN_0203293C
+ mov r1, #0x0
+ bl FUN_02031D20
+_02032936:
+ pop {r3, pc}
+ .balign 4
+_02032938: .word FUN_0203293C
+
+ thumb_func_start FUN_0203293C
+FUN_0203293C: ; 0x0203293C
+ push {r3, lr}
+ bl FUN_0202EE0C
+ cmp r0, #0x0
+ beq _0203296C
+ ldr r0, _02032970 ; =0x021C5A00
+ mov r2, #0x2
+ ldr r0, [r0, #0x0]
+ mov r1, #0xd
+ add r0, #0x3f
+ strb r1, [r0, #0x0]
+ mov r0, #0x0
+ add r1, r0, #0x0
+ lsl r2, r2, #0x8
+ bl FUN_0202F950
+ cmp r0, #0x0
+ beq _0203296C
+ bl FUN_0202FA1C
+ ldr r0, _02032974 ; =FUN_02032978
+ mov r1, #0x64
+ bl FUN_02031D20
+_0203296C:
+ pop {r3, pc}
+ nop
+_02032970: .word 0x021C5A00
+_02032974: .word FUN_02032978
+
+ thumb_func_start FUN_02032978
+FUN_02032978: ; 0x02032978
+ push {r3, lr}
+ ldr r0, _020329E4 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ add r0, #0x3e
+ ldrb r0, [r0, #0x0]
+ bl FUN_0202E8A0
+ cmp r0, #0x0
+ beq _020329A4
+ ldr r0, _020329E4 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ add r0, #0x3e
+ ldrb r0, [r0, #0x0]
+ bl FUN_0202FB18
+ cmp r0, #0x0
+ beq _020329A4
+ ldr r0, _020329E8 ; =FUN_020329F4
+ mov r1, #0x64
+ bl FUN_02031D20
+ pop {r3, pc}
+_020329A4:
+ bl FUN_020311F0
+ cmp r0, #0x0
+ bne _020329B6
+ ldr r0, _020329E4 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3a]
+ cmp r0, #0x0
+ bne _020329DC
+_020329B6:
+ ldr r0, _020329E4 ; =0x021C5A00
+ ldr r2, [r0, #0x0]
+ ldrh r1, [r2, #0x38]
+ sub r1, r1, #0x1
+ strh r1, [r2, #0x38]
+ ldr r0, [r0, #0x0]
+ ldrh r0, [r0, #0x38]
+ cmp r0, #0x0
+ bne _020329D2
+ ldr r0, _020329EC ; =FUN_020327B4
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_020329D2:
+ ldr r0, _020329F0 ; =FUN_02032924
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_020329DC:
+ beq _020329E2
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3a]
+_020329E2:
+ pop {r3, pc}
+ .balign 4
+_020329E4: .word 0x021C5A00
+_020329E8: .word FUN_020329F4
+_020329EC: .word FUN_020327B4
+_020329F0: .word FUN_02032924
+
+ thumb_func_start FUN_020329F4
+FUN_020329F4: ; 0x020329F4
+ push {r3, lr}
+ ldr r0, _02032A7C ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ ldrh r0, [r1, #0x3a]
+ cmp r0, #0x5a
+ bls _02032A06
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x3a]
+ pop {r3, pc}
+_02032A06:
+ bl FUN_020311F0
+ cmp r0, #0x0
+ beq _02032A34
+ ldr r0, _02032A7C ; =0x021C5A00
+ ldr r2, [r0, #0x0]
+ ldrh r1, [r2, #0x38]
+ sub r1, r1, #0x1
+ strh r1, [r2, #0x38]
+ ldr r0, [r0, #0x0]
+ ldrh r0, [r0, #0x38]
+ cmp r0, #0x0
+ bne _02032A2A
+ ldr r0, _02032A80 ; =FUN_020327B4
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_02032A2A:
+ ldr r0, _02032A84 ; =FUN_02032924
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_02032A34:
+ bl FUN_02031190
+ bl FUN_02030E7C
+ cmp r0, #0x0
+ beq _02032A4A
+ ldr r0, _02032A88 ; =FUN_0203279C
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_02032A4A:
+ ldr r0, _02032A7C ; =0x021C5A00
+ ldr r2, [r0, #0x0]
+ ldrh r1, [r2, #0x3a]
+ cmp r1, #0x0
+ beq _02032A5A
+ sub r0, r1, #0x1
+ strh r0, [r2, #0x3a]
+ pop {r3, pc}
+_02032A5A:
+ ldrh r1, [r2, #0x38]
+ sub r1, r1, #0x1
+ strh r1, [r2, #0x38]
+ ldr r0, [r0, #0x0]
+ ldrh r0, [r0, #0x38]
+ cmp r0, #0x0
+ bne _02032A72
+ ldr r0, _02032A80 ; =FUN_020327B4
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_02032A72:
+ ldr r0, _02032A84 ; =FUN_02032924
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+ .balign 4
+_02032A7C: .word 0x021C5A00
+_02032A80: .word FUN_020327B4
+_02032A84: .word FUN_02032924
+_02032A88: .word FUN_0203279C
+
+ thumb_func_start FUN_02032A8C
+FUN_02032A8C: ; 0x02032A8C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r2, #0x0
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _02032ADA
+ ldr r6, _02032ADC ; =0x02105D5C
+ mov r3, #0x1
+ mov r2, #0x0
+_02032AA0:
+ ldrb r1, [r6, #0x0]
+ ldrb r0, [r4, r2]
+ cmp r1, r0
+ beq _02032AAC
+ mov r3, #0x0
+ b _02032AB4
+_02032AAC:
+ add r2, r2, #0x1
+ add r6, r6, #0x1
+ cmp r2, #0x6
+ blo _02032AA0
+_02032AB4:
+ cmp r3, #0x0
+ beq _02032AD0
+ ldr r0, _02032AE0 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ add r0, #0x48
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02032AD0
+ ldr r1, _02032AE4 ; =0x02105D6C
+ mov r0, #0x7
+ strb r5, [r1, #0x0]
+ bl FUN_02030C4C
+ pop {r4-r6, pc}
+_02032AD0:
+ ldr r1, _02032AE8 ; =0x02105D64
+ mov r0, #0x7
+ strb r5, [r1, #0x0]
+ bl FUN_02030C4C
+_02032ADA:
+ pop {r4-r6, pc}
+ .balign 4
+_02032ADC: .word 0x02105D5C
+_02032AE0: .word 0x021C5A00
+_02032AE4: .word 0x02105D6C
+_02032AE8: .word 0x02105D64
+
+ thumb_func_start FUN_02032AEC
+FUN_02032AEC: ; 0x02032AEC
+ push {r3-r5, lr}
+ mov r4, #0x1
+ ldr r5, _02032B5C ; =0x02105D6D
+ add r3, r4, #0x0
+_02032AF4:
+ ldrb r1, [r5, #0x0]
+ ldrb r0, [r2, r3]
+ cmp r1, r0
+ beq _02032B00
+ mov r4, #0x0
+ b _02032B08
+_02032B00:
+ add r3, r3, #0x1
+ add r5, r5, #0x1
+ cmp r3, #0x6
+ blo _02032AF4
+_02032B08:
+ cmp r4, #0x0
+ beq _02032B22
+ ldrb r4, [r2, #0x0]
+ bl FUN_02031190
+ cmp r4, r0
+ bne _02032B58
+ ldr r0, _02032B60 ; =0x021C5A00
+ mov r1, #0x1
+ ldr r0, [r0, #0x0]
+ add r0, #0x3d
+ strb r1, [r0, #0x0]
+ pop {r3-r5, pc}
+_02032B22:
+ mov r4, #0x1
+ ldr r3, _02032B64 ; =0x02105D65
+ add r5, r4, #0x0
+_02032B28:
+ ldrb r1, [r3, #0x0]
+ ldrb r0, [r2, r5]
+ cmp r1, r0
+ beq _02032B34
+ mov r4, #0x0
+ b _02032B3C
+_02032B34:
+ add r5, r5, #0x1
+ add r3, r3, #0x1
+ cmp r5, #0x6
+ blo _02032B28
+_02032B3C:
+ cmp r4, #0x0
+ beq _02032B58
+ ldrb r4, [r2, #0x0]
+ bl FUN_02031190
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r4, r0
+ bne _02032B58
+ ldr r0, _02032B60 ; =0x021C5A00
+ mov r1, #0x2
+ ldr r0, [r0, #0x0]
+ add r0, #0x3d
+ strb r1, [r0, #0x0]
+_02032B58:
+ pop {r3-r5, pc}
+ nop
+_02032B5C: .word 0x02105D6D
+_02032B60: .word 0x021C5A00
+_02032B64: .word 0x02105D65
+
+ thumb_func_start FUN_02032B68
+FUN_02032B68: ; 0x02032B68
+ mov r0, #0x6
+ bx lr
+
+ thumb_func_start FUN_02032B6C
+FUN_02032B6C: ; 0x02032B6C
+ push {r3, lr}
+ ldr r1, _02032B80 ; =0x021C5A00
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ beq _02032B7E
+ add r1, #0x3c
+ strb r0, [r1, #0x0]
+ bl FUN_0202D1B0
+_02032B7E:
+ pop {r3, pc}
+ .balign 4
+_02032B80: .word 0x021C5A00
+
+ thumb_func_start FUN_02032B84
+FUN_02032B84: ; 0x02032B84
+ ldr r3, _02032B88 ; =FUN_0202EA54
+ bx r3
+ .balign 4
+_02032B88: .word FUN_0202EA54
+
+ thumb_func_start FUN_02032B8C
+FUN_02032B8C: ; 0x02032B8C
+ push {r3, lr}
+ bl FUN_0202E4C8
+ cmp r0, #0x0
+ beq _02032BC6
+ ldr r0, _02032BC8 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x2c]
+ bl FUN_0202E29C
+ ldr r0, _02032BC8 ; =0x021C5A00
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x28]
+ bl FUN_0202DB14
+ mov r0, #0x1
+ add r1, r0, #0x0
+ mov r2, #0x20
+ bl FUN_0202F950
+ cmp r0, #0x0
+ beq _02032BC6
+ bl FUN_0202FA10
+ ldr r0, _02032BCC ; =FUN_02032B84
+ mov r1, #0x0
+ bl FUN_02031D20
+_02032BC6:
+ pop {r3, pc}
+ .balign 4
+_02032BC8: .word 0x021C5A00
+_02032BCC: .word FUN_02032B84
+
+ thumb_func_start FUN_02032BD0
+FUN_02032BD0: ; 0x02032BD0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02030F40
+ cmp r0, #0x0
+ bne _02032C00
+ mov r2, #0x7
+ mov r0, #0x3
+ mov r1, #0xf
+ lsl r2, r2, #0xc
+ bl FUN_02016828
+ add r0, r4, #0x0
+ mov r1, #0xe
+ bl FUN_02031734
+ ldr r0, _02032C04 ; =0x021C5A00
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r0, #0x40
+ strb r1, [r0, #0x0]
+ ldr r0, _02032C08 ; =FUN_02032B8C
+ bl FUN_02031D20
+_02032C00:
+ pop {r4, pc}
+ nop
+_02032C04: .word 0x021C5A00
+_02032C08: .word FUN_02032B8C
+
+ thumb_func_start FUN_02032C0C
+FUN_02032C0C: ; 0x02032C0C
+ push {r3, lr}
+ ldr r0, _02032C20 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02032C1E
+ ldr r0, _02032C24 ; =FUN_02032440
+ mov r1, #0x5
+ bl FUN_02031D20
+_02032C1E:
+ pop {r3, pc}
+ .balign 4
+_02032C20: .word 0x021C5A00
+_02032C24: .word FUN_02032440
+
+ thumb_func_start FUN_02032C28
+FUN_02032C28: ; 0x02032C28
+ sub sp, #0x8
+ ldr r1, _02032C64 ; =0x020EEC48
+ add r0, sp, #0x0
+ ldr r2, [r1, #0x0]
+ ldr r1, [r1, #0x4]
+ str r2, [sp, #0x0]
+ str r1, [sp, #0x4]
+ ldr r1, _02032C68 ; =0x021C5A00
+ ldr r1, [r1, #0x0]
+ ldr r3, [r1, #0x24]
+ cmp r1, #0x0
+ bne _02032C46
+ mov r0, #0x0
+ add sp, #0x8
+ bx lr
+_02032C46:
+ cmp r2, #0x0
+ beq _02032C5E
+_02032C4A:
+ ldr r1, [r0, #0x0]
+ cmp r3, r1
+ bne _02032C56
+ mov r0, #0x1
+ add sp, #0x8
+ bx lr
+_02032C56:
+ add r0, r0, #0x4
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ bne _02032C4A
+_02032C5E:
+ mov r0, #0x0
+ add sp, #0x8
+ bx lr
+ .balign 4
+_02032C64: .word 0x020EEC48
+_02032C68: .word 0x021C5A00
+
+ thumb_func_start FUN_02032C6C
+FUN_02032C6C: ; 0x02032C6C
+ ldr r2, _02032CE4 ; =0x00400131
+ cmp r0, r2
+ bhi _02032C7C
+ bhs _02032CBA
+ ldr r2, _02032CE8 ; =0x00000333
+ cmp r0, r2
+ beq _02032C8E
+ bx lr
+_02032C7C:
+ ldr r1, _02032CEC ; =0x00400286
+ cmp r0, r1
+ bhi _02032C86
+ beq _02032CCE
+ bx lr
+_02032C86:
+ add r1, #0x92
+ cmp r0, r1
+ beq _02032CA6
+ bx lr
+_02032C8E:
+ cmp r1, #0xf
+ bne _02032CE0
+ ldr r0, _02032CF0 ; =0x021C5A00
+ ldr r2, [r0, #0x0]
+ add r0, r2, #0x0
+ add r0, #0x49
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x1
+ add r2, #0x49
+ orr r0, r1
+ strb r0, [r2, #0x0]
+ bx lr
+_02032CA6:
+ ldr r0, _02032CF0 ; =0x021C5A00
+ ldr r2, [r0, #0x0]
+ add r0, r2, #0x0
+ add r0, #0x49
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x1
+ add r2, #0x49
+ orr r0, r1
+ strb r0, [r2, #0x0]
+ bx lr
+_02032CBA:
+ ldr r0, _02032CF0 ; =0x021C5A00
+ ldr r2, [r0, #0x0]
+ add r0, r2, #0x0
+ add r0, #0x49
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x2
+ add r2, #0x49
+ orr r0, r1
+ strb r0, [r2, #0x0]
+ bx lr
+_02032CCE:
+ ldr r0, _02032CF0 ; =0x021C5A00
+ ldr r2, [r0, #0x0]
+ add r0, r2, #0x0
+ add r0, #0x49
+ ldrb r1, [r0, #0x0]
+ mov r0, #0x4
+ add r2, #0x49
+ orr r0, r1
+ strb r0, [r2, #0x0]
+_02032CE0:
+ bx lr
+ nop
+_02032CE4: .word 0x00400131
+_02032CE8: .word 0x00000333
+_02032CEC: .word 0x00400286
+_02032CF0: .word 0x021C5A00
+
+ thumb_func_start FUN_02032CF4
+FUN_02032CF4: ; 0x02032CF4
+ push {r3, lr}
+ bl FUN_0202E4C8
+ cmp r0, #0x0
+ beq _02032D34
+ ldr r0, _02032D38 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x2c]
+ bl FUN_0202E29C
+ ldr r0, _02032D38 ; =0x021C5A00
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x28]
+ bl FUN_0202DB14
+ ldr r0, _02032D3C ; =FUN_02032C6C
+ bl FUN_0202D308
+ mov r0, #0x1
+ add r1, r0, #0x0
+ mov r2, #0x20
+ bl FUN_0202F950
+ cmp r0, #0x0
+ beq _02032D34
+ bl FUN_0202FA10
+ ldr r0, _02032D40 ; =FUN_02032B84
+ mov r1, #0x0
+ bl FUN_02031D20
+_02032D34:
+ pop {r3, pc}
+ nop
+_02032D38: .word 0x021C5A00
+_02032D3C: .word FUN_02032C6C
+_02032D40: .word FUN_02032B84
+
+ thumb_func_start FUN_02032D44
+FUN_02032D44: ; 0x02032D44
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02030F40
+ cmp r0, #0x0
+ bne _02032D74
+ mov r2, #0x7
+ mov r0, #0x3
+ mov r1, #0xf
+ lsl r2, r2, #0xc
+ bl FUN_02016828
+ add r0, r4, #0x0
+ mov r1, #0x11
+ bl FUN_02031734
+ ldr r0, _02032D78 ; =0x021C5A00
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r0, #0x40
+ strb r1, [r0, #0x0]
+ ldr r0, _02032D7C ; =FUN_02032CF4
+ bl FUN_02031D20
+_02032D74:
+ pop {r4, pc}
+ nop
+_02032D78: .word 0x021C5A00
+_02032D7C: .word FUN_02032CF4
+
+ thumb_func_start FUN_02032D80
+FUN_02032D80: ; 0x02032D80
+ push {r3, lr}
+ ldr r0, _02032D94 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02032D92
+ ldr r0, _02032D98 ; =FUN_02032440
+ mov r1, #0x5
+ bl FUN_02031D20
+_02032D92:
+ pop {r3, pc}
+ .balign 4
+_02032D94: .word 0x021C5A00
+_02032D98: .word FUN_02032440
+
+ thumb_func_start FUN_02032D9C
+FUN_02032D9C: ; 0x02032D9C
+ ldr r0, _02032DA8 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ add r0, #0x49
+ ldrb r0, [r0, #0x0]
+ bx lr
+ nop
+_02032DA8: .word 0x021C5A00
+
+ thumb_func_start FUN_02032DAC
+FUN_02032DAC: ; 0x02032DAC
+ push {r3, lr}
+ bl FUN_02031468
+ ldr r0, _02032DF4 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _02032DBE
+ mov r0, #0x1
+ pop {r3, pc}
+_02032DBE:
+ add r0, #0x3f
+ ldrb r0, [r0, #0x0]
+ add r0, #0xe8
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x1
+ bhi _02032DD4
+ bl MOD04_021D83C0
+ mov r0, #0x1
+ pop {r3, pc}
+_02032DD4:
+ bl FUN_02033590
+ cmp r0, #0x0
+ beq _02032DE6
+ ldr r0, _02032DF8 ; =FUN_0203318C
+ mov r1, #0x0
+ bl FUN_02031D20
+ b _02032DEE
+_02032DE6:
+ ldr r0, _02032DFC ; =FUN_02032178
+ mov r1, #0x0
+ bl FUN_02031D20
+_02032DEE:
+ mov r0, #0x0
+ pop {r3, pc}
+ nop
+_02032DF4: .word 0x021C5A00
+_02032DF8: .word FUN_0203318C
+_02032DFC: .word FUN_02032178
+
+ thumb_func_start FUN_02032E00
+FUN_02032E00: ; 0x02032E00
+ push {r3, lr}
+ bl FUN_0202E4C8
+ cmp r0, #0x0
+ beq _02032E3C
+ ldr r0, _02032E40 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x2c]
+ bl FUN_0202E29C
+ ldr r0, _02032E40 ; =0x021C5A00
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x28]
+ bl FUN_0202DB14
+ mov r0, #0x1
+ add r1, r0, #0x0
+ lsl r2, r0, #0x9
+ add r3, r0, #0x0
+ bl FUN_0202F918
+ cmp r0, #0x0
+ beq _02032E3C
+ bl FUN_0202FA10
+ ldr r0, _02032E44 ; =FUN_02032218
+ mov r1, #0x0
+ bl FUN_02031D20
+_02032E3C:
+ pop {r3, pc}
+ nop
+_02032E40: .word 0x021C5A00
+_02032E44: .word FUN_02032218
+
+ thumb_func_start FUN_02032E48
+FUN_02032E48: ; 0x02032E48
+ push {r3, lr}
+ bl FUN_0202E4C8
+ cmp r0, #0x0
+ beq _02032E82
+ ldr r0, _02032E84 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x2c]
+ bl FUN_0202E29C
+ ldr r0, _02032E84 ; =0x021C5A00
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x28]
+ bl FUN_0202DB14
+ mov r0, #0x1
+ add r1, r0, #0x0
+ lsl r2, r0, #0x9
+ bl FUN_0202F950
+ cmp r0, #0x0
+ beq _02032E82
+ bl FUN_0202FA10
+ ldr r0, _02032E88 ; =FUN_02032290
+ mov r1, #0x0
+ bl FUN_02031D20
+_02032E82:
+ pop {r3, pc}
+ .balign 4
+_02032E84: .word 0x021C5A00
+_02032E88: .word FUN_02032290
+
+ thumb_func_start FUN_02032E8C
+FUN_02032E8C: ; 0x02032E8C
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02032E90
+FUN_02032E90: ; 0x02032E90
+ push {r3, lr}
+ bl MOD04_021D7F8C
+ cmp r0, #0x0
+ bge _02032EA2
+ ldr r0, _02032EA4 ; =FUN_02032E8C
+ mov r1, #0x0
+ bl FUN_02031D20
+_02032EA2:
+ pop {r3, pc}
+ .balign 4
+_02032EA4: .word FUN_02032E8C
+
+ thumb_func_start FUN_02032EA8
+FUN_02032EA8: ; 0x02032EA8
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02032EAC
+FUN_02032EAC: ; 0x02032EAC
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02032EB0
+FUN_02032EB0: ; 0x02032EB0
+ push {r3, lr}
+ mov r0, #0x1
+ bl FUN_020313A0
+ bl MOD04_021D7F8C
+ cmp r0, #0xa
+ blt _02032ECA
+ ldr r0, _02032F0C ; =FUN_02032EAC
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_02032ECA:
+ cmp r0, #0x0
+ bge _02032ED8
+ ldr r0, _02032F10 ; =FUN_02032E8C
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_02032ED8:
+ cmp r0, #0x1
+ bne _02032EE6
+ ldr r0, _02032F14 ; =FUN_02032E90
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_02032EE6:
+ cmp r0, #0x2
+ bne _02032F08
+ ldr r0, _02032F18 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ add r0, #0x44
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02032F00
+ ldr r0, _02032F10 ; =FUN_02032E8C
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_02032F00:
+ ldr r0, _02032F1C ; =FUN_02032EA8
+ mov r1, #0x0
+ bl FUN_02031D20
+_02032F08:
+ pop {r3, pc}
+ nop
+_02032F0C: .word FUN_02032EAC
+_02032F10: .word FUN_02032E8C
+_02032F14: .word FUN_02032E90
+_02032F18: .word 0x021C5A00
+_02032F1C: .word FUN_02032EA8
+
+ thumb_func_start FUN_02032F20
+FUN_02032F20: ; 0x02032F20
+ add r1, r0, #0x2
+ cmp r1, #0x1
+ bls _02032F28
+ neg r0, r0
+_02032F28:
+ ldr r1, _02032F30 ; =0x021C5A00
+ ldr r1, [r1, #0x0]
+ str r0, [r1, #0x34]
+ bx lr
+ .balign 4
+_02032F30: .word 0x021C5A00
+
+ thumb_func_start FUN_02032F34
+FUN_02032F34: ; 0x02032F34
+ push {r3, lr}
+ mov r0, #0x0
+ bl MOD04_021D7800
+ cmp r0, #0xa
+ blt _02032F4A
+ ldr r0, _02032F88 ; =FUN_02032EAC
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_02032F4A:
+ cmp r0, #0x0
+ bge _02032F5C
+ bl FUN_02032F20
+ ldr r0, _02032F8C ; =FUN_02032E8C
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_02032F5C:
+ cmp r0, #0x1
+ bne _02032F6A
+ ldr r0, _02032F90 ; =FUN_02032EB0
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_02032F6A:
+ cmp r0, #0x2
+ bne _02032F78
+ ldr r0, _02032F94 ; =FUN_02032EA8
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_02032F78:
+ cmp r0, #0x3
+ bne _02032F84
+ ldr r0, _02032F88 ; =FUN_02032EAC
+ mov r1, #0x0
+ bl FUN_02031D20
+_02032F84:
+ pop {r3, pc}
+ nop
+_02032F88: .word FUN_02032EAC
+_02032F8C: .word FUN_02032E8C
+_02032F90: .word FUN_02032EB0
+_02032F94: .word FUN_02032EA8
+
+ thumb_func_start FUN_02032F98
+FUN_02032F98: ; 0x02032F98
+ push {r3, lr}
+ mov r0, #0x1
+ bl MOD04_021D7800
+ cmp r0, #0x0
+ bge _02032FB2
+ bl FUN_02032F20
+ ldr r0, _02032FD0 ; =FUN_02032E8C
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_02032FB2:
+ ldr r0, _02032FD4 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ add r0, #0x42
+ ldrb r0, [r0, #0x0]
+ bl MOD04_021D8494
+ cmp r0, #0x0
+ beq _02032FCE
+ bl FUN_0202FC60
+ ldr r0, _02032FD8 ; =FUN_02032F34
+ mov r1, #0x0
+ bl FUN_02031D20
+_02032FCE:
+ pop {r3, pc}
+ .balign 4
+_02032FD0: .word FUN_02032E8C
+_02032FD4: .word 0x021C5A00
+_02032FD8: .word FUN_02032F34
+
+ thumb_func_start FUN_02032FDC
+FUN_02032FDC: ; 0x02032FDC
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _02032FFC ; =FUN_020303BC
+ ldr r1, _02033000 ; =FUN_02030238
+ bl MOD04_021D77C4
+ ldr r0, _02033004 ; =0x021C5A00
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r0, #0x42
+ strb r4, [r0, #0x0]
+ ldr r0, _02033008 ; =FUN_02032F98
+ bl FUN_02031D20
+ mov r0, #0x1
+ pop {r4, pc}
+ .balign 4
+_02032FFC: .word FUN_020303BC
+_02033000: .word FUN_02030238
+_02033004: .word 0x021C5A00
+_02033008: .word FUN_02032F98
+
+ thumb_func_start FUN_0203300C
+FUN_0203300C: ; 0x0203300C
+ ldr r0, _02033048 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ ldr r1, [r0, #0x24]
+ ldr r0, _0203304C ; =FUN_02032F34
+ cmp r1, r0
+ bne _0203301C
+ mov r0, #0x0
+ bx lr
+_0203301C:
+ ldr r0, _02033050 ; =FUN_02032EB0
+ cmp r1, r0
+ bne _02033026
+ mov r0, #0x1
+ bx lr
+_02033026:
+ ldr r0, _02033054 ; =FUN_02032E90
+ cmp r1, r0
+ bne _02033030
+ mov r0, #0x3
+ bx lr
+_02033030:
+ ldr r0, _02033058 ; =FUN_02032EA8
+ cmp r1, r0
+ bne _0203303A
+ mov r0, #0x4
+ bx lr
+_0203303A:
+ ldr r0, _0203305C ; =FUN_02032EAC
+ cmp r1, r0
+ bne _02033044
+ mov r0, #0x5
+ bx lr
+_02033044:
+ mov r0, #0x2
+ bx lr
+ .balign 4
+_02033048: .word 0x021C5A00
+_0203304C: .word FUN_02032F34
+_02033050: .word FUN_02032EB0
+_02033054: .word FUN_02032E90
+_02033058: .word FUN_02032EA8
+_0203305C: .word FUN_02032EAC
+
+ thumb_func_start FUN_02033060
+FUN_02033060: ; 0x02033060
+ push {r3, lr}
+ ldr r0, _02033090 ; =FUN_020303BC
+ ldr r1, _02033094 ; =FUN_02030238
+ bl MOD04_021D77C4
+ mov r0, #0x0
+ mvn r0, r0
+ bl MOD04_021D8494
+ cmp r0, #0x0
+ beq _0203308C
+ ldr r0, _02033098 ; =0x021C5A00
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r0, #0x4d
+ strb r1, [r0, #0x0]
+ bl FUN_0202FC60
+ ldr r0, _0203309C ; =FUN_02032F34
+ mov r1, #0x0
+ bl FUN_02031D20
+_0203308C:
+ pop {r3, pc}
+ nop
+_02033090: .word FUN_020303BC
+_02033094: .word FUN_02030238
+_02033098: .word 0x021C5A00
+_0203309C: .word FUN_02032F34
+
+ thumb_func_start FUN_020330A0
+FUN_020330A0: ; 0x020330A0
+ push {r3, lr}
+ mov r0, #0x0
+ bl FUN_020313A0
+ ldr r0, _020330D8 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ add r0, #0x41
+ ldrb r0, [r0, #0x0]
+ bl MOD04_021D82BC
+ cmp r0, #0x0
+ beq _020330C6
+ bl MOD04_021D836C
+ ldr r0, _020330DC ; =FUN_02033060
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_020330C6:
+ bl MOD04_021D7F8C
+ cmp r0, #0x0
+ bge _020330D6
+ ldr r0, _020330E0 ; =FUN_02032E8C
+ mov r1, #0x0
+ bl FUN_02031D20
+_020330D6:
+ pop {r3, pc}
+ .balign 4
+_020330D8: .word 0x021C5A00
+_020330DC: .word FUN_02033060
+_020330E0: .word FUN_02032E8C
+
+ thumb_func_start FUN_020330E4
+FUN_020330E4: ; 0x020330E4
+ push {r3, lr}
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _02033100
+ ldr r0, _02033120 ; =0x021C5A00
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r0, #0x41
+ strb r1, [r0, #0x0]
+ ldr r0, _02033124 ; =FUN_020330A0
+ bl FUN_02031D20
+ b _02033112
+_02033100:
+ ldr r0, _02033120 ; =0x021C5A00
+ mov r1, #0x1
+ ldr r0, [r0, #0x0]
+ add r0, #0x41
+ strb r1, [r0, #0x0]
+ ldr r0, _02033124 ; =FUN_020330A0
+ mov r1, #0x0
+ bl FUN_02031D20
+_02033112:
+ ldr r0, _02033120 ; =0x021C5A00
+ mov r1, #0x1
+ ldr r0, [r0, #0x0]
+ add r0, #0x4d
+ strb r1, [r0, #0x0]
+ pop {r3, pc}
+ nop
+_02033120: .word 0x021C5A00
+_02033124: .word FUN_020330A0
+
+ thumb_func_start FUN_02033128
+FUN_02033128: ; 0x02033128
+ ldr r0, _02033134 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ add r0, #0x4d
+ ldrb r0, [r0, #0x0]
+ bx lr
+ nop
+_02033134: .word 0x021C5A00
+
+ thumb_func_start FUN_02033138
+FUN_02033138: ; 0x02033138
+ ldr r0, _0203314C ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ ldr r1, [r0, #0x24]
+ ldr r0, _02033150 ; =FUN_02033060
+ cmp r1, r0
+ bne _02033148
+ mov r0, #0x1
+ bx lr
+_02033148:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_0203314C: .word 0x021C5A00
+_02033150: .word FUN_02033060
+
+ thumb_func_start FUN_02033154
+FUN_02033154: ; 0x02033154
+ ldr r0, _02033174 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ ldr r1, [r0, #0x24]
+ ldr r0, _02033178 ; =FUN_02032F34
+ cmp r1, r0
+ bne _02033164
+ mov r0, #0x1
+ bx lr
+_02033164:
+ ldr r0, _0203317C ; =FUN_02033060
+ cmp r1, r0
+ bne _0203316E
+ mov r0, #0x1
+ bx lr
+_0203316E:
+ mov r0, #0x0
+ bx lr
+ nop
+_02033174: .word 0x021C5A00
+_02033178: .word FUN_02032F34
+_0203317C: .word FUN_02033060
+
+ thumb_func_start FUN_02033180
+FUN_02033180: ; 0x02033180
+ ldr r0, _02033188 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x34]
+ bx lr
+ .balign 4
+_02033188: .word 0x021C5A00
+
+ thumb_func_start FUN_0203318C
+FUN_0203318C: ; 0x0203318C
+ push {r3, lr}
+ mov r0, #0x0
+ bl FUN_020313A0
+ mov r0, #0x0
+ bl MOD04_021D82BC
+ cmp r0, #0x0
+ beq _020331AA
+ bl MOD04_021D836C
+ ldr r0, _020331BC ; =FUN_02032440
+ mov r1, #0x0
+ bl FUN_02031D20
+_020331AA:
+ bl MOD04_021D7F8C
+ cmp r0, #0x0
+ bge _020331BA
+ ldr r0, _020331C0 ; =FUN_02032E8C
+ mov r1, #0x0
+ bl FUN_02031D20
+_020331BA:
+ pop {r3, pc}
+ .balign 4
+_020331BC: .word FUN_02032440
+_020331C0: .word FUN_02032E8C
+
+ thumb_func_start FUN_020331C4
+FUN_020331C4: ; 0x020331C4
+ push {r3, lr}
+ ldr r0, _020331E0 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020331DC
+ mov r0, #0x1
+ bl FUN_020166B8
+ ldr r0, _020331E4 ; =FUN_02032440
+ mov r1, #0x5
+ bl FUN_02031D20
+_020331DC:
+ pop {r3, pc}
+ nop
+_020331E0: .word 0x021C5A00
+_020331E4: .word FUN_02032440
+
+ thumb_func_start FUN_020331E8
+FUN_020331E8: ; 0x020331E8
+ push {r3, lr}
+ ldr r0, _02033200 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020331FE
+ mov r1, #0x0
+ add r0, #0x41
+ strb r1, [r0, #0x0]
+ ldr r0, _02033204 ; =FUN_020330A0
+ bl FUN_02031D20
+_020331FE:
+ pop {r3, pc}
+ .balign 4
+_02033200: .word 0x021C5A00
+_02033204: .word FUN_020330A0
+
+ thumb_func_start FUN_02033208
+FUN_02033208: ; 0x02033208
+ push {r3, lr}
+ ldr r0, _02033234 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02033232
+ bl FUN_02031190
+ cmp r0, #0x0
+ bne _02033220
+ mov r1, #0x0
+ ldr r0, _02033234 ; =0x021C5A00
+ b _02033224
+_02033220:
+ ldr r0, _02033234 ; =0x021C5A00
+ mov r1, #0x1
+_02033224:
+ ldr r0, [r0, #0x0]
+ add r0, #0x41
+ strb r1, [r0, #0x0]
+ ldr r0, _02033238 ; =FUN_020330A0
+ mov r1, #0x0
+ bl FUN_02031D20
+_02033232:
+ pop {r3, pc}
+ .balign 4
+_02033234: .word 0x021C5A00
+_02033238: .word FUN_020330A0
+
+ thumb_func_start FUN_0203323C
+FUN_0203323C: ; 0x0203323C
+ push {r3, lr}
+ bl FUN_02031190
+ add r1, sp, #0x0
+ strb r0, [r1, #0x0]
+ mov r0, #0x15
+ add r1, sp, #0x0
+ bl FUN_020311D0
+ pop {r3, pc}
+
+ thumb_func_start FUN_02033250
+FUN_02033250: ; 0x02033250
+ ldr r0, _0203327C ; =0x021C5A00
+ ldr r2, [r0, #0x0]
+ cmp r2, #0x0
+ beq _02033276
+ ldr r1, [r2, #0x24]
+ ldr r0, _02033280 ; =FUN_02032E8C
+ cmp r1, r0
+ bne _02033264
+ mov r0, #0x1
+ bx lr
+_02033264:
+ ldr r0, _02033284 ; =FUN_02032E90
+ cmp r1, r0
+ bne _02033276
+ add r2, #0x44
+ ldrb r0, [r2, #0x0]
+ cmp r0, #0x0
+ beq _02033276
+ mov r0, #0x1
+ bx lr
+_02033276:
+ mov r0, #0x0
+ bx lr
+ nop
+_0203327C: .word 0x021C5A00
+_02033280: .word FUN_02032E8C
+_02033284: .word FUN_02032E90
+
+ thumb_func_start FUN_02033288
+FUN_02033288: ; 0x02033288
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _020332D8 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _020332D6
+ mov r1, #0xf
+ add r2, r1, #0x0
+ mov r0, #0x3
+ add r2, #0xf1
+ bl FUN_02016828
+ mov r0, #0xf
+ mov r1, #0x50
+ bl FUN_02016998
+ ldr r1, _020332D8 ; =0x021C5A00
+ mov r2, #0x50
+ str r0, [r1, #0x0]
+ mov r1, #0x0
+ bl MI_CpuFill8
+ ldr r0, _020332D8 ; =0x021C5A00
+ mov r2, #0x18
+ ldr r1, [r0, #0x0]
+ add r1, #0x3f
+ strb r2, [r1, #0x0]
+ ldr r2, [r0, #0x0]
+ mov r1, #0x1
+ add r2, #0x46
+ strb r1, [r2, #0x0]
+ ldr r0, [r0, #0x0]
+ str r4, [r0, #0x28]
+ mov r0, #0x0
+ bl FUN_020334E8
+ mov r0, #0x1
+ bl FUN_020166A8
+_020332D6:
+ pop {r4, pc}
+ .balign 4
+_020332D8: .word 0x021C5A00
+
+ thumb_func_start FUN_020332DC
+FUN_020332DC: ; 0x020332DC
+ push {r3, lr}
+ ldr r0, _0203330C ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02033308
+ mov r0, #0x1
+ bl FUN_020166B8
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_020334E8
+ ldr r0, _0203330C ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ bl FUN_02016A18
+ ldr r0, _0203330C ; =0x021C5A00
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ mov r0, #0xf
+ bl FUN_020168D0
+_02033308:
+ pop {r3, pc}
+ nop
+_0203330C: .word 0x021C5A00
+
+ thumb_func_start FUN_02033310
+FUN_02033310: ; 0x02033310
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _02033360 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0203335E
+ mov r1, #0xf
+ add r2, r1, #0x0
+ mov r0, #0x3
+ add r2, #0xf1
+ bl FUN_02016828
+ mov r0, #0xf
+ mov r1, #0x50
+ bl FUN_02016998
+ ldr r1, _02033360 ; =0x021C5A00
+ mov r2, #0x50
+ str r0, [r1, #0x0]
+ mov r1, #0x0
+ bl MI_CpuFill8
+ ldr r0, _02033360 ; =0x021C5A00
+ mov r2, #0x19
+ ldr r1, [r0, #0x0]
+ add r1, #0x3f
+ strb r2, [r1, #0x0]
+ ldr r2, [r0, #0x0]
+ mov r1, #0x1
+ add r2, #0x46
+ strb r1, [r2, #0x0]
+ ldr r0, [r0, #0x0]
+ str r4, [r0, #0x28]
+ mov r0, #0x0
+ bl FUN_020334E8
+ mov r0, #0x1
+ bl FUN_020166A8
+_0203335E:
+ pop {r4, pc}
+ .balign 4
+_02033360: .word 0x021C5A00
+
+ thumb_func_start FUN_02033364
+FUN_02033364: ; 0x02033364
+ push {r3, lr}
+ ldr r0, _02033394 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02033390
+ mov r0, #0x1
+ bl FUN_020166B8
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_020334E8
+ ldr r0, _02033394 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ bl FUN_02016A18
+ ldr r0, _02033394 ; =0x021C5A00
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ mov r0, #0xf
+ bl FUN_020168D0
+_02033390:
+ pop {r3, pc}
+ nop
+_02033394: .word 0x021C5A00
+
+ thumb_func_start FUN_02033398
+FUN_02033398: ; 0x02033398
+ push {r3, lr}
+ sub sp, #0x8
+ ldr r0, _020333EC ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _020333AA
+ add sp, #0x8
+ mov r0, #0x0
+ pop {r3, pc}
+_020333AA:
+ add r0, #0x3f
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x18
+ bne _020333C8
+ add r0, sp, #0x4
+ add r1, sp, #0x0
+ bl MOD04_021DD718
+ cmp r0, #0x0
+ beq _020333E4
+ bl MOD04_021DD6F0
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r3, pc}
+_020333C8:
+ cmp r0, #0x19
+ bne _020333E4
+ add r0, sp, #0x4
+ add r1, sp, #0x0
+ bl MOD04_021DD718
+ cmp r0, #0x0
+ beq _020333E4
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x7
+ bne _020333E4
+ add sp, #0x8
+ mov r0, #0x1
+ pop {r3, pc}
+_020333E4:
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3, pc}
+ nop
+_020333EC: .word 0x021C5A00
+
+ thumb_func_start FUN_020333F0
+FUN_020333F0: ; 0x020333F0
+ push {r3, lr}
+ bl MOD04_021D76AC
+ cmp r0, #0x0
+ bge _02033408
+ bl FUN_02032F20
+ ldr r0, _02033414 ; =FUN_02032E8C
+ mov r1, #0x0
+ bl FUN_02031D20
+ pop {r3, pc}
+_02033408:
+ ble _02033412
+ ldr r0, _02033418 ; =FUN_02033060
+ mov r1, #0x0
+ bl FUN_02031D20
+_02033412:
+ pop {r3, pc}
+ .balign 4
+_02033414: .word FUN_02032E8C
+_02033418: .word FUN_02033060
+
+ thumb_func_start FUN_0203341C
+FUN_0203341C: ; 0x0203341C
+ push {r3, lr}
+ bl FUN_0202E4C8
+ cmp r0, #0x0
+ beq _0203345E
+ mov r1, #0x31
+ mov r0, #0x3
+ lsl r2, r1, #0xc
+ bl FUN_02016828
+ mov r0, #0x1
+ add r1, r0, #0x0
+ lsl r2, r0, #0x9
+ add r3, r0, #0x0
+ bl FUN_0202F918
+ cmp r0, #0x0
+ beq _0203345E
+ ldr r0, _02033460 ; =0x021C5A00
+ mov r1, #0x31
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x28]
+ bl MOD05_021D74E0
+ ldr r0, _02033464 ; =FUN_020335D0
+ bl MOD04_021D83A8
+ bl FUN_0202FA10
+ ldr r0, _02033468 ; =FUN_020333F0
+ mov r1, #0x0
+ bl FUN_02031D20
+_0203345E:
+ pop {r3, pc}
+ .balign 4
+_02033460: .word 0x021C5A00
+_02033464: .word FUN_020335D0
+_02033468: .word FUN_020333F0
+
+ thumb_func_start FUN_0203346C
+FUN_0203346C: ; 0x0203346C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_020238F4
+ bl FUN_02030F40
+ cmp r0, #0x0
+ beq _02033482
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_02033482:
+ mov r0, #0x1
+ bl FUN_020166A8
+ ldr r2, _020334D0 ; =0x00007080
+ mov r0, #0x3
+ mov r1, #0xf
+ bl FUN_02016828
+ add r0, r5, #0x0
+ mov r1, #0x17
+ bl FUN_02031734
+ mov r0, #0xf
+ add r1, r4, #0x0
+ bl FUN_02016998
+ ldr r1, _020334D4 ; =0x021C5A00
+ ldr r2, [r1, #0x0]
+ str r0, [r2, #0x0]
+ ldr r0, [r1, #0x0]
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r2, r4, #0x0
+ bl MI_CpuFill8
+ ldr r0, _020334D4 ; =0x021C5A00
+ mov r1, #0x0
+ ldr r2, [r0, #0x0]
+ add r2, #0x40
+ strb r1, [r2, #0x0]
+ ldr r0, [r0, #0x0]
+ str r5, [r0, #0x28]
+ ldr r0, _020334D8 ; =FUN_0203341C
+ bl FUN_02031D20
+ ldr r0, _020334D4 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x0]
+ pop {r3-r5, pc}
+ .balign 4
+_020334D0: .word 0x00007080
+_020334D4: .word 0x021C5A00
+_020334D8: .word FUN_0203341C
+
+ thumb_func_start FUN_020334DC
+FUN_020334DC: ; 0x020334DC
+ ldr r0, _020334E4 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x0]
+ bx lr
+ .balign 4
+_020334E4: .word 0x021C5A00
+
+ thumb_func_start FUN_020334E8
+FUN_020334E8: ; 0x020334E8
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, _0203350C ; =0x021C5A00
+ ldr r2, [r0, #0x0]
+ cmp r2, #0x0
+ beq _020334FE
+ add r2, #0x44
+ strb r4, [r2, #0x0]
+ ldr r0, [r0, #0x0]
+ add r0, #0x45
+ strb r1, [r0, #0x0]
+_020334FE:
+ add r0, r4, #0x0
+ bl FUN_0202EE84
+ add r0, r4, #0x0
+ bl FUN_0202EEB0
+ pop {r4, pc}
+ .balign 4
+_0203350C: .word 0x021C5A00
+
+ thumb_func_start FUN_02033510
+FUN_02033510: ; 0x02033510
+ ldr r0, _02033530 ; =0x021C5A00
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _0203352C
+ add r0, r1, #0x0
+ add r0, #0x4e
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02033526
+ mov r0, #0x1
+ bx lr
+_02033526:
+ add r1, #0x45
+ ldrb r0, [r1, #0x0]
+ bx lr
+_0203352C:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_02033530: .word 0x021C5A00
+
+ thumb_func_start FUN_02033534
+FUN_02033534: ; 0x02033534
+ ldr r0, _02033548 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02033542
+ add r0, #0x3f
+ ldrb r0, [r0, #0x0]
+ bx lr
+_02033542:
+ mov r0, #0x1
+ bx lr
+ nop
+_02033548: .word 0x021C5A00
+
+ thumb_func_start FUN_0203354C
+FUN_0203354C: ; 0x0203354C
+ ldr r0, _02033560 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0203355A
+ add r0, #0x40
+ ldrb r0, [r0, #0x0]
+ bx lr
+_0203355A:
+ mov r0, #0x0
+ bx lr
+ nop
+_02033560: .word 0x021C5A00
+
+ thumb_func_start FUN_02033564
+FUN_02033564: ; 0x02033564
+ ldr r1, _02033570 ; =0x021C5A00
+ ldr r3, _02033574 ; =MI_CpuCopy8
+ ldr r1, [r1, #0x0]
+ mov r2, #0x6
+ add r1, r1, #0x4
+ bx r3
+ .balign 4
+_02033570: .word 0x021C5A00
+_02033574: .word MI_CpuCopy8
+
+ thumb_func_start FUN_02033578
+FUN_02033578: ; 0x02033578
+ add r1, r0, #0x0
+ ldr r0, _02033588 ; =0x021C5A00
+ ldr r3, _0203358C ; =MI_CpuCopy8
+ ldr r0, [r0, #0x0]
+ mov r2, #0x6
+ add r0, r0, #0x4
+ bx r3
+ nop
+_02033588: .word 0x021C5A00
+_0203358C: .word MI_CpuCopy8
+
+ thumb_func_start FUN_02033590
+FUN_02033590: ; 0x02033590
+ push {r3, lr}
+ bl FUN_02033534
+ cmp r0, #0x13
+ blt _0203359E
+ mov r0, #0x1
+ pop {r3, pc}
+_0203359E:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020335A4
+FUN_020335A4: ; 0x020335A4
+ ldr r1, _020335B4 ; =0x021C5A00
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ beq _020335B0
+ add r1, #0x47
+ strb r0, [r1, #0x0]
+_020335B0:
+ bx lr
+ nop
+_020335B4: .word 0x021C5A00
+
+ thumb_func_start FUN_020335B8
+FUN_020335B8: ; 0x020335B8
+ ldr r0, _020335CC ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020335C6
+ add r0, #0x47
+ ldrb r0, [r0, #0x0]
+ bx lr
+_020335C6:
+ mov r0, #0x0
+ bx lr
+ nop
+_020335CC: .word 0x021C5A00
+
+ thumb_func_start FUN_020335D0
+FUN_020335D0: ; 0x020335D0
+ push {r3, lr}
+ add r2, r0, #0x0
+ mov r0, #0x0
+ mov r1, #0x1
+ bl FUN_02033F70
+_020335DC:
+ b _020335DC
+ .balign 4
+
+ thumb_func_start FUN_020335E0
+FUN_020335E0: ; 0x020335E0
+ push {r3, lr}
+ mov r0, #0x0
+ mov r1, #0x4
+ add r2, r0, #0x0
+ bl FUN_02033F70
+_020335EC:
+ b _020335EC
+ .balign 4
+
+ thumb_func_start FUN_020335F0
+FUN_020335F0: ; 0x020335F0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020335F4
+FUN_020335F4: ; 0x020335F4
+ push {r3, lr}
+ bl FUN_02033510
+ cmp r0, #0x0
+ beq _0203366C
+ bl FUN_020311F0
+ cmp r0, #0x0
+ bne _02033622
+ bl FUN_02033250
+ cmp r0, #0x0
+ bne _02033622
+ bl FUN_02033398
+ cmp r0, #0x0
+ bne _02033622
+ ldr r0, _02033670 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ add r0, #0x4e
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0203366C
+_02033622:
+ bl FUN_020335B8
+ cmp r0, #0x0
+ bne _0203366C
+ bl FUN_0200541C
+ ldr r0, _02033670 ; =0x021C5A00
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x28]
+ bl FUN_0202287C
+ ldr r1, _02033674 ; =0x021C4918
+ mov r0, #0x1
+ strb r0, [r1, #0x4]
+ ldr r1, _02033670 ; =0x021C5A00
+ ldr r2, [r1, #0x0]
+ add r1, r2, #0x0
+ add r1, #0x4e
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x3
+ bne _02033654
+ mov r0, #0x3
+ bl FUN_020335A4
+ pop {r3, pc}
+_02033654:
+ add r2, #0x3f
+ ldrb r1, [r2, #0x0]
+ cmp r1, #0x19
+ beq _02033660
+ cmp r1, #0xf
+ bne _02033668
+_02033660:
+ mov r0, #0x2
+ bl FUN_020335A4
+ pop {r3, pc}
+_02033668:
+ bl FUN_020335A4
+_0203366C:
+ pop {r3, pc}
+ nop
+_02033670: .word 0x021C5A00
+_02033674: .word 0x021C4918
+
+ thumb_func_start FUN_02033678
+FUN_02033678: ; 0x02033678
+ push {r3, lr}
+ bl FUN_0202EDD8
+ cmp r0, #0x0
+ bne _0203368A
+ bl FUN_02031810
+ cmp r0, #0x0
+ bne _0203368E
+_0203368A:
+ mov r0, #0x1
+ pop {r3, pc}
+_0203368E:
+ bl FUN_0202E344
+ cmp r0, #0x0
+ bne _0203369A
+ mov r0, #0x1
+ pop {r3, pc}
+_0203369A:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_020336A0
+FUN_020336A0: ; 0x020336A0
+ push {r3, lr}
+ ldr r1, _020336BC ; =0x021C5A00
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ beq _020336B6
+ add r1, #0x4e
+ strb r0, [r1, #0x0]
+ bl FUN_02031468
+ mov r0, #0x1
+ pop {r3, pc}
+_020336B6:
+ mov r0, #0x0
+ pop {r3, pc}
+ nop
+_020336BC: .word 0x021C5A00
+
+ thumb_func_start FUN_020336C0
+FUN_020336C0: ; 0x020336C0
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020336C8
+FUN_020336C8: ; 0x020336C8
+ push {r4-r6, lr}
+ add r4, r2, #0x0
+ add r6, r1, #0x0
+ ldr r1, [r4, #0x0]
+ add r5, r0, #0x0
+ cmp r1, #0x6
+ bhi _02033774
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_020336E2: ; jump table (using 16-bit offset)
+ .short _020336F0 - _020336E2 - 2; case 0
+ .short _020336FC - _020336E2 - 2; case 1
+ .short _02033714 - _020336E2 - 2; case 2
+ .short _0203373A - _020336E2 - 2; case 3
+ .short _0203374A - _020336E2 - 2; case 4
+ .short _0203376A - _020336E2 - 2; case 5
+ .short _02033770 - _020336E2 - 2; case 6
+_020336F0:
+ mov r0, #0x6f
+ bl FUN_02031588
+ mov r0, #0x1
+ str r0, [r4, #0x0]
+ b _02033774
+_020336FC:
+ mov r0, #0x6f
+ bl FUN_020315D8
+ cmp r0, #0x0
+ beq _02033774
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02022840
+ mov r0, #0x2
+ str r0, [r4, #0x0]
+ b _02033774
+_02033714:
+ bl FUN_02022854
+ add r5, r0, #0x0
+ cmp r5, #0x2
+ bne _02033722
+ bl ErrorHandling
+_02033722:
+ cmp r5, #0x3
+ bne _0203372A
+ bl ErrorHandling
+_0203372A:
+ cmp r5, #0x1
+ bne _02033774
+ mov r0, #0x3
+ str r0, [r4, #0x0]
+ mov r0, #0x70
+ bl FUN_02031588
+ b _02033774
+_0203373A:
+ mov r0, #0x70
+ bl FUN_020315D8
+ cmp r0, #0x0
+ beq _02033774
+ mov r0, #0x4
+ str r0, [r4, #0x0]
+ b _02033774
+_0203374A:
+ bl FUN_02022854
+ add r5, r0, #0x0
+ cmp r5, #0x3
+ bne _02033758
+ bl ErrorHandling
+_02033758:
+ cmp r5, #0x1
+ bne _02033760
+ bl ErrorHandling
+_02033760:
+ cmp r5, #0x2
+ bne _02033774
+ mov r0, #0x5
+ str r0, [r4, #0x0]
+ b _02033774
+_0203376A:
+ mov r0, #0x6
+ str r0, [r4, #0x0]
+ b _02033774
+_02033770:
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02033774:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02033778
+FUN_02033778: ; 0x02033778
+ push {r3-r7, lr}
+ str r0, [sp, #0x0]
+ bl FUN_02030F20
+ add r7, r0, #0x0
+ mov r0, #0x0
+ bl FUN_0202DFA4
+ cmp r0, #0x0
+ beq _020337C6
+ mov r5, #0x0
+ cmp r7, #0x0
+ ble _020337C6
+_02033792:
+ bl FUN_02031190
+ cmp r5, r0
+ beq _020337C0
+ add r0, r5, #0x0
+ bl FUN_0202E020
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0202E044
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0202DFA4
+ bl FUN_02023A70
+ add r3, r0, #0x0
+ ldr r0, [sp, #0x0]
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_020337C8
+_020337C0:
+ add r5, r5, #0x1
+ cmp r5, r7
+ blt _02033792
+_020337C6:
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020337C8
+FUN_020337C8: ; 0x020337C8
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_02029B40
+ cmp r0, #0x0
+ bne _020337E4
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ mov r3, #0x1
+ bl FUN_02029B90
+_020337E4:
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020337E8
+FUN_020337E8: ; 0x020337E8
+ push {r3-r5, lr}
+ mov r1, #0x72
+ lsl r1, r1, #0x4
+ bl FUN_02016998
+ add r4, r0, #0x0
+ add r0, #0x1f
+ mov r1, #0x1f
+ bic r0, r1
+ bl FUN_02096B14
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add r0, r5, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203380C
+FUN_0203380C: ; 0x0203380C
+ push {r4, lr}
+ bl FUN_02028228
+ add r4, r0, #0x0
+ bl FUN_02096FB0
+ cmp r0, #0x0
+ bne _0203382A
+ ldr r1, _0203382C ; =0x4144414A
+ add r0, r4, #0x0
+ bl thunk_FUN_02097190
+ add r0, r4, #0x0
+ bl thunk_FUN_02096e4c
+_0203382A:
+ pop {r4, pc}
+ .balign 4
+_0203382C: .word 0x4144414A
+
+ thumb_func_start FUN_02033830
+FUN_02033830: ; 0x02033830
+ push {r3-r4, lr}
+ sub sp, #0xc
+ bl FUN_02028228
+ add r4, r0, #0x0
+ add r1, sp, #0x0
+ bl FUN_02096CCC
+ add r0, r4, #0x0
+ add r1, sp, #0x0
+ bl FUN_02096DA0
+ add sp, #0xc
+ pop {r3-r4, pc}
+
+ thumb_func_start FUN_0203384C
+FUN_0203384C: ; 0x0203384C
+ push {r4, lr}
+ bl FUN_020286EC
+ bl FUN_02028228
+ add r4, r0, #0x0
+ bl FUN_02096F80
+ cmp r0, #0x0
+ beq _0203386E
+ add r0, r4, #0x0
+ bl FUN_02096F18
+ cmp r0, #0x0
+ beq _0203386E
+ mov r0, #0x1
+ pop {r4, pc}
+_0203386E:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02033874
+FUN_02033874: ; 0x02033874
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ add r5, r1, #0x0
+ str r2, [sp, #0x0]
+ bl FUN_020286EC
+ bl FUN_02028228
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_020286EC
+ mov r1, #0x0
+ bl FUN_0202838C
+ add r4, r0, #0x0
+ mov r1, #0x0
+ ldr r0, [sp, #0x0]
+ mvn r1, r1
+ str r1, [r0, #0x0]
+ add r0, r5, #0x0
+ bl FUN_0209700C
+ cmp r0, #0x0
+ bne _020338AE
+ add sp, #0x8
+ mov r0, #0x3
+ pop {r3-r7, pc}
+_020338AE:
+ mov r7, #0x0
+_020338B0:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02096B78
+ cmp r0, #0x0
+ beq _020338C6
+ ldr r0, [sp, #0x0]
+ add sp, #0x8
+ str r7, [r0, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_020338C6:
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_02096DA0
+ cmp r0, #0x0
+ ble _020338F4
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_02096DA0
+ str r0, [sp, #0x4]
+ add r0, r6, #0x0
+ add r1, r4, #0x0
+ bl FUN_02096DA0
+ ldr r1, [sp, #0x4]
+ cmp r1, r0
+ bne _020338F4
+ ldr r0, [sp, #0x0]
+ add sp, #0x8
+ str r7, [r0, #0x0]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_020338F4:
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bge _0203390A
+ add r0, r4, #0x0
+ bl FUN_0209700C
+ cmp r0, #0x0
+ bne _0203390A
+ ldr r0, [sp, #0x0]
+ str r7, [r0, #0x0]
+_0203390A:
+ add r7, r7, #0x1
+ add r4, #0xc
+ cmp r7, #0x20
+ blt _020338B0
+ mov r0, #0x2
+ add sp, #0x8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02033918
+FUN_02033918: ; 0x02033918
+ push {r3-r7, lr}
+ sub sp, #0x18
+ add r4, r0, #0x0
+ str r1, [sp, #0x0]
+ str r2, [sp, #0x4]
+ add r6, r3, #0x0
+ bl FUN_020286EC
+ bl FUN_02028228
+ add r7, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_020286EC
+ mov r1, #0x0
+ bl FUN_0202838C
+ add r5, r0, #0x0
+ ldr r1, [sp, #0x0]
+ ldr r2, [sp, #0x4]
+ add r0, r7, #0x0
+ bl FUN_020973B4
+ cmp r0, #0x0
+ bne _02033950
+ add sp, #0x18
+ mov r0, #0x3
+ pop {r3-r7, pc}
+_02033950:
+ ldr r1, [sp, #0x0]
+ ldr r2, [sp, #0x4]
+ add r0, sp, #0xc
+ bl FUN_02096D2C
+ add r0, r7, #0x0
+ add r1, sp, #0xc
+ bl FUN_02096DA0
+ cmp r0, #0x0
+ bgt _0203396C
+ add sp, #0x18
+ mov r0, #0x3
+ pop {r3-r7, pc}
+_0203396C:
+ mov r0, #0x0
+ mvn r0, r0
+ str r0, [r6, #0x0]
+ mov r4, #0x0
+_02033974:
+ add r0, r7, #0x0
+ add r1, sp, #0xc
+ bl FUN_02096DA0
+ str r0, [sp, #0x8]
+ add r0, r7, #0x0
+ add r1, r5, #0x0
+ bl FUN_02096DA0
+ ldr r1, [sp, #0x8]
+ cmp r1, r0
+ bne _02033994
+ add sp, #0x18
+ str r4, [r6, #0x0]
+ mov r0, #0x0
+ pop {r3-r7, pc}
+_02033994:
+ ldr r0, [r6, #0x0]
+ cmp r0, #0x0
+ bge _020339A6
+ add r0, r5, #0x0
+ bl FUN_0209700C
+ cmp r0, #0x0
+ bne _020339A6
+ str r4, [r6, #0x0]
+_020339A6:
+ add r4, r4, #0x1
+ add r5, #0xc
+ cmp r4, #0x20
+ blt _02033974
+ mov r0, #0x2
+ add sp, #0x18
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020339B4
+FUN_020339B4: ; 0x020339B4
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r6, r1, #0x0
+ mov r1, #0x0
+ add r5, r0, #0x0
+ str r2, [sp, #0x4]
+ str r1, [sp, #0xc]
+ bl FUN_020286EC
+ mov r1, #0x0
+ bl FUN_0202838C
+ str r0, [sp, #0x8]
+ mov r4, #0x0
+ bl FUN_02030F20
+ cmp r0, #0x0
+ ble _02033A68
+_020339D8:
+ bl FUN_02031190
+ cmp r4, r0
+ beq _02033A5C
+ add r0, r4, #0x0
+ bl FUN_0202DFD8
+ add r7, r0, #0x0
+ beq _02033A5C
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ add r2, sp, #0x10
+ bl FUN_02033874
+ str r0, [r6, #0x0]
+ cmp r0, #0x3
+ bne _020339FE
+ bl ErrorHandling
+_020339FE:
+ ldr r0, [r6, #0x0]
+ cmp r0, #0x0
+ bne _02033A1C
+ mov r0, #0x2
+ str r0, [sp, #0x0]
+ ldr r2, [sp, #0x10]
+ ldr r3, [sp, #0x4]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02033A70
+ add r0, r5, #0x0
+ bl FUN_0202E1BC
+ b _02033A5C
+_02033A1C:
+ cmp r0, #0x1
+ bne _02033A54
+ bl FUN_02033590
+ cmp r0, #0x0
+ bne _02033A5C
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ ldr r2, [sp, #0x10]
+ ldr r3, [sp, #0x4]
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02033A70
+ ldr r2, [sp, #0x10]
+ mov r1, #0xc
+ add r3, r2, #0x0
+ mul r3, r1
+ ldr r1, [sp, #0x8]
+ add r0, r7, #0x0
+ add r1, r1, r3
+ mov r2, #0xc
+ bl MI_CpuCopy8
+ add r0, r5, #0x0
+ bl FUN_0202E1BC
+ b _02033A5C
+_02033A54:
+ cmp r0, #0x2
+ bne _02033A5C
+ mov r0, #0x1
+ str r0, [sp, #0xc]
+_02033A5C:
+ add r6, r6, #0x4
+ add r4, r4, #0x1
+ bl FUN_02030F20
+ cmp r4, r0
+ blt _020339D8
+_02033A68:
+ ldr r0, [sp, #0xc]
+ add sp, #0x14
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02033A70
+FUN_02033A70: ; 0x02033A70
+ push {r4-r7, lr}
+ sub sp, #0x14
+ add r5, r2, #0x0
+ str r0, [sp, #0x0]
+ add r7, r1, #0x0
+ str r3, [sp, #0x4]
+ bl FUN_020286EC
+ add r1, r5, #0x0
+ add r4, r0, #0x0
+ bl FUN_0202838C
+ str r0, [sp, #0x8]
+ add r0, r7, #0x0
+ bl FUN_0202DFA4
+ add r6, r0, #0x0
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x2
+ beq _02033AA6
+ add r0, r7, #0x0
+ bl FUN_0202DFD8
+ ldr r1, [sp, #0x8]
+ mov r2, #0xc
+ bl MI_CpuCopy8
+_02033AA6:
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x0
+ bne _02033AEC
+ ldr r1, [sp, #0x4]
+ add r0, r6, #0x0
+ bl FUN_020239A0
+ str r0, [sp, #0xc]
+ ldr r2, [sp, #0xc]
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_020283C0
+ ldr r0, [sp, #0xc]
+ bl FUN_02021A20
+ add r0, r6, #0x0
+ bl FUN_020239CC
+ add r3, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ mov r2, #0x8
+ bl FUN_020282E8
+ add r0, r6, #0x0
+ bl FUN_020239BC
+ add r3, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ mov r2, #0x0
+ bl FUN_020282E8
+ b _02033B22
+_02033AEC:
+ cmp r0, #0x1
+ bne _02033B22
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ mov r2, #0x8
+ bl FUN_0202822C
+ cmp r0, #0x2
+ bne _02033B22
+ add r0, r6, #0x0
+ bl FUN_020239CC
+ add r3, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ mov r2, #0x8
+ bl FUN_020282E8
+ add r0, r6, #0x0
+ bl FUN_020239BC
+ add r3, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ mov r2, #0x0
+ bl FUN_020282E8
+_02033B22:
+ ldr r1, [sp, #0x4]
+ mov r0, #0x78
+ bl FUN_020219F4
+ str r0, [sp, #0x10]
+ add r0, r7, #0x0
+ bl FUN_0202DFFC
+ add r1, r0, #0x0
+ ldr r0, [sp, #0x10]
+ bl FUN_02021E28
+ ldr r2, [sp, #0x10]
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_02028404
+ ldr r0, [sp, #0x10]
+ bl FUN_02021A20
+ add r0, r6, #0x0
+ bl FUN_02023A28
+ add r3, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ mov r2, #0x7
+ bl FUN_020282E8
+ ldr r0, [sp, #0x0]
+ bl FUN_0202E1BC
+ add sp, #0x14
+ pop {r4-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02033B68
+FUN_02033B68: ; 0x02033B68
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r5, r2, #0x0
+ mov r2, #0x7
+ add r6, r3, #0x0
+ ldr r1, [sp, #0x10]
+ mov r0, #0x1
+ lsl r2, r2, #0x6
+ add r3, r4, #0x0
+ bl FUN_02033D3C
+ ldr r1, [sp, #0x10]
+ mov r0, #0x1
+ add r2, r4, #0x0
+ bl FUN_02033D9C
+ add r0, r4, #0x0
+ mov r1, #0x20
+ bl FUN_020169D8
+ add r4, r0, #0x0
+ ldr r0, _02033BC4 ; =FUN_02033BC8
+ add r1, r4, #0x0
+ mov r2, #0x5
+ bl FUN_0200CA98
+ str r0, [r4, #0x18]
+ strh r5, [r4, #0xc]
+ strh r6, [r4, #0xe]
+ mov r1, #0x0
+ str r1, [r4, #0x0]
+ mov r0, #0x3
+ str r0, [r4, #0x4]
+ ldr r0, [sp, #0x14]
+ str r0, [r4, #0x14]
+ ldr r0, [sp, #0x10]
+ str r1, [r4, #0x8]
+ strb r0, [r4, #0x10]
+ strb r1, [r4, #0x12]
+ mov r0, #0x7
+ strb r1, [r4, #0x11]
+ lsl r0, r0, #0x18
+ str r0, [r4, #0x1c]
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+ nop
+_02033BC4: .word FUN_02033BC8
+
+ thumb_func_start FUN_02033BC8
+FUN_02033BC8: ; 0x02033BC8
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ ldrb r0, [r5, #0x11]
+ cmp r0, #0x1
+ beq _02033BD8
+ cmp r0, #0x2
+ beq _02033BEE
+ b _02033C04
+_02033BD8:
+ ldr r0, _02033CB0 ; =0x04000304
+ ldrh r1, [r0, #0x0]
+ lsr r0, r0, #0xb
+ and r0, r1
+ asr r0, r0, #0xf
+ cmp r0, #0x1
+ bne _02033BEA
+ mov r6, #0x1
+ b _02033C06
+_02033BEA:
+ mov r6, #0x2
+ b _02033C06
+_02033BEE:
+ ldr r0, _02033CB0 ; =0x04000304
+ ldrh r1, [r0, #0x0]
+ lsr r0, r0, #0xb
+ and r0, r1
+ asr r0, r0, #0xf
+ cmp r0, #0x1
+ bne _02033C00
+ mov r6, #0x2
+ b _02033C06
+_02033C00:
+ mov r6, #0x1
+ b _02033C06
+_02033C04:
+ mov r6, #0x1
+_02033C06:
+ ldr r4, [r5, #0x4]
+ cmp r6, #0x1
+ bne _02033C1E
+ mov r0, #0x1
+ lsl r0, r0, #0x1a
+ ldr r1, [r0, #0x0]
+ ldr r0, _02033CB4 ; =0x00300010
+ add r7, r1, #0x0
+ and r7, r0
+ bl GX_GetBankForOBJ
+ b _02033C2C
+_02033C1E:
+ ldr r0, _02033CB8 ; =0x04001000
+ ldr r1, [r0, #0x0]
+ ldr r0, _02033CB4 ; =0x00300010
+ add r7, r1, #0x0
+ and r7, r0
+ bl GX_GetBankForSubOBJ
+_02033C2C:
+ cmp r7, #0x10
+ beq _02033C38
+ ldr r1, _02033CBC ; =0x00200010
+ cmp r7, r1
+ beq _02033C54
+ b _02033C6C
+_02033C38:
+ cmp r0, #0x40
+ beq _02033C40
+ cmp r0, #0x20
+ bne _02033C4A
+_02033C40:
+ mov r0, #0x1f
+ lsl r1, r4, #0x2
+ lsl r0, r0, #0x4
+ add r1, r1, r0
+ b _02033C74
+_02033C4A:
+ mov r0, #0x3f
+ lsl r1, r4, #0x2
+ lsl r0, r0, #0x4
+ add r1, r1, r0
+ b _02033C74
+_02033C54:
+ cmp r0, #0x30
+ beq _02033C5C
+ cmp r0, #0x50
+ bne _02033C64
+_02033C5C:
+ mov r0, #0x9f
+ lsl r0, r0, #0x2
+ add r1, r4, r0
+ b _02033C74
+_02033C64:
+ mov r0, #0xff
+ lsl r0, r0, #0x2
+ add r1, r4, r0
+ b _02033C74
+_02033C6C:
+ mov r0, #0xfe
+ lsl r1, r4, #0x1
+ lsl r0, r0, #0x2
+ add r1, r1, r0
+_02033C74:
+ cmp r6, #0x1
+ bne _02033C7E
+ mov r2, #0x7
+ lsl r2, r2, #0x18
+ b _02033C80
+_02033C7E:
+ ldr r2, _02033CC0 ; =0x07000400
+_02033C80:
+ ldrh r3, [r5, #0xe]
+ ldrh r0, [r5, #0xc]
+ lsl r3, r3, #0x18
+ lsr r4, r3, #0x18
+ mov r3, #0x1
+ lsl r0, r0, #0x17
+ lsl r3, r3, #0x1e
+ lsr r0, r0, #0x7
+ orr r3, r4
+ orr r0, r3
+ str r0, [r2, #0x0]
+ mov r0, #0xe
+ lsl r0, r0, #0xc
+ orr r0, r1
+ strh r0, [r2, #0x4]
+ ldr r1, [r5, #0x1c]
+ cmp r2, r1
+ beq _02033CAE
+ ldr r0, _02033CC4 ; =0x40000200
+ str r0, [r1, #0x0]
+ mov r0, #0x0
+ strh r0, [r1, #0x4]
+ str r2, [r5, #0x1c]
+_02033CAE:
+ pop {r3-r7, pc}
+ .balign 4
+_02033CB0: .word 0x04000304
+_02033CB4: .word 0x00300010
+_02033CB8: .word 0x04001000
+_02033CBC: .word 0x00200010
+_02033CC0: .word 0x07000400
+_02033CC4: .word 0x40000200
+
+ thumb_func_start FUN_02033CC8
+FUN_02033CC8: ; 0x02033CC8
+ cmp r1, #0x4
+ bge _02033CD2
+ str r1, [r0, #0x4]
+ mov r1, #0x0
+ str r1, [r0, #0x8]
+_02033CD2:
+ bx lr
+
+ thumb_func_start FUN_02033CD4
+FUN_02033CD4: ; 0x02033CD4
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x18]
+ bl FUN_0200CAB4
+ mov r0, #0x7
+ ldr r2, _02033D00 ; =0x40000200
+ lsl r0, r0, #0x18
+ str r2, [r0, #0x0]
+ mov r1, #0x0
+ strh r1, [r0, #0x4]
+ ldrb r0, [r4, #0x12]
+ cmp r0, #0x0
+ beq _02033CF6
+ ldr r0, _02033D04 ; =0x07000400
+ str r2, [r0, #0x0]
+ strh r1, [r0, #0x4]
+_02033CF6:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+ nop
+_02033D00: .word 0x40000200
+_02033D04: .word 0x07000400
+
+ thumb_func_start FUN_02033D08
+FUN_02033D08: ; 0x02033D08
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ mov r2, #0x7
+ ldrb r1, [r5, #0x10]
+ mov r0, #0x2
+ lsl r2, r2, #0x6
+ add r3, r6, #0x0
+ bl FUN_02033D3C
+ ldrb r1, [r5, #0x10]
+ mov r0, #0x2
+ add r2, r6, #0x0
+ bl FUN_02033D9C
+ cmp r4, #0x0
+ beq _02033D30
+ mov r0, #0x1
+ b _02033D32
+_02033D30:
+ mov r0, #0x2
+_02033D32:
+ strb r0, [r5, #0x11]
+ mov r0, #0x1
+ strb r0, [r5, #0x12]
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02033D3C
+FUN_02033D3C: ; 0x02033D3C
+ push {r3-r5, lr}
+ sub sp, #0x8
+ mov r1, #0x96
+ add r5, r0, #0x0
+ add r0, r3, #0x0
+ lsl r1, r1, #0x2
+ add r4, r2, #0x0
+ bl FUN_020169D8
+ str r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _02033D92
+ ldr r0, _02033D98 ; =0x02105D88
+ add r1, sp, #0x4
+ bl FUN_020161F8
+ mov r1, #0x96
+ ldr r0, [sp, #0x4]
+ lsl r1, r1, #0x2
+ bl DC_FlushRange
+ ldr r0, [sp, #0x4]
+ add r1, sp, #0x0
+ bl FUN_020B0138
+ cmp r5, #0x1
+ bne _02033D80
+ ldr r0, [sp, #0x0]
+ add r1, r4, #0x0
+ ldr r0, [r0, #0xc]
+ mov r2, #0x20
+ bl GX_LoadOBJPltt
+ b _02033D8C
+_02033D80:
+ ldr r0, [sp, #0x0]
+ add r1, r4, #0x0
+ ldr r0, [r0, #0xc]
+ mov r2, #0x20
+ bl GXS_LoadOBJPltt
+_02033D8C:
+ ldr r0, [sp, #0x4]
+ bl FUN_02016A18
+_02033D92:
+ add sp, #0x8
+ pop {r3-r5, pc}
+ nop
+_02033D98: .word 0x02105D88
+
+ thumb_func_start FUN_02033D9C
+FUN_02033D9C: ; 0x02033D9C
+ push {r3-r5, lr}
+ sub sp, #0x8
+ add r4, r1, #0x0
+ mov r1, #0x96
+ add r5, r0, #0x0
+ add r0, r2, #0x0
+ lsl r1, r1, #0x2
+ bl FUN_020169D8
+ str r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _02033E58
+ cmp r4, #0x0
+ add r1, sp, #0x4
+ beq _02033DC2
+ ldr r0, _02033E5C ; =0x02105D98
+ bl FUN_020161F8
+ b _02033DC8
+_02033DC2:
+ ldr r0, _02033E60 ; =0x02105DA8
+ bl FUN_020161F8
+_02033DC8:
+ mov r1, #0x96
+ ldr r0, [sp, #0x4]
+ lsl r1, r1, #0x2
+ bl DC_FlushRange
+ ldr r0, [sp, #0x4]
+ add r1, sp, #0x0
+ bl FUN_020B0088
+ cmp r5, #0x1
+ bne _02033DF0
+ mov r0, #0x1
+ lsl r0, r0, #0x1a
+ ldr r1, [r0, #0x0]
+ ldr r0, _02033E64 ; =0x00300010
+ add r4, r1, #0x0
+ and r4, r0
+ bl GX_GetBankForOBJ
+ b _02033E00
+_02033DF0:
+ mov r0, #0x1
+ lsl r0, r0, #0x1a
+ ldr r1, [r0, #0x0]
+ ldr r0, _02033E64 ; =0x00300010
+ add r4, r1, #0x0
+ and r4, r0
+ bl GX_GetBankForOBJ
+_02033E00:
+ cmp r4, #0x10
+ beq _02033E0C
+ ldr r1, _02033E68 ; =0x00200010
+ cmp r4, r1
+ beq _02033E20
+ b _02033E30
+_02033E0C:
+ cmp r0, #0x40
+ beq _02033E14
+ cmp r0, #0x20
+ bne _02033E1A
+_02033E14:
+ mov r1, #0x3e
+ lsl r1, r1, #0x8
+ b _02033E34
+_02033E1A:
+ mov r1, #0x7e
+ lsl r1, r1, #0x8
+ b _02033E34
+_02033E20:
+ cmp r0, #0x30
+ beq _02033E28
+ cmp r0, #0x50
+ bne _02033E2C
+_02033E28:
+ ldr r1, _02033E6C ; =0x00013E00
+ b _02033E34
+_02033E2C:
+ ldr r1, _02033E70 ; =0x0001FE00
+ b _02033E34
+_02033E30:
+ mov r1, #0xfe
+ lsl r1, r1, #0x8
+_02033E34:
+ cmp r5, #0x1
+ bne _02033E46
+ ldr r0, [sp, #0x0]
+ mov r2, #0x2
+ ldr r0, [r0, #0x14]
+ lsl r2, r2, #0x8
+ bl GX_LoadOBJ
+ b _02033E52
+_02033E46:
+ ldr r0, [sp, #0x0]
+ mov r2, #0x2
+ ldr r0, [r0, #0x14]
+ lsl r2, r2, #0x8
+ bl GXS_LoadOBJ
+_02033E52:
+ ldr r0, [sp, #0x4]
+ bl FUN_02016A18
+_02033E58:
+ add sp, #0x8
+ pop {r3-r5, pc}
+ .balign 4
+_02033E5C: .word 0x02105D98
+_02033E60: .word 0x02105DA8
+_02033E64: .word 0x00300010
+_02033E68: .word 0x00200010
+_02033E6C: .word 0x00013E00
+_02033E70: .word 0x0001FE00
+
+ thumb_func_start FUN_02033E74
+FUN_02033E74: ; 0x02033E74
+ push {r4, lr}
+ mov r4, #0x0
+ bl FUN_02033590
+ cmp r0, #0x0
+ beq _02033E82
+ mov r4, #0x1
+_02033E82:
+ mov r0, #0xf0
+ mov r1, #0x0
+ add r2, r4, #0x0
+ bl FUN_02033E90
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02033E90
+FUN_02033E90: ; 0x02033E90
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ add r4, r2, #0x0
+ bl FUN_0202E4DC
+ cmp r0, #0x0
+ beq _02033EC4
+ ldr r0, _02033EC8 ; =0x021C5A04
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02033EAE
+ bl FUN_02033ED0
+_02033EAE:
+ ldr r0, _02033ECC ; =0x02105D74
+ str r4, [sp, #0x0]
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x5b
+ add r2, r5, #0x0
+ add r3, r6, #0x0
+ bl FUN_02033B68
+ ldr r1, _02033EC8 ; =0x021C5A04
+ str r0, [r1, #0x0]
+_02033EC4:
+ add sp, #0x8
+ pop {r4-r6, pc}
+ .balign 4
+_02033EC8: .word 0x021C5A04
+_02033ECC: .word 0x02105D74
+
+ thumb_func_start FUN_02033ED0
+FUN_02033ED0: ; 0x02033ED0
+ push {r3, lr}
+ ldr r0, _02033EE8 ; =0x021C5A04
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02033EE4
+ bl FUN_02033CD4
+ ldr r0, _02033EE8 ; =0x021C5A04
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+_02033EE4:
+ pop {r3, pc}
+ nop
+_02033EE8: .word 0x021C5A04
+
+ thumb_func_start FUN_02033EEC
+FUN_02033EEC: ; 0x02033EEC
+ push {r3, lr}
+ add r1, r0, #0x0
+ ldr r0, _02033F00 ; =0x021C5A04
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02033EFC
+ bl FUN_02033CC8
+_02033EFC:
+ pop {r3, pc}
+ nop
+_02033F00: .word 0x021C5A04
+
+ thumb_func_start FUN_02033F04
+FUN_02033F04: ; 0x02033F04
+ push {r3, lr}
+ add r3, r0, #0x0
+ ldr r0, _02033F1C ; =0x021C5A04
+ add r2, r1, #0x0
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _02033F18
+ add r1, r3, #0x0
+ bl FUN_02033D08
+_02033F18:
+ pop {r3, pc}
+ nop
+_02033F1C: .word 0x021C5A04
+
+ thumb_func_start FUN_02033F20
+FUN_02033F20: ; 0x02033F20
+ push {r3, lr}
+ bl FUN_02030F40
+ cmp r0, #0x0
+ beq _02033F40
+ bl FUN_02030F20
+ cmp r0, #0x1
+ bgt _02033F3A
+ bl FUN_02033590
+ cmp r0, #0x0
+ beq _02033F4C
+_02033F3A:
+ bl FUN_02033E74
+ pop {r3, pc}
+_02033F40:
+ bl FUN_02033590
+ cmp r0, #0x0
+ beq _02033F4C
+ bl FUN_02033E74
+_02033F4C:
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02033F50
+FUN_02033F50: ; 0x02033F50
+ ldr r3, _02033F64 ; =0x027E0000
+ ldr r1, _02033F68 ; =0x00003FF8
+ mov r0, #0x1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ ldr r3, _02033F6C ; =MI_WaitDma
+ mov r0, #0x3
+ bx r3
+ nop
+_02033F64: .word 0x027E0000
+_02033F68: .word 0x00003FF8
+_02033F6C: .word MI_WaitDma
+
+ thumb_func_start FUN_02033F70
+FUN_02033F70: ; 0x02033F70
+ push {r3-r7, lr}
+ sub sp, #0x28
+ add r4, r0, #0x0
+ str r2, [sp, #0xc]
+ cmp r1, #0x4
+ bhi _02033F92
+ add r0, r1, r1
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02033F88: ; jump table (using 16-bit offset)
+ .short _02033F92 - _02033F88 - 2; case 0
+ .short _02033F96 - _02033F88 - 2; case 1
+ .short _02033F9A - _02033F88 - 2; case 2
+ .short _02033F9E - _02033F88 - 2; case 3
+ .short _02033FA2 - _02033F88 - 2; case 4
+_02033F92:
+ mov r5, #0x1
+ b _02033FA4
+_02033F96:
+ mov r5, #0x2
+ b _02033FA4
+_02033F9A:
+ mov r5, #0x3
+ b _02033FA4
+_02033F9E:
+ mov r5, #0x4
+ b _02033FA4
+_02033FA2:
+ mov r5, #0x5
+_02033FA4:
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_0200E3A0
+ mov r0, #0x1
+ mov r1, #0x0
+ bl FUN_0200E3A0
+ mov r0, #0x1
+ bl OS_DisableIrqMask
+ ldr r1, _02034154 ; =FUN_02033F50
+ mov r0, #0x1
+ bl OS_SetIrqFunction
+ mov r0, #0x1
+ bl OS_EnableIrqMask
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_02015F10
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_02015F34
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r2, #0x1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2, #0x0]
+ ldr r0, _02034158 ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2, #0x0]
+ ldr r2, _0203415C ; =0x04001000
+ ldr r1, [r2, #0x0]
+ and r0, r1
+ str r0, [r2, #0x0]
+ mov r0, #0x4
+ mov r1, #0x8
+ bl FUN_0201669C
+ ldr r0, _02034160 ; =0x021C4918
+ mov r1, #0x0
+ strb r1, [r0, #0x5]
+ bl FUN_0201E7A0
+ ldr r3, _02034164 ; =0x04000050
+ mov r1, #0x0
+ strh r1, [r3, #0x0]
+ ldr r0, _02034168 ; =0x04001050
+ sub r3, #0x50
+ strh r1, [r0, #0x0]
+ ldr r2, [r3, #0x0]
+ ldr r1, _0203416C ; =0xFFFF1FFF
+ sub r0, #0x50
+ and r2, r1
+ str r2, [r3, #0x0]
+ ldr r2, [r0, #0x0]
+ and r1, r2
+ str r1, [r0, #0x0]
+ ldr r0, _02034170 ; =0x020EECD0
+ bl FUN_0201E66C
+ add r0, r4, #0x0
+ bl FUN_02016B94
+ add r6, r0, #0x0
+ ldr r0, _02034174 ; =0x020EECA4
+ bl FUN_02016BBC
+ mov r1, #0x0
+ ldr r2, _02034178 ; =0x020EECB4
+ add r0, r6, #0x0
+ add r3, r1, #0x0
+ bl FUN_02016C18
+ add r0, r6, #0x0
+ mov r1, #0x0
+ bl FUN_02018744
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ ldr r2, _0203417C ; =0x000001F7
+ add r0, r6, #0x0
+ mov r3, #0x2
+ str r4, [sp, #0x4]
+ bl FUN_0200CB00
+ mov r0, #0x0
+ mov r1, #0x20
+ add r2, r4, #0x0
+ bl FUN_02002ED0
+ mov r0, #0x0
+ mov r1, #0x20
+ add r2, r0, #0x0
+ add r3, r4, #0x0
+ bl FUN_02017F18
+ ldr r1, _02034180 ; =0x00006C21
+ mov r0, #0x0
+ bl FUN_02017FE4
+ ldr r1, _02034180 ; =0x00006C21
+ mov r0, #0x4
+ bl FUN_02017FE4
+ mov r0, #0x1
+ mov r1, #0x1a
+ mov r2, #0xc8
+ add r3, r4, #0x0
+ bl FUN_0200A86C
+ str r0, [sp, #0x10]
+ mov r0, #0x6
+ lsl r0, r0, #0x6
+ add r1, r4, #0x0
+ bl FUN_020219F4
+ add r7, r0, #0x0
+ mov r0, #0x6
+ lsl r0, r0, #0x6
+ add r1, r4, #0x0
+ bl FUN_020219F4
+ str r0, [sp, #0x14]
+ bl FUN_0201BD5C
+ add r0, r4, #0x0
+ bl FUN_0200AA80
+ add r4, r0, #0x0
+ ldr r2, _02034184 ; =0x020EEC9C
+ add r0, r6, #0x0
+ add r1, sp, #0x18
+ bl FUN_02019150
+ mov r0, #0xd0
+ str r0, [sp, #0x0]
+ mov r0, #0x90
+ mov r2, #0x0
+ str r0, [sp, #0x4]
+ add r0, sp, #0x18
+ mov r1, #0xf
+ add r3, r2, #0x0
+ bl FUN_020196F4
+ ldr r2, _0203417C ; =0x000001F7
+ add r0, sp, #0x18
+ mov r1, #0x0
+ mov r3, #0x2
+ bl FUN_0200CCA4
+ mov r0, #0x2
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldr r2, [sp, #0xc]
+ add r0, r4, #0x0
+ mov r1, #0x0
+ mov r3, #0x5
+ bl FUN_0200AD38
+ ldr r0, [sp, #0x10]
+ ldr r2, [sp, #0x14]
+ add r1, r5, #0x0
+ bl FUN_0200A8E0
+ ldr r2, [sp, #0x14]
+ add r0, r4, #0x0
+ add r1, r7, #0x0
+ bl FUN_0200B7B8
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ str r1, [sp, #0x4]
+ add r0, sp, #0x18
+ add r2, r7, #0x0
+ add r3, r1, #0x0
+ str r1, [sp, #0x8]
+ bl FUN_0201BD84
+ add r0, r7, #0x0
+ bl FUN_02021A20
+ bl FUN_0201E788
+ mov r0, #0x0
+ bl FUN_0200E394
+ mov r0, #0x1
+ bl FUN_0200E394
+ mov r0, #0x0
+ mov r1, #0x3f
+ mov r2, #0x3
+ bl FUN_0200A274
+ add r0, sp, #0x18
+ bl FUN_02019178
+ ldr r0, [sp, #0x10]
+ bl FUN_0200A8B8
+ add r0, r4, #0x0
+ bl FUN_0200AB18
+ add r0, r6, #0x0
+ bl FUN_02016A18
+ add sp, #0x28
+ pop {r3-r7, pc}
+ nop
+_02034154: .word FUN_02033F50
+_02034158: .word 0xFFFFE0FF
+_0203415C: .word 0x04001000
+_02034160: .word 0x021C4918
+_02034164: .word 0x04000050
+_02034168: .word 0x04001050
+_0203416C: .word 0xFFFF1FFF
+_02034170: .word 0x020EECD0
+_02034174: .word 0x020EECA4
+_02034178: .word 0x020EECB4
+_0203417C: .word 0x000001F7
+_02034180: .word 0x00006C21
+_02034184: .word 0x020EEC9C
+
+ thumb_func_start FUN_02034188
+FUN_02034188: ; 0x02034188
+ push {r4-r7, lr}
+ sub sp, #0x24
+ add r4, r0, #0x0
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_0200E3A0
+ mov r0, #0x1
+ mov r1, #0x0
+ bl FUN_0200E3A0
+ bl FUN_02015EF4
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_02015F10
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_02015F34
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r2, #0x1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2, #0x0]
+ ldr r0, _02034368 ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2, #0x0]
+ ldr r2, _0203436C ; =0x04001000
+ ldr r1, [r2, #0x0]
+ and r0, r1
+ str r0, [r2, #0x0]
+ mov r0, #0x4
+ mov r1, #0x8
+ bl FUN_0201669C
+ ldr r0, _02034370 ; =0x021C4918
+ mov r1, #0x0
+ strb r1, [r0, #0x5]
+ bl FUN_0201E7A0
+ ldr r3, _02034374 ; =0x04000050
+ mov r0, #0x0
+ strh r0, [r3, #0x0]
+ ldr r2, _02034378 ; =0x04001050
+ sub r3, #0x50
+ strh r0, [r2, #0x0]
+ ldr r1, [r3, #0x0]
+ ldr r0, _0203437C ; =0xFFFF1FFF
+ sub r2, #0x50
+ and r1, r0
+ str r1, [r3, #0x0]
+ ldr r1, [r2, #0x0]
+ and r0, r1
+ str r0, [r2, #0x0]
+ ldr r0, _02034380 ; =0x020EED2C
+ bl FUN_0201E66C
+ add r0, r4, #0x0
+ bl FUN_02016B94
+ str r0, [sp, #0x10]
+ ldr r0, _02034384 ; =0x020EED00
+ bl FUN_02016BBC
+ mov r1, #0x0
+ ldr r0, [sp, #0x10]
+ ldr r2, _02034388 ; =0x020EED10
+ add r3, r1, #0x0
+ bl FUN_02016C18
+ ldr r0, [sp, #0x10]
+ mov r1, #0x0
+ bl FUN_02018744
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ ldr r0, [sp, #0x10]
+ ldr r2, _0203438C ; =0x000001F7
+ mov r3, #0x2
+ str r4, [sp, #0x4]
+ bl FUN_0200CB00
+ mov r0, #0x0
+ mov r1, #0x20
+ add r2, r4, #0x0
+ bl FUN_02002ED0
+ mov r0, #0x0
+ mov r1, #0x20
+ add r2, r0, #0x0
+ add r3, r4, #0x0
+ bl FUN_02017F18
+ ldr r1, _02034390 ; =0x00006C21
+ mov r0, #0x0
+ bl FUN_02017FE4
+ ldr r1, _02034390 ; =0x00006C21
+ mov r0, #0x4
+ bl FUN_02017FE4
+ ldr r2, _02034394 ; =0x00000265
+ mov r0, #0x1
+ mov r1, #0x1a
+ add r3, r4, #0x0
+ bl FUN_0200A86C
+ str r0, [sp, #0xc]
+ mov r0, #0x6
+ lsl r0, r0, #0x6
+ add r1, r4, #0x0
+ bl FUN_020219F4
+ add r4, r0, #0x0
+ bl FUN_0201BD5C
+ ldr r0, [sp, #0x10]
+ ldr r2, _02034398 ; =0x020EECF8
+ add r1, sp, #0x14
+ bl FUN_02019150
+ mov r0, #0xd0
+ str r0, [sp, #0x0]
+ mov r0, #0x90
+ mov r2, #0x0
+ str r0, [sp, #0x4]
+ add r0, sp, #0x14
+ mov r1, #0xf
+ add r3, r2, #0x0
+ bl FUN_020196F4
+ ldr r2, _0203438C ; =0x000001F7
+ add r0, sp, #0x14
+ mov r1, #0x0
+ mov r3, #0x2
+ bl FUN_0200CCA4
+ ldr r0, [sp, #0xc]
+ mov r1, #0xf
+ add r2, r4, #0x0
+ bl FUN_0200A8E0
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+ str r1, [sp, #0x4]
+ add r0, sp, #0x14
+ add r2, r4, #0x0
+ add r3, r1, #0x0
+ str r1, [sp, #0x8]
+ bl FUN_0201BD84
+ add r0, r4, #0x0
+ bl FUN_02021A20
+ bl FUN_0201E788
+ mov r0, #0x0
+ bl FUN_0200E394
+ mov r0, #0x1
+ bl FUN_0200E394
+ mov r0, #0x0
+ mov r1, #0x3f
+ mov r2, #0x3
+ bl FUN_0200A274
+ ldr r4, _0203439C ; =0x04000130
+ ldr r6, _020343A0 ; =0x027FFFA8
+ mov r7, #0x1
+_020342E4:
+ ldrh r1, [r4, #0x0]
+ ldrh r0, [r6, #0x0]
+ orr r1, r0
+ ldr r0, _020343A4 ; =0x00002FFF
+ eor r1, r0
+ and r0, r1
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ bl FUN_02000FE8
+ add r0, r5, #0x0
+ tst r0, r7
+ bne _02034308
+ mov r0, #0x1
+ add r1, r0, #0x0
+ bl OS_WaitIrq
+ b _020342E4
+_02034308:
+ add r0, sp, #0x14
+ bl FUN_02019178
+ ldr r0, [sp, #0xc]
+ bl FUN_0200A8B8
+ mov r0, #0x0
+ add r1, r0, #0x0
+ bl FUN_0201797C
+ mov r0, #0x1
+ mov r1, #0x0
+ bl FUN_0201797C
+ mov r0, #0x2
+ mov r1, #0x0
+ bl FUN_0201797C
+ mov r0, #0x3
+ mov r1, #0x0
+ bl FUN_0201797C
+ mov r0, #0x4
+ mov r1, #0x0
+ bl FUN_0201797C
+ mov r0, #0x5
+ mov r1, #0x0
+ bl FUN_0201797C
+ mov r0, #0x6
+ mov r1, #0x0
+ bl FUN_0201797C
+ mov r0, #0x7
+ mov r1, #0x0
+ bl FUN_0201797C
+ ldr r0, [sp, #0x10]
+ mov r1, #0x0
+ bl FUN_020178A0
+ ldr r0, [sp, #0x10]
+ bl FUN_02016A18
+ add sp, #0x24
+ pop {r4-r7, pc}
+ nop
+_02034368: .word 0xFFFFE0FF
+_0203436C: .word 0x04001000
+_02034370: .word 0x021C4918
+_02034374: .word 0x04000050
+_02034378: .word 0x04001050
+_0203437C: .word 0xFFFF1FFF
+_02034380: .word 0x020EED2C
+_02034384: .word 0x020EED00
+_02034388: .word 0x020EED10
+_0203438C: .word 0x000001F7
+_02034390: .word 0x00006C21
+_02034394: .word 0x00000265
+_02034398: .word 0x020EECF8
+_0203439C: .word 0x04000130
+_020343A0: .word 0x027FFFA8
+_020343A4: .word 0x00002FFF
+
+ thumb_func_start FUN_020343A8
+FUN_020343A8: ; 0x020343A8
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r4, r0, #0x0
+ str r2, [sp, #0x0]
+ mov r2, #0x0
+ strb r2, [r4, #0x1]
+ mov r0, #0xe1
+ ldr r7, _02034488 ; =0x0000070A
+ ldr r6, _0203448C ; =0x00000A8E
+ mov r12, r1
+ strb r2, [r4, #0x0]
+ add r3, r4, #0x0
+ add r5, r2, #0x0
+ lsl r0, r0, #0x2
+_020343C4:
+ add r1, r4, r2
+ strh r5, [r3, #0x2]
+ strb r5, [r1, r7]
+ strh r5, [r3, r6]
+ add r2, r2, #0x1
+ add r3, r3, #0x2
+ cmp r2, r0
+ blt _020343C4
+ ldr r0, _02034490 ; =0x00001196
+ mov r2, #0x0
+_020343D8:
+ add r1, r4, r5
+ add r5, r5, #0x1
+ strb r2, [r1, r0]
+ cmp r5, #0x10
+ blt _020343D8
+ mov r0, #0x29
+ mov r1, r12
+ mov r2, #0xb
+ bl FUN_02006528
+ add r6, r0, #0x0
+ ldrb r0, [r6, #0x0]
+ add r5, r6, #0x5
+ strb r0, [r4, #0x1]
+ ldrb r0, [r6, #0x1]
+ strb r0, [r4, #0x0]
+ ldrb r0, [r6, #0x2]
+ str r0, [sp, #0x8]
+ ldrb r0, [r6, #0x3]
+ str r0, [sp, #0x4]
+ ldrb r7, [r6, #0x4]
+ cmp r7, #0x10
+ bls _0203440A
+ bl ErrorHandling
+_0203440A:
+ ldr r1, _02034490 ; =0x00001196
+ add r0, r5, #0x0
+ add r1, r4, r1
+ add r2, r7, #0x0
+ bl MI_CpuCopy8
+ ldr r0, [sp, #0x8]
+ add r5, r5, r7
+ cmp r0, #0x0
+ beq _0203443A
+ ldrb r3, [r4, #0x1]
+ ldrb r2, [r4, #0x0]
+ add r0, r5, #0x0
+ add r1, r4, #0x2
+ mul r2, r3
+ lsl r2, r2, #0x1
+ bl MI_CpuCopy8
+ ldrb r1, [r4, #0x1]
+ ldrb r0, [r4, #0x0]
+ mul r0, r1
+ lsl r0, r0, #0x1
+ add r5, r5, r0
+ b _0203444E
+_0203443A:
+ ldrb r3, [r4, #0x1]
+ ldrb r2, [r4, #0x0]
+ ldr r0, [sp, #0x0]
+ add r1, r4, #0x2
+ lsl r0, r0, #0x10
+ mul r2, r3
+ lsr r0, r0, #0x10
+ lsl r2, r2, #0x1
+ bl MIi_CpuClear16
+_0203444E:
+ ldr r0, [sp, #0x4]
+ cmp r0, #0x0
+ beq _0203446C
+ ldrb r3, [r4, #0x1]
+ ldrb r2, [r4, #0x0]
+ ldr r1, _02034488 ; =0x0000070A
+ add r0, r5, #0x0
+ add r1, r4, r1
+ mul r2, r3
+ bl MI_CpuCopy8
+ ldrb r1, [r4, #0x1]
+ ldrb r0, [r4, #0x0]
+ mul r0, r1
+ add r5, r5, r0
+_0203446C:
+ ldrb r3, [r4, #0x1]
+ ldrb r2, [r4, #0x0]
+ ldr r1, _0203448C ; =0x00000A8E
+ add r0, r5, #0x0
+ mul r2, r3
+ add r1, r4, r1
+ lsl r2, r2, #0x1
+ bl MI_CpuCopy8
+ add r0, r6, #0x0
+ bl FUN_02016A18
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_02034488: .word 0x0000070A
+_0203448C: .word 0x00000A8E
+_02034490: .word 0x00001196
+
+ thumb_func_start FUN_02034494
+FUN_02034494: ; 0x02034494
+ push {r3, lr}
+ ldr r1, _020344A8 ; =0x000011AA
+ mov r0, #0xb
+ bl FUN_02016998
+ mov r1, #0x0
+ strb r1, [r0, #0x0]
+ strb r1, [r0, #0x1]
+ strb r1, [r0, #0x2]
+ pop {r3, pc}
+ .balign 4
+_020344A8: .word 0x000011AA
+
+ thumb_func_start FUN_020344AC
+FUN_020344AC: ; 0x020344AC
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_0203474C
+ add r6, r0, #0x0
+ add r0, r4, #0x4
+ add r1, r6, #0x0
+ add r2, r5, #0x0
+ bl FUN_020343A8
+ strb r6, [r4, #0x2]
+ ldrb r0, [r4, #0x4]
+ strb r0, [r4, #0x1]
+ ldrb r0, [r4, #0x5]
+ strb r0, [r4, #0x0]
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_020344D0
+FUN_020344D0: ; 0x020344D0
+ ldr r3, _020344D4 ; =FUN_02016A18
+ bx r3
+ .balign 4
+_020344D4: .word FUN_02016A18
+
+ thumb_func_start FUN_020344D8
+FUN_020344D8: ; 0x020344D8
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldrb r1, [r4, #0x0]
+ ldrb r0, [r4, #0x1]
+ mul r0, r1
+ cmp r5, r0
+ blt _020344EC
+ bl ErrorHandling
+_020344EC:
+ lsl r0, r5, #0x1
+ add r1, r4, r0
+ ldr r0, _020344F8 ; =0x00000A92
+ ldrh r0, [r1, r0]
+ pop {r3-r5, pc}
+ nop
+_020344F8: .word 0x00000A92
+
+ thumb_func_start FUN_020344FC
+FUN_020344FC: ; 0x020344FC
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02034506
+ bl ErrorHandling
+_02034506:
+ ldrb r0, [r4, #0x0]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203450C
+FUN_0203450C: ; 0x0203450C
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _02034516
+ bl ErrorHandling
+_02034516:
+ ldrb r0, [r4, #0x1]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203451C
+FUN_0203451C: ; 0x0203451C
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ ldrb r0, [r7, #0x1]
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ ldrb r6, [r7, #0x0]
+ str r0, [sp, #0x0]
+ cmp r5, #0x0
+ blt _02034532
+ cmp r5, r6
+ blt _02034536
+_02034532:
+ bl ErrorHandling
+_02034536:
+ cmp r4, #0x0
+ blt _02034540
+ ldr r0, [sp, #0x0]
+ cmp r4, r0
+ blt _02034544
+_02034540:
+ bl ErrorHandling
+_02034544:
+ add r0, r4, #0x0
+ mul r0, r6
+ add r0, r5, r0
+ lsl r0, r0, #0x1
+ add r0, r7, r0
+ ldrh r0, [r0, #0x6]
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02034554
+FUN_02034554: ; 0x02034554
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ ldrb r1, [r5, #0x0]
+ ldrb r0, [r5, #0x1]
+ mul r0, r1
+ cmp r4, #0x0
+ blt _02034568
+ cmp r4, r0
+ blt _0203456C
+_02034568:
+ bl ErrorHandling
+_0203456C:
+ lsl r0, r4, #0x1
+ add r0, r5, r0
+ ldrh r0, [r0, #0x6]
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02034574
+FUN_02034574: ; 0x02034574
+ ldrb r0, [r0, #0x2]
+ bx lr
+
+ thumb_func_start FUN_02034578
+FUN_02034578: ; 0x02034578
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x10]
+ add r4, r2, #0x0
+ add r6, r3, #0x0
+ cmp r4, r0
+ blt _0203458A
+ bl ErrorHandling
+_0203458A:
+ ldr r0, [sp, #0x10]
+ mul r0, r6
+ add r4, r4, r0
+ mov r0, #0xe1
+ lsl r0, r0, #0x2
+ cmp r4, r0
+ blt _0203459C
+ bl ErrorHandling
+_0203459C:
+ ldr r0, _020345A4 ; =0x0000070E
+ add r1, r5, r4
+ ldrb r0, [r1, r0]
+ pop {r4-r6, pc}
+ .balign 4
+_020345A4: .word 0x0000070E
+
+ thumb_func_start FUN_020345A8
+FUN_020345A8: ; 0x020345A8
+ push {r3-r5, lr}
+ ldr r1, _020345D8 ; =0x00000708
+ add r4, r0, #0x0
+ bl FUN_02016998
+ add r5, r0, #0x0
+ mov r0, #0x29
+ mov r1, #0x0
+ add r2, r4, #0x0
+ bl FUN_02006528
+ add r4, r0, #0x0
+ ldrb r1, [r4, #0x4]
+ add r0, r4, #0x5
+ ldr r2, _020345D8 ; =0x00000708
+ add r0, r0, r1
+ add r1, r5, #0x0
+ bl MI_CpuCopy8
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add r0, r5, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_020345D8: .word 0x00000708
+
+ thumb_func_start FUN_020345DC
+FUN_020345DC: ; 0x020345DC
+ push {r4, lr}
+ add r4, r0, #0x0
+ bne _020345E6
+ bl ErrorHandling
+_020345E6:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_020345F0
+FUN_020345F0: ; 0x020345F0
+ mov r3, #0x1e
+ mul r3, r2
+ add r1, r1, r3
+ lsl r1, r1, #0x1
+ ldrh r0, [r0, r1]
+ bx lr
+
+ thumb_func_start FUN_020345FC
+FUN_020345FC: ; 0x020345FC
+ push {r3-r5, lr}
+ sub sp, #0x1fc
+ sub sp, #0x1fc
+ sub sp, #0x1fc
+ sub sp, #0x1fc
+ sub sp, #0x1fc
+ sub sp, #0x1fc
+ sub sp, #0x1fc
+ sub sp, #0x1fc
+ sub sp, #0x1c8
+ add r3, r0, #0x0
+ add r5, r1, #0x0
+ lsl r1, r3, #0x10
+ add r4, r2, #0x0
+ add r0, sp, #0x0
+ lsr r1, r1, #0x10
+ mov r2, #0x0
+ bl FUN_020343A8
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x1]
+ cmp r5, r0
+ blt _0203462E
+ bl ErrorHandling
+_0203462E:
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x0]
+ cmp r4, r0
+ blt _0203463A
+ bl ErrorHandling
+_0203463A:
+ add r0, sp, #0x0
+ ldrb r0, [r0, #0x1]
+ mul r0, r4
+ add r0, r5, r0
+ lsl r1, r0, #0x1
+ add r0, sp, #0x0
+ add r0, #0x2
+ ldrh r0, [r0, r1]
+ add sp, #0x1fc
+ add sp, #0x1fc
+ add sp, #0x1fc
+ add sp, #0x1fc
+ add sp, #0x1fc
+ add sp, #0x1fc
+ add sp, #0x1fc
+ add sp, #0x1fc
+ add sp, #0x1c8
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02034660
+FUN_02034660: ; 0x02034660
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bne _0203466C
+ bl ErrorHandling
+_0203466C:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_020344D8
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02034678
+FUN_02034678: ; 0x02034678
+ push {r4-r7}
+ ldr r1, _020346C4 ; =0x00000A92
+ ldrb r7, [r0, #0x0]
+ add r2, r0, r1
+ ldr r1, _020346C8 ; =0x0000070E
+ add r1, r0, r1
+ ldrb r0, [r0, #0x2]
+ cmp r0, #0x0
+ bne _020346BE
+ mov r0, #0x15
+ add r6, r7, #0x0
+ mul r6, r0
+ add r5, r6, #0x0
+ add r5, #0x17
+ mov r4, #0xb0
+ lsl r0, r5, #0x1
+ add r6, #0x18
+ strh r4, [r2, r0]
+ lsl r0, r6, #0x1
+ strh r4, [r2, r0]
+ mov r0, #0x16
+ add r3, r7, #0x0
+ mul r3, r0
+ add r0, r3, #0x0
+ add r0, #0x17
+ lsl r7, r0, #0x1
+ add r3, #0x18
+ strh r4, [r2, r7]
+ lsl r7, r3, #0x1
+ strh r4, [r2, r7]
+ mov r2, #0x2
+ strb r2, [r1, r5]
+ strb r2, [r1, r6]
+ strb r2, [r1, r0]
+ strb r2, [r1, r3]
+_020346BE:
+ pop {r4-r7}
+ bx lr
+ nop
+_020346C4: .word 0x00000A92
+_020346C8: .word 0x0000070E
+
+ thumb_func_start FUN_020346CC
+FUN_020346CC: ; 0x020346CC
+ push {r3-r4}
+ ldr r1, _0203470C ; =0x00000A92
+ add r2, r0, r1
+ ldrb r1, [r0, #0x0]
+ ldrb r0, [r0, #0x2]
+ cmp r0, #0x0
+ bne _02034706
+ mov r0, #0xf
+ mul r0, r1
+ add r0, #0x1c
+ mov r3, #0x77
+ lsl r0, r0, #0x1
+ strh r3, [r2, r0]
+ lsl r0, r1, #0x4
+ add r3, r0, #0x0
+ add r3, #0x1b
+ mov r4, #0x78
+ lsl r3, r3, #0x1
+ strh r4, [r2, r3]
+ add r3, r0, #0x0
+ add r3, #0x1c
+ add r0, r1, r0
+ add r0, #0x1b
+ mov r4, #0x79
+ lsl r3, r3, #0x1
+ strh r4, [r2, r3]
+ mov r3, #0x7a
+ lsl r0, r0, #0x1
+ strh r3, [r2, r0]
+_02034706:
+ pop {r3-r4}
+ bx lr
+ nop
+_0203470C: .word 0x00000A92
+
+ thumb_func_start FUN_02034710
+FUN_02034710: ; 0x02034710
+ push {r3, lr}
+ ldr r1, _02034720 ; =0x0000022F
+ cmp r0, r1
+ blo _0203471E
+ bl ErrorHandling
+ mov r0, #0x3
+_0203471E:
+ pop {r3, pc}
+ .balign 4
+_02034720: .word 0x0000022F
+
+ thumb_func_start FUN_02034724
+FUN_02034724: ; 0x02034724
+ push {r3, lr}
+ bl FUN_02034710
+ mov r1, #0x18
+ mul r1, r0
+ ldr r0, _02034734 ; =0x020EEDBC
+ ldrb r0, [r0, r1]
+ pop {r3, pc}
+ .balign 4
+_02034734: .word 0x020EEDBC
+
+ thumb_func_start FUN_02034738
+FUN_02034738: ; 0x02034738
+ push {r3, lr}
+ bl FUN_02034710
+ mov r1, #0x18
+ mul r1, r0
+ ldr r0, _02034748 ; =0x020EEDBD
+ ldrb r0, [r0, r1]
+ pop {r3, pc}
+ .balign 4
+_02034748: .word 0x020EEDBD
+
+ thumb_func_start FUN_0203474C
+FUN_0203474C: ; 0x0203474C
+ push {r3, lr}
+ bl FUN_02034710
+ mov r1, #0x18
+ mul r1, r0
+ ldr r0, _0203476C ; =0x020EEDBE
+ ldrh r0, [r0, r1]
+ cmp r0, #0x16
+ bne _02034768
+ ldr r1, _02034770 ; =0x020ECAC0
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0xb
+ bne _02034768
+ mov r0, #0x17
+_02034768:
+ pop {r3, pc}
+ nop
+_0203476C: .word 0x020EEDBE
+_02034770: .word 0x020ECAC0
+
+ thumb_func_start FUN_02034774
+FUN_02034774: ; 0x02034774
+ push {r3, lr}
+ bl FUN_02034710
+ mov r1, #0x18
+ mul r1, r0
+ ldr r0, _02034784 ; =0x020EEDC4
+ ldrh r0, [r0, r1]
+ pop {r3, pc}
+ .balign 4
+_02034784: .word 0x020EEDC4
+
+ thumb_func_start FUN_02034788
+FUN_02034788: ; 0x02034788
+ push {r3, lr}
+ bl FUN_02034710
+ mov r1, #0x18
+ mul r1, r0
+ ldr r0, _02034798 ; =0x020EEDC0
+ ldrh r0, [r0, r1]
+ pop {r3, pc}
+ .balign 4
+_02034798: .word 0x020EEDC0
+
+ thumb_func_start FUN_0203479C
+FUN_0203479C: ; 0x0203479C
+ push {r3, lr}
+ bl FUN_02034710
+ mov r1, #0x18
+ mul r1, r0
+ ldr r0, _020347AC ; =0x020EEDC2
+ ldrh r0, [r0, r1]
+ pop {r3, pc}
+ .balign 4
+_020347AC: .word 0x020EEDC2
+
+ thumb_func_start FUN_020347B0
+FUN_020347B0: ; 0x020347B0
+ push {r3, lr}
+ bl FUN_02034710
+ mov r1, #0x18
+ mul r1, r0
+ ldr r0, _020347C0 ; =0x020EEDC6
+ ldrh r0, [r0, r1]
+ pop {r3, pc}
+ .balign 4
+_020347C0: .word 0x020EEDC6
+
+ thumb_func_start FUN_020347C4
+FUN_020347C4: ; 0x020347C4
+ push {r3, lr}
+ bl FUN_02034710
+ mov r1, #0x18
+ mul r1, r0
+ ldr r0, _020347D4 ; =0x020EEDC8
+ ldrh r0, [r0, r1]
+ pop {r3, pc}
+ .balign 4
+_020347D4: .word 0x020EEDC8
+
+ thumb_func_start FUN_020347D8
+FUN_020347D8: ; 0x020347D8
+ push {r3, lr}
+ bl FUN_02034710
+ mov r1, #0x18
+ mul r1, r0
+ ldr r0, _020347F4 ; =0x020EEDCA
+ ldrh r1, [r0, r1]
+ ldr r0, _020347F8 ; =0x0000FFFF
+ cmp r1, r0
+ beq _020347F0
+ mov r0, #0x1
+ pop {r3, pc}
+_020347F0:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+_020347F4: .word 0x020EEDCA
+_020347F8: .word 0x0000FFFF
+
+ thumb_func_start FUN_020347FC
+FUN_020347FC: ; 0x020347FC
+ push {r3, lr}
+ bl FUN_02034710
+ mov r1, #0x18
+ mul r1, r0
+ ldr r0, _0203480C ; =0x020EEDCA
+ ldrh r0, [r0, r1]
+ pop {r3, pc}
+ .balign 4
+_0203480C: .word 0x020EEDCA
+
+ thumb_func_start FUN_02034810
+FUN_02034810: ; 0x02034810
+ push {r3, lr}
+ bl FUN_02034710
+ mov r1, #0x18
+ mul r1, r0
+ ldr r0, _02034820 ; =0x020EEDCC
+ ldrh r0, [r0, r1]
+ pop {r3, pc}
+ .balign 4
+_02034820: .word 0x020EEDCC
+
+ thumb_func_start FUN_02034824
+FUN_02034824: ; 0x02034824
+ push {r3, lr}
+ bl FUN_02034710
+ mov r1, #0x18
+ mul r1, r0
+ ldr r0, _02034834 ; =0x020EEDCE
+ ldrh r0, [r0, r1]
+ pop {r3, pc}
+ .balign 4
+_02034834: .word 0x020EEDCE
+
+ thumb_func_start FUN_02034838
+FUN_02034838: ; 0x02034838
+ push {r3, lr}
+ bl FUN_02034710
+ mov r1, #0x18
+ mul r1, r0
+ ldr r0, _02034848 ; =0x020EEDD0
+ ldrb r0, [r0, r1]
+ pop {r3, pc}
+ .balign 4
+_02034848: .word 0x020EEDD0
+
+ thumb_func_start FUN_0203484C
+FUN_0203484C: ; 0x0203484C
+ push {r3, lr}
+ bl FUN_02034710
+ mov r1, #0x18
+ mul r1, r0
+ ldr r0, _0203485C ; =0x020EEDD1
+ ldrb r0, [r0, r1]
+ pop {r3, pc}
+ .balign 4
+_0203485C: .word 0x020EEDD1
+
+ thumb_func_start FUN_02034860
+FUN_02034860: ; 0x02034860
+ push {r3, lr}
+ bl FUN_02034710
+ mov r1, #0x18
+ mul r1, r0
+ ldr r0, _02034878 ; =0x020EEDBC
+ add r0, r0, r1
+ ldrb r0, [r0, #0x17]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ pop {r3, pc}
+ nop
+_02034878: .word 0x020EEDBC
+
+ thumb_func_start FUN_0203487C
+FUN_0203487C: ; 0x0203487C
+ push {r3, lr}
+ bl FUN_02034710
+ mov r1, #0x18
+ mul r1, r0
+ ldr r0, _02034894 ; =0x020EEDBC
+ add r0, r0, r1
+ ldrb r0, [r0, #0x17]
+ lsl r0, r0, #0x19
+ lsr r0, r0, #0x1f
+ pop {r3, pc}
+ nop
+_02034894: .word 0x020EEDBC
+
+ thumb_func_start FUN_02034898
+FUN_02034898: ; 0x02034898
+ push {r3, lr}
+ bl FUN_02034710
+ mov r1, #0x18
+ mul r1, r0
+ ldr r0, _020348B0 ; =0x020EEDBC
+ add r0, r0, r1
+ ldrb r0, [r0, #0x17]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1f
+ pop {r3, pc}
+ nop
+_020348B0: .word 0x020EEDBC
+
+ thumb_func_start FUN_020348B4
+FUN_020348B4: ; 0x020348B4
+ push {r3, lr}
+ bl FUN_02034710
+ mov r1, #0x18
+ mul r1, r0
+ ldr r0, _020348CC ; =0x020EEDBC
+ add r0, r0, r1
+ ldrb r0, [r0, #0x17]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1f
+ pop {r3, pc}
+ nop
+_020348CC: .word 0x020EEDBC
+
+ thumb_func_start FUN_020348D0
+FUN_020348D0: ; 0x020348D0
+ push {r3, lr}
+ bl FUN_02034710
+ mov r1, #0x18
+ mul r1, r0
+ ldr r0, _020348E0 ; =0x020EEDD2
+ ldrb r0, [r0, r1]
+ pop {r3, pc}
+ .balign 4
+_020348E0: .word 0x020EEDD2
+
+ thumb_func_start FUN_020348E4
+FUN_020348E4: ; 0x020348E4
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02034898
+ cmp r0, #0x0
+ bne _020348F4
+ mov r0, #0x0
+ pop {r4, pc}
+_020348F4:
+ add r0, r4, #0x0
+ bl FUN_020348D0
+ cmp r0, #0x1
+ beq _02034902
+ mov r0, #0x1
+ pop {r4, pc}
+_02034902:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02034908
+FUN_02034908: ; 0x02034908
+ push {r3, lr}
+ bl FUN_0203474C
+ cmp r0, #0x0
+ bne _02034916
+ mov r0, #0x1
+ pop {r3, pc}
+_02034916:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203491C
+FUN_0203491C: ; 0x0203491C
+ push {r3, lr}
+ bl FUN_020348D0
+ cmp r0, #0x5
+ bne _0203492A
+ mov r0, #0x1
+ pop {r3, pc}
+_0203492A:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02034930
+FUN_02034930: ; 0x02034930
+ push {r3, lr}
+ bl FUN_020348D0
+ cmp r0, #0x3
+ bne _0203493E
+ mov r0, #0x1
+ pop {r3, pc}
+_0203493E:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02034944
+FUN_02034944: ; 0x02034944
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_020348D0
+ cmp r0, #0x4
+ beq _0203495A
+ add r0, r4, #0x0
+ bl FUN_020348D0
+ cmp r0, #0x5
+ bne _0203495E
+_0203495A:
+ mov r0, #0x1
+ pop {r4, pc}
+_0203495E:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02034964
+FUN_02034964: ; 0x02034964
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_020348D0
+ cmp r0, #0x1
+ beq _0203497A
+ add r0, r4, #0x0
+ bl FUN_020348D0
+ cmp r0, #0x2
+ bne _0203497E
+_0203497A:
+ mov r0, #0x1
+ pop {r4, pc}
+_0203497E:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02034984
+FUN_02034984: ; 0x02034984
+ push {r3, lr}
+ bl FUN_0203491C
+ cmp r0, #0x0
+ beq _02034992
+ mov r0, #0x1
+ pop {r3, pc}
+_02034992:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02034998
+FUN_02034998: ; 0x02034998
+ ldr r1, _020349A8 ; =0x000001D2
+ cmp r0, r1
+ bne _020349A2
+ mov r0, #0x1
+ bx lr
+_020349A2:
+ mov r0, #0x0
+ bx lr
+ nop
+_020349A8: .word 0x000001D2
+
+ thumb_func_start FUN_020349AC
+FUN_020349AC: ; 0x020349AC
+ cmp r0, #0xdb
+ bne _020349B4
+ mov r0, #0x1
+ bx lr
+_020349B4:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_020349B8
+FUN_020349B8: ; 0x020349B8
+ ldr r1, _020349C8 ; =0x0000011F
+ cmp r0, r1
+ bne _020349C2
+ mov r0, #0x1
+ bx lr
+_020349C2:
+ mov r0, #0x0
+ bx lr
+ nop
+_020349C8: .word 0x0000011F
+
+ thumb_func_start FUN_020349CC
+FUN_020349CC: ; 0x020349CC
+ cmp r0, #0xfd
+ bne _020349D4
+ mov r0, #0x1
+ bx lr
+_020349D4:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_020349D8
+FUN_020349D8: ; 0x020349D8
+ cmp r0, #0xdc
+ bne _020349E0
+ mov r0, #0x1
+ bx lr
+_020349E0:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_020349E4
+FUN_020349E4: ; 0x020349E4
+ ldr r3, _02034A00 ; =0x020EED54
+ mov r2, #0x0
+_020349E8:
+ ldrh r1, [r3, #0x0]
+ cmp r0, r1
+ bne _020349F2
+ mov r0, #0x1
+ bx lr
+_020349F2:
+ add r2, r2, #0x1
+ add r3, r3, #0x2
+ cmp r2, #0x12
+ blo _020349E8
+ mov r0, #0x0
+ bx lr
+ nop
+_02034A00: .word 0x020EED54
+
+ thumb_func_start FUN_02034A04
+FUN_02034A04: ; 0x02034A04
+ ldr r3, _02034A24 ; =0x020EED78
+ mov r2, #0x0
+_02034A08:
+ ldrh r1, [r3, #0x0]
+ cmp r0, r1
+ bne _02034A18
+ add r0, r2, #0x1
+ lsl r1, r0, #0x1
+ ldr r0, _02034A24 ; =0x020EED78
+ ldrh r0, [r0, r1]
+ bx lr
+_02034A18:
+ add r2, r2, #0x2
+ add r3, r3, #0x4
+ cmp r2, #0x22
+ blo _02034A08
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_02034A24: .word 0x020EED78
+
+ thumb_func_start FUN_02034A28
+FUN_02034A28: ; 0x02034A28
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x14]
+ add r4, r1, #0x0
+ cmp r0, #0x0
+ beq _02034A38
+ bl ErrorHandling
+_02034A38:
+ ldr r1, _02034A44 ; =0x00000AC8
+ add r0, r4, #0x0
+ bl FUN_02016998
+ str r0, [r5, #0x14]
+ pop {r3-r5, pc}
+ .balign 4
+_02034A44: .word 0x00000AC8
+
+ thumb_func_start FUN_02034A48
+FUN_02034A48: ; 0x02034A48
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x14]
+ cmp r0, #0x0
+ bne _02034A56
+ bl ErrorHandling
+_02034A56:
+ ldr r0, [r4, #0x14]
+ bl FUN_02016A18
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02034A60
+FUN_02034A60: ; 0x02034A60
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x14]
+ add r4, r1, #0x0
+ cmp r0, #0x0
+ bne _02034A70
+ bl ErrorHandling
+_02034A70:
+ ldr r0, [r5, #0x14]
+ add r1, r4, #0x0
+ bl FUN_02034A98
+ ldr r0, [r5, #0x14]
+ bl FUN_02034C50
+ mov r0, #0x92
+ ldr r1, [r5, #0x14]
+ lsl r0, r0, #0x4
+ add r0, r1, r0
+ add r1, r4, #0x0
+ bl FUN_02034CB4
+ ldr r0, [r5, #0x14]
+ add r1, r4, #0x0
+ bl FUN_02034CEC
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02034A98
+FUN_02034A98: ; 0x02034A98
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_02034810
+ add r4, r0, #0x0
+ mov r0, #0x20
+ add r1, r4, #0x0
+ bl LoadFromNARC_7
+ mov r1, #0x2
+ lsl r1, r1, #0xa
+ cmp r0, r1
+ blo _02034AB8
+ bl ErrorHandling
+_02034AB8:
+ add r5, #0x20
+ add r0, r5, #0x0
+ mov r1, #0x20
+ add r2, r4, #0x0
+ bl LoadFromNARC
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02034AC8
+FUN_02034AC8: ; 0x02034AC8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x14]
+ ldr r4, [r0, #0x4]
+ cmp r0, #0x0
+ bne _02034AD8
+ bl ErrorHandling
+_02034AD8:
+ cmp r4, #0x0
+ beq _02034AEC
+ ldr r1, [r5, #0x1c]
+ ldr r3, [r5, #0x14]
+ ldr r0, [r5, #0x34]
+ ldr r1, [r1, #0x0]
+ ldr r3, [r3, #0x14]
+ add r2, r4, #0x0
+ bl FUN_02057BAC
+_02034AEC:
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02034AF0
+FUN_02034AF0: ; 0x02034AF0
+ ldr r0, [r0, #0x14]
+ ldr r0, [r0, #0x10]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02034AF8
+FUN_02034AF8: ; 0x02034AF8
+ ldr r0, [r0, #0x14]
+ ldr r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02034B00
+FUN_02034B00: ; 0x02034B00
+ ldr r2, [r0, #0x14]
+ ldr r0, [r2, #0x8]
+ cmp r1, r0
+ blo _02034B0C
+ mov r0, #0x0
+ bx lr
+_02034B0C:
+ mov r0, #0xc
+ ldr r2, [r2, #0x18]
+ mul r0, r1
+ add r0, r2, r0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02034B18
+FUN_02034B18: ; 0x02034B18
+ push {r4-r7}
+ ldr r5, [r0, #0x14]
+ mov r3, #0x0
+ ldr r0, [r5, #0x8]
+ cmp r0, #0x0
+ bls _02034B4A
+ ldr r6, [r5, #0x18]
+ add r4, r3, #0x0
+ add r0, r6, #0x0
+_02034B2A:
+ ldrh r7, [r0, #0x0]
+ cmp r1, r7
+ bne _02034B3E
+ add r7, r6, r4
+ ldrh r7, [r7, #0x2]
+ cmp r2, r7
+ bne _02034B3E
+ add r0, r3, #0x0
+ pop {r4-r7}
+ bx lr
+_02034B3E:
+ ldr r7, [r5, #0x8]
+ add r3, r3, #0x1
+ add r0, #0xc
+ add r4, #0xc
+ cmp r3, r7
+ blo _02034B2A
+_02034B4A:
+ mov r0, #0x0
+ mvn r0, r0
+ pop {r4-r7}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02034B54
+FUN_02034B54: ; 0x02034B54
+ ldr r0, [r0, #0x14]
+ ldr r0, [r0, #0xc]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02034B5C
+FUN_02034B5C: ; 0x02034B5C
+ ldr r0, [r0, #0x14]
+ ldr r0, [r0, #0x1c]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02034B64
+FUN_02034B64: ; 0x02034B64
+ ldr r0, [r0, #0x14]
+ ldr r0, [r0, #0x4]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02034B6C
+FUN_02034B6C: ; 0x02034B6C
+ ldr r0, [r0, #0x14]
+ ldr r0, [r0, #0x14]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02034B74
+FUN_02034B74: ; 0x02034B74
+ push {r3-r7, lr}
+ ldr r0, [r0, #0x14]
+ add r4, r1, #0x0
+ ldr r5, [r0, #0x4]
+ add r7, r2, #0x0
+ add r1, r3, #0x0
+ mov r2, #0x0
+ ldr r3, [r0, #0x14]
+ cmp r5, #0x0
+ bls _02034BA4
+ add r6, r3, #0x0
+_02034B8A:
+ ldrh r0, [r6, #0x0]
+ cmp r4, r0
+ bne _02034B9C
+ lsl r0, r2, #0x5
+ add r0, r3, r0
+ strh r7, [r0, #0x18]
+ strh r1, [r0, #0x1a]
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02034B9C:
+ add r2, r2, #0x1
+ add r6, #0x20
+ cmp r2, r5
+ blo _02034B8A
+_02034BA4:
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02034BAC
+FUN_02034BAC: ; 0x02034BAC
+ push {r4-r6, lr}
+ ldr r0, [r0, #0x14]
+ mov r3, #0x0
+ ldr r5, [r0, #0x4]
+ ldr r4, [r0, #0x14]
+ cmp r5, #0x0
+ bls _02034BD4
+ add r6, r4, #0x0
+_02034BBC:
+ ldrh r0, [r6, #0x0]
+ cmp r1, r0
+ bne _02034BCC
+ lsl r0, r3, #0x5
+ add r0, r4, r0
+ strh r2, [r0, #0xc]
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02034BCC:
+ add r3, r3, #0x1
+ add r6, #0x20
+ cmp r3, r5
+ blo _02034BBC
+_02034BD4:
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02034BDC
+FUN_02034BDC: ; 0x02034BDC
+ push {r4-r6, lr}
+ ldr r0, [r0, #0x14]
+ mov r3, #0x0
+ ldr r5, [r0, #0x4]
+ ldr r4, [r0, #0x14]
+ cmp r5, #0x0
+ bls _02034C04
+ add r6, r4, #0x0
+_02034BEC:
+ ldrh r0, [r6, #0x0]
+ cmp r1, r0
+ bne _02034BFC
+ lsl r0, r3, #0x5
+ add r0, r4, r0
+ strh r2, [r0, #0x4]
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02034BFC:
+ add r3, r3, #0x1
+ add r6, #0x20
+ cmp r3, r5
+ blo _02034BEC
+_02034C04:
+ bl ErrorHandling
+ mov r0, #0x0
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02034C0C
+FUN_02034C0C: ; 0x02034C0C
+ push {r3-r4}
+ ldr r0, [r0, #0x14]
+ ldr r4, [r0, #0x18]
+ mov r0, #0xc
+ mul r0, r1
+ strh r2, [r4, r0]
+ add r0, r4, r0
+ strh r3, [r0, #0x2]
+ mov r0, #0x1
+ pop {r3-r4}
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02034C24
+FUN_02034C24: ; 0x02034C24
+ ldr r0, [r0, #0x14]
+ ldr r3, [r0, #0x18]
+ mov r0, #0xc
+ mul r0, r1
+ add r0, r3, r0
+ strh r2, [r0, #0x4]
+ mov r0, #0x1
+ bx lr
+
+ thumb_func_start FUN_02034C34
+FUN_02034C34: ; 0x02034C34
+ push {r4-r6, lr}
+ add r5, r1, #0x0
+ add r4, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_02034AF0
+ mov r1, #0x14
+ mul r1, r5
+ add r0, r0, r1
+ str r4, [r0, #0x4]
+ str r6, [r0, #0x8]
+ mov r0, #0x1
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02034C50
+FUN_02034C50: ; 0x02034C50
+ add r1, r0, #0x0
+ ldr r2, [r0, #0x20]
+ add r1, #0x20
+ add r1, r1, #0x4
+ str r2, [r0, #0x0]
+ cmp r2, #0x0
+ beq _02034C62
+ str r1, [r0, #0x10]
+ b _02034C66
+_02034C62:
+ mov r2, #0x0
+ str r2, [r0, #0x10]
+_02034C66:
+ ldr r3, [r0, #0x0]
+ mov r2, #0x14
+ mul r2, r3
+ add r3, r1, r2
+ ldr r2, [r1, r2]
+ add r1, r3, #0x4
+ str r2, [r0, #0x4]
+ cmp r2, #0x0
+ beq _02034C7C
+ str r1, [r0, #0x14]
+ b _02034C80
+_02034C7C:
+ mov r2, #0x0
+ str r2, [r0, #0x14]
+_02034C80:
+ ldr r2, [r0, #0x4]
+ lsl r2, r2, #0x5
+ add r3, r1, r2
+ ldr r2, [r1, r2]
+ add r1, r3, #0x4
+ str r2, [r0, #0x8]
+ cmp r2, #0x0
+ beq _02034C94
+ str r1, [r0, #0x18]
+ b _02034C98
+_02034C94:
+ mov r2, #0x0
+ str r2, [r0, #0x18]
+_02034C98:
+ ldr r3, [r0, #0x8]
+ mov r2, #0xc
+ mul r2, r3
+ add r3, r1, r2
+ ldr r1, [r1, r2]
+ str r1, [r0, #0xc]
+ cmp r1, #0x0
+ beq _02034CAE
+ add r1, r3, #0x4
+ str r1, [r0, #0x1c]
+ bx lr
+_02034CAE:
+ mov r1, #0x0
+ str r1, [r0, #0x1c]
+ bx lr
+
+ thumb_func_start FUN_02034CB4
+FUN_02034CB4: ; 0x02034CB4
+ push {r3-r5, lr}
+ mov r2, #0x6a
+ add r4, r1, #0x0
+ mov r1, #0x0
+ lsl r2, r2, #0x2
+ add r5, r0, #0x0
+ bl memset
+ add r0, r4, #0x0
+ bl FUN_020347D8
+ cmp r0, #0x0
+ beq _02034CDE
+ add r0, r4, #0x0
+ bl FUN_020347FC
+ add r2, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0x25
+ bl LoadFromNARC
+_02034CDE:
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02034CE0
+FUN_02034CE0: ; 0x02034CE0
+ ldr r1, [r0, #0x14]
+ mov r0, #0x92
+ lsl r0, r0, #0x4
+ add r0, r1, r0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02034CEC
+FUN_02034CEC: ; 0x02034CEC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_0203479C
+ mov r1, #0x82
+ lsl r1, r1, #0x4
+ mov r2, #0x1
+ add r4, r0, #0x0
+ mov r0, #0x0
+ add r1, r5, r1
+ lsl r2, r2, #0x8
+ bl MIi_CpuClearFast
+ mov r0, #0xa
+ add r1, r4, #0x0
+ bl LoadFromNARC_7
+ mov r1, #0x1
+ lsl r1, r1, #0x8
+ cmp r0, r1
+ blo _02034D1C
+ bl ErrorHandling
+_02034D1C:
+ mov r0, #0x82
+ lsl r0, r0, #0x4
+ add r0, r5, r0
+ mov r1, #0xa
+ add r2, r4, #0x0
+ bl LoadFromNARC
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02034D2C
+FUN_02034D2C: ; 0x02034D2C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x14]
+ cmp r0, #0x0
+ bne _02034D3A
+ bl ErrorHandling
+_02034D3A:
+ mov r0, #0x82
+ ldr r1, [r4, #0x14]
+ lsl r0, r0, #0x4
+ add r0, r1, r0
+ pop {r4, pc}
+
+ thumb_func_start FUN_02034D44
+FUN_02034D44: ; 0x02034D44
+ push {r4-r7}
+ ldr r0, [r0, #0x14]
+ mov r3, #0x0
+ ldr r4, [r0, #0x4]
+ cmp r4, #0x0
+ bls _02034D76
+ ldr r6, [r0, #0x14]
+ add r5, r3, #0x0
+ add r4, r6, #0x0
+_02034D56:
+ ldrh r7, [r4, #0x18]
+ cmp r1, r7
+ bne _02034D6A
+ add r7, r6, r5
+ ldrh r7, [r7, #0x1a]
+ cmp r2, r7
+ bne _02034D6A
+ mov r0, #0x0
+ pop {r4-r7}
+ bx lr
+_02034D6A:
+ ldr r7, [r0, #0x4]
+ add r3, r3, #0x1
+ add r4, #0x20
+ add r5, #0x20
+ cmp r3, r7
+ blo _02034D56
+_02034D76:
+ mov r0, #0x1
+ pop {r4-r7}
+ bx lr
+
+ thumb_func_start FUN_02034D7C
+FUN_02034D7C: ; 0x02034D7C
+ mov r0, #0xa0
+ bx lr
+
+ thumb_func_start FUN_02034D80
+FUN_02034D80: ; 0x02034D80
+ mov r0, #0x5
+ lsl r0, r0, #0xa
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02034D88
+FUN_02034D88: ; 0x02034D88
+ ldr r3, _02034D94 ; =MIi_CpuClear32
+ mov r2, #0x5
+ add r1, r0, #0x0
+ mov r0, #0x0
+ lsl r2, r2, #0xa
+ bx r3
+ .balign 4
+_02034D94: .word MIi_CpuClear32
+
+ thumb_func_start FUN_02034D98
+FUN_02034D98: ; 0x02034D98
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r1, #0x0
+ mov r2, #0xa0
+ bl memset
+ add r0, r4, #0x0
+ add r0, #0x6c
+ bl FUN_0204ADE0
+ add r0, r4, #0x0
+ add r0, #0x8c
+ bl FUN_02055468
+ bl FUN_02034E8C
+ add r4, #0x68
+ strh r0, [r4, #0x0]
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02034DC0
+FUN_02034DC0: ; 0x02034DC0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02034DC4
+FUN_02034DC4: ; 0x02034DC4
+ add r0, #0x14
+ bx lr
+
+ thumb_func_start FUN_02034DC8
+FUN_02034DC8: ; 0x02034DC8
+ add r0, #0x28
+ bx lr
+
+ thumb_func_start FUN_02034DCC
+FUN_02034DCC: ; 0x02034DCC
+ add r0, #0x50
+ bx lr
+
+ thumb_func_start FUN_02034DD0
+FUN_02034DD0: ; 0x02034DD0
+ add r0, #0x3c
+ bx lr
+
+ thumb_func_start FUN_02034DD4
+FUN_02034DD4: ; 0x02034DD4
+ add r3, r1, #0x0
+ add r2, r0, #0x0
+ ldmia r3!, {r0-r1}
+ add r2, #0x3c
+ stmia r2!, {r0-r1}
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ str r0, [r2, #0x0]
+ bx lr
+
+ thumb_func_start FUN_02034DE8
+FUN_02034DE8: ; 0x02034DE8
+ add r0, #0x64
+ bx lr
+
+ thumb_func_start FUN_02034DEC
+FUN_02034DEC: ; 0x02034DEC
+ add r0, #0x66
+ ldrh r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02034DF4
+FUN_02034DF4: ; 0x02034DF4
+ add r0, #0x66
+ strh r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02034DFC
+FUN_02034DFC: ; 0x02034DFC
+ add r0, #0x68
+ ldrh r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02034E04
+FUN_02034E04: ; 0x02034E04
+ add r0, #0x68
+ strh r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02034E0C
+FUN_02034E0C: ; 0x02034E0C
+ add r0, #0x6c
+ bx lr
+
+ thumb_func_start FUN_02034E10
+FUN_02034E10: ; 0x02034E10
+ add r0, #0x6a
+ ldrb r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02034E18
+FUN_02034E18: ; 0x02034E18
+ add r0, #0x6a
+ strb r1, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02034E20
+FUN_02034E20: ; 0x02034E20
+ add r0, #0x8c
+ bx lr
+
+ thumb_func_start FUN_02034E24
+FUN_02034E24: ; 0x02034E24
+ add r0, #0x98
+ bx lr
+
+ thumb_func_start FUN_02034E28
+FUN_02034E28: ; 0x02034E28
+ add r0, #0x96
+ bx lr
+
+ thumb_func_start FUN_02034E2C
+FUN_02034E2C: ; 0x02034E2C
+ add r0, #0x94
+ bx lr
+
+ thumb_func_start FUN_02034E30
+FUN_02034E30: ; 0x02034E30
+ ldr r3, _02034E38 ; =FUN_02022610
+ mov r1, #0x6
+ bx r3
+ nop
+_02034E38: .word FUN_02022610
+
+ thumb_func_start FUN_02034E3C
+FUN_02034E3C: ; 0x02034E3C
+ ldr r3, _02034E44 ; =FUN_02022610
+ mov r1, #0xb
+ bx r3
+ nop
+_02034E44: .word FUN_02022610
+
+ thumb_func_start FUN_02034E48
+FUN_02034E48: ; 0x02034E48
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_02034E3C
+ add r2, r0, #0x0
+ ldr r1, [r4, #0x34]
+ add r0, r4, #0x0
+ mov r3, #0x40
+ bl FUN_02057800
+ pop {r4, pc}
+
+ thumb_func_start FUN_02034E60
+FUN_02034E60: ; 0x02034E60
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_02034E3C
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x34]
+ mov r2, #0x40
+ bl FUN_0205785C
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02034E78
+FUN_02034E78: ; 0x02034E78
+ push {r3, lr}
+ cmp r0, #0x0
+ ble _02034E82
+ cmp r0, #0x14
+ bls _02034E88
+_02034E82:
+ bl ErrorHandling
+ mov r0, #0x1
+_02034E88:
+ sub r0, r0, #0x1
+ pop {r3, pc}
+
+ thumb_func_start FUN_02034E8C
+FUN_02034E8C: ; 0x02034E8C
+ mov r0, #0x1
+ bx lr
+
+ thumb_func_start FUN_02034E90
+FUN_02034E90: ; 0x02034E90
+ push {r4, lr}
+ add r4, r1, #0x0
+ bl FUN_02034E78
+ lsl r1, r0, #0x4
+ ldr r0, _02034EB8 ; =0x020F222A
+ ldrh r0, [r0, r1]
+ str r0, [r4, #0x0]
+ mov r0, #0x0
+ mvn r0, r0
+ str r0, [r4, #0x4]
+ ldr r0, _02034EBC ; =0x020F222C
+ ldrh r0, [r0, r1]
+ str r0, [r4, #0x8]
+ ldr r0, _02034EC0 ; =0x020F222E
+ ldrh r0, [r0, r1]
+ str r0, [r4, #0xc]
+ mov r0, #0x1
+ str r0, [r4, #0x10]
+ pop {r4, pc}
+ .balign 4
+_02034EB8: .word 0x020F222A
+_02034EBC: .word 0x020F222C
+_02034EC0: .word 0x020F222E
+
+ thumb_func_start FUN_02034EC4
+FUN_02034EC4: ; 0x02034EC4
+ push {r4, lr}
+ add r4, r1, #0x0
+ bl FUN_02034E78
+ lsl r1, r0, #0x4
+ ldr r0, _02034EEC ; =0x020F2224
+ ldrh r0, [r0, r1]
+ str r0, [r4, #0x0]
+ mov r0, #0x0
+ mvn r0, r0
+ str r0, [r4, #0x4]
+ ldr r0, _02034EF0 ; =0x020F2226
+ ldrh r0, [r0, r1]
+ str r0, [r4, #0x8]
+ ldr r0, _02034EF4 ; =0x020F2228
+ ldrh r0, [r0, r1]
+ str r0, [r4, #0xc]
+ mov r0, #0x0
+ str r0, [r4, #0x10]
+ pop {r4, pc}
+ .balign 4
+_02034EEC: .word 0x020F2224
+_02034EF0: .word 0x020F2226
+_02034EF4: .word 0x020F2228
+
+ thumb_func_start FUN_02034EF8
+FUN_02034EF8: ; 0x02034EF8
+ ldr r3, _02034F18 ; =0x020F2224
+ mov r2, #0x0
+_02034EFC:
+ ldrh r1, [r3, #0x0]
+ cmp r0, r1
+ bne _02034F0C
+ ldrb r1, [r3, #0xc]
+ cmp r1, #0x0
+ beq _02034F0C
+ add r0, r2, #0x1
+ bx lr
+_02034F0C:
+ add r2, r2, #0x1
+ add r3, #0x10
+ cmp r2, #0x14
+ blo _02034EFC
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_02034F18: .word 0x020F2224
+
+ thumb_func_start FUN_02034F1C
+FUN_02034F1C: ; 0x02034F1C
+ ldr r3, _02034F3C ; =0x020F2224
+ mov r2, #0x0
+_02034F20:
+ ldrh r1, [r3, #0x6]
+ cmp r0, r1
+ bne _02034F30
+ ldrb r1, [r3, #0xc]
+ cmp r1, #0x0
+ beq _02034F30
+ add r0, r2, #0x1
+ bx lr
+_02034F30:
+ add r2, r2, #0x1
+ add r3, #0x10
+ cmp r2, #0x14
+ blo _02034F20
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_02034F3C: .word 0x020F2224
+
+ thumb_func_start FUN_02034F40
+FUN_02034F40: ; 0x02034F40
+ push {r3-r6}
+ asr r3, r1, #0x4
+ lsr r3, r3, #0x1b
+ add r3, r1, r3
+ asr r1, r2, #0x4
+ lsr r1, r1, #0x1b
+ add r1, r2, r1
+ mov r4, #0x0
+ asr r2, r1, #0x5
+ ldr r5, _02034F84 ; =0x020F2224
+ asr r3, r3, #0x5
+ add r1, r4, #0x0
+_02034F58:
+ ldrh r6, [r5, #0x6]
+ cmp r0, r6
+ bne _02034F76
+ ldrh r6, [r5, #0x8]
+ add r4, r1, #0x1
+ lsr r6, r6, #0x5
+ cmp r3, r6
+ bne _02034F76
+ ldrh r6, [r5, #0xa]
+ lsr r6, r6, #0x5
+ cmp r2, r6
+ bne _02034F76
+ add r0, r4, #0x0
+ pop {r3-r6}
+ bx lr
+_02034F76:
+ add r1, r1, #0x1
+ add r5, #0x10
+ cmp r1, #0x14
+ blo _02034F58
+ add r0, r4, #0x0
+ pop {r3-r6}
+ bx lr
+ .balign 4
+_02034F84: .word 0x020F2224
+
+ thumb_func_start FUN_02034F88
+FUN_02034F88: ; 0x02034F88
+ push {r4, lr}
+ ldr r3, _02034FB8 ; =0x020F2224
+ mov r4, #0x0
+_02034F8E:
+ ldrh r2, [r3, #0x6]
+ cmp r1, r2
+ bne _02034FAE
+ ldrb r2, [r3, #0xd]
+ cmp r2, #0x0
+ beq _02034FAE
+ ldr r0, [r0, #0xc]
+ bl FUN_020462AC
+ ldr r2, _02034FBC ; =0x020F2232
+ lsl r3, r4, #0x4
+ ldrh r2, [r2, r3]
+ mov r1, #0x1
+ bl FUN_0205F2E4
+ pop {r4, pc}
+_02034FAE:
+ add r4, r4, #0x1
+ add r3, #0x10
+ cmp r4, #0x14
+ blo _02034F8E
+ pop {r4, pc}
+ .balign 4
+_02034FB8: .word 0x020F2224
+_02034FBC: .word 0x020F2232
+
+ thumb_func_start FUN_02034FC0
+FUN_02034FC0: ; 0x02034FC0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_02034E78
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ ldr r2, _02034FE0 ; =0x020F2232
+ lsl r3, r4, #0x4
+ ldrh r2, [r2, r3]
+ mov r1, #0x2
+ bl FUN_0205F2E4
+ pop {r3-r5, pc}
+ .balign 4
+_02034FE0: .word 0x020F2232
+
+ thumb_func_start FUN_02034FE4
+FUN_02034FE4: ; 0x02034FE4
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ add r0, r1, #0x0
+ bl FUN_02034838
+ add r4, r0, #0x0
+ cmp r4, #0x18
+ blt _0203505C
+ ldr r0, [r7, #0xc]
+ bl FUN_02023794
+ add r6, r0, #0x0
+ add r0, r6, #0x4
+ bl FUN_02012710
+ sub r5, r0, #0x1
+ bmi _0203500C
+ ldr r0, _02035060 ; =0x0000016E
+ cmp r5, r0
+ blt _02035010
+_0203500C:
+ bl ErrorHandling
+_02035010:
+ ldr r0, [r6, #0x8]
+ cmp r0, #0x2
+ bls _02035044
+ ldr r6, [r6, #0x4]
+ mov r0, #0x3
+ tst r0, r6
+ bne _0203502A
+ add r0, r6, #0x0
+ mov r1, #0x64
+ bl _u32_div_f
+ cmp r1, #0x0
+ bne _02035038
+_0203502A:
+ mov r1, #0x19
+ add r0, r6, #0x0
+ lsl r1, r1, #0x4
+ bl _u32_div_f
+ cmp r1, #0x0
+ bne _0203503C
+_02035038:
+ mov r0, #0x1
+ b _0203503E
+_0203503C:
+ mov r0, #0x0
+_0203503E:
+ cmp r0, #0x0
+ bne _02035044
+ add r5, r5, #0x1
+_02035044:
+ add r0, r7, #0x0
+ bl FUN_0204B33C
+ cmp r0, #0x0
+ beq _02035050
+ mov r5, #0x1
+_02035050:
+ lsl r0, r5, #0x2
+ sub r4, #0x18
+ add r0, r5, r0
+ add r1, r4, r0
+ ldr r0, _02035064 ; =0x020F2364
+ ldrb r0, [r0, r1]
+_0203505C:
+ pop {r3-r7, pc}
+ nop
+_02035060: .word 0x0000016E
+_02035064: .word 0x020F2364
+
+ thumb_func_start FUN_02035068
+FUN_02035068: ; 0x02035068
+ push {r3, lr}
+ ldr r0, [r0, #0x1c]
+ ldr r0, [r0, #0x0]
+ bl FUN_02034824
+ cmp r0, #0x0
+ beq _0203507A
+ mov r0, #0x1
+ pop {r3, pc}
+_0203507A:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02035080
+FUN_02035080: ; 0x02035080
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02035254
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F214
+ cmp r0, #0x1
+ bne _020350A6
+ add r0, r5, #0x0
+ bl FUN_020352C4
+ mov r1, #0x7
+ lsl r1, r1, #0x6
+ str r0, [r4, r1]
+ b _020350E6
+_020350A6:
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F244
+ cmp r0, #0x1
+ bne _020350C2
+ add r0, r5, #0x0
+ bl FUN_020352C8
+ mov r1, #0x7
+ lsl r1, r1, #0x6
+ str r0, [r4, r1]
+ b _020350E6
+_020350C2:
+ add r0, r5, #0x0
+ bl FUN_02060144
+ cmp r0, #0x1
+ bne _020350DA
+ add r0, r5, #0x0
+ bl FUN_020352CC
+ mov r1, #0x7
+ lsl r1, r1, #0x6
+ str r0, [r4, r1]
+ b _020350E6
+_020350DA:
+ add r0, r5, #0x0
+ bl FUN_02035270
+ mov r1, #0x7
+ lsl r1, r1, #0x6
+ str r0, [r4, r1]
+_020350E6:
+ mov r0, #0x71
+ mov r1, #0x0
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ ldr r0, [r5, #0x38]
+ bl FUN_02055B30
+ cmp r0, #0x1
+ bne _02035106
+ ldr r0, [r5, #0x38]
+ bl FUN_020552F8
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x38]
+ bl FUN_02055B8C
+_02035106:
+ ldr r1, _02035114 ; =FUN_020352E4
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_020463CC
+ pop {r3-r5, pc}
+ nop
+_02035114: .word FUN_020352E4
+
+ thumb_func_start FUN_02035118
+FUN_02035118: ; 0x02035118
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02035254
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020352D4
+ mov r1, #0x7
+ lsl r1, r1, #0x6
+ str r0, [r4, r1]
+ mov r2, #0x1
+ add r0, r1, #0x4
+ str r2, [r4, r0]
+ ldr r0, [r5, #0x38]
+ bl FUN_02055B30
+ cmp r0, #0x1
+ bne _0203514C
+ ldr r0, [r5, #0x38]
+ bl FUN_020552F8
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x38]
+ bl FUN_02055B8C
+_0203514C:
+ ldr r1, _02035158 ; =FUN_020352E4
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_020463CC
+ pop {r3-r5, pc}
+ .balign 4
+_02035158: .word FUN_020352E4
+
+ thumb_func_start FUN_0203515C
+FUN_0203515C: ; 0x0203515C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02035254
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020352DC
+ mov r1, #0x7
+ lsl r1, r1, #0x6
+ str r0, [r4, r1]
+ mov r2, #0x0
+ add r0, r1, #0x4
+ str r2, [r4, r0]
+ ldr r0, [r5, #0x38]
+ bl FUN_02055B30
+ cmp r0, #0x1
+ bne _02035190
+ ldr r0, [r5, #0x38]
+ bl FUN_020552F8
+ add r1, r0, #0x0
+ ldr r0, [r5, #0x38]
+ bl FUN_02055B8C
+_02035190:
+ ldr r1, _0203519C ; =FUN_020352E4
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_020463CC
+ pop {r3-r5, pc}
+ .balign 4
+_0203519C: .word FUN_020352E4
+
+ thumb_func_start FUN_020351A0
+FUN_020351A0: ; 0x020351A0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, _0203524C ; =0x000005FD
+ bl FUN_020054C8
+ bl FUN_02035254
+ add r4, r0, #0x0
+ mov r0, #0x71
+ mov r1, #0x0
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F214
+ cmp r0, #0x1
+ bne _020351D4
+ add r0, r5, #0x0
+ bl FUN_020352C4
+ mov r1, #0x7
+ lsl r1, r1, #0x6
+ str r0, [r4, r1]
+ b _02035240
+_020351D4:
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F244
+ cmp r0, #0x1
+ bne _020351F0
+ add r0, r5, #0x0
+ bl FUN_020352C8
+ mov r1, #0x7
+ lsl r1, r1, #0x6
+ str r0, [r4, r1]
+ b _02035240
+_020351F0:
+ add r0, r5, #0x0
+ bl FUN_02060144
+ cmp r0, #0x1
+ bne _02035208
+ add r0, r5, #0x0
+ bl FUN_020352CC
+ mov r1, #0x7
+ lsl r1, r1, #0x6
+ str r0, [r4, r1]
+ b _02035240
+_02035208:
+ ldr r0, [r5, #0x6c]
+ cmp r0, #0x3
+ bne _0203521C
+ add r0, r5, #0x0
+ bl FUN_020352DC
+ mov r1, #0x7
+ lsl r1, r1, #0x6
+ str r0, [r4, r1]
+ b _02035240
+_0203521C:
+ cmp r0, #0x2
+ bne _02035234
+ add r0, r5, #0x0
+ bl FUN_020352D4
+ mov r1, #0x7
+ lsl r1, r1, #0x6
+ str r0, [r4, r1]
+ mov r2, #0x1
+ add r0, r1, #0x4
+ str r2, [r4, r0]
+ b _02035240
+_02035234:
+ add r0, r5, #0x0
+ bl FUN_02035270
+ mov r1, #0x7
+ lsl r1, r1, #0x6
+ str r0, [r4, r1]
+_02035240:
+ ldr r0, [r5, #0x10]
+ ldr r1, _02035250 ; =FUN_020352E4
+ add r2, r4, #0x0
+ bl FUN_020463EC
+ pop {r3-r5, pc}
+ .balign 4
+_0203524C: .word 0x000005FD
+_02035250: .word FUN_020352E4
+
+ thumb_func_start FUN_02035254
+FUN_02035254: ; 0x02035254
+ push {r3, lr}
+ mov r1, #0x2
+ mov r0, #0xb
+ lsl r1, r1, #0x8
+ bl FUN_02016998
+ mov r2, #0x0
+ strh r2, [r0, #0x2a]
+ mov r1, #0x7e
+ strh r2, [r0, #0x28]
+ lsl r1, r1, #0x2
+ str r2, [r0, r1]
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02035270
+FUN_02035270: ; 0x02035270
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ mov r4, #0x0
+ bl FUN_02024DA0
+ bl FUN_02024D64
+ cmp r0, #0x0
+ bne _02035288
+ mov r0, #0x1
+ orr r4, r0
+_02035288:
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F388
+ cmp r0, #0x0
+ bne _0203529A
+ mov r0, #0x2
+ orr r4, r0
+_0203529A:
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205ECE0
+ cmp r0, #0x0
+ bne _020352AC
+ mov r0, #0x4
+ orr r4, r0
+_020352AC:
+ ldr r0, [r5, #0x1c]
+ ldr r0, [r0, #0x0]
+ bl FUN_020349CC
+ cmp r0, #0x1
+ bne _020352BC
+ mov r0, #0x6
+ orr r4, r0
+_020352BC:
+ mov r0, #0x6
+ lsl r0, r0, #0x6
+ orr r0, r4
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020352C4
+FUN_020352C4: ; 0x020352C4
+ mov r0, #0x90
+ bx lr
+
+ thumb_func_start FUN_020352C8
+FUN_020352C8: ; 0x020352C8
+ mov r0, #0x94
+ bx lr
+
+ thumb_func_start FUN_020352CC
+FUN_020352CC: ; 0x020352CC
+ ldr r0, _020352D0 ; =0x00000195
+ bx lr
+ .balign 4
+_020352D0: .word 0x00000195
+
+ thumb_func_start FUN_020352D4
+FUN_020352D4: ; 0x020352D4
+ mov r0, #0x11
+ lsl r0, r0, #0x4
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020352DC
+FUN_020352DC: ; 0x020352DC
+ ldr r0, _020352E0 ; =0x00000191
+ bx lr
+ .balign 4
+_020352E0: .word 0x00000191
+
+ thumb_func_start FUN_020352E4
+FUN_020352E4: ; 0x020352E4
+ push {r4-r6, lr}
+ add r6, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldrh r1, [r4, #0x2a]
+ cmp r1, #0xf
+ bhi _02035362
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02035308: ; jump table (using 16-bit offset)
+ .short _02035328 - _02035308 - 2; case 0
+ .short _02035358 - _02035308 - 2; case 1
+ .short _02035368 - _02035308 - 2; case 2
+ .short _02035370 - _02035308 - 2; case 3
+ .short _02035378 - _02035308 - 2; case 4
+ .short _02035380 - _02035308 - 2; case 5
+ .short _02035388 - _02035308 - 2; case 6
+ .short _02035390 - _02035308 - 2; case 7
+ .short _020353C0 - _02035308 - 2; case 8
+ .short _020353D6 - _02035308 - 2; case 9
+ .short _020353F6 - _02035308 - 2; case 10
+ .short _02035412 - _02035308 - 2; case 11
+ .short _02035398 - _02035308 - 2; case 12
+ .short _02035440 - _02035308 - 2; case 13
+ .short _02035478 - _02035308 - 2; case 14
+ .short _02035432 - _02035308 - 2; case 15
+_02035328:
+ ldr r0, [r5, #0x34]
+ bl FUN_02058780
+ mov r1, #0x73
+ lsl r1, r1, #0x2
+ add r0, r5, #0x0
+ add r1, r4, r1
+ bl FUN_0205CE80
+ mov r1, #0x7a
+ lsl r1, r1, #0x2
+ add r0, r5, #0x0
+ add r1, r4, r1
+ bl FUN_02063964
+ add r0, r6, #0x0
+ bl FUN_0203549C
+ add r0, r6, #0x0
+ bl FUN_02035734
+ mov r0, #0x1
+ strh r0, [r4, #0x2a]
+ b _02035484
+_02035358:
+ add r0, r6, #0x0
+ bl FUN_020358E4
+ cmp r0, #0x0
+ beq _02035364
+_02035362:
+ b _02035484
+_02035364:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+_02035368:
+ add r0, r6, #0x0
+ bl FUN_02035CA0
+ b _02035484
+_02035370:
+ add r0, r6, #0x0
+ bl FUN_02035CDC
+ b _02035484
+_02035378:
+ add r0, r6, #0x0
+ bl FUN_020365F0
+ b _02035484
+_02035380:
+ add r0, r6, #0x0
+ bl FUN_02036644
+ b _02035484
+_02035388:
+ add r0, r6, #0x0
+ bl FUN_02036E08
+ b _02035484
+_02035390:
+ add r0, r6, #0x0
+ bl FUN_02036F1C
+ b _02035484
+_02035398:
+ add r0, r5, #0x0
+ bl FUN_020464A4
+ cmp r0, #0x0
+ beq _02035484
+ ldr r0, [r5, #0x34]
+ bl FUN_02058780
+ add r0, r6, #0x0
+ bl FUN_0203549C
+ add r0, r6, #0x0
+ bl FUN_02035734
+ mov r0, #0x1
+ bl MOD05_021D7CA4
+ mov r0, #0xe
+ strh r0, [r4, #0x2a]
+ b _02035484
+_020353C0:
+ add r0, r5, #0x0
+ bl FUN_020464A4
+ cmp r0, #0x0
+ beq _02035484
+ mov r0, #0x1
+ bl MOD05_021D7CA4
+ mov r0, #0x9
+ strh r0, [r4, #0x2a]
+ b _02035484
+_020353D6:
+ bl FUN_0200E308
+ cmp r0, #0x0
+ beq _02035484
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_0203598C
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ ldr r0, [r5, #0x34]
+ bl FUN_020587B0
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_020353F6:
+ add r0, r5, #0x0
+ bl FUN_020464A4
+ cmp r0, #0x0
+ beq _02035484
+ ldr r0, [r5, #0x34]
+ bl FUN_02058780
+ mov r0, #0x1
+ bl MOD05_021D7CA4
+ mov r0, #0xb
+ strh r0, [r4, #0x2a]
+ b _02035484
+_02035412:
+ bl FUN_0200E308
+ cmp r0, #0x0
+ beq _02035484
+ mov r2, #0x72
+ lsl r2, r2, #0x2
+ ldr r1, [r4, r2]
+ add r2, #0x30
+ ldr r2, [r4, r2]
+ add r0, r6, #0x0
+ bl FUN_020463EC
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ b _02035484
+_02035432:
+ bl FUN_02016A18
+ ldr r0, [r5, #0x34]
+ bl FUN_020587B0
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02035440:
+ add r1, r5, #0x0
+ bl FUN_0203598C
+ add r0, r4, #0x0
+ bl FUN_02035718
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_0200CCF8
+ add r0, r4, #0x0
+ bl FUN_02019178
+ add r0, r6, #0x0
+ bl FUN_020358A0
+ ldr r0, [r5, #0x8]
+ mov r1, #0x3
+ bl FUN_0201AC68
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ ldr r0, [r5, #0x34]
+ bl FUN_020587B0
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02035478:
+ bl FUN_0200E308
+ cmp r0, #0x0
+ beq _02035484
+ mov r0, #0x1
+ strh r0, [r4, #0x2a]
+_02035484:
+ ldr r0, [r4, #0x20]
+ cmp r0, #0x0
+ beq _02035496
+ add r0, r4, #0x0
+ bl FUN_02035BB0
+ ldr r0, [r4, #0x38]
+ bl FUN_0201FDEC
+_02035496:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203549C
+FUN_0203549C: ; 0x0203549C
+ push {r3-r7, lr}
+ sub sp, #0x30
+ add r4, r0, #0x0
+ bl FUN_02046528
+ str r0, [sp, #0x1c]
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r1, r4, #0x0
+ add r1, #0x30
+ bl FUN_0203566C
+ str r0, [sp, #0x14]
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ mov r0, #0xb
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x14]
+ mov r2, #0x3
+ lsl r1, r0, #0x1
+ add r0, r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x8]
+ mov r0, #0xc
+ str r0, [sp, #0xc]
+ ldr r0, _02035658 ; =0x0000023B
+ add r1, r4, #0x0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x1c]
+ mov r3, #0x14
+ ldr r0, [r0, #0x8]
+ bl FUN_02019064
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ mov r3, #0xb
+ ldr r0, [sp, #0x1c]
+ str r3, [sp, #0x4]
+ ldr r0, [r0, #0x8]
+ ldr r2, _0203565C ; =0x000003D9
+ mov r1, #0x3
+ bl FUN_0200CB00
+ ldr r2, _0203565C ; =0x000003D9
+ add r0, r4, #0x0
+ mov r1, #0x1
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ ldr r2, _02035660 ; =0x00000143
+ mov r0, #0x0
+ mov r1, #0x1a
+ mov r3, #0xb
+ bl FUN_0200A86C
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x14]
+ mov r1, #0xb
+ bl FUN_02012838
+ str r0, [r4, #0x24]
+ mov r5, #0x0
+ ldr r0, [sp, #0x14]
+ strh r5, [r4, #0x28]
+ cmp r0, #0x0
+ bls _020355BC
+_02035526:
+ add r0, r4, r5
+ add r0, #0x30
+ ldrb r3, [r0, #0x0]
+ cmp r3, #0x3
+ bne _02035594
+ mov r0, #0xb
+ bl FUN_0200AA80
+ add r6, r0, #0x0
+ mov r0, #0x8
+ mov r1, #0xb
+ bl FUN_020219F4
+ add r1, r4, r5
+ add r1, #0x30
+ ldrb r1, [r1, #0x0]
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x18]
+ lsl r2, r1, #0x3
+ ldr r1, _02035664 ; =0x020F2ACC
+ ldr r1, [r1, r2]
+ bl FUN_0200A914
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x1c]
+ ldr r0, [r0, #0xc]
+ bl FUN_020238F4
+ add r2, r0, #0x0
+ add r0, r6, #0x0
+ mov r1, #0x0
+ bl FUN_0200ABC0
+ ldr r2, [sp, #0x20]
+ add r0, r6, #0x0
+ add r1, r7, #0x0
+ bl FUN_0200B7B8
+ add r2, r4, r5
+ add r2, #0x30
+ ldrb r2, [r2, #0x0]
+ ldr r0, [r4, #0x24]
+ add r1, r7, #0x0
+ bl FUN_020128A0
+ ldr r0, [sp, #0x20]
+ bl FUN_02021A20
+ add r0, r7, #0x0
+ bl FUN_02021A20
+ add r0, r6, #0x0
+ bl FUN_0200AB18
+ b _020355A2
+_02035594:
+ ldr r2, _02035664 ; =0x020F2ACC
+ lsl r6, r3, #0x3
+ ldr r0, [r4, #0x24]
+ ldr r1, [sp, #0x18]
+ ldr r2, [r2, r6]
+ bl FUN_02012880
+_020355A2:
+ ldr r0, [sp, #0x1c]
+ add r0, #0x8c
+ ldr r1, [r0, #0x0]
+ add r0, r4, r5
+ add r0, #0x30
+ ldrb r0, [r0, #0x0]
+ cmp r1, r0
+ bne _020355B4
+ strh r5, [r4, #0x28]
+_020355B4:
+ ldr r0, [sp, #0x14]
+ add r5, r5, #0x1
+ cmp r5, r0
+ blo _02035526
+_020355BC:
+ ldrh r0, [r4, #0x28]
+ add r0, r4, r0
+ add r0, #0x30
+ ldrb r1, [r0, #0x0]
+ ldr r0, [sp, #0x1c]
+ add r0, #0x8c
+ str r1, [r0, #0x0]
+ ldr r0, [sp, #0x18]
+ bl FUN_0200A8B8
+ ldr r0, [r4, #0x24]
+ mov r1, #0x1
+ str r0, [sp, #0x24]
+ str r4, [sp, #0x28]
+ add r0, sp, #0x24
+ strb r1, [r0, #0x8]
+ strb r1, [r0, #0x9]
+ ldr r1, [sp, #0x14]
+ strb r1, [r0, #0xa]
+ ldrb r2, [r0, #0xb]
+ mov r1, #0xf
+ bic r2, r1
+ mov r1, #0x8
+ orr r1, r2
+ strb r1, [r0, #0xb]
+ ldrb r2, [r0, #0xb]
+ mov r1, #0x30
+ bic r2, r1
+ mov r1, #0x10
+ orr r1, r2
+ strb r1, [r0, #0xb]
+ ldr r1, [sp, #0x14]
+ ldrb r2, [r0, #0xb]
+ cmp r1, #0x4
+ blo _0203560E
+ mov r1, #0xc0
+ bic r2, r1
+ mov r1, #0x40
+ orr r1, r2
+ strb r1, [r0, #0xb]
+ b _02035614
+_0203560E:
+ mov r1, #0xc0
+ bic r2, r1
+ strb r2, [r0, #0xb]
+_02035614:
+ mov r0, #0xb
+ str r0, [sp, #0x0]
+ ldr r0, _02035668 ; =0x00000402
+ mov r1, #0x1c
+ str r0, [sp, #0x4]
+ ldrh r3, [r4, #0x28]
+ add r0, sp, #0x24
+ mov r2, #0x4
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02001B8C
+ str r0, [r4, #0x20]
+ add r0, r4, #0x0
+ bl FUN_02019220
+ ldr r0, [sp, #0x1c]
+ ldr r0, [r0, #0xc]
+ bl FUN_020238F4
+ bl FUN_020239CC
+ add r3, r0, #0x0
+ add r0, r4, #0x0
+ add r4, #0x30
+ lsl r3, r3, #0x18
+ ldr r2, [sp, #0x14]
+ add r1, r4, #0x0
+ lsr r3, r3, #0x18
+ bl FUN_020359B8
+ add sp, #0x30
+ pop {r3-r7, pc}
+ nop
+_02035658: .word 0x0000023B
+_0203565C: .word 0x000003D9
+_02035660: .word 0x00000143
+_02035664: .word 0x020F2ACC
+_02035668: .word 0x00000402
+
+ thumb_func_start FUN_0203566C
+FUN_0203566C: ; 0x0203566C
+ push {r3-r4}
+ mov r3, #0x7
+ lsl r3, r3, #0x6
+ ldr r4, [r0, r3]
+ sub r3, #0xc0
+ mov r2, #0x0
+ tst r3, r4
+ bne _02035682
+ mov r3, #0x8
+ strb r3, [r1, #0x0]
+ add r2, r2, #0x1
+_02035682:
+ mov r3, #0x7
+ lsl r3, r3, #0x6
+ ldr r4, [r0, r3]
+ mov r3, #0x80
+ tst r3, r4
+ bne _02035694
+ mov r3, #0x7
+ strb r3, [r1, r2]
+ add r2, r2, #0x1
+_02035694:
+ mov r3, #0x7
+ lsl r3, r3, #0x6
+ ldr r4, [r0, r3]
+ mov r3, #0x1
+ tst r3, r4
+ bne _020356A6
+ mov r3, #0x0
+ strb r3, [r1, r2]
+ add r2, r2, #0x1
+_020356A6:
+ mov r3, #0x7
+ lsl r3, r3, #0x6
+ ldr r4, [r0, r3]
+ mov r3, #0x2
+ tst r3, r4
+ bne _020356B8
+ mov r3, #0x1
+ strb r3, [r1, r2]
+ add r2, r2, #0x1
+_020356B8:
+ mov r3, #0x7
+ lsl r3, r3, #0x6
+ ldr r4, [r0, r3]
+ mov r3, #0x4
+ tst r3, r4
+ bne _020356CA
+ mov r3, #0x2
+ strb r3, [r1, r2]
+ add r2, r2, #0x1
+_020356CA:
+ mov r3, #0x7
+ lsl r3, r3, #0x6
+ ldr r4, [r0, r3]
+ mov r3, #0x8
+ tst r3, r4
+ bne _020356DC
+ mov r3, #0x3
+ strb r3, [r1, r2]
+ add r2, r2, #0x1
+_020356DC:
+ mov r3, #0x7
+ lsl r3, r3, #0x6
+ ldr r4, [r0, r3]
+ mov r3, #0x10
+ tst r3, r4
+ bne _020356EE
+ mov r3, #0x4
+ strb r3, [r1, r2]
+ add r2, r2, #0x1
+_020356EE:
+ mov r3, #0x7
+ lsl r3, r3, #0x6
+ ldr r4, [r0, r3]
+ mov r3, #0x20
+ tst r3, r4
+ bne _02035700
+ mov r3, #0x5
+ strb r3, [r1, r2]
+ add r2, r2, #0x1
+_02035700:
+ mov r3, #0x7
+ lsl r3, r3, #0x6
+ ldr r3, [r0, r3]
+ mov r0, #0x40
+ tst r0, r3
+ bne _02035712
+ mov r0, #0x6
+ strb r0, [r1, r2]
+ add r2, r2, #0x1
+_02035712:
+ add r0, r2, #0x0
+ pop {r3-r4}
+ bx lr
+
+ thumb_func_start FUN_02035718
+FUN_02035718: ; 0x02035718
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02035B78
+ ldr r0, [r4, #0x20]
+ mov r1, #0x0
+ bl FUN_02001C5C
+ ldr r0, [r4, #0x24]
+ bl FUN_02012870
+ mov r0, #0x0
+ str r0, [r4, #0x20]
+ pop {r4, pc}
+
+ thumb_func_start FUN_02035734
+FUN_02035734: ; 0x02035734
+ push {r3-r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r5, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F214
+ cmp r0, #0x1
+ bne _0203575A
+ mov r6, #0x0
+ b _0203576C
+_0203575A:
+ ldr r0, [r4, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F244
+ cmp r0, #0x1
+ beq _0203576A
+ b _0203588E
+_0203576A:
+ mov r6, #0x1
+_0203576C:
+ mov r3, #0x1
+ str r3, [sp, #0x0]
+ mov r0, #0xc
+ str r0, [sp, #0x4]
+ mov r0, #0x4
+ str r0, [sp, #0x8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ ldr r0, _02035894 ; =0x0000032D
+ add r1, r5, #0x0
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x8]
+ add r1, #0x10
+ mov r2, #0x3
+ bl FUN_02019064
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ mov r3, #0xb
+ str r3, [sp, #0x4]
+ ldr r0, [r4, #0x8]
+ ldr r2, _02035898 ; =0x000003D9
+ mov r1, #0x3
+ bl FUN_0200CB00
+ add r0, r5, #0x0
+ ldr r2, _02035898 ; =0x000003D9
+ add r0, #0x10
+ mov r1, #0x1
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ add r0, r5, #0x0
+ add r0, #0x10
+ mov r1, #0xf
+ bl FUN_02019620
+ ldr r2, _0203589C ; =0x00000143
+ mov r0, #0x0
+ mov r1, #0x1a
+ mov r3, #0xb
+ bl FUN_0200A86C
+ str r0, [sp, #0x1c]
+ cmp r6, #0x0
+ bne _020357D0
+ mov r1, #0x9
+ bl FUN_0200A914
+ b _020357D6
+_020357D0:
+ mov r1, #0xa
+ bl FUN_0200A914
+_020357D6:
+ mov r1, #0x0
+ add r7, r0, #0x0
+ str r1, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ add r0, #0x10
+ add r2, r7, #0x0
+ add r3, r1, #0x0
+ str r1, [sp, #0x8]
+ bl FUN_0201BD84
+ add r0, r7, #0x0
+ bl FUN_02021A20
+ mov r0, #0xb
+ bl FUN_0200AA80
+ add r7, r0, #0x0
+ mov r0, #0x20
+ mov r1, #0xb
+ bl FUN_020219F4
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x1c]
+ mov r1, #0xb
+ bl FUN_0200A914
+ str r0, [sp, #0x14]
+ cmp r6, #0x0
+ bne _02035834
+ ldr r0, [r4, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034E24
+ mov r1, #0x0
+ add r2, r0, #0x0
+ str r1, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldrh r2, [r2, #0x0]
+ add r0, r7, #0x0
+ mov r3, #0x2
+ bl FUN_0200AD38
+ b _0203584C
+_02035834:
+ add r0, r4, #0x0
+ bl FUN_0204BAB0
+ mov r1, #0x0
+ add r2, r0, #0x0
+ str r1, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ add r0, r7, #0x0
+ mov r3, #0x2
+ bl FUN_0200AD38
+_0203584C:
+ ldr r1, [sp, #0x18]
+ ldr r2, [sp, #0x14]
+ add r0, r7, #0x0
+ bl FUN_0200B7B8
+ mov r0, #0x10
+ str r0, [sp, #0x0]
+ mov r0, #0xff
+ str r0, [sp, #0x4]
+ mov r1, #0x0
+ add r0, r5, #0x0
+ ldr r2, [sp, #0x18]
+ add r0, #0x10
+ add r3, r1, #0x0
+ str r1, [sp, #0x8]
+ bl FUN_0201BD84
+ ldr r0, [sp, #0x18]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x14]
+ bl FUN_02021A20
+ add r0, r7, #0x0
+ bl FUN_0200AB18
+ ldr r0, [sp, #0x1c]
+ bl FUN_0200A8B8
+ add r5, #0x10
+ add r0, r5, #0x0
+ bl FUN_02019220
+_0203588E:
+ add sp, #0x20
+ pop {r3-r7, pc}
+ nop
+_02035894: .word 0x0000032D
+_02035898: .word 0x000003D9
+_0203589C: .word 0x00000143
+
+ thumb_func_start FUN_020358A0
+FUN_020358A0: ; 0x020358A0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r5, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F214
+ cmp r0, #0x0
+ bne _020358CE
+ ldr r0, [r4, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F244
+ cmp r0, #0x0
+ beq _020358E0
+_020358CE:
+ add r0, r5, #0x0
+ add r0, #0x10
+ mov r1, #0x1
+ bl FUN_0200CCF8
+ add r5, #0x10
+ add r0, r5, #0x0
+ bl FUN_02019178
+_020358E0:
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020358E4
+FUN_020358E4: ; 0x020358E4
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ bl FUN_02046528
+ add r4, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_0204652C
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x20]
+ bl FUN_02001E5C
+ add r6, r0, #0x0
+ mov r1, #0x5e
+ ldr r0, [r5, #0x20]
+ lsl r1, r1, #0x4
+ bl FUN_02001D2C
+ str r0, [r5, #0x2c]
+ ldr r0, [r5, #0x20]
+ bl FUN_02001E5C
+ strh r0, [r5, #0x28]
+ ldrh r1, [r5, #0x28]
+ cmp r6, r1
+ beq _0203593A
+ mov r0, #0x67
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ ldr r0, [r0, #0x0]
+ bl FUN_02035BE8
+ ldrh r2, [r5, #0x28]
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_02035C44
+ ldrh r0, [r5, #0x28]
+ add r4, #0x8c
+ add r0, r5, r0
+ add r0, #0x30
+ ldrb r0, [r0, #0x0]
+ str r0, [r4, #0x0]
+_0203593A:
+ ldrh r0, [r5, #0x28]
+ add r0, r0, #0x1
+ lsl r0, r0, #0x2
+ add r1, r5, r0
+ mov r0, #0x67
+ lsl r0, r0, #0x2
+ ldr r0, [r1, r0]
+ ldr r0, [r0, #0x0]
+ bl FUN_02035C78
+ mov r1, #0x1
+ ldr r2, [r5, #0x2c]
+ mvn r1, r1
+ cmp r2, r1
+ beq _02035960
+ add r0, r1, #0x1
+ cmp r2, r0
+ beq _02035982
+ b _02035966
+_02035960:
+ mov r0, #0xd
+ strh r0, [r5, #0x2a]
+ b _02035982
+_02035966:
+ ldr r0, _02035988 ; =0x020F2AD0
+ lsl r2, r2, #0x3
+ ldr r2, [r0, r2]
+ cmp r2, r1
+ bne _02035976
+ mov r0, #0xd
+ strh r0, [r5, #0x2a]
+ b _02035982
+_02035976:
+ add r0, r1, #0x1
+ cmp r2, r0
+ beq _02035982
+ add r0, r7, #0x0
+ blx r2
+ pop {r3-r7, pc}
+_02035982:
+ mov r0, #0x1
+ pop {r3-r7, pc}
+ nop
+_02035988: .word 0x020F2AD0
+
+ thumb_func_start FUN_0203598C
+FUN_0203598C: ; 0x0203598C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_0202EDF8
+ cmp r0, #0x0
+ beq _020359B4
+ mov r0, #0x71
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ cmp r0, #0x0
+ beq _020359B4
+ ldr r0, [r4, #0x7c]
+ bl FUN_02052F74
+ bl FUN_02031B50
+ mov r0, #0x0
+ bl FUN_02052B74
+_020359B4:
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020359B8
+FUN_020359B8: ; 0x020359B8
+ push {r4-r7, lr}
+ sub sp, #0xb4
+ ldr r4, _02035B60 ; =0x020F2AB4
+ str r3, [sp, #0x18]
+ add r3, sp, #0x9c
+ str r2, [sp, #0x14]
+ str r0, [sp, #0xc]
+ str r1, [sp, #0x10]
+ add r2, r3, #0x0
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [sp, #0xc]
+ add r1, r2, #0x0
+ add r0, #0x38
+ mov r2, #0x8
+ mov r3, #0xb
+ bl MOD05_021D959C
+ mov r0, #0x2
+ str r0, [sp, #0x0]
+ mov r0, #0x1
+ str r0, [sp, #0x4]
+ ldr r0, _02035B64 ; =0x000034D8
+ mov r1, #0x42
+ str r0, [sp, #0x8]
+ ldr r0, [sp, #0xc]
+ mov r2, #0x5
+ add r0, #0x38
+ mov r3, #0x0
+ bl MOD05_021D967C
+ ldr r0, _02035B64 ; =0x000034D8
+ mov r1, #0x42
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0xc]
+ mov r2, #0x1
+ add r0, #0x38
+ mov r3, #0x0
+ bl MOD05_021D96F4
+ ldr r0, _02035B64 ; =0x000034D8
+ mov r2, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0xc]
+ mov r1, #0x42
+ add r0, #0x38
+ add r3, r2, #0x0
+ bl MOD05_021D9708
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ ldr r0, _02035B64 ; =0x000034D8
+ mov r1, #0x42
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0xc]
+ mov r2, #0x2
+ add r0, #0x38
+ mov r3, #0x0
+ bl MOD05_021D971C
+ ldr r0, [sp, #0xc]
+ ldr r1, _02035B68 ; =0x020F2B14
+ add r0, #0x38
+ bl MOD05_021D9820
+ mov r2, #0x67
+ ldr r1, [sp, #0xc]
+ lsl r2, r2, #0x2
+ str r0, [r1, r2]
+ add r0, r1, #0x0
+ ldr r0, [r0, r2]
+ ldrh r1, [r1, #0x28]
+ ldr r0, [r0, #0x0]
+ bl FUN_02035BE8
+ ldr r0, _02035B6C ; =0x000034D9
+ mov r1, #0x42
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0xc]
+ mov r2, #0x4
+ add r0, #0x38
+ mov r3, #0x0
+ bl MOD05_021D96F4
+ ldr r0, _02035B6C ; =0x000034D9
+ mov r1, #0x42
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0xc]
+ mov r2, #0x3
+ add r0, #0x38
+ mov r3, #0x0
+ bl MOD05_021D9708
+ mov r0, #0x1
+ str r0, [sp, #0x0]
+ ldr r0, _02035B6C ; =0x000034D9
+ mov r1, #0x42
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0xc]
+ mov r2, #0x6
+ add r0, #0x38
+ mov r3, #0x0
+ bl MOD05_021D971C
+ ldr r0, [sp, #0x14]
+ mov r4, #0x0
+ cmp r0, #0x0
+ bls _02035B2C
+ ldr r5, [sp, #0xc]
+ ldr r3, _02035B70 ; =0x020F2B48
+ add r7, r4, #0x0
+ add r2, sp, #0x28
+ mov r6, #0x6
+_02035AA2:
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ sub r6, r6, #0x1
+ bne _02035AA2
+ ldr r0, [r3, #0x0]
+ ldr r3, _02035B74 ; =0x020F2AA8
+ str r0, [r2, #0x0]
+ ldmia r3!, {r0-r1}
+ add r2, sp, #0x1c
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ str r0, [r2, #0x0]
+_02035ABA:
+ add r6, sp, #0x28
+ add r3, sp, #0x68
+ mov r2, #0x6
+_02035AC0:
+ ldmia r6!, {r0-r1}
+ stmia r3!, {r0-r1}
+ sub r2, r2, #0x1
+ bne _02035AC0
+ ldr r0, [r6, #0x0]
+ add r1, sp, #0x68
+ str r0, [r3, #0x0]
+ mov r0, #0x2
+ ldrsh r0, [r1, r0]
+ add r0, r0, r7
+ strh r0, [r1, #0x2]
+ ldr r0, [sp, #0x10]
+ ldrb r2, [r0, r4]
+ cmp r2, #0x2
+ bne _02035AEA
+ ldr r0, [sp, #0x18]
+ cmp r0, #0x1
+ bne _02035AEA
+ mov r0, #0x1b
+ strh r0, [r1, #0x6]
+ b _02035AF2
+_02035AEA:
+ lsl r0, r2, #0x1
+ add r1, r2, r0
+ add r0, sp, #0x68
+ strh r1, [r0, #0x6]
+_02035AF2:
+ ldr r0, [sp, #0xc]
+ add r1, sp, #0x68
+ add r0, #0x38
+ bl MOD05_021D9820
+ mov r1, #0x1a
+ lsl r1, r1, #0x4
+ add r2, sp, #0x5c
+ add r3, sp, #0x1c
+ str r0, [r5, r1]
+ ldmia r3!, {r0-r1}
+ add r6, r2, #0x0
+ stmia r2!, {r0-r1}
+ ldr r0, [r3, #0x0]
+ add r1, r6, #0x0
+ str r0, [r2, #0x0]
+ mov r0, #0x1a
+ lsl r0, r0, #0x4
+ ldr r0, [r5, r0]
+ mov r2, #0x1
+ ldr r0, [r0, #0x0]
+ bl FUN_02020074
+ ldr r0, [sp, #0x14]
+ add r4, r4, #0x1
+ add r7, #0x18
+ add r5, r5, #0x4
+ cmp r4, r0
+ blo _02035ABA
+_02035B2C:
+ ldr r0, [sp, #0xc]
+ mov r2, #0x1
+ ldrh r0, [r0, #0x28]
+ add r0, r0, #0x1
+ lsl r1, r0, #0x2
+ ldr r0, [sp, #0xc]
+ add r1, r0, r1
+ mov r0, #0x67
+ lsl r0, r0, #0x2
+ ldr r0, [r1, r0]
+ mov r1, #0x2
+ ldr r0, [r0, #0x0]
+ bl FUN_02035C18
+ ldr r0, [sp, #0x14]
+ mov r1, #0x6f
+ add r2, r0, #0x1
+ ldr r0, [sp, #0xc]
+ lsl r1, r1, #0x2
+ str r2, [r0, r1]
+ mov r0, #0x10
+ mov r1, #0x1
+ bl FUN_0201E6E4
+ add sp, #0xb4
+ pop {r4-r7, pc}
+ .balign 4
+_02035B60: .word 0x020F2AB4
+_02035B64: .word 0x000034D8
+_02035B68: .word 0x020F2B14
+_02035B6C: .word 0x000034D9
+_02035B70: .word 0x020F2B48
+_02035B74: .word 0x020F2AA8
+
+ thumb_func_start FUN_02035B78
+FUN_02035B78: ; 0x02035B78
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ mov r0, #0x6f
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ mov r4, #0x0
+ cmp r0, #0x0
+ bls _02035BA6
+ mov r7, #0x67
+ lsl r7, r7, #0x2
+ add r6, r7, #0x0
+ add r6, #0x20
+_02035B90:
+ lsl r0, r4, #0x2
+ add r0, r5, r0
+ ldr r0, [r0, r7]
+ bl FUN_0200C3DC
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ ldr r0, [r5, r6]
+ cmp r4, r0
+ blo _02035B90
+_02035BA6:
+ add r5, #0x38
+ add r0, r5, #0x0
+ bl MOD05_021D99F8
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02035BB0
+FUN_02035BB0: ; 0x02035BB0
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ mov r0, #0x6f
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ mov r4, #0x0
+ cmp r0, #0x0
+ bls _02035BE4
+ mov r7, #0x67
+ lsl r7, r7, #0x2
+ add r6, r7, #0x0
+ add r6, #0x20
+_02035BC8:
+ lsl r0, r4, #0x2
+ add r0, r5, r0
+ ldr r0, [r0, r7]
+ mov r1, #0x1
+ ldr r0, [r0, #0x0]
+ lsl r1, r1, #0xc
+ bl FUN_020201E4
+ add r0, r4, #0x1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ ldr r0, [r5, r6]
+ cmp r4, r0
+ blo _02035BC8
+_02035BE4:
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02035BE8
+FUN_02035BE8: ; 0x02035BE8
+ push {r3-r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_0202011C
+ add r6, r0, #0x0
+ add r3, sp, #0x0
+ ldmia r6!, {r0-r1}
+ add r2, r3, #0x0
+ stmia r3!, {r0-r1}
+ ldr r0, [r6, #0x0]
+ add r1, r2, #0x0
+ str r0, [r3, #0x0]
+ mov r0, #0x18
+ mul r0, r4
+ add r0, #0x14
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ bl FUN_02020044
+ add sp, #0xc
+ pop {r3-r6, pc}
+
+ thumb_func_start FUN_02035C18
+FUN_02035C18: ; 0x02035C18
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ bl FUN_020201DC
+ mov r1, #0x3
+ bl _u32_div_f
+ add r2, r0, #0x0
+ lsl r1, r2, #0x1
+ add r1, r2, r1
+ add r0, r5, #0x0
+ add r1, r4, r1
+ bl FUN_02020130
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ bl FUN_0202027C
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02035C44
+FUN_02035C44: ; 0x02035C44
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x1
+ lsl r0, r0, #0x2
+ add r1, r5, r0
+ mov r0, #0x67
+ lsl r0, r0, #0x2
+ ldr r0, [r1, r0]
+ mov r1, #0x0
+ add r4, r2, #0x0
+ ldr r0, [r0, #0x0]
+ add r2, r1, #0x0
+ bl FUN_02035C18
+ add r0, r4, #0x1
+ lsl r0, r0, #0x2
+ add r1, r5, r0
+ mov r0, #0x67
+ lsl r0, r0, #0x2
+ ldr r0, [r1, r0]
+ mov r1, #0x1
+ ldr r0, [r0, #0x0]
+ add r2, r1, #0x0
+ bl FUN_02035C18
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02035C78
+FUN_02035C78: ; 0x02035C78
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_020201DC
+ mov r1, #0x3
+ bl _u32_div_f
+ cmp r1, #0x1
+ bne _02035C9E
+ add r0, r4, #0x0
+ bl FUN_02020388
+ cmp r0, #0x0
+ bne _02035C9E
+ add r0, r4, #0x0
+ mov r1, #0x2
+ mov r2, #0x1
+ bl FUN_02035C18
+_02035C9E:
+ pop {r4, pc}
+
+ thumb_func_start FUN_02035CA0
+FUN_02035CA0: ; 0x02035CA0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_0200E308
+ cmp r0, #0x0
+ beq _02035CD8
+ add r0, r5, #0x0
+ bl FUN_02046528
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ bl FUN_02035718
+ add r0, r4, #0x0
+ bl FUN_02019178
+ add r0, r5, #0x0
+ bl FUN_020358A0
+ mov r1, #0x72
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ add r0, r5, #0x0
+ blx r1
+ mov r0, #0x3
+ strh r0, [r4, #0x2a]
+_02035CD8:
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02035CDC
+FUN_02035CDC: ; 0x02035CDC
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0204647C
+ cmp r0, #0x0
+ bne _02035D02
+ mov r1, #0x72
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ add r0, r5, #0x0
+ blx r1
+_02035D02:
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02035D04
+FUN_02035D04: ; 0x02035D04
+ mov r2, #0x72
+ lsl r2, r2, #0x2
+ str r1, [r0, r2]
+ mov r1, #0x3
+ strh r1, [r0, #0x2a]
+ bx lr
+
+ thumb_func_start FUN_02035D10
+FUN_02035D10: ; 0x02035D10
+ push {r4, lr}
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ mov r0, #0x0
+ bl MOD05_021D7CA4
+ mov r0, #0x72
+ ldr r1, _02035D30 ; =FUN_02035D34
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ mov r0, #0x2
+ strh r0, [r4, #0x2a]
+ mov r0, #0x1
+ pop {r4, pc}
+ nop
+_02035D30: .word FUN_02035D34
+
+ thumb_func_start FUN_02035D34
+FUN_02035D34: ; 0x02035D34
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r6, r0, #0x0
+ mov r0, #0xb
+ mov r1, #0x20
+ bl FUN_02016998
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_02024DA0
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0xc]
+ bl FUN_020238F4
+ str r0, [sp, #0x4]
+ ldr r0, [r5, #0xc]
+ bl FUN_020462AC
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x0]
+ str r0, [r4, #0x0]
+ ldr r0, [sp, #0x4]
+ str r0, [r4, #0x4]
+ add r0, r5, #0x0
+ bl FUN_0204B2A4
+ str r0, [r4, #0x8]
+ add r0, r7, #0x0
+ mov r1, #0x0
+ bl FUN_0205F524
+ str r0, [r4, #0xc]
+ add r0, r7, #0x0
+ mov r1, #0x1
+ bl FUN_0205F524
+ str r0, [r4, #0x10]
+ add r0, r7, #0x0
+ mov r1, #0x2
+ bl FUN_0205F524
+ str r0, [r4, #0x14]
+ add r0, r7, #0x0
+ mov r1, #0x3
+ bl FUN_0205F524
+ str r0, [r4, #0x18]
+ add r0, r5, #0x0
+ add r0, #0xb0
+ ldr r0, [r0, #0x0]
+ add r1, r4, #0x0
+ str r0, [r4, #0x1c]
+ add r0, r5, #0x0
+ bl FUN_02038690
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ str r4, [r6, r0]
+ ldr r1, _02035DC4 ; =FUN_02035DC8
+ sub r0, #0x30
+ str r1, [r6, r0]
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_02035DC4: .word FUN_02035DC8
+
+ thumb_func_start FUN_02035DC8
+FUN_02035DC8: ; 0x02035DC8
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204649C
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r1, [r4, r0]
+ cmp r1, #0x0
+ beq _02035DF0
+ mov r0, #0xb
+ bl FUN_02016A8C
+_02035DF0:
+ mov r0, #0xc
+ strh r0, [r4, #0x2a]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02035DF8
+FUN_02035DF8: ; 0x02035DF8
+ push {r4, lr}
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ mov r0, #0x0
+ bl MOD05_021D7CA4
+ mov r0, #0x72
+ ldr r1, _02035E18 ; =FUN_02035E1C
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ mov r0, #0x2
+ strh r0, [r4, #0x2a]
+ mov r0, #0x1
+ pop {r4, pc}
+ nop
+_02035E18: .word FUN_02035E1C
+
+ thumb_func_start FUN_02035E1C
+FUN_02035E1C: ; 0x02035E1C
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ mov r1, #0x7a
+ add r4, r0, #0x0
+ lsl r1, r1, #0x2
+ add r0, r5, #0x0
+ add r1, r4, r1
+ mov r2, #0x0
+ bl FUN_020379C8
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r0, _02035E4C ; =FUN_02035E50
+ sub r1, #0x30
+ str r0, [r4, r1]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_02035E4C: .word FUN_02035E50
+
+ thumb_func_start FUN_02035E50
+FUN_02035E50: ; 0x02035E50
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r7, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ mov r0, #0xb
+ mov r1, #0x40
+ bl FUN_02016998
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ mov r2, #0x40
+ add r6, r0, #0x0
+ bl memcpy
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ add r0, r6, #0x0
+ add r0, #0x23
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x17
+ bls _02035E90
+ b _020361E6
+_02035E90:
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02035E9C: ; jump table (using 16-bit offset)
+ .short _020361E6 - _02035E9C - 2; case 0
+ .short _02035ECC - _02035E9C - 2; case 1
+ .short _020361E6 - _02035E9C - 2; case 2
+ .short _020360EA - _02035E9C - 2; case 3
+ .short _02035F4A - _02035E9C - 2; case 4
+ .short _02035FD0 - _02035E9C - 2; case 5
+ .short _02036056 - _02035E9C - 2; case 6
+ .short _020360AC - _02035E9C - 2; case 7
+ .short _02036144 - _02035E9C - 2; case 8
+ .short _02036170 - _02035E9C - 2; case 9
+ .short _020361CA - _02035E9C - 2; case 10
+ .short _020361A4 - _02035E9C - 2; case 11
+ .short _020361A4 - _02035E9C - 2; case 12
+ .short _020361A4 - _02035E9C - 2; case 13
+ .short _020361A4 - _02035E9C - 2; case 14
+ .short _020361A4 - _02035E9C - 2; case 15
+ .short _020361A4 - _02035E9C - 2; case 16
+ .short _020361A4 - _02035E9C - 2; case 17
+ .short _020361A4 - _02035E9C - 2; case 18
+ .short _020361A4 - _02035E9C - 2; case 19
+ .short _020361A4 - _02035E9C - 2; case 20
+ .short _020361A4 - _02035E9C - 2; case 21
+ .short _020361A4 - _02035E9C - 2; case 22
+ .short _020361A4 - _02035E9C - 2; case 23
+_02035ECC:
+ mov r0, #0xb
+ mov r1, #0x30
+ bl FUN_02016998
+ add r7, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB1C
+ str r0, [r7, #0x0]
+ ldr r0, [r5, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [r7, #0x4]
+ mov r0, #0x1
+ strb r0, [r7, #0x11]
+ add r0, r6, #0x0
+ add r0, #0x22
+ ldrb r0, [r0, #0x0]
+ strb r0, [r7, #0x14]
+ ldr r0, [r7, #0x0]
+ bl FUN_0206B9AC
+ strb r0, [r7, #0x13]
+ mov r0, #0x0
+ strh r0, [r7, #0x18]
+ strb r0, [r7, #0x12]
+ ldr r0, [r5, #0xc]
+ bl FUN_0202A918
+ str r0, [r7, #0x20]
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB28
+ str r0, [r7, #0x1c]
+ ldr r0, [r5, #0xc]
+ bl FUN_02079C70
+ str r0, [r7, #0x2c]
+ mov r0, #0x0
+ str r0, [r7, #0x28]
+ ldr r1, _0203626C ; =0x020F2A9C
+ add r0, r7, #0x0
+ bl FUN_0207B000
+ ldr r0, [r5, #0xc]
+ bl FUN_020238F4
+ add r1, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_0207C2A4
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ bl FUN_0203796C
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ str r7, [r4, r0]
+ ldr r1, _02036270 ; =FUN_0203684C
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ b _0203625E
+_02035F4A:
+ mov r0, #0xb
+ mov r1, #0x30
+ bl FUN_02016998
+ add r7, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB1C
+ str r0, [r7, #0x0]
+ ldr r0, [r5, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [r7, #0x4]
+ mov r1, #0x1
+ add r0, r6, #0x0
+ strb r1, [r7, #0x11]
+ add r0, #0x22
+ ldrb r0, [r0, #0x0]
+ strb r0, [r7, #0x14]
+ strb r1, [r7, #0x13]
+ ldrh r0, [r6, #0x26]
+ strh r0, [r7, #0x18]
+ mov r0, #0x2
+ strb r0, [r7, #0x12]
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB28
+ str r0, [r7, #0x1c]
+ ldr r0, [r5, #0xc]
+ bl FUN_02079C70
+ str r0, [r7, #0x2c]
+ mov r0, #0x0
+ str r0, [r7, #0x28]
+ ldr r1, _02036274 ; =0x020F2A8C
+ add r0, r7, #0x0
+ bl FUN_0207B000
+ ldr r0, [r5, #0xc]
+ bl FUN_020238F4
+ add r1, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_0207C2A4
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ bl FUN_0203796C
+ mov r0, #0xb
+ mov r1, #0x4
+ bl FUN_02016998
+ ldrh r1, [r6, #0x24]
+ strh r1, [r0, #0x0]
+ mov r1, #0x0
+ strh r1, [r0, #0x2]
+ mov r1, #0x7f
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ sub r0, r1, #0x4
+ str r7, [r4, r0]
+ ldr r1, _02036270 ; =FUN_0203684C
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ b _0203625E
+_02035FD0:
+ mov r0, #0xb
+ mov r1, #0x30
+ bl FUN_02016998
+ add r7, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB1C
+ str r0, [r7, #0x0]
+ ldr r0, [r5, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [r7, #0x4]
+ mov r1, #0x1
+ add r0, r6, #0x0
+ strb r1, [r7, #0x11]
+ add r0, #0x22
+ ldrb r0, [r0, #0x0]
+ strb r0, [r7, #0x14]
+ strb r1, [r7, #0x13]
+ ldrh r0, [r6, #0x26]
+ strh r0, [r7, #0x18]
+ mov r0, #0x2
+ strb r0, [r7, #0x12]
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB28
+ str r0, [r7, #0x1c]
+ ldr r0, [r5, #0xc]
+ bl FUN_02079C70
+ str r0, [r7, #0x2c]
+ mov r0, #0x0
+ str r0, [r7, #0x28]
+ ldr r1, _02036274 ; =0x020F2A8C
+ add r0, r7, #0x0
+ bl FUN_0207B000
+ ldr r0, [r5, #0xc]
+ bl FUN_020238F4
+ add r1, r0, #0x0
+ add r0, r7, #0x0
+ bl FUN_0207C2A4
+ add r0, r5, #0x0
+ add r1, r7, #0x0
+ bl FUN_0203796C
+ mov r0, #0xb
+ mov r1, #0x4
+ bl FUN_02016998
+ mov r1, #0x0
+ strh r1, [r0, #0x0]
+ ldr r1, [r6, #0x34]
+ strh r1, [r0, #0x2]
+ mov r1, #0x7f
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ sub r0, r1, #0x4
+ str r7, [r4, r0]
+ ldr r1, _02036270 ; =FUN_0203684C
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ b _0203625E
+_02036056:
+ ldrh r0, [r6, #0x24]
+ bl FUN_0206EAB8
+ add r3, r0, #0x0
+ mov r0, #0xb
+ add r2, r6, #0x0
+ str r0, [sp, #0x0]
+ add r2, #0x22
+ ldrb r2, [r2, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x2
+ bl FUN_02037F2C
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ add r0, r6, #0x0
+ add r0, #0x20
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0xa
+ ldrh r0, [r6, #0x24]
+ bne _02036090
+ add r2, r6, #0x0
+ add r2, #0x22
+ ldrb r2, [r2, #0x0]
+ mov r1, #0x0
+ bl FUN_02036BC4
+ b _0203609C
+_02036090:
+ add r2, r6, #0x0
+ add r2, #0x22
+ ldrb r2, [r2, #0x0]
+ mov r1, #0x1
+ bl FUN_02036BC4
+_0203609C:
+ mov r1, #0x7f
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r1, _02036278 ; =FUN_02036BDC
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ b _0203625E
+_020360AC:
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB1C
+ add r1, r6, #0x0
+ add r1, #0x22
+ ldrb r1, [r1, #0x0]
+ bl FUN_0206B9B0
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ mov r2, #0xb
+ bl FUN_02037F90
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ add r2, r6, #0x0
+ add r2, #0x22
+ ldrh r0, [r6, #0x24]
+ ldrb r2, [r2, #0x0]
+ mov r1, #0x2
+ bl FUN_02036BC4
+ mov r1, #0x7f
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r1, _02036278 ; =FUN_02036BDC
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ b _0203625E
+_020360EA:
+ mov r0, #0xb
+ mov r1, #0x4
+ bl FUN_02016998
+ add r1, r6, #0x0
+ add r1, #0x22
+ ldrb r1, [r1, #0x0]
+ str r1, [r0, #0x0]
+ mov r1, #0x7f
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r0, [r5, #0xc]
+ bl FUN_0206F158
+ add r7, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_020238F4
+ ldr r1, _0203627C ; =0x020F2A90
+ add r0, r7, #0x0
+ mov r2, #0xb
+ bl FUN_0206EFEC
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ add r3, r5, #0x0
+ str r0, [r4, r1]
+ add r3, #0x94
+ ldr r0, [r4, r1]
+ ldr r1, [r5, #0xc]
+ ldr r3, [r3, #0x0]
+ mov r2, #0x1
+ bl FUN_0206E314
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ add r0, r5, #0x0
+ bl FUN_0203781C
+ ldr r1, _02036280 ; =FUN_020362E4
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ b _0203625E
+_02036144:
+ mov r0, #0xb
+ mov r1, #0xc
+ bl FUN_02016998
+ ldrh r1, [r6, #0x24]
+ strh r1, [r0, #0x2]
+ mov r1, #0x3
+ strb r1, [r0, #0x1]
+ add r1, r6, #0x0
+ add r1, #0x22
+ ldrb r1, [r1, #0x0]
+ strb r1, [r0, #0x0]
+ ldrh r1, [r6, #0x38]
+ strh r1, [r0, #0x4]
+ ldr r1, [r6, #0x3c]
+ str r1, [r0, #0x8]
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ mov r0, #0x6
+ strh r0, [r4, #0x2a]
+ b _0203625E
+_02036170:
+ mov r0, #0xb
+ mov r1, #0xc
+ bl FUN_02016998
+ add r7, r0, #0x0
+ ldr r0, [r5, #0x1c]
+ ldr r0, [r0, #0x0]
+ bl FUN_02034A04
+ strh r0, [r7, #0x2]
+ mov r0, #0x0
+ strb r0, [r7, #0x1]
+ add r0, r6, #0x0
+ add r0, #0x22
+ ldrb r0, [r0, #0x0]
+ strb r0, [r7, #0x0]
+ ldrh r0, [r6, #0x38]
+ strh r0, [r7, #0x4]
+ ldr r0, [r6, #0x3c]
+ str r0, [r7, #0x8]
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ str r7, [r4, r0]
+ mov r0, #0x6
+ strh r0, [r4, #0x2a]
+ b _0203625E
+_020361A4:
+ sub r0, #0xb
+ add r1, sp, #0x4
+ strh r0, [r1, #0x6]
+ add r0, r6, #0x0
+ add r0, #0x22
+ ldrb r0, [r0, #0x0]
+ strh r0, [r1, #0x4]
+ str r7, [sp, #0x4]
+ ldrh r1, [r1, #0x6]
+ mov r0, #0x0
+ bl FUN_02063948
+ mov r1, #0x7a
+ lsl r1, r1, #0x2
+ add r2, r0, #0x0
+ add r0, sp, #0x4
+ add r1, r4, r1
+ blx r2
+ b _0203625E
+_020361CA:
+ mov r1, #0x73
+ lsl r1, r1, #0x2
+ add r0, r5, #0x0
+ add r1, r4, r1
+ bl FUN_02037844
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r1, _02036280 ; =FUN_020362E4
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ b _0203625E
+_020361E6:
+ add r0, r6, #0x0
+ add r0, #0x20
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x5
+ beq _02036200
+ cmp r0, #0x6
+ beq _02036200
+ cmp r0, #0x7
+ beq _02036200
+ cmp r0, #0x10
+ beq _02036200
+ cmp r0, #0x8
+ bne _02036234
+_02036200:
+ mov r1, #0x73
+ lsl r1, r1, #0x2
+ add r0, r5, #0x0
+ add r1, r4, r1
+ bl FUN_02037844
+ mov r2, #0x7e
+ lsl r2, r2, #0x2
+ str r0, [r4, r2]
+ add r0, r6, #0x0
+ add r0, #0x22
+ ldrb r1, [r0, #0x0]
+ ldr r0, [r4, r2]
+ cmp r1, #0x6
+ blo _02036226
+ mov r1, #0x0
+ bl FUN_0206E358
+ b _0203622A
+_02036226:
+ bl FUN_0206E358
+_0203622A:
+ ldr r1, _02036280 ; =FUN_020362E4
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ b _0203625E
+_02036234:
+ cmp r0, #0x9
+ bne _02036254
+ mov r1, #0x73
+ lsl r1, r1, #0x2
+ add r0, r5, #0x0
+ add r1, r4, r1
+ bl FUN_02037844
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r1, _02036280 ; =FUN_020362E4
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ b _0203625E
+_02036254:
+ add r0, r5, #0x0
+ bl FUN_0204649C
+ mov r0, #0xc
+ strh r0, [r4, #0x2a]
+_0203625E:
+ add r0, r6, #0x0
+ bl FUN_02016A18
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+ nop
+_0203626C: .word 0x020F2A9C
+_02036270: .word FUN_0203684C
+_02036274: .word 0x020F2A8C
+_02036278: .word FUN_02036BDC
+_0203627C: .word 0x020F2A90
+_02036280: .word FUN_020362E4
+
+ thumb_func_start FUN_02036284
+FUN_02036284: ; 0x02036284
+ push {r4, lr}
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ mov r0, #0x0
+ bl MOD05_021D7CA4
+ mov r0, #0x72
+ ldr r1, _020362A4 ; =FUN_020362A8
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ mov r0, #0x2
+ strh r0, [r4, #0x2a]
+ mov r0, #0x1
+ pop {r4, pc}
+ nop
+_020362A4: .word FUN_020362A8
+
+ thumb_func_start FUN_020362A8
+FUN_020362A8: ; 0x020362A8
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ mov r1, #0x73
+ add r4, r0, #0x0
+ lsl r1, r1, #0x2
+ add r0, r5, #0x0
+ add r1, r4, r1
+ bl FUN_02037844
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ mov r1, #0x0
+ bl FUN_0206E358
+ mov r0, #0x72
+ ldr r1, _020362E0 ; =FUN_020362E4
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_020362E0: .word FUN_020362E4
+
+ thumb_func_start FUN_020362E4
+FUN_020362E4: ; 0x020362E4
+ push {r3-r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ mov r0, #0xb
+ bl FUN_0206E2F0
+ str r0, [sp, #0x8]
+ bl FUN_0206E308
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ add r2, r0, #0x0
+ ldr r0, [sp, #0x8]
+ ldr r1, [r4, r1]
+ bl memcpy
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ ldr r0, [sp, #0x8]
+ bl FUN_0206E384
+ cmp r0, #0x5
+ bls _02036328
+ b _020364EE
+_02036328:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02036334: ; jump table (using 16-bit offset)
+ .short _02036340 - _02036334 - 2; case 0
+ .short _0203637A - _02036334 - 2; case 1
+ .short _0203638A - _02036334 - 2; case 2
+ .short _020364EE - _02036334 - 2; case 3
+ .short _020363F6 - _02036334 - 2; case 4
+ .short _020364EE - _02036334 - 2; case 5
+_02036340:
+ ldr r0, [sp, #0x8]
+ bl FUN_0206E37C
+ add r1, sp, #0x10
+ strh r0, [r1, #0x4]
+ ldr r0, [sp, #0x8]
+ bl FUN_0206E38C
+ add r1, sp, #0x10
+ strb r0, [r1, #0x6]
+ str r5, [sp, #0x10]
+ ldrh r0, [r1, #0x4]
+ mov r1, #0x6
+ mov r2, #0xb
+ bl FUN_0206E7B8
+ add r1, r0, #0x0
+ lsl r1, r1, #0x10
+ mov r0, #0x0
+ lsr r1, r1, #0x10
+ bl FUN_0205CE48
+ mov r1, #0x73
+ lsl r1, r1, #0x2
+ add r2, r0, #0x0
+ add r0, sp, #0x10
+ add r1, r4, r1
+ blx r2
+ b _020364F8
+_0203637A:
+ ldr r0, [sp, #0x8]
+ bl FUN_0206E37C
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0203695C
+ b _020364F8
+_0203638A:
+ mov r0, #0xb
+ mov r1, #0x40
+ bl FUN_02016998
+ mov r1, #0x0
+ mov r2, #0x40
+ add r5, r0, #0x0
+ bl memset
+ ldr r0, [r6, #0xc]
+ bl FUN_0206BB1C
+ str r0, [r5, #0x0]
+ ldr r0, [r6, #0xc]
+ bl FUN_0206F158
+ str r0, [r5, #0x4]
+ ldr r0, [r6, #0xc]
+ bl FUN_02025838
+ str r0, [r5, #0x8]
+ ldr r0, [r6, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [r5, #0xc]
+ mov r0, #0x7a
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ str r0, [r5, #0x18]
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r0, #0x21
+ strb r1, [r0, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x9
+ add r0, #0x20
+ strb r1, [r0, #0x0]
+ ldr r0, [sp, #0x8]
+ bl FUN_0206E37C
+ strh r0, [r5, #0x24]
+ ldr r1, _02036504 ; =0x020F96DC
+ add r0, r6, #0x0
+ add r2, r5, #0x0
+ bl FUN_020373D4
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ str r5, [r4, r0]
+ ldr r1, _02036508 ; =FUN_02035E50
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ b _020364F8
+_020363F6:
+ ldr r0, [r6, #0xc]
+ bl FUN_0206BB1C
+ str r0, [sp, #0x4]
+ mov r0, #0x7f
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ ldr r7, [r0, #0x0]
+ ldr r0, [sp, #0x8]
+ bl FUN_0206E37C
+ add r5, r0, #0x0
+ ldr r0, [sp, #0x4]
+ add r1, r7, #0x0
+ bl FUN_0206B9B0
+ str r0, [sp, #0xc]
+ mov r0, #0x7f
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ add r0, r5, #0x0
+ bl FUN_0206EA98
+ cmp r0, #0x1
+ bne _02036474
+ ldr r0, [sp, #0xc]
+ mov r1, #0x6
+ mov r2, #0x0
+ bl FUN_020671BC
+ cmp r0, #0x0
+ bne _02036474
+ add r0, r5, #0x0
+ bl FUN_0206EAB8
+ add r3, r0, #0x0
+ mov r0, #0xb
+ lsl r2, r7, #0x18
+ str r0, [sp, #0x0]
+ add r0, r6, #0x0
+ mov r1, #0x2
+ lsr r2, r2, #0x18
+ bl FUN_02037F2C
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ lsl r2, r7, #0x18
+ add r0, r5, #0x0
+ mov r1, #0x0
+ lsr r2, r2, #0x18
+ bl FUN_02036BC4
+ mov r1, #0x7f
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r1, _0203650C ; =FUN_02036BDC
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ b _020364F8
+_02036474:
+ mov r0, #0xb
+ mov r1, #0x40
+ bl FUN_02016998
+ mov r1, #0x0
+ mov r2, #0x40
+ add r5, r0, #0x0
+ bl memset
+ ldr r0, [sp, #0x4]
+ str r0, [r5, #0x0]
+ ldr r0, [r6, #0xc]
+ bl FUN_0206F158
+ str r0, [r5, #0x4]
+ ldr r0, [r6, #0xc]
+ bl FUN_02025838
+ str r0, [r5, #0x8]
+ ldr r0, [r6, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [r5, #0xc]
+ mov r0, #0x7a
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ str r0, [r5, #0x18]
+ add r0, r5, #0x0
+ mov r1, #0x0
+ add r0, #0x21
+ strb r1, [r0, #0x0]
+ ldr r0, [sp, #0x8]
+ bl FUN_0206E37C
+ strh r0, [r5, #0x24]
+ add r0, r5, #0x0
+ add r0, #0x22
+ strb r7, [r0, #0x0]
+ str r6, [r5, #0x1c]
+ ldrh r0, [r5, #0x24]
+ cmp r0, #0x0
+ bne _020364CC
+ mov r1, #0x0
+ b _020364CE
+_020364CC:
+ mov r1, #0xa
+_020364CE:
+ add r0, r5, #0x0
+ add r0, #0x20
+ strb r1, [r0, #0x0]
+ ldr r1, _02036504 ; =0x020F96DC
+ add r0, r6, #0x0
+ add r2, r5, #0x0
+ bl FUN_020373D4
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ str r5, [r4, r0]
+ ldr r1, _02036508 ; =FUN_02035E50
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ b _020364F8
+_020364EE:
+ add r0, r6, #0x0
+ bl FUN_0204649C
+ mov r0, #0xc
+ strh r0, [r4, #0x2a]
+_020364F8:
+ ldr r0, [sp, #0x8]
+ bl FUN_02016A18
+ mov r0, #0x0
+ add sp, #0x18
+ pop {r3-r7, pc}
+ .balign 4
+_02036504: .word 0x020F96DC
+_02036508: .word FUN_02035E50
+_0203650C: .word FUN_02036BDC
+
+ thumb_func_start FUN_02036510
+FUN_02036510: ; 0x02036510
+ push {r4, lr}
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ mov r0, #0x0
+ bl MOD05_021D7CA4
+ mov r0, #0x72
+ ldr r1, _02036530 ; =FUN_02036534
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ mov r0, #0x2
+ strh r0, [r4, #0x2a]
+ mov r0, #0x1
+ pop {r4, pc}
+ nop
+_02036530: .word FUN_02036534
+
+ thumb_func_start FUN_02036534
+FUN_02036534: ; 0x02036534
+ push {r3-r5, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ mov r0, #0xb
+ bl FUN_02065054
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ str r5, [sp, #0x0]
+ ldr r0, [r4, r1]
+ mov r2, #0x0
+ str r0, [sp, #0x4]
+ mov r0, #0x1
+ add r1, r0, #0x0
+ mov r3, #0xff
+ bl FUN_02064E90
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ add r0, r5, #0x0
+ bl FUN_02038680
+ mov r0, #0x72
+ ldr r1, _02036580 ; =FUN_02036584
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r5, pc}
+ .balign 4
+_02036580: .word FUN_02036584
+
+ thumb_func_start FUN_02036584
+FUN_02036584: ; 0x02036584
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ mov r1, #0x7e
+ add r4, r0, #0x0
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ add r0, r5, #0x0
+ bl FUN_02065314
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02065070
+ add r0, r5, #0x0
+ bl FUN_0204649C
+ mov r0, #0xc
+ strh r0, [r4, #0x2a]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020365BC
+FUN_020365BC: ; 0x020365BC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ bl FUN_02035718
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_0200CCF8
+ ldrb r1, [r4, #0x4]
+ ldr r0, [r4, #0x0]
+ bl FUN_0201AC68
+ add r0, r4, #0x0
+ bl FUN_02019178
+ add r0, r5, #0x0
+ bl FUN_020358A0
+ mov r0, #0x4
+ strh r0, [r4, #0x2a]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020365F0
+FUN_020365F0: ; 0x020365F0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02046528
+ ldr r0, [r0, #0xc]
+ bl FUN_0202280C
+ cmp r0, #0x0
+ beq _02036618
+ mov r2, #0x0
+ ldr r1, _0203663C ; =0x000007F2
+ add r0, r5, #0x0
+ add r3, r2, #0x0
+ bl FUN_02038CD8
+ b _02036636
+_02036618:
+ mov r0, #0x20
+ mov r1, #0x8
+ bl FUN_02016998
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r3, [r4, r1]
+ mov r2, #0x0
+ strh r2, [r3, #0x4]
+ ldr r1, _02036640 ; =0x000007D5
+ add r0, r5, #0x0
+ add r3, r3, #0x4
+ bl FUN_02038CD8
+_02036636:
+ mov r0, #0x5
+ strh r0, [r4, #0x2a]
+ pop {r3-r5, pc}
+ .balign 4
+_0203663C: .word 0x000007F2
+_02036640: .word 0x000007D5
+
+ thumb_func_start FUN_02036644
+FUN_02036644: ; 0x02036644
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r5, [r4, r0]
+ ldr r0, [r6, #0xc]
+ bl FUN_0202280C
+ cmp r0, #0x0
+ beq _0203666C
+ mov r0, #0x0
+ strh r0, [r4, #0x2a]
+ pop {r4-r6, pc}
+_0203666C:
+ ldrh r0, [r5, #0x4]
+ cmp r0, #0x0
+ bne _02036676
+ mov r0, #0x0
+ b _02036678
+_02036676:
+ mov r0, #0xf
+_02036678:
+ strh r0, [r4, #0x2a]
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02036684
+FUN_02036684: ; 0x02036684
+ push {r4, lr}
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ mov r0, #0x0
+ bl MOD05_021D7CA4
+ mov r0, #0x72
+ ldr r1, _020366A4 ; =FUN_020366A8
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ mov r0, #0x2
+ strh r0, [r4, #0x2a]
+ mov r0, #0x1
+ pop {r4, pc}
+ nop
+_020366A4: .word FUN_020366A8
+
+ thumb_func_start FUN_020366A8
+FUN_020366A8: ; 0x020366A8
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02037EF8
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r0, _020366D0 ; =FUN_020366D4
+ sub r1, #0x30
+ str r0, [r4, r1]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_020366D0: .word FUN_020366D4
+
+ thumb_func_start FUN_020366D4
+FUN_020366D4: ; 0x020366D4
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ add r0, r5, #0x0
+ bl FUN_0204649C
+ mov r0, #0xc
+ strh r0, [r4, #0x2a]
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02036700
+FUN_02036700: ; 0x02036700
+ push {r4, lr}
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ mov r0, #0x0
+ bl MOD05_021D7CA4
+ mov r0, #0x72
+ ldr r1, _02036720 ; =FUN_02036724
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ mov r0, #0x2
+ strh r0, [r4, #0x2a]
+ mov r0, #0x1
+ pop {r4, pc}
+ nop
+_02036720: .word FUN_02036724
+
+ thumb_func_start FUN_02036724
+FUN_02036724: ; 0x02036724
+ push {r3-r5, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r2, [r5, #0xc]
+ mov r0, #0x2
+ mov r1, #0x0
+ mov r3, #0xb
+ bl FUN_02085338
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ add r0, sp, #0x0
+ mov r1, #0x4
+ bl FUN_0201373C
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ add r1, sp, #0x0
+ bl FUN_020853BC
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ add r0, r5, #0x0
+ bl FUN_02037E80
+ mov r0, #0x72
+ ldr r1, _02036778 ; =FUN_0203677C
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r5, pc}
+ .balign 4
+_02036778: .word FUN_0203677C
+
+ thumb_func_start FUN_0203677C
+FUN_0203677C: ; 0x0203677C
+ push {r3-r5, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r5, r0, #0x0
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ bl FUN_020853E4
+ cmp r0, #0x0
+ bne _020367C6
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ add r1, sp, #0x0
+ bl FUN_020853FC
+ bl FUN_0202EDF8
+ cmp r0, #0x0
+ beq _020367C0
+ add r0, sp, #0x0
+ bl FUN_02052DE8
+ ldr r0, [r4, #0x78]
+ add r1, sp, #0x0
+ bl FUN_02052CD8
+_020367C0:
+ mov r0, #0x8
+ strh r0, [r5, #0x2a]
+ b _020367CA
+_020367C6:
+ mov r0, #0xc
+ strh r0, [r5, #0x2a]
+_020367CA:
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r0, [r5, r0]
+ bl FUN_020853A8
+ add r0, r4, #0x0
+ bl FUN_0204649C
+ ldr r0, [r4, #0x7c]
+ bl FUN_02052F74
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020367E8
+FUN_020367E8: ; 0x020367E8
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ bl FUN_02035718
+ add r0, r4, #0x0
+ mov r1, #0x1
+ bl FUN_0200CCF8
+ ldrb r1, [r4, #0x4]
+ ldr r0, [r4, #0x0]
+ bl FUN_0201AC68
+ add r0, r4, #0x0
+ bl FUN_02019178
+ add r0, r5, #0x0
+ bl FUN_020358A0
+ ldr r0, [r6, #0xc]
+ bl FUN_020462AC
+ bl FUN_0205F214
+ cmp r0, #0x1
+ bne _02036834
+ ldr r1, _02036848 ; =0x00002275
+ add r0, r5, #0x0
+ mov r2, #0x0
+ bl FUN_02038D10
+ b _0203683E
+_02036834:
+ add r0, r5, #0x0
+ mov r1, #0x4
+ mov r2, #0x0
+ bl FUN_02038D10
+_0203683E:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+_02036848: .word 0x00002275
+
+ thumb_func_start FUN_0203684C
+FUN_0203684C: ; 0x0203684C
+ push {r3-r7, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ mov r0, #0xb
+ mov r1, #0x30
+ bl FUN_02016998
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ mov r2, #0x30
+ add r7, r0, #0x0
+ bl memcpy
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ ldrb r0, [r7, #0x12]
+ cmp r0, #0x2
+ bne _0203692E
+ mov r0, #0xb
+ mov r1, #0x40
+ bl FUN_02016998
+ mov r1, #0x7f
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ mov r2, #0x40
+ str r1, [sp, #0x0]
+ mov r1, #0x0
+ add r5, r0, #0x0
+ bl memset
+ ldr r0, [r6, #0xc]
+ bl FUN_0206BB1C
+ str r0, [r5, #0x0]
+ ldr r0, [r6, #0xc]
+ bl FUN_0206F158
+ str r0, [r5, #0x4]
+ ldr r0, [r6, #0xc]
+ bl FUN_02025838
+ str r0, [r5, #0x8]
+ ldr r0, [r6, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [r5, #0xc]
+ mov r0, #0x7a
+ lsl r0, r0, #0x2
+ add r0, r4, r0
+ add r1, r5, #0x0
+ str r0, [r5, #0x18]
+ mov r0, #0x0
+ add r1, #0x21
+ strb r0, [r1, #0x0]
+ ldr r1, [sp, #0x0]
+ str r6, [r5, #0x1c]
+ ldrh r1, [r1, #0x0]
+ cmp r1, #0x0
+ beq _020368E2
+ add r1, r5, #0x0
+ mov r2, #0x7
+ add r1, #0x20
+ strb r2, [r1, #0x0]
+ b _020368EE
+_020368E2:
+ add r0, r5, #0x0
+ mov r1, #0x8
+ add r0, #0x20
+ strb r1, [r0, #0x0]
+ ldr r0, [sp, #0x0]
+ ldrh r0, [r0, #0x2]
+_020368EE:
+ str r0, [r5, #0x34]
+ ldr r0, [sp, #0x0]
+ add r2, r5, #0x0
+ ldrh r0, [r0, #0x0]
+ strh r0, [r5, #0x24]
+ add r0, r5, #0x0
+ ldrb r1, [r7, #0x14]
+ add r0, #0x22
+ strb r1, [r0, #0x0]
+ ldrh r0, [r7, #0x18]
+ strh r0, [r5, #0x26]
+ add r0, r5, #0x0
+ ldrb r1, [r7, #0x16]
+ add r0, #0x28
+ strb r1, [r0, #0x0]
+ ldr r1, _02036954 ; =0x020F96DC
+ add r0, r6, #0x0
+ bl FUN_020373D4
+ mov r0, #0x7f
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ str r5, [r4, r0]
+ ldr r1, _02036958 ; =FUN_02035E50
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ b _0203694A
+_0203692E:
+ mov r1, #0x7a
+ lsl r1, r1, #0x2
+ ldrb r2, [r7, #0x14]
+ add r0, r6, #0x0
+ add r1, r4, r1
+ bl FUN_020379C8
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r1, _02036958 ; =FUN_02035E50
+ add r0, r4, #0x0
+ bl FUN_02035D04
+_0203694A:
+ add r0, r7, #0x0
+ bl FUN_02016A18
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_02036954: .word 0x020F96DC
+_02036958: .word FUN_02035E50
+
+ thumb_func_start FUN_0203695C
+FUN_0203695C: ; 0x0203695C
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ bl FUN_02046528
+ str r0, [sp, #0x4]
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r6, r0, #0x0
+ mov r0, #0xb
+ bl FUN_020851B8
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r6, r1]
+ ldr r0, [sp, #0x4]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206F158
+ str r0, [sp, #0x0]
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r0, [r6, r0]
+ add r1, r4, #0x0
+ mov r2, #0x1
+ bl FUN_020851DC
+ mov r5, #0x0
+ add r4, r5, #0x0
+_0203699A:
+ add r0, r4, #0x0
+ bl FUN_0206EB1C
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x0]
+ add r1, r7, #0x0
+ mov r2, #0x1
+ mov r3, #0xb
+ bl FUN_0206EE50
+ cmp r0, #0x1
+ bne _020369C6
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r0, [r6, r0]
+ add r1, r7, #0x0
+ mov r2, #0x0
+ bl FUN_020851DC
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+_020369C6:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0x40
+ blo _0203699A
+ ldr r0, [sp, #0x4]
+ add r3, sp, #0x8
+ add r0, #0x94
+ ldr r0, [r0, #0x0]
+ mov r1, #0x4
+ add r2, sp, #0x8
+ add r3, #0x1
+ bl FUN_0206F17C
+ mov r0, #0x7e
+ add r2, sp, #0x8
+ lsl r0, r0, #0x2
+ ldrb r1, [r2, #0x1]
+ add r3, r5, #0x3
+ lsl r3, r3, #0x18
+ ldrb r2, [r2, #0x0]
+ ldr r0, [r6, r0]
+ lsr r3, r3, #0x18
+ bl FUN_020851F8
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ ldr r0, [sp, #0x4]
+ ldr r1, [r6, r1]
+ bl FUN_0203791C
+ ldr r1, _02036A10 ; =FUN_02036A14
+ add r0, r6, #0x0
+ bl FUN_02035D04
+ add sp, #0xc
+ pop {r4-r7, pc}
+ .balign 4
+_02036A10: .word FUN_02036A14
+
+ thumb_func_start FUN_02036A14
+FUN_02036A14: ; 0x02036A14
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ add r1, sp, #0x0
+ ldr r0, [r4, r0]
+ add r1, #0x1
+ add r2, sp, #0x0
+ bl FUN_0208524C
+ add r0, r5, #0x0
+ add r3, sp, #0x0
+ add r0, #0x94
+ ldrb r2, [r3, #0x0]
+ ldrb r3, [r3, #0x1]
+ ldr r0, [r0, #0x0]
+ mov r1, #0x4
+ bl FUN_0206F190
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ mov r0, #0xb
+ bl FUN_02016A8C
+ mov r1, #0x73
+ lsl r1, r1, #0x2
+ add r0, r5, #0x0
+ add r1, r4, r1
+ bl FUN_02037844
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r1, _02036A74 ; =FUN_020362E4
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ nop
+_02036A74: .word FUN_020362E4
+
+ thumb_func_start FUN_02036A78
+FUN_02036A78: ; 0x02036A78
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ mov r1, #0x7e
+ add r4, r0, #0x0
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ mov r0, #0xb
+ bl FUN_02016A8C
+ mov r1, #0x73
+ lsl r1, r1, #0x2
+ add r0, r5, #0x0
+ add r1, r4, r1
+ bl FUN_02037844
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r1, _02036AB4 ; =FUN_020362E4
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_02036AB4: .word FUN_020362E4
+
+ thumb_func_start FUN_02036AB8
+FUN_02036AB8: ; 0x02036AB8
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ mov r0, #0x7f
+ lsl r0, r0, #0x2
+ ldr r1, [r4, r0]
+ mov r0, #0xb
+ ldr r7, [r1, #0x0]
+ bl FUN_02016A8C
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r5, [r4, r0]
+ ldr r0, [r5, #0x10]
+ cmp r0, #0x0
+ bne _02036B0E
+ mov r0, #0xb
+ add r1, r5, #0x0
+ bl FUN_02016A8C
+ mov r1, #0x7a
+ lsl r1, r1, #0x2
+ lsl r2, r7, #0x18
+ add r0, r6, #0x0
+ add r1, r4, r1
+ lsr r2, r2, #0x18
+ bl FUN_020379C8
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r1, _02036B88 ; =FUN_02035E50
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ b _02036B82
+_02036B0E:
+ ldr r0, [r6, #0xc]
+ bl FUN_0206BB1C
+ add r1, r7, #0x0
+ bl FUN_0206B9B0
+ add r2, r0, #0x0
+ ldr r0, [r5, #0x14]
+ add r1, r6, #0x0
+ lsl r0, r0, #0x5
+ add r0, #0x10
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x18]
+ lsl r0, r0, #0x5
+ add r0, #0x10
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #0x4]
+ ldr r3, [r5, #0x1c]
+ mov r0, #0xb
+ lsl r3, r3, #0x10
+ lsr r3, r3, #0x10
+ bl FUN_02063888
+ ldr r1, [r5, #0x1c]
+ add r7, r0, #0x0
+ lsl r1, r1, #0x10
+ mov r0, #0x1
+ lsr r1, r1, #0x10
+ mov r2, #0xb
+ bl FUN_0202914C
+ add r1, r0, #0x0
+ add r0, r6, #0x0
+ add r0, #0x98
+ ldr r0, [r0, #0x0]
+ mov r2, #0x1
+ bl FUN_02028AD4
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ ldr r1, [r4, r1]
+ mov r0, #0xb
+ bl FUN_02016A8C
+ add r0, r6, #0x0
+ bl FUN_0204649C
+ mov r0, #0x72
+ ldr r1, _02036B8C ; =FUN_020638BC
+ lsl r0, r0, #0x2
+ str r1, [r4, r0]
+ add r0, #0x30
+ str r7, [r4, r0]
+ mov r0, #0xa
+ strh r0, [r4, #0x2a]
+_02036B82:
+ mov r0, #0x0
+ add sp, #0x8
+ pop {r3-r7, pc}
+ .balign 4
+_02036B88: .word FUN_02035E50
+_02036B8C: .word FUN_020638BC
+
+ thumb_func_start FUN_02036B90
+FUN_02036B90: ; 0x02036B90
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ mov r1, #0x73
+ add r4, r0, #0x0
+ lsl r1, r1, #0x2
+ add r0, r5, #0x0
+ add r1, r4, r1
+ bl FUN_02037844
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r1, _02036BC0 ; =FUN_020362E4
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_02036BC0: .word FUN_020362E4
+
+ thumb_func_start FUN_02036BC4
+FUN_02036BC4: ; 0x02036BC4
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ mov r0, #0xb
+ mov r1, #0x4
+ add r6, r2, #0x0
+ bl FUN_02016998
+ strh r5, [r0, #0x0]
+ strb r6, [r0, #0x2]
+ strb r4, [r0, #0x3]
+ pop {r4-r6, pc}
+
+ thumb_func_start FUN_02036BDC
+FUN_02036BDC: ; 0x02036BDC
+ push {r4-r6, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ mov r0, #0x7f
+ lsl r0, r0, #0x2
+ ldr r6, [r4, r0]
+ ldrb r1, [r6, #0x3]
+ cmp r1, #0x3
+ bhi _02036CD4
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02036C06: ; jump table (using 16-bit offset)
+ .short _02036C58 - _02036C06 - 2; case 0
+ .short _02036C98 - _02036C06 - 2; case 1
+ .short _02036C32 - _02036C06 - 2; case 2
+ .short _02036C0E - _02036C06 - 2; case 3
+_02036C0E:
+ sub r0, r0, #0x4
+ ldr r0, [r4, r0]
+ bl FUN_0208562C
+ mov r1, #0x73
+ lsl r1, r1, #0x2
+ add r0, r5, #0x0
+ add r1, r4, r1
+ bl FUN_02037844
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r1, _02036CE4 ; =FUN_020362E4
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ b _02036CD4
+_02036C32:
+ sub r0, r0, #0x4
+ ldr r0, [r4, r0]
+ bl FUN_0208562C
+ mov r1, #0x7a
+ lsl r1, r1, #0x2
+ ldrb r2, [r6, #0x2]
+ add r0, r5, #0x0
+ add r1, r4, r1
+ bl FUN_020379C8
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r1, _02036CE8 ; =FUN_02035E50
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ b _02036CD4
+_02036C58:
+ sub r0, r0, #0x4
+ ldr r0, [r4, r0]
+ bl FUN_020855E4
+ cmp r0, #0x1
+ bne _02036C70
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r2, #0xc
+ bl FUN_02036CEC
+ b _02036CD4
+_02036C70:
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_0208562C
+ mov r1, #0x7a
+ lsl r1, r1, #0x2
+ ldrb r2, [r6, #0x2]
+ add r0, r5, #0x0
+ add r1, r4, r1
+ bl FUN_020379C8
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r1, _02036CE8 ; =FUN_02035E50
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ b _02036CD4
+_02036C98:
+ sub r0, r0, #0x4
+ ldr r0, [r4, r0]
+ bl FUN_020855E4
+ cmp r0, #0x1
+ bne _02036CB0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r2, #0xb
+ bl FUN_02036CEC
+ b _02036CD4
+_02036CB0:
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_0208562C
+ mov r1, #0x73
+ lsl r1, r1, #0x2
+ add r0, r5, #0x0
+ add r1, r4, r1
+ bl FUN_02037844
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r1, _02036CE4 ; =FUN_020362E4
+ add r0, r4, #0x0
+ bl FUN_02035D04
+_02036CD4:
+ mov r0, #0x7f
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ nop
+_02036CE4: .word FUN_020362E4
+_02036CE8: .word FUN_02035E50
+
+ thumb_func_start FUN_02036CEC
+FUN_02036CEC: ; 0x02036CEC
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ mov r0, #0x7f
+ add r6, r1, #0x0
+ str r2, [sp, #0x0]
+ lsl r0, r0, #0x2
+ ldr r7, [r6, r0]
+ mov r0, #0xb
+ mov r1, #0x40
+ bl FUN_02016998
+ mov r1, #0x0
+ mov r2, #0x40
+ add r4, r0, #0x0
+ bl memset
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB1C
+ str r0, [r4, #0x0]
+ ldr r0, [r5, #0xc]
+ bl FUN_0206F158
+ str r0, [r4, #0x4]
+ ldr r0, [r5, #0xc]
+ bl FUN_02025838
+ str r0, [r4, #0x8]
+ ldr r0, [r5, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [r4, #0xc]
+ mov r0, #0x7a
+ lsl r0, r0, #0x2
+ add r0, r6, r0
+ str r0, [r4, #0x18]
+ add r0, r4, #0x0
+ mov r1, #0x0
+ add r0, #0x21
+ strb r1, [r0, #0x0]
+ ldrh r0, [r7, #0x0]
+ strh r0, [r4, #0x24]
+ add r0, r4, #0x0
+ ldrb r1, [r7, #0x2]
+ add r0, #0x22
+ strb r1, [r0, #0x0]
+ add r1, r4, #0x0
+ ldr r0, [sp, #0x0]
+ add r1, #0x20
+ strb r0, [r1, #0x0]
+ str r5, [r4, #0x1c]
+ ldrb r1, [r7, #0x2]
+ ldr r0, [r4, #0x0]
+ bl FUN_0206B9B0
+ add r1, r0, #0x0
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r0, [r6, r0]
+ bl FUN_0208560C
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r0, [r6, r0]
+ bl FUN_0208562C
+ ldr r1, _02036D8C ; =0x020F96DC
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_020373D4
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ str r4, [r6, r0]
+ ldr r1, _02036D90 ; =FUN_02035E50
+ add r0, r6, #0x0
+ bl FUN_02035D04
+ pop {r3-r7, pc}
+ nop
+_02036D8C: .word 0x020F96DC
+_02036D90: .word FUN_02035E50
+
+ thumb_func_start FUN_02036D94
+FUN_02036D94: ; 0x02036D94
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02087E14
+ mov r1, #0x73
+ lsl r1, r1, #0x2
+ add r0, r5, #0x0
+ add r1, r4, r1
+ bl FUN_02037844
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r1, _02036DD0 ; =FUN_020362E4
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ nop
+_02036DD0: .word FUN_020362E4
+
+ thumb_func_start FUN_02036DD4
+FUN_02036DD4: ; 0x02036DD4
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ mov r1, #0x73
+ add r4, r0, #0x0
+ lsl r1, r1, #0x2
+ add r0, r5, #0x0
+ add r1, r4, r1
+ bl FUN_02037844
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r1, _02036E04 ; =FUN_020362E4
+ add r0, r4, #0x0
+ bl FUN_02035D04
+ mov r0, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_02036E04: .word FUN_020362E4
+
+ thumb_func_start FUN_02036E08
+FUN_02036E08: ; 0x02036E08
+ push {r3-r7, lr}
+ sub sp, #0x48
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r6, r0, #0x0
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r5, [r6, r0]
+ bl FUN_0200541C
+ mov r0, #0x3
+ mov r1, #0x49
+ lsl r2, r0, #0x10
+ bl FUN_0201681C
+ ldr r0, [r4, #0xc]
+ bl FUN_0206BB1C
+ ldrb r1, [r5, #0x0]
+ str r0, [sp, #0x20]
+ bl FUN_0206B9B0
+ str r0, [sp, #0x24]
+ ldrb r0, [r5, #0x1]
+ cmp r0, #0x0
+ ldr r0, [r4, #0xc]
+ bne _02036E9E
+ bl LoadPlayerDataAddress
+ str r0, [sp, #0x28]
+ ldr r0, [r4, #0xc]
+ bl FUN_02079C70
+ add r7, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_02024DA0
+ str r0, [sp, #0x2c]
+ ldr r0, [r4, #0xc]
+ bl FUN_0206F158
+ str r0, [sp, #0x30]
+ ldr r0, [r4, #0xc]
+ bl FUN_02029FC8
+ str r0, [sp, #0x34]
+ ldr r0, [r4, #0xc]
+ bl FUN_0204C1A8
+ ldr r1, [sp, #0x2c]
+ str r7, [sp, #0x0]
+ str r1, [sp, #0x4]
+ ldr r1, [sp, #0x30]
+ ldr r3, [sp, #0x28]
+ str r1, [sp, #0x8]
+ ldr r1, [sp, #0x34]
+ str r1, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x8]
+ ldr r1, [sp, #0x24]
+ str r0, [sp, #0x14]
+ mov r0, #0x1
+ str r0, [sp, #0x18]
+ mov r0, #0x49
+ str r0, [sp, #0x1c]
+ ldrh r2, [r5, #0x4]
+ ldr r0, [sp, #0x20]
+ bl FUN_0206C700
+ b _02036EF2
+_02036E9E:
+ bl LoadPlayerDataAddress
+ str r0, [sp, #0x38]
+ ldr r0, [r4, #0xc]
+ bl FUN_02079C70
+ add r7, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_02024DA0
+ str r0, [sp, #0x3c]
+ ldr r0, [r4, #0xc]
+ bl FUN_0206F158
+ str r0, [sp, #0x40]
+ ldr r0, [r4, #0xc]
+ bl FUN_02029FC8
+ str r0, [sp, #0x44]
+ ldr r0, [r4, #0xc]
+ bl FUN_0204C1A8
+ ldr r1, [sp, #0x3c]
+ str r7, [sp, #0x0]
+ str r1, [sp, #0x4]
+ ldr r1, [sp, #0x40]
+ ldr r3, [sp, #0x38]
+ str r1, [sp, #0x8]
+ ldr r1, [sp, #0x44]
+ str r1, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x8]
+ ldr r1, [sp, #0x24]
+ str r0, [sp, #0x14]
+ mov r0, #0x0
+ str r0, [sp, #0x18]
+ mov r0, #0x49
+ str r0, [sp, #0x1c]
+ ldrh r2, [r5, #0x4]
+ ldr r0, [sp, #0x20]
+ bl FUN_0206C700
+_02036EF2:
+ add r4, r0, #0x0
+ mov r0, #0xb
+ mov r1, #0x4
+ bl FUN_02016998
+ ldrb r1, [r5, #0x0]
+ str r1, [r0, #0x0]
+ mov r1, #0x7f
+ lsl r1, r1, #0x2
+ str r0, [r6, r1]
+ sub r0, r1, #0x4
+ ldr r0, [r6, r0]
+ bl FUN_02016A18
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ str r4, [r6, r0]
+ mov r0, #0x7
+ strh r0, [r6, #0x2a]
+ add sp, #0x48
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02036F1C
+FUN_02036F1C: ; 0x02036F1C
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_0206C91C
+ cmp r0, #0x1
+ bne _02036F98
+ mov r0, #0x7e
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_0206C92C
+ mov r0, #0x49
+ bl FUN_020168D0
+ ldr r0, _02036F9C ; =0x00000475
+ mov r1, #0x0
+ bl FUN_02005350
+ mov r0, #0x0
+ bl FUN_0200415C
+ ldr r1, [r5, #0x1c]
+ add r0, r5, #0x0
+ ldr r1, [r1, #0x0]
+ bl FUN_0204ADBC
+ mov r1, #0x73
+ lsl r1, r1, #0x2
+ add r0, r5, #0x0
+ add r1, r4, r1
+ bl FUN_02037844
+ mov r1, #0x7e
+ lsl r1, r1, #0x2
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ add r1, r1, #0x4
+ ldr r1, [r4, r1]
+ ldr r1, [r1, #0x0]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_0206E358
+ mov r0, #0x7f
+ lsl r0, r0, #0x2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ ldr r1, _02036FA0 ; =FUN_020362E4
+ add r0, r4, #0x0
+ bl FUN_02035D04
+_02036F98:
+ pop {r3-r5, pc}
+ nop
+_02036F9C: .word 0x00000475
+_02036FA0: .word FUN_020362E4
+
+ thumb_func_start FUN_02036FA4
+FUN_02036FA4: ; 0x02036FA4
+ push {r3-r7, lr}
+ add r6, r0, #0x0
+ ldr r0, [r6, #0x38]
+ add r4, r1, #0x0
+ add r5, r2, #0x0
+ bl FUN_020552F8
+ add r7, r0, #0x0
+ ldr r0, [r6, #0x38]
+ bl FUN_02055320
+ str r0, [r4, #0x0]
+ ldr r0, [r6, #0x38]
+ bl FUN_0205532C
+ str r0, [r5, #0x0]
+ cmp r7, #0x3
+ bhi _02036FFA
+ add r0, r7, r7
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02036FD4: ; jump table (using 16-bit offset)
+ .short _02036FDC - _02036FD4 - 2; case 0
+ .short _02036FE4 - _02036FD4 - 2; case 1
+ .short _02036FEC - _02036FD4 - 2; case 2
+ .short _02036FF4 - _02036FD4 - 2; case 3
+_02036FDC:
+ ldr r0, [r5, #0x0]
+ sub r0, r0, #0x1
+ str r0, [r5, #0x0]
+ b _02036FFA
+_02036FE4:
+ ldr r0, [r5, #0x0]
+ add r0, r0, #0x1
+ str r0, [r5, #0x0]
+ b _02036FFA
+_02036FEC:
+ ldr r0, [r4, #0x0]
+ sub r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02036FFA
+_02036FF4:
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+_02036FFA:
+ add r0, r7, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02037000
+FUN_02037000: ; 0x02037000
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ bl FUN_020553A0
+ bl FUN_02058BE4
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02058BE4
+ cmp r4, r0
+ bne _0203701C
+ mov r0, #0x1
+ b _0203701E
+_0203701C:
+ mov r0, #0x0
+_0203701E:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02037024
+FUN_02037024: ; 0x02037024
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r6, r1, #0x0
+ add r1, sp, #0x4
+ add r2, sp, #0x0
+ add r5, r0, #0x0
+ bl FUN_02036FA4
+ add r4, r0, #0x0
+ ldr r1, [sp, #0x4]
+ ldr r2, [sp, #0x0]
+ add r0, r5, #0x0
+ bl FUN_0204A6E0
+ bl FUN_020547A4
+ cmp r0, #0x1
+ bne _0203707E
+ cmp r4, #0x3
+ bhi _0203707E
+ add r0, r4, r4
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02037058: ; jump table (using 16-bit offset)
+ .short _02037060 - _02037058 - 2; case 0
+ .short _02037068 - _02037058 - 2; case 1
+ .short _02037070 - _02037058 - 2; case 2
+ .short _02037078 - _02037058 - 2; case 3
+_02037060:
+ ldr r0, [sp, #0x0]
+ sub r0, r0, #0x1
+ str r0, [sp, #0x0]
+ b _0203707E
+_02037068:
+ ldr r0, [sp, #0x0]
+ add r0, r0, #0x1
+ str r0, [sp, #0x0]
+ b _0203707E
+_02037070:
+ ldr r0, [sp, #0x4]
+ sub r0, r0, #0x1
+ str r0, [sp, #0x4]
+ b _0203707E
+_02037078:
+ ldr r0, [sp, #0x4]
+ add r0, r0, #0x1
+ str r0, [sp, #0x4]
+_0203707E:
+ ldr r0, [r5, #0x34]
+ ldr r1, [sp, #0x4]
+ ldr r2, [sp, #0x0]
+ bl FUN_02058D74
+ str r0, [r6, #0x0]
+ add sp, #0x8
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02037090
+FUN_02037090: ; 0x02037090
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ bl FUN_02037024
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _020370B8
+ bl FUN_020588D4
+ cmp r0, #0x1
+ bne _020370B8
+ ldr r0, [r5, #0x38]
+ ldr r1, [r4, #0x0]
+ bl FUN_02037000
+ cmp r0, #0x1
+ bne _020370B8
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_020370B8:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020370BC
+FUN_020370BC: ; 0x020370BC
+ push {r3-r7, lr}
+ sub sp, #0x10
+ str r1, [sp, #0x0]
+ str r2, [sp, #0x4]
+ add r1, sp, #0xc
+ add r2, sp, #0x8
+ add r6, r0, #0x0
+ bl FUN_02036FA4
+ ldr r0, [sp, #0x4]
+ mov r7, #0x0
+ cmp r0, #0x0
+ ble _02037130
+ ldr r4, [sp, #0x0]
+ add r5, r4, #0x0
+_020370DA:
+ ldr r1, [sp, #0xc]
+ ldr r0, [r4, #0x4]
+ cmp r1, r0
+ bne _02037124
+ ldr r1, [sp, #0x8]
+ ldr r0, [r4, #0x8]
+ cmp r1, r0
+ bne _02037124
+ ldrh r0, [r4, #0x2]
+ cmp r0, #0x2
+ bne _0203710A
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_0203713C
+ cmp r0, #0x1
+ bne _02037124
+ mov r0, #0x14
+ add r1, r7, #0x0
+ mul r1, r0
+ ldr r0, [sp, #0x0]
+ add sp, #0x10
+ ldrh r0, [r0, r1]
+ pop {r3-r7, pc}
+_0203710A:
+ add r0, r6, #0x0
+ add r1, r5, #0x0
+ bl FUN_02037168
+ cmp r0, #0x1
+ bne _02037124
+ mov r0, #0x14
+ add r1, r7, #0x0
+ mul r1, r0
+ ldr r0, [sp, #0x0]
+ add sp, #0x10
+ ldrh r0, [r0, r1]
+ pop {r3-r7, pc}
+_02037124:
+ ldr r0, [sp, #0x4]
+ add r7, r7, #0x1
+ add r4, #0x14
+ add r5, #0x14
+ cmp r7, r0
+ blt _020370DA
+_02037130:
+ ldr r0, _02037138 ; =0x0000FFFF
+ add sp, #0x10
+ pop {r3-r7, pc}
+ nop
+_02037138: .word 0x0000FFFF
+
+ thumb_func_start FUN_0203713C
+FUN_0203713C: ; 0x0203713C
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldrh r0, [r1, #0x2]
+ cmp r0, #0x2
+ beq _0203714A
+ mov r0, #0x0
+ pop {r4, pc}
+_0203714A:
+ ldrh r0, [r1, #0x0]
+ bl FUN_02039694
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_02039528
+ cmp r0, #0x1
+ beq _02037160
+ mov r0, #0x1
+ b _02037162
+_02037160:
+ mov r0, #0x0
+_02037162:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ pop {r4, pc}
+
+ thumb_func_start FUN_02037168
+FUN_02037168: ; 0x02037168
+ push {r4, lr}
+ add r4, r1, #0x0
+ ldrh r1, [r4, #0x10]
+ cmp r1, #0x4
+ bne _02037176
+ mov r0, #0x1
+ pop {r4, pc}
+_02037176:
+ ldr r0, [r0, #0x38]
+ bl FUN_020552F8
+ cmp r0, #0x3
+ bhi _020371CC
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0203718C: ; jump table (using 16-bit offset)
+ .short _02037194 - _0203718C - 2; case 0
+ .short _020371A2 - _0203718C - 2; case 1
+ .short _020371B0 - _0203718C - 2; case 2
+ .short _020371BE - _0203718C - 2; case 3
+_02037194:
+ ldrh r0, [r4, #0x10]
+ cmp r0, #0x0
+ beq _0203719E
+ cmp r0, #0x6
+ bne _020371CC
+_0203719E:
+ mov r0, #0x1
+ pop {r4, pc}
+_020371A2:
+ ldrh r0, [r4, #0x10]
+ cmp r0, #0x3
+ beq _020371AC
+ cmp r0, #0x6
+ bne _020371CC
+_020371AC:
+ mov r0, #0x1
+ pop {r4, pc}
+_020371B0:
+ ldrh r0, [r4, #0x10]
+ cmp r0, #0x2
+ beq _020371BA
+ cmp r0, #0x5
+ bne _020371CC
+_020371BA:
+ mov r0, #0x1
+ pop {r4, pc}
+_020371BE:
+ ldrh r0, [r4, #0x10]
+ cmp r0, #0x1
+ beq _020371C8
+ cmp r0, #0x5
+ bne _020371CC
+_020371C8:
+ mov r0, #0x1
+ pop {r4, pc}
+_020371CC:
+ mov r0, #0x0
+ pop {r4, pc}
+
+ thumb_func_start FUN_020371D0
+FUN_020371D0: ; 0x020371D0
+ push {r4-r6, lr}
+ sub sp, #0x8
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x38]
+ add r6, r1, #0x0
+ add r4, r2, #0x0
+ bl FUN_020552F8
+ cmp r0, #0x0
+ beq _020371EA
+ add sp, #0x8
+ ldr r0, _0203722C ; =0x0000FFFF
+ pop {r4-r6, pc}
+_020371EA:
+ add r0, r5, #0x0
+ add r1, sp, #0x4
+ add r2, sp, #0x0
+ bl FUN_02036FA4
+ mov r0, #0x0
+ cmp r4, #0x0
+ ble _02037224
+ ldr r2, [sp, #0x4]
+ ldr r3, [sp, #0x0]
+ add r1, r6, #0x0
+_02037200:
+ ldr r5, [r1, #0x4]
+ cmp r2, r5
+ bne _0203721C
+ ldr r5, [r1, #0x8]
+ cmp r3, r5
+ bne _0203721C
+ ldrh r5, [r1, #0x2]
+ cmp r5, #0x1
+ bne _0203721C
+ mov r1, #0x14
+ mul r1, r0
+ add sp, #0x8
+ ldrh r0, [r6, r1]
+ pop {r4-r6, pc}
+_0203721C:
+ add r0, r0, #0x1
+ add r1, #0x14
+ cmp r0, r4
+ blt _02037200
+_02037224:
+ ldr r0, _0203722C ; =0x0000FFFF
+ add sp, #0x8
+ pop {r4-r6, pc}
+ nop
+_0203722C: .word 0x0000FFFF
+
+ thumb_func_start FUN_02037230
+FUN_02037230: ; 0x02037230
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x38]
+ add r4, r1, #0x0
+ bl FUN_020552F8
+ cmp r0, #0x0
+ beq _02037244
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_02037244:
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02037090
+ cmp r0, #0x1
+ bne _02037260
+ ldr r0, [r4, #0x0]
+ bl FUN_02058458
+ sub r0, #0x5b
+ cmp r0, #0x5
+ bhi _02037260
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_02037260:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02037264
+FUN_02037264: ; 0x02037264
+ push {r4-r7, lr}
+ sub sp, #0xc
+ str r0, [sp, #0x0]
+ ldr r0, [r0, #0x38]
+ str r1, [sp, #0x4]
+ str r2, [sp, #0x8]
+ bl FUN_02055320
+ add r6, r0, #0x0
+ ldr r0, [sp, #0x0]
+ ldr r0, [r0, #0x38]
+ bl FUN_0205532C
+ add r4, r0, #0x0
+ ldr r0, [sp, #0x8]
+ mov r7, #0x0
+ cmp r0, #0x0
+ ble _020372C8
+ ldr r5, [sp, #0x4]
+_0203728A:
+ ldrh r1, [r5, #0x2]
+ cmp r6, r1
+ blt _020372BE
+ ldrh r0, [r5, #0x6]
+ add r0, r1, r0
+ cmp r6, r0
+ bge _020372BE
+ ldrh r1, [r5, #0x4]
+ cmp r4, r1
+ blt _020372BE
+ ldrh r0, [r5, #0x8]
+ add r0, r1, r0
+ cmp r4, r0
+ bge _020372BE
+ ldrh r1, [r5, #0xe]
+ ldr r0, [sp, #0x0]
+ bl FUN_020394F0
+ ldrh r1, [r5, #0xc]
+ cmp r1, r0
+ bne _020372BE
+ ldr r0, [sp, #0x4]
+ lsl r1, r7, #0x4
+ add sp, #0xc
+ ldrh r0, [r0, r1]
+ pop {r4-r7, pc}
+_020372BE:
+ ldr r0, [sp, #0x8]
+ add r7, r7, #0x1
+ add r5, #0x10
+ cmp r7, r0
+ blt _0203728A
+_020372C8:
+ ldr r0, _020372D0 ; =0x0000FFFF
+ add sp, #0xc
+ pop {r4-r7, pc}
+ nop
+_020372D0: .word 0x0000FFFF
+
+ thumb_func_start FUN_020372D4
+FUN_020372D4: ; 0x020372D4
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_0200628C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02037400
+ ldr r1, _02037300 ; =0x021C5A08
+ str r0, [r1, #0x0]
+ ldr r1, [r4, #0x4]
+ cmp r1, #0x0
+ beq _020372F4
+ bl FUN_02048FC8
+ b _020372F8
+_020372F4:
+ bl FUN_02048EC8
+_020372F8:
+ mov r0, #0x0
+ str r0, [r4, #0x4]
+ mov r0, #0x1
+ pop {r3-r5, pc}
+ .balign 4
+_02037300: .word 0x021C5A08
+
+ thumb_func_start FUN_02037304
+FUN_02037304: ; 0x02037304
+ push {r3, lr}
+ bl FUN_02037400
+ ldr r1, _02037318 ; =0x021C5A08
+ str r0, [r1, #0x0]
+ bl FUN_02048D90
+ mov r0, #0x1
+ pop {r3, pc}
+ nop
+_02037318: .word 0x021C5A08
+
+ thumb_func_start FUN_0203731C
+FUN_0203731C: ; 0x0203731C
+ push {r3, lr}
+ bl FUN_02006278
+ bl FUN_02037524
+ cmp r0, #0x0
+ beq _0203732E
+ mov r0, #0x1
+ pop {r3, pc}
+_0203732E:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02037334
+FUN_02037334: ; 0x02037334
+ push {r3, lr}
+ bl FUN_020374B0
+ ldr r0, _02037348 ; =SDK_OVERLAY_MODULE_63_ID
+ ldr r1, _0203734C ; =0x021DBAB8
+ bl FUN_02000E7C
+ mov r0, #0x1
+ pop {r3, pc}
+ nop
+_02037348: .word SDK_OVERLAY_MODULE_63_ID
+_0203734C: .word 0x021DBAB8
+
+ thumb_func_start LoadOverlay_MODULE_05
+LoadOverlay_MODULE_05: ; 0x02037350
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ beq _02037360
+ bl ErrorHandling
+_02037360:
+ ldr r0, [r4, #0x0]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _0203736C
+ bl ErrorHandling
+_0203736C:
+ ldr r0, _0203738C ; =SDK_OVERLAY_MODULE_05_ID
+ mov r1, #0x2
+ bl HandleLoadOverlay
+ mov r1, #0x0
+ str r1, [r4, #0x64]
+ ldr r0, [r4, #0x0]
+ mov r2, #0xb
+ str r1, [r0, #0x8]
+ ldr r0, _02037390 ; =0x021F64C8
+ add r1, r4, #0x0
+ bl FUN_02006234
+ ldr r1, [r4, #0x0]
+ str r0, [r1, #0x0]
+ pop {r4, pc}
+ .balign 4
+_0203738C: .word SDK_OVERLAY_MODULE_05_ID
+_02037390: .word 0x021F64C8
+
+ thumb_func_start FUN_02037394
+FUN_02037394: ; 0x02037394
+ mov r1, #0x0
+ str r1, [r0, #0x64]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_0203739C
+FUN_0203739C: ; 0x0203739C
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020373A8
+ mov r0, #0x1
+ bx lr
+_020373A8:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_020373AC
+FUN_020373AC: ; 0x020373AC
+ ldr r1, [r0, #0x0]
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ beq _020373BE
+ ldr r0, [r0, #0x64]
+ cmp r0, #0x0
+ beq _020373BE
+ mov r0, #0x1
+ bx lr
+_020373BE:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_020373C4
+FUN_020373C4: ; 0x020373C4
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ beq _020373D0
+ mov r0, #0x1
+ bx lr
+_020373D0:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_start FUN_020373D4
+FUN_020373D4: ; 0x020373D4
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ add r4, r1, #0x0
+ ldr r0, [r0, #0x4]
+ add r6, r2, #0x0
+ cmp r0, #0x0
+ beq _020373E8
+ bl ErrorHandling
+_020373E8:
+ add r0, r5, #0x0
+ bl FUN_02037394
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ mov r2, #0xb
+ bl FUN_02006234
+ ldr r1, [r5, #0x0]
+ str r0, [r1, #0x4]
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02037400
+FUN_02037400: ; 0x02037400
+ push {r3-r5, lr}
+ mov r2, #0x7
+ add r5, r0, #0x0
+ mov r0, #0x3
+ mov r1, #0xb
+ lsl r2, r2, #0xe
+ bl FUN_0201681C
+ mov r1, #0x20
+ mov r0, #0x3
+ lsl r2, r1, #0x9
+ bl FUN_0201681C
+ mov r2, #0x3
+ mov r0, #0x0
+ mov r1, #0x5b
+ lsl r2, r2, #0x8
+ bl FUN_0201681C
+ add r0, r5, #0x0
+ mov r1, #0xb8
+ mov r2, #0xb
+ bl FUN_02006268
+ mov r1, #0x0
+ mov r2, #0xb8
+ add r4, r0, #0x0
+ bl MI_CpuFill8
+ mov r0, #0xb
+ mov r1, #0x10
+ bl FUN_02016998
+ str r0, [r4, #0x0]
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ ldr r0, [r4, #0x0]
+ str r1, [r0, #0x4]
+ ldr r0, [r4, #0x0]
+ str r1, [r0, #0x8]
+ ldr r0, [r4, #0x0]
+ str r1, [r0, #0xc]
+ add r0, r5, #0x0
+ bl FUN_0200628C
+ ldr r0, [r0, #0x8]
+ str r0, [r4, #0xc]
+ mov r0, #0x0
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034DC0
+ str r0, [r4, #0x1c]
+ bl FUN_02034494
+ str r0, [r4, #0x28]
+ add r0, r4, #0x0
+ mov r1, #0xb
+ bl FUN_02034A28
+ mov r0, #0xb
+ bl FUN_0206F164
+ add r1, r4, #0x0
+ add r1, #0x94
+ str r0, [r1, #0x0]
+ mov r0, #0xb
+ bl FUN_0205DD18
+ add r1, r4, #0x0
+ add r1, #0x90
+ str r0, [r1, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x90
+ ldr r0, [r0, #0x0]
+ bl FUN_0205DD40
+ mov r0, #0xb
+ bl FUN_0208A300
+ add r1, r4, #0x0
+ add r1, #0xb0
+ str r0, [r1, #0x0]
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020374B0
+FUN_020374B0: ; 0x020374B0
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02006278
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x28]
+ bl FUN_020344D0
+ add r0, r4, #0x0
+ bl FUN_02034A48
+ add r0, r4, #0x0
+ add r0, #0x94
+ ldr r0, [r0, #0x0]
+ bl FUN_02016A18
+ add r0, r4, #0x0
+ add r0, #0x90
+ ldr r0, [r0, #0x0]
+ bl FUN_0205DD38
+ add r0, r4, #0x0
+ add r0, #0xb0
+ ldr r0, [r0, #0x0]
+ bl FUN_0208A320
+ ldr r0, [r4, #0x0]
+ bl FUN_02016A18
+ add r0, r5, #0x0
+ bl FUN_0200627C
+ mov r0, #0x5b
+ bl FUN_020168D0
+ mov r0, #0xb
+ bl FUN_020168D0
+ mov r0, #0x20
+ bl FUN_020168D0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02037504
+FUN_02037504: ; 0x02037504
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _02037520
+ bl FUN_02006290
+ cmp r0, #0x0
+ beq _02037520
+ ldr r0, [r4, #0x0]
+ bl FUN_02006260
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+_02037520:
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02037524
+FUN_02037524: ; 0x02037524
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02037594
+ add r0, r4, #0x0
+ bl FUN_02046420
+ cmp r0, #0x1
+ bne _02037546
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x0
+ beq _02037546
+ mov r1, #0x0
+ add r0, r4, #0x0
+ add r2, r1, #0x0
+ bl MOD05_021EFA9C
+_02037546:
+ ldr r0, [r4, #0x0]
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _02037562
+ bl FUN_02037504
+ ldr r0, [r4, #0x0]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _0203756E
+ ldr r0, _02037590 ; =SDK_OVERLAY_MODULE_05_ID
+ bl UnloadOverlayByID
+ b _0203756E
+_02037562:
+ ldr r1, [r0, #0x4]
+ cmp r1, #0x0
+ beq _0203756E
+ add r0, r0, #0x4
+ bl FUN_02037504
+_0203756E:
+ ldr r1, [r4, #0x0]
+ ldr r0, [r1, #0xc]
+ cmp r0, #0x0
+ beq _0203758C
+ ldr r0, [r4, #0x10]
+ cmp r0, #0x0
+ bne _0203758C
+ ldr r0, [r1, #0x0]
+ cmp r0, #0x0
+ bne _0203758C
+ ldr r0, [r1, #0x4]
+ cmp r0, #0x0
+ bne _0203758C
+ mov r0, #0x1
+ pop {r4, pc}
+_0203758C:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+_02037590: .word SDK_OVERLAY_MODULE_05_ID
+
+ thumb_func_start FUN_02037594
+FUN_02037594: ; 0x02037594
+ push {r3-r5, lr}
+ sub sp, #0x10
+ add r4, r0, #0x0
+ ldr r1, [r4, #0x0]
+ mov r5, #0x0
+ ldr r1, [r1, #0x8]
+ cmp r1, #0x0
+ bne _020375B4
+ ldr r1, [r4, #0x64]
+ cmp r1, #0x0
+ beq _020375B4
+ bl FUN_0204646C
+ cmp r0, #0x0
+ bne _020375B4
+ mov r5, #0x1
+_020375B4:
+ cmp r5, #0x0
+ beq _020375D4
+ ldr r0, [r4, #0x38]
+ bl FUN_02055A38
+ ldr r3, _02037758 ; =0x021C48B8
+ add r0, sp, #0x8
+ ldr r2, [r3, #0x48]
+ ldr r3, [r3, #0x44]
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x10
+ add r1, r4, #0x0
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x10
+ bl MOD05_021D8164
+_020375D4:
+ ldr r0, [r4, #0x1c]
+ ldr r2, [r4, #0x6c]
+ ldr r1, [r0, #0x0]
+ ldr r0, _0203775C ; =0x00000146
+ cmp r1, r0
+ bne _020375E2
+ mov r2, #0x0
+_020375E2:
+ cmp r2, #0x4
+ bhi _020376E2
+ add r0, r2, r2
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020375F2: ; jump table (using 16-bit offset)
+ .short _020376E2 - _020375F2 - 2; case 0
+ .short _020375FC - _020375F2 - 2; case 1
+ .short _02037646 - _020375F2 - 2; case 2
+ .short _0203761C - _020375F2 - 2; case 3
+ .short _02037672 - _020375F2 - 2; case 4
+_020375FC:
+ cmp r5, #0x0
+ beq _02037610
+ bl FUN_0204E2FC
+ cmp r0, #0x0
+ beq _02037610
+ add r0, sp, #0x8
+ add r1, r4, #0x0
+ bl MOD05_021D85FC
+_02037610:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_0204D6C0
+ add sp, #0x10
+ pop {r3-r5, pc}
+_0203761C:
+ cmp r5, #0x0
+ beq _0203763A
+ bl FUN_0204E2FC
+ cmp r0, #0x0
+ beq _02037638
+ add r0, sp, #0x8
+ add r1, r4, #0x0
+ bl MOD04_021D865C
+ cmp r0, #0x1
+ bne _0203763A
+ mov r5, #0x0
+ b _0203763A
+_02037638:
+ mov r5, #0x0
+_0203763A:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_0204D6C0
+ add sp, #0x10
+ pop {r3-r5, pc}
+_02037646:
+ cmp r5, #0x0
+ bne _0203764C
+ b _02037754
+_0203764C:
+ add r0, sp, #0x8
+ add r1, r4, #0x0
+ bl MOD05_021D8758
+ cmp r0, #0x1
+ beq _02037754
+ add r3, sp, #0x8
+ ldrh r0, [r3, #0x6]
+ mov r2, #0x0
+ str r0, [sp, #0x0]
+ str r2, [sp, #0x4]
+ ldrh r3, [r3, #0x4]
+ ldr r0, [r4, #0x38]
+ ldr r1, [r4, #0x24]
+ sub r2, r2, #0x1
+ bl FUN_020557F4
+ add sp, #0x10
+ pop {r3-r5, pc}
+_02037672:
+ cmp r5, #0x0
+ beq _02037754
+ add r0, sp, #0x8
+ add r1, r4, #0x0
+ bl MOD05_021D8820
+ cmp r0, #0x1
+ bne _020376A6
+ ldr r0, [r4, #0x4]
+ ldr r0, [r0, #0x8]
+ bl MOD05_021E32F0
+ add r0, r4, #0x0
+ mov r1, #0x4
+ bl MOD05_021E81BC
+ ldr r0, [r4, #0x38]
+ bl MOD05_021E7138
+ add r0, r4, #0x0
+ mov r1, #0x0
+ mov r2, #0x1
+ bl MOD05_021EFA9C
+ add sp, #0x10
+ pop {r3-r5, pc}
+_020376A6:
+ ldr r0, _02037758 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x1
+ tst r0, r1
+ beq _020376B8
+ ldr r0, [r4, #0x4]
+ ldr r0, [r0, #0x8]
+ bl MOD05_021E32F0
+_020376B8:
+ mov r5, #0x0
+ bl FUN_02037790
+ cmp r0, #0x0
+ beq _020376C8
+ bl MOD20_02252534
+ add r5, r0, #0x0
+_020376C8:
+ add r3, sp, #0x8
+ ldrh r0, [r3, #0x6]
+ mov r2, #0x0
+ mvn r2, r2
+ str r0, [sp, #0x0]
+ str r5, [sp, #0x4]
+ ldrh r3, [r3, #0x4]
+ ldr r0, [r4, #0x38]
+ ldr r1, [r4, #0x24]
+ bl FUN_020557F4
+ add sp, #0x10
+ pop {r3-r5, pc}
+_020376E2:
+ cmp r5, #0x0
+ beq _02037754
+ add r0, sp, #0x8
+ add r1, r4, #0x0
+ bl MOD05_021D8320
+ cmp r0, #0x1
+ bne _0203771C
+ ldr r0, [r4, #0x4]
+ ldr r0, [r0, #0x8]
+ bl MOD05_021E32F0
+ add r0, r4, #0x0
+ mov r1, #0x4
+ bl MOD05_021E81BC
+ ldr r0, [r4, #0x38]
+ bl FUN_02055B14
+ ldr r0, [r4, #0x38]
+ bl MOD05_021E7138
+ add r0, r4, #0x0
+ mov r1, #0x0
+ mov r2, #0x1
+ bl MOD05_021EFA9C
+ add sp, #0x10
+ pop {r3-r5, pc}
+_0203771C:
+ ldr r0, _02037758 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x1
+ tst r0, r1
+ beq _0203772E
+ ldr r0, [r4, #0x4]
+ ldr r0, [r0, #0x8]
+ bl MOD05_021E32F0
+_0203772E:
+ mov r5, #0x0
+ bl FUN_02037790
+ cmp r0, #0x0
+ beq _0203773E
+ bl MOD20_02252534
+ add r5, r0, #0x0
+_0203773E:
+ add r3, sp, #0x8
+ ldrh r0, [r3, #0x6]
+ mov r2, #0x0
+ mvn r2, r2
+ str r0, [sp, #0x0]
+ str r5, [sp, #0x4]
+ ldrh r3, [r3, #0x4]
+ ldr r0, [r4, #0x38]
+ ldr r1, [r4, #0x24]
+ bl FUN_020557F4
+_02037754:
+ add sp, #0x10
+ pop {r3-r5, pc}
+ .balign 4
+_02037758: .word 0x021C48B8
+_0203775C: .word 0x00000146
+
+ thumb_func_start FUN_02037760
+FUN_02037760: ; 0x02037760
+ ldr r0, _02037770 ; =0x021C5A08
+ ldr r3, _02037774 ; =FUN_02030FC8
+ ldr r0, [r0, #0x0]
+ mov r1, #0x1
+ ldr r0, [r0, #0x0]
+ str r1, [r0, #0x8]
+ bx r3
+ nop
+_02037770: .word 0x021C5A08
+_02037774: .word FUN_02030FC8
+
+ thumb_func_start FUN_02037778
+FUN_02037778: ; 0x02037778
+ ldr r0, _02037788 ; =0x021C5A08
+ ldr r3, _0203778C ; =FUN_02030FA8
+ ldr r0, [r0, #0x0]
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ str r1, [r0, #0x8]
+ bx r3
+ nop
+_02037788: .word 0x021C5A08
+_0203778C: .word FUN_02030FA8
+
+ thumb_func_start FUN_02037790
+FUN_02037790: ; 0x02037790
+ ldr r0, _020377A4 ; =0x021C5A08
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x0
+ bne _0203779E
+ mov r0, #0x0
+ bx lr
+_0203779E:
+ ldr r0, [r0, #0x14]
+ bx lr
+ nop
+_020377A4: .word 0x021C5A08
+
+ thumb_func_start FUN_020377A8
+FUN_020377A8: ; 0x020377A8
+ ldr r0, [r0, #0x8]
+ bx lr
+
+ thumb_func_start FUN_020377AC
+FUN_020377AC: ; 0x020377AC
+ ldr r0, [r0, #0xc]
+ bx lr
+
+ thumb_func_start FUN_020377B0
+FUN_020377B0: ; 0x020377B0
+ ldr r2, _020377C4 ; =0x020F2B9C
+ add r3, r0, #0x0
+ ldmia r2!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r2!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r2, #0x0]
+ str r0, [r3, #0x0]
+ bx lr
+ nop
+_020377C4: .word 0x020F2B9C
+
+ thumb_func_start FUN_020377C8
+FUN_020377C8: ; 0x020377C8
+ ldr r2, _020377DC ; =0x020F2BB0
+ add r3, r0, #0x0
+ ldmia r2!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r2!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldr r0, [r2, #0x0]
+ str r0, [r3, #0x0]
+ bx lr
+ nop
+_020377DC: .word 0x020F2BB0
+
+ thumb_func_start FUN_020377E0
+FUN_020377E0: ; 0x020377E0
+ push {r3, lr}
+ bl FUN_02034E30
+ bl FUN_02034DC0
+ bl FUN_020377B0
+ pop {r3, pc}
+
+ thumb_func_start FUN_020377F0
+FUN_020377F0: ; 0x020377F0
+ mov r0, #0x1
+ bx lr
+
+ thumb_func_start FUN_020377F4
+FUN_020377F4: ; 0x020377F4
+ push {r3, lr}
+ bl MOD11_0222D5C0
+ cmp r0, #0x0
+ beq _02037802
+ mov r0, #0x1
+ pop {r3, pc}
+_02037802:
+ mov r0, #0x0
+ pop {r3, pc}
+ .balign 4
+
+ thumb_func_start FUN_02037808
+FUN_02037808: ; 0x02037808
+ mov r0, #0x1
+ bx lr
+
+ thumb_func_start FUN_0203780C
+FUN_0203780C: ; 0x0203780C
+ ldr r3, _02037814 ; =FUN_020373D4
+ add r2, r1, #0x0
+ ldr r1, _02037818 ; =0x020F2D94
+ bx r3
+ .balign 4
+_02037814: .word FUN_020373D4
+_02037818: .word 0x020F2D94
+
+ thumb_func_start FUN_0203781C
+FUN_0203781C: ; 0x0203781C
+ push {r4-r6, lr}
+ sub sp, #0x10
+ ldr r5, _02037840 ; =0x020F2D74
+ add r4, sp, #0x0
+ add r6, r0, #0x0
+ add r2, r1, #0x0
+ add r3, r4, #0x0
+ ldmia r5!, {r0-r1}
+ stmia r4!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r4!, {r0-r1}
+ add r0, r6, #0x0
+ add r1, r3, #0x0
+ bl FUN_020373D4
+ add sp, #0x10
+ pop {r4-r6, pc}
+ nop
+_02037840: .word 0x020F2D74
+
+ thumb_func_start FUN_02037844
+FUN_02037844: ; 0x02037844
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ add r6, r1, #0x0
+ bl FUN_0206F158
+ ldr r1, _02037898 ; =0x020F2BDC
+ mov r2, #0xb
+ bl FUN_0206EFEC
+ add r3, r5, #0x0
+ add r3, #0x94
+ ldr r1, [r5, #0xc]
+ ldr r3, [r3, #0x0]
+ mov r2, #0x0
+ add r4, r0, #0x0
+ bl FUN_0206E314
+ ldr r1, [r5, #0x6c]
+ add r0, r4, #0x0
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_0206E360
+ ldr r0, [r5, #0x38]
+ bl FUN_020553C4
+ cmp r0, #0x1
+ bne _02037884
+ add r0, r4, #0x0
+ bl FUN_0206E340
+_02037884:
+ add r0, r4, #0x0
+ add r1, r6, #0x0
+ bl FUN_0206E354
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0203781C
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+_02037898: .word 0x020F2BDC
+
+ thumb_func_start FUN_0203789C
+FUN_0203789C: ; 0x0203789C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ add r4, r1, #0x0
+ bl FUN_0206F158
+ add r6, r0, #0x0
+ cmp r4, #0x0
+ beq _020378B4
+ cmp r4, #0x1
+ beq _020378BC
+ b _020378C4
+_020378B4:
+ ldr r1, _020378F0 ; =0x020F2BC8
+ ldr r0, _020378F4 ; =0x02105DB8
+ str r1, [r0, #0x0]
+ b _020378C8
+_020378BC:
+ ldr r1, _020378F8 ; =0x020F2BC4
+ ldr r0, _020378F4 ; =0x02105DB8
+ str r1, [r0, #0x0]
+ b _020378C8
+_020378C4:
+ bl ErrorHandling
+_020378C8:
+ ldr r1, _020378F4 ; =0x02105DB8
+ add r0, r6, #0x0
+ ldr r1, [r1, #0x0]
+ mov r2, #0x20
+ bl FUN_0206EFEC
+ add r3, r5, #0x0
+ add r3, #0x94
+ ldr r1, [r5, #0xc]
+ ldr r3, [r3, #0x0]
+ add r4, r0, #0x0
+ mov r2, #0x3
+ bl FUN_0206E314
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0203781C
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+_020378F0: .word 0x020F2BC8
+_020378F4: .word 0x02105DB8
+_020378F8: .word 0x020F2BC4
+
+ thumb_func_start FUN_020378FC
+FUN_020378FC: ; 0x020378FC
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_0206E37C
+ add r4, r0, #0x0
+ beq _02037916
+ add r0, r5, #0x0
+ bl FUN_0206E384
+ cmp r0, #0x5
+ bne _02037916
+ bl ErrorHandling
+_02037916:
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_0203791C
+FUN_0203791C: ; 0x0203791C
+ push {r4-r6, lr}
+ sub sp, #0x10
+ ldr r5, _02037940 ; =0x020F2D44
+ add r4, sp, #0x0
+ add r6, r0, #0x0
+ add r2, r1, #0x0
+ add r3, r4, #0x0
+ ldmia r5!, {r0-r1}
+ stmia r4!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r4!, {r0-r1}
+ add r0, r6, #0x0
+ add r1, r3, #0x0
+ bl FUN_020373D4
+ add sp, #0x10
+ pop {r4-r6, pc}
+ nop
+_02037940: .word 0x020F2D44
+
+ thumb_func_start FUN_02037944
+FUN_02037944: ; 0x02037944
+ push {r3-r5, lr}
+ sub sp, #0x10
+ ldr r4, _02037968 ; =0x020F2D24
+ add r3, sp, #0x0
+ add r5, r0, #0x0
+ add r2, r3, #0x0
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r4!, {r0-r1}
+ stmia r3!, {r0-r1}
+ add r1, r2, #0x0
+ ldr r2, [r5, #0xc]
+ add r0, r5, #0x0
+ bl FUN_020373D4
+ add sp, #0x10
+ pop {r3-r5, pc}
+ nop
+_02037968: .word 0x020F2D24
+
+ thumb_func_start FUN_0203796C
+FUN_0203796C: ; 0x0203796C
+ ldr r3, _02037974 ; =FUN_020373D4
+ add r2, r1, #0x0
+ ldr r1, _02037978 ; =0x020FA6E8
+ bx r3
+ .balign 4
+_02037974: .word FUN_020373D4
+_02037978: .word 0x020FA6E8
+
+ thumb_func_start FUN_0203797C
+FUN_0203797C: ; 0x0203797C
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ mov r1, #0x40
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ bl FUN_02016998
+ add r4, r0, #0x0
+ mov r0, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x40
+ bl MIi_CpuClearFast
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB1C
+ str r0, [r4, #0x0]
+ ldr r0, [r5, #0xc]
+ bl FUN_0206F158
+ str r0, [r4, #0x4]
+ ldr r0, [r5, #0xc]
+ bl FUN_02025838
+ str r0, [r4, #0x8]
+ ldr r0, [r5, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [r4, #0xc]
+ add r0, r4, #0x0
+ add r0, #0x21
+ strb r6, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x20
+ strb r7, [r0, #0x0]
+ str r5, [r4, #0x1c]
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_020379C8
+FUN_020379C8: ; 0x020379C8
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r7, r2, #0x0
+ mov r2, #0x0
+ add r6, r1, #0x0
+ mov r0, #0xb
+ add r1, r5, #0x0
+ add r3, r2, #0x0
+ bl FUN_0203797C
+ add r4, r0, #0x0
+ str r6, [r4, #0x18]
+ add r0, #0x22
+ strb r7, [r0, #0x0]
+ ldr r1, _020379F4 ; =0x020F96DC
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_020373D4
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ nop
+_020379F4: .word 0x020F96DC
+
+ thumb_func_start FUN_020379F8
+FUN_020379F8: ; 0x020379F8
+ push {r3-r5, lr}
+ mov r0, #0xb
+ mov r2, #0x0
+ mov r3, #0x3
+ add r5, r1, #0x0
+ bl FUN_0203797C
+ add r4, r0, #0x0
+ ldr r1, _02037A18 ; =0x020F96DC
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_020373D4
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ nop
+_02037A18: .word 0x020F96DC
+
+ thumb_func_start FUN_02037A1C
+FUN_02037A1C: ; 0x02037A1C
+ push {r3-r5, lr}
+ mov r0, #0xb
+ mov r2, #0x0
+ mov r3, #0x13
+ add r5, r1, #0x0
+ bl FUN_0203797C
+ add r4, r0, #0x0
+ ldr r1, _02037A3C ; =0x020F96DC
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_020373D4
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ nop
+_02037A3C: .word 0x020F96DC
+
+ thumb_func_start FUN_02037A40
+FUN_02037A40: ; 0x02037A40
+ add r0, #0x22
+ ldrb r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02037A48
+FUN_02037A48: ; 0x02037A48
+ push {r4-r6, lr}
+ add r4, r2, #0x0
+ mov r0, #0xb
+ mov r2, #0x0
+ mov r3, #0x12
+ add r5, r1, #0x0
+ bl FUN_0203797C
+ add r6, r0, #0x0
+ add r0, #0x22
+ strb r4, [r0, #0x0]
+ ldr r1, _02037A6C ; =0x020F96DC
+ add r0, r5, #0x0
+ add r2, r6, #0x0
+ bl FUN_020373D4
+ add r0, r6, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+_02037A6C: .word 0x020F96DC
+
+ thumb_func_start FUN_02037A70
+FUN_02037A70: ; 0x02037A70
+ add r0, #0x23
+ ldrb r0, [r0, #0x0]
+ bx lr
+ .balign 4
+
+ thumb_func_start FUN_02037A78
+FUN_02037A78: ; 0x02037A78
+ ldrb r0, [r0, #0x14]
+ bx lr
+
+ thumb_func_start FUN_02037A7C
+FUN_02037A7C: ; 0x02037A7C
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02046530
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ cmp r0, #0x4
+ bhi _02037B3A
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02037AA8: ; jump table (using 16-bit offset)
+ .short _02037AB2 - _02037AA8 - 2; case 0
+ .short _02037AC2 - _02037AA8 - 2; case 1
+ .short _02037AF8 - _02037AA8 - 2; case 2
+ .short _02037B1A - _02037AA8 - 2; case 3
+ .short _02037B30 - _02037AA8 - 2; case 4
+_02037AB2:
+ ldr r1, _02037B40 ; =0x020F96DC
+ ldr r2, [r4, #0x4]
+ add r0, r6, #0x0
+ bl FUN_020373D4
+ mov r0, #0x1
+ str r0, [r5, #0x0]
+ b _02037B3A
+_02037AC2:
+ add r0, r6, #0x0
+ bl FUN_0204647C
+ cmp r0, #0x0
+ bne _02037B3A
+ ldr r0, [r4, #0x4]
+ add r0, #0x22
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x6
+ beq _02037AE6
+ cmp r0, #0x7
+ bne _02037AF2
+ mov r0, #0x2
+ bl FUN_020527D8
+ mov r0, #0x4
+ str r0, [r5, #0x0]
+ b _02037B3A
+_02037AE6:
+ mov r0, #0x1
+ bl FUN_020527D8
+ mov r0, #0x4
+ str r0, [r5, #0x0]
+ b _02037B3A
+_02037AF2:
+ mov r0, #0x2
+ str r0, [r5, #0x0]
+ b _02037B3A
+_02037AF8:
+ ldr r1, [r4, #0x0]
+ add r0, r6, #0x0
+ mov r2, #0x0
+ bl FUN_02037C7C
+ str r0, [r4, #0x8]
+ ldr r1, [r4, #0x4]
+ add r1, #0x22
+ ldrb r1, [r1, #0x0]
+ strb r1, [r0, #0x14]
+ ldr r1, [r4, #0x8]
+ add r0, r6, #0x0
+ bl FUN_0203796C
+ mov r0, #0x3
+ str r0, [r5, #0x0]
+ b _02037B3A
+_02037B1A:
+ add r0, r6, #0x0
+ bl FUN_0204647C
+ cmp r0, #0x0
+ bne _02037B3A
+ ldr r0, [r4, #0x8]
+ bl FUN_02016A18
+ mov r0, #0x0
+ str r0, [r5, #0x0]
+ b _02037B3A
+_02037B30:
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x1
+ pop {r4-r6, pc}
+_02037B3A:
+ mov r0, #0x0
+ pop {r4-r6, pc}
+ nop
+_02037B40: .word 0x020F96DC
+
+ thumb_func_start FUN_02037B44
+FUN_02037B44: ; 0x02037B44
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ add r7, r0, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ mov r1, #0xc
+ bl FUN_02016998
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r6, #0x0
+ mov r2, #0x0
+ mov r3, #0x2
+ str r5, [r4, #0x0]
+ bl FUN_0203797C
+ add r5, r0, #0x0
+ add r0, #0x32
+ ldrb r1, [r0, #0x0]
+ mov r0, #0xf
+ add r2, r4, #0x0
+ bic r1, r0
+ mov r0, #0x2
+ orr r1, r0
+ add r0, r5, #0x0
+ add r0, #0x32
+ strb r1, [r0, #0x0]
+ add r0, r5, #0x0
+ add r0, #0x32
+ ldrb r1, [r0, #0x0]
+ mov r0, #0xf0
+ bic r1, r0
+ mov r0, #0x20
+ orr r1, r0
+ add r0, r5, #0x0
+ add r0, #0x32
+ strb r1, [r0, #0x0]
+ add r0, r5, #0x0
+ mov r1, #0x1e
+ add r0, #0x33
+ strb r1, [r0, #0x0]
+ mov r0, #0x0
+ str r0, [r5, #0x14]
+ ldr r1, _02037BAC ; =FUN_02037A7C
+ add r0, r7, #0x0
+ str r5, [r4, #0x4]
+ bl FUN_0204640C
+ add r0, r5, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_02037BAC: .word FUN_02037A7C
+
+ thumb_func_start FUN_02037BB0
+FUN_02037BB0: ; 0x02037BB0
+ push {r3-r7, lr}
+ add r5, r2, #0x0
+ add r6, r3, #0x0
+ mov r0, #0xb
+ mov r2, #0x0
+ mov r3, #0xd
+ add r7, r1, #0x0
+ bl FUN_0203797C
+ add r4, r0, #0x0
+ ldr r1, [sp, #0x1c]
+ add r0, #0x22
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ mov r1, #0x2
+ add r0, #0x29
+ strb r1, [r0, #0x0]
+ add r0, r4, #0x0
+ add r0, #0x2a
+ strb r5, [r0, #0x0]
+ ldr r0, [sp, #0x18]
+ cmp r0, #0x0
+ bne _02037BE6
+ add r0, r4, #0x0
+ add r0, #0x2b
+ strb r6, [r0, #0x0]
+ b _02037BEE
+_02037BE6:
+ add r0, r4, #0x0
+ mov r1, #0x0
+ add r0, #0x2b
+ strb r1, [r0, #0x0]
+_02037BEE:
+ ldr r1, _02037BFC ; =0x020F96DC
+ add r0, r7, #0x0
+ add r2, r4, #0x0
+ bl FUN_020373D4
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_02037BFC: .word 0x020F96DC
+
+ thumb_func_start FUN_02037C00
+FUN_02037C00: ; 0x02037C00
+ push {r4-r6, lr}
+ add r5, r1, #0x0
+ mov r0, #0xb
+ mov r1, #0x30
+ add r6, r2, #0x0
+ bl FUN_02016998
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB1C
+ str r0, [r4, #0x0]
+ ldr r0, [r5, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [r4, #0x4]
+ mov r0, #0x1
+ strb r0, [r4, #0x11]
+ strb r6, [r4, #0x14]
+ ldr r0, [r4, #0x0]
+ bl FUN_0206B9AC
+ strb r0, [r4, #0x13]
+ mov r0, #0x0
+ strh r0, [r4, #0x18]
+ strb r0, [r4, #0x12]
+ ldr r0, [r5, #0xc]
+ bl FUN_0202A918
+ str r0, [r4, #0x20]
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB28
+ str r0, [r4, #0x1c]
+ ldr r0, [r5, #0xc]
+ bl FUN_02079C70
+ str r0, [r4, #0x2c]
+ mov r0, #0x0
+ str r0, [r4, #0x28]
+ ldr r1, _02037C74 ; =0x020F2A9C
+ add r0, r4, #0x0
+ bl FUN_0207B000
+ ldr r0, [r5, #0xc]
+ bl FUN_020238F4
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0207C2A4
+ ldr r1, _02037C78 ; =0x020FA6E8
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_020373D4
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+_02037C74: .word 0x020F2A9C
+_02037C78: .word 0x020FA6E8
+
+ thumb_func_start FUN_02037C7C
+FUN_02037C7C: ; 0x02037C7C
+ push {r4-r6, lr}
+ ldr r5, [r0, #0xc]
+ add r0, r1, #0x0
+ mov r1, #0x30
+ add r6, r2, #0x0
+ bl FUN_020169D8
+ mov r1, #0x0
+ mov r2, #0x30
+ add r4, r0, #0x0
+ bl MI_CpuFill8
+ add r0, r5, #0x0
+ bl LoadPlayerDataAddress
+ str r0, [r4, #0x4]
+ add r0, r5, #0x0
+ bl FUN_0206BB1C
+ str r0, [r4, #0x0]
+ mov r0, #0x1
+ strb r0, [r4, #0x11]
+ mov r0, #0x0
+ strb r0, [r4, #0x14]
+ ldr r0, [r4, #0x0]
+ bl FUN_0206B9AC
+ strb r0, [r4, #0x13]
+ mov r0, #0x0
+ strh r0, [r4, #0x18]
+ strb r6, [r4, #0x12]
+ add r0, r5, #0x0
+ bl FUN_0206BB28
+ str r0, [r4, #0x1c]
+ add r0, r5, #0x0
+ bl FUN_02079C70
+ str r0, [r4, #0x2c]
+ add r0, r5, #0x0
+ bl FUN_0202A918
+ str r0, [r4, #0x20]
+ ldr r1, _02037CEC ; =0x020F2BD0
+ add r0, r4, #0x0
+ bl FUN_0207B000
+ add r0, r5, #0x0
+ bl FUN_020238F4
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0207C2A4
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+_02037CEC: .word 0x020F2BD0
+
+ thumb_func_start FUN_02037CF0
+FUN_02037CF0: ; 0x02037CF0
+ push {r4-r6, lr}
+ add r5, r1, #0x0
+ mov r1, #0x30
+ add r6, r2, #0x0
+ bl FUN_02016998
+ mov r1, #0x0
+ mov r2, #0x30
+ add r4, r0, #0x0
+ bl memset
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB1C
+ str r0, [r4, #0x0]
+ ldr r0, [r5, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [r4, #0x4]
+ mov r0, #0x1
+ strb r0, [r4, #0x11]
+ strb r6, [r4, #0x14]
+ strb r0, [r4, #0x13]
+ mov r0, #0x0
+ strh r0, [r4, #0x18]
+ mov r0, #0x2
+ strb r0, [r4, #0x12]
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB28
+ str r0, [r4, #0x1c]
+ ldr r0, [r5, #0xc]
+ bl FUN_02079C70
+ str r0, [r4, #0x2c]
+ ldr r1, _02037D58 ; =0x020F2BCC
+ add r0, r4, #0x0
+ bl FUN_0207B000
+ ldr r0, [r5, #0xc]
+ bl FUN_020238F4
+ add r1, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0207C2A4
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_0203796C
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+_02037D58: .word 0x020F2BCC
+
+ thumb_func_start FUN_02037D5C
+FUN_02037D5C: ; 0x02037D5C
+ ldrb r0, [r0, #0x16]
+ bx lr
+
+ thumb_func_start FUN_02037D60
+FUN_02037D60: ; 0x02037D60
+ ldr r3, _02037D68 ; =FUN_020373D4
+ add r2, r1, #0x0
+ ldr r1, _02037D6C ; =0x020F2CF4
+ bx r3
+ .balign 4
+_02037D68: .word FUN_020373D4
+_02037D6C: .word 0x020F2CF4
+
+ thumb_func_start FUN_02037D70
+FUN_02037D70: ; 0x02037D70
+ push {r3-r6, lr}
+ sub sp, #0x4
+ add r6, r0, #0x0
+ bl FUN_02046530
+ add r4, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0204652C
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_02046528
+ ldr r1, [r4, #0x0]
+ cmp r1, #0x0
+ beq _02037D9A
+ cmp r1, #0x1
+ beq _02037DA8
+ cmp r1, #0x2
+ beq _02037DB8
+ b _02037E12
+_02037D9A:
+ ldr r1, [r5, #0xc]
+ bl FUN_02037E80
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02037E12
+_02037DA8:
+ bl FUN_0204647C
+ cmp r0, #0x0
+ bne _02037E12
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02037E12
+_02037DB8:
+ ldr r0, [r5, #0xc]
+ bl FUN_020853E4
+ cmp r0, #0x0
+ bne _02037DCC
+ ldr r0, [r5, #0xc]
+ bl FUN_020853E8
+ cmp r0, #0x0
+ bne _02037DD4
+_02037DCC:
+ ldr r0, [r5, #0x0]
+ mov r1, #0x0
+ strh r1, [r0, #0x0]
+ b _02037E00
+_02037DD4:
+ ldr r0, [r5, #0x0]
+ mov r1, #0x1
+ strh r1, [r0, #0x0]
+ ldr r0, [r5, #0x8]
+ cmp r0, #0x0
+ ldr r0, [r5, #0xc]
+ bne _02037DEC
+ bl FUN_020853EC
+ ldr r1, [r5, #0x4]
+ strh r0, [r1, #0x0]
+ b _02037E00
+_02037DEC:
+ add r1, sp, #0x0
+ bl FUN_020853F0
+ add r0, sp, #0x0
+ ldrh r2, [r0, #0x0]
+ ldr r1, [r5, #0x4]
+ strh r2, [r1, #0x0]
+ ldrh r1, [r0, #0x2]
+ ldr r0, [r5, #0x8]
+ strh r1, [r0, #0x0]
+_02037E00:
+ ldr r0, [r5, #0xc]
+ bl FUN_020853A8
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ add sp, #0x4
+ mov r0, #0x1
+ pop {r3-r6, pc}
+_02037E12:
+ mov r0, #0x0
+ add sp, #0x4
+ pop {r3-r6, pc}
+
+ thumb_func_start FUN_02037E18
+FUN_02037E18: ; 0x02037E18
+ push {r3-r7, lr}
+ sub sp, #0x8
+ str r0, [sp, #0x0]
+ str r1, [sp, #0x4]
+ add r5, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_02046528
+ add r7, r0, #0x0
+ mov r0, #0x20
+ mov r1, #0x10
+ bl FUN_02016998
+ add r4, r0, #0x0
+ ldr r0, [sp, #0x4]
+ cmp r6, #0x0
+ str r0, [r4, #0x0]
+ str r5, [r4, #0x4]
+ str r6, [r4, #0x8]
+ bne _02037E56
+ mov r0, #0x0
+ ldr r2, [r7, #0xc]
+ add r1, r0, #0x0
+ mov r3, #0x20
+ bl FUN_02085338
+ str r0, [r4, #0xc]
+ ldrh r1, [r5, #0x0]
+ bl FUN_020853B0
+ b _02037E6C
+_02037E56:
+ ldr r2, [r7, #0xc]
+ mov r0, #0x1
+ mov r1, #0x0
+ mov r3, #0x20
+ bl FUN_02085338
+ str r0, [r4, #0xc]
+ ldrh r1, [r5, #0x0]
+ ldrh r2, [r6, #0x0]
+ bl FUN_020853B4
+_02037E6C:
+ ldr r0, [sp, #0x0]
+ ldr r1, _02037E7C ; =FUN_02037D70
+ add r2, r4, #0x0
+ bl FUN_0204640C
+ add sp, #0x8
+ pop {r3-r7, pc}
+ nop
+_02037E7C: .word FUN_02037D70
+
+ thumb_func_start FUN_02037E80
+FUN_02037E80: ; 0x02037E80
+ ldr r3, _02037E88 ; =FUN_020373D4
+ add r2, r1, #0x0
+ ldr r1, _02037E8C ; =0x020F2CE4
+ bx r3
+ .balign 4
+_02037E88: .word FUN_020373D4
+_02037E8C: .word 0x020F2CE4
+
+ thumb_func_start FUN_02037E90
+FUN_02037E90: ; 0x02037E90
+ push {r4-r6, lr}
+ sub sp, #0x10
+ ldr r5, _02037EB4 ; =0x020F2CD4
+ add r4, sp, #0x0
+ add r6, r0, #0x0
+ add r2, r1, #0x0
+ add r3, r4, #0x0
+ ldmia r5!, {r0-r1}
+ stmia r4!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r4!, {r0-r1}
+ add r0, r6, #0x0
+ add r1, r3, #0x0
+ bl FUN_020373D4
+ add sp, #0x10
+ pop {r4-r6, pc}
+ nop
+_02037EB4: .word 0x020F2CD4
+
+ thumb_func_start FUN_02037EB8
+FUN_02037EB8: ; 0x02037EB8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034E0C
+ mov r1, #0x5
+ mov r0, #0xb
+ lsl r1, r1, #0x6
+ bl FUN_020169D8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ mov r2, #0x0
+ bl FUN_0205F7A0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02037E90
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02037EE8
+FUN_02037EE8: ; 0x02037EE8
+ ldr r3, _02037EF0 ; =FUN_020373D4
+ add r2, r1, #0x0
+ ldr r1, _02037EF4 ; =0x020F2CC4
+ bx r3
+ .balign 4
+_02037EF0: .word FUN_020373D4
+_02037EF4: .word 0x020F2CC4
+
+ thumb_func_start FUN_02037EF8
+FUN_02037EF8: ; 0x02037EF8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r0, #0xb
+ mov r1, #0x2
+ bl FUN_020169D8
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_020377AC
+ bl LoadPlayerDataAddress
+ add r1, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_02037EE8
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02037F1C
+FUN_02037F1C: ; 0x02037F1C
+ ldr r3, _02037F24 ; =FUN_020373D4
+ add r2, r1, #0x0
+ ldr r1, _02037F28 ; =0x020FCAC8
+ bx r3
+ .balign 4
+_02037F24: .word FUN_020373D4
+_02037F28: .word 0x020FCAC8
+
+ thumb_func_start FUN_02037F2C
+FUN_02037F2C: ; 0x02037F2C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ add r7, r3, #0x0
+ bl FUN_020377AC
+ mov r1, #0xb
+ str r1, [sp, #0x0]
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ add r3, r7, #0x0
+ bl FUN_020854E0
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02037F1C
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02037F58
+FUN_02037F58: ; 0x02037F58
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ add r7, r0, #0x0
+ add r4, r2, #0x0
+ add r6, r3, #0x0
+ cmp r5, #0x3
+ bne _02037F74
+ bl FUN_020377AC
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_020855B0
+ b _02037F82
+_02037F74:
+ bl FUN_020377AC
+ add r1, r5, #0x0
+ add r2, r4, #0x0
+ add r3, r6, #0x0
+ bl FUN_02085538
+_02037F82:
+ add r4, r0, #0x0
+ add r0, r7, #0x0
+ add r1, r4, #0x0
+ bl FUN_02037F1C
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+
+ thumb_func_start FUN_02037F90
+FUN_02037F90: ; 0x02037F90
+ push {r4-r6, lr}
+ add r4, r1, #0x0
+ add r6, r2, #0x0
+ add r5, r0, #0x0
+ bl FUN_020377AC
+ add r1, r4, #0x0
+ add r2, r6, #0x0
+ bl FUN_02085578
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ add r1, r4, #0x0
+ bl FUN_02037F1C
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+
+ thumb_func_start FUN_02037FB4
+FUN_02037FB4: ; 0x02037FB4
+ ldr r3, _02037FBC ; =FUN_020373D4
+ add r2, r1, #0x0
+ ldr r1, _02037FC0 ; =0x020FD1B0
+ bx r3
+ .balign 4
+_02037FBC: .word FUN_020373D4
+_02037FC0: .word 0x020FD1B0
+
+ thumb_func_start FUN_02037FC4
+FUN_02037FC4: ; 0x02037FC4
+ push {r3-r5, lr}
+ add r5, r1, #0x0
+ add r4, r0, #0x0
+ bl FUN_020377AC
+ add r1, r5, #0x0
+ bl FUN_02087D00
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_02037FB4
+ add r0, r5, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_02037FE4
+FUN_02037FE4: ; 0x02037FE4
+ push {r4-r6, lr}
+ sub sp, #0x10
+ ldr r5, _02038008 ; =0x020F2CB4
+ add r4, sp, #0x0
+ add r6, r0, #0x0
+ add r2, r1, #0x0
+ add r3, r4, #0x0
+ ldmia r5!, {r0-r1}
+ stmia r4!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r4!, {r0-r1}
+ add r0, r6, #0x0
+ add r1, r3, #0x0
+ bl FUN_020373D4
+ add sp, #0x10
+ pop {r4-r6, pc}
+ nop
+_02038008: .word 0x020F2CB4
+
+ thumb_func_start FUN_0203800C
+FUN_0203800C: ; 0x0203800C
+ push {r3-r7, lr}
+ add r5, r1, #0x0
+ mov r1, #0x20
+ add r7, r2, #0x0
+ add r6, r3, #0x0
+ bl FUN_02016998
+ mov r1, #0x0
+ mov r2, #0x20
+ add r4, r0, #0x0
+ bl memset
+ add r0, r5, #0x0
+ bl FUN_0206BB1C
+ add r1, r7, #0x0
+ bl FUN_0206B9B0
+ str r0, [r4, #0x0]
+ add r0, r5, #0x0
+ bl FUN_02027E24
+ str r0, [sp, #0x0]
+ mov r1, #0x0
+ bl FUN_02027008
+ add r7, r0, #0x0
+ ldr r0, [sp, #0x0]
+ bl FUN_0202708C
+ str r7, [r4, #0x4]
+ str r0, [r4, #0x8]
+ add r0, r5, #0x0
+ bl LoadPlayerDataAddress
+ str r0, [r4, #0xc]
+ add r0, r5, #0x0
+ bl FUN_02029FC8
+ str r0, [r4, #0x10]
+ add r0, r5, #0x0
+ bl FUN_020238F4
+ str r0, [r4, #0x14]
+ ldr r0, [sp, #0x18]
+ str r6, [r4, #0x18]
+ str r0, [r4, #0x1c]
+ add r0, r4, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+
+ thumb_func_start FUN_02038070
+FUN_02038070: ; 0x02038070
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r4, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r5, r0, #0x0
+ ldr r0, [r5, #0x0]
+ cmp r0, #0x0
+ beq _0203808E
+ cmp r0, #0x1
+ beq _0203809E
+ b _020380C8
+_0203808E:
+ ldr r1, [r5, #0xc]
+ add r0, r4, #0x0
+ bl FUN_0203811C
+ ldr r0, [r5, #0x0]
+ add r0, r0, #0x1
+ str r0, [r5, #0x0]
+ b _020380C8
+_0203809E:
+ add r0, r4, #0x0
+ bl FUN_0204647C
+ cmp r0, #0x0
+ bne _020380C8
+ ldr r0, [r5, #0x8]
+ cmp r0, #0x1
+ bne _020380B2
+ mov r1, #0x1
+ b _020380B4
+_020380B2:
+ mov r1, #0x0
+_020380B4:
+ ldr r0, [r5, #0x4]
+ strh r1, [r0, #0x0]
+ ldr r0, [r5, #0xc]
+ bl FUN_02016A18
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ mov r0, #0x1
+ pop {r3-r5, pc}
+_020380C8:
+ mov r0, #0x0
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020380CC
+FUN_020380CC: ; 0x020380CC
+ push {r3-r7, lr}
+ sub sp, #0x8
+ add r6, r0, #0x0
+ add r5, r1, #0x0
+ mov r0, #0x20
+ mov r1, #0x10
+ add r7, r2, #0x0
+ str r3, [sp, #0x4]
+ bl FUN_02016998
+ add r4, r0, #0x0
+ add r2, r4, #0x0
+ mov r1, #0x10
+ mov r0, #0x0
+_020380E8:
+ strb r0, [r2, #0x0]
+ add r2, r2, #0x1
+ sub r1, r1, #0x1
+ bne _020380E8
+ add r0, sp, #0x10
+ ldrh r0, [r0, #0x10]
+ add r3, r4, #0x0
+ add r1, r7, #0x0
+ str r0, [sp, #0x0]
+ ldr r2, [sp, #0x4]
+ mov r0, #0x20
+ add r3, #0x8
+ bl FUN_0203800C
+ str r0, [r4, #0xc]
+ ldr r1, _02038118 ; =FUN_02038070
+ add r0, r6, #0x0
+ add r2, r4, #0x0
+ str r5, [r4, #0x4]
+ bl FUN_0204640C
+ add sp, #0x8
+ pop {r3-r7, pc}
+ nop
+_02038118: .word FUN_02038070
+
+ thumb_func_start FUN_0203811C
+FUN_0203811C: ; 0x0203811C
+ push {r3, lr}
+ add r2, r1, #0x0
+ ldr r1, _0203812C ; =0x02105DDC
+ bl FUN_020373D4
+ mov r0, #0x1
+ pop {r3, pc}
+ nop
+_0203812C: .word 0x02105DDC
+
+ thumb_func_start FUN_02038130
+FUN_02038130: ; 0x02038130
+ push {r3, lr}
+ add r2, r1, #0x0
+ ldr r1, _02038140 ; =0x02105DCC
+ bl FUN_020373D4
+ mov r0, #0x1
+ pop {r3, pc}
+ nop
+_02038140: .word 0x02105DCC
+
+ thumb_func_start FUN_02038144
+FUN_02038144: ; 0x02038144
+ push {r3-r5, lr}
+ add r4, r1, #0x0
+ add r5, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_020238F4
+ str r0, [r5, #0x4]
+ ldr r0, [r4, #0xc]
+ bl FUN_0206BB1C
+ str r0, [r5, #0x8]
+ ldr r0, [r4, #0xc]
+ mov r1, #0x9
+ bl FUN_02022610
+ str r0, [r5, #0xc]
+ ldr r0, [r4, #0xc]
+ bl FUN_02029AFC
+ str r0, [r5, #0x14]
+ ldr r0, [r4, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [r5, #0x18]
+ ldr r0, [r4, #0xc]
+ bl FUN_02024DA0
+ str r0, [r5, #0x24]
+ ldr r0, [r4, #0xc]
+ bl FUN_0206BB28
+ str r0, [r5, #0x30]
+ ldr r0, [r4, #0xc]
+ str r0, [r5, #0x10]
+ add r0, r4, #0x0
+ add r0, #0x98
+ ldr r0, [r0, #0x0]
+ str r0, [r5, #0x1c]
+ ldr r0, [r4, #0xc]
+ bl FUN_02029FC8
+ str r0, [r5, #0x20]
+ bl FUN_02023924
+ add r1, r0, #0x0
+ mov r0, #0x20
+ bl FUN_02016998
+ str r0, [r5, #0x38]
+ bl FUN_020690C4
+ add r1, r0, #0x0
+ mov r0, #0x20
+ bl FUN_02016998
+ str r0, [r5, #0x3c]
+ bl FUN_020690C4
+ add r1, r0, #0x0
+ mov r0, #0x20
+ bl FUN_02016998
+ str r0, [r5, #0x40]
+ str r4, [r5, #0x0]
+ mov r0, #0x0
+ str r0, [r5, #0x34]
+ pop {r3-r5, pc}
+ .balign 4
+
+ thumb_func_start FUN_020381CC
+FUN_020381CC: ; 0x020381CC
+ push {r4, lr}
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x38]
+ cmp r0, #0x0
+ beq _020381DE
+ bl FUN_02016A18
+ mov r0, #0x0
+ str r0, [r4, #0x38]
+_020381DE:
+ ldr r0, [r4, #0x3c]
+ cmp r0, #0x0
+ beq _020381EC
+ bl FUN_02016A18
+ mov r0, #0x0
+ str r0, [r4, #0x3c]
+_020381EC:
+ ldr r0, [r4, #0x40]
+ cmp r0, #0x0
+ beq _020381FA
+ bl FUN_02016A18
+ mov r0, #0x0
+ str r0, [r4, #0x40]
+_020381FA:
+ pop {r4, pc}
+
+ thumb_func_start FUN_020381FC
+FUN_020381FC: ; 0x020381FC
+ push {r4-r7, lr}
+ sub sp, #0x34
+ add r6, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x7
+ bls _02038218
+ b _020383C8
+_02038218:
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #0x6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02038224: ; jump table (using 16-bit offset)
+ .short _02038234 - _02038224 - 2; case 0
+ .short _0203824A - _02038224 - 2; case 1
+ .short _02038258 - _02038224 - 2; case 2
+ .short _0203826A - _02038224 - 2; case 3
+ .short _02038288 - _02038224 - 2; case 4
+ .short _020382F6 - _02038224 - 2; case 5
+ .short _02038386 - _02038224 - 2; case 6
+ .short _020383B2 - _02038224 - 2; case 7
+_02038234:
+ bl FUN_02033590
+ cmp r0, #0x0
+ bne _02038242
+ add r0, r6, #0x0
+ bl FUN_0204AF3C
+_02038242:
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _020383C8
+_0203824A:
+ add r0, r4, #0x4
+ add r1, r5, #0x0
+ bl FUN_02038144
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+_02038258:
+ ldr r1, _020383D0 ; =0x02105DBC
+ add r0, r6, #0x0
+ add r2, r4, #0x4
+ bl FUN_02046500
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _020383C8
+_0203826A:
+ ldr r1, [r4, #0x2c]
+ cmp r1, #0x0
+ bne _02038282
+ add r0, r4, #0x4
+ bl FUN_020381CC
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ add sp, #0x34
+ mov r0, #0x1
+ pop {r4-r7, pc}
+_02038282:
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _020383C8
+_02038288:
+ ldr r0, [r4, #0x3c]
+ str r0, [r4, #0x50]
+ ldr r0, [r4, #0x40]
+ bl FUN_020690E4
+ str r0, [r4, #0x48]
+ ldr r0, [r4, #0x44]
+ bl FUN_020690E4
+ str r0, [r4, #0x4c]
+ ldr r0, [r5, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [r4, #0x5c]
+ mov r0, #0x1
+ str r0, [r4, #0x58]
+ add r0, r5, #0x0
+ bl FUN_0204B2A4
+ cmp r0, #0x4
+ bhi _020382C8
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020382BE: ; jump table (using 16-bit offset)
+ .short _020382C8 - _020382BE - 2; case 0
+ .short _020382C8 - _020382BE - 2; case 1
+ .short _020382CE - _020382BE - 2; case 2
+ .short _020382D4 - _020382BE - 2; case 3
+ .short _020382D4 - _020382BE - 2; case 4
+_020382C8:
+ mov r0, #0x0
+ str r0, [r4, #0x54]
+ b _020382D8
+_020382CE:
+ mov r0, #0x1
+ str r0, [r4, #0x54]
+ b _020382D8
+_020382D4:
+ mov r0, #0x2
+ str r0, [r4, #0x54]
+_020382D8:
+ bl FUN_02033590
+ cmp r0, #0x0
+ beq _020382E4
+ mov r0, #0x3
+ str r0, [r4, #0x54]
+_020382E4:
+ add r2, r4, #0x0
+ ldr r1, _020383D4 ; =0x020F2CA4
+ add r0, r6, #0x0
+ add r2, #0x48
+ bl FUN_02046500
+ mov r0, #0x5
+ str r0, [r4, #0x0]
+ b _020383C8
+_020382F6:
+ ldr r0, [r4, #0x44]
+ mov r1, #0x6
+ mov r2, #0x0
+ bl FUN_020671BC
+ add r3, r0, #0x0
+ add r0, sp, #0x30
+ str r0, [sp, #0x0]
+ lsl r3, r3, #0x10
+ ldr r1, [r4, #0x44]
+ mov r0, #0x0
+ mov r2, #0x1
+ lsr r3, r3, #0x10
+ bl FUN_02069168
+ str r0, [sp, #0x20]
+ cmp r0, #0x0
+ beq _02038380
+ mov r0, #0x3
+ mov r1, #0x1a
+ lsl r2, r0, #0x10
+ bl FUN_0201681C
+ ldr r0, [r5, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [sp, #0x24]
+ ldr r0, [r5, #0xc]
+ bl FUN_02079C70
+ add r6, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_02024DA0
+ add r7, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_0206F158
+ str r0, [sp, #0x28]
+ ldr r0, [r5, #0xc]
+ bl FUN_02029FC8
+ str r0, [sp, #0x2c]
+ ldr r0, [r5, #0xc]
+ bl FUN_0204C1A8
+ str r6, [sp, #0x0]
+ ldr r1, [sp, #0x28]
+ str r7, [sp, #0x4]
+ str r1, [sp, #0x8]
+ ldr r1, [sp, #0x2c]
+ ldr r2, [sp, #0x20]
+ str r1, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x30]
+ ldr r3, [sp, #0x24]
+ str r0, [sp, #0x14]
+ mov r0, #0x4
+ str r0, [sp, #0x18]
+ mov r0, #0x1a
+ str r0, [sp, #0x1c]
+ ldr r1, [r4, #0x44]
+ mov r0, #0x0
+ bl FUN_0206C700
+ str r0, [r4, #0x60]
+ mov r0, #0x6
+ str r0, [r4, #0x0]
+ b _020383C8
+_02038380:
+ mov r0, #0x7
+ str r0, [r4, #0x0]
+ b _020383C8
+_02038386:
+ ldr r0, [r4, #0x60]
+ bl FUN_0206C91C
+ cmp r0, #0x0
+ beq _020383C8
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x30]
+ bl FUN_0206B9B0
+ add r1, r0, #0x0
+ ldr r0, [r4, #0x44]
+ bl FUN_02069B88
+ ldr r0, [r4, #0x60]
+ bl FUN_0206C92C
+ mov r0, #0x1a
+ bl FUN_020168D0
+ mov r0, #0x7
+ str r0, [r4, #0x0]
+ b _020383C8
+_020383B2:
+ ldr r0, [r4, #0x38]
+ add r0, r0, #0x1
+ str r0, [r4, #0x38]
+ mov r0, #0x2
+ str r0, [r4, #0x0]
+ ldr r0, [r5, #0xc]
+ bl FUN_02029FC8
+ mov r1, #0x10
+ bl FUN_0202A170
+_020383C8:
+ mov r0, #0x0
+ add sp, #0x34
+ pop {r4-r7, pc}
+ nop
+_020383D0: .word 0x02105DBC
+_020383D4: .word 0x020F2CA4
+
+ thumb_func_start FUN_020383D8
+FUN_020383D8: ; 0x020383D8
+ push {r4, lr}
+ add r4, r0, #0x0
+ mov r0, #0x20
+ mov r1, #0x68
+ bl FUN_02016998
+ add r2, r0, #0x0
+ mov r0, #0x0
+ str r0, [r2, #0x0]
+ ldr r1, _020383F4 ; =FUN_020381FC
+ add r0, r4, #0x0
+ bl FUN_0204640C
+ pop {r4, pc}
+ .balign 4
+_020383F4: .word FUN_020381FC
+
+ thumb_func_start FUN_020383F8
+FUN_020383F8: ; 0x020383F8
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r0, #0x20
+ mov r1, #0xc
+ bl FUN_02016998
+ add r4, r0, #0x0
+ ldr r0, [r5, #0x7c]
+ str r0, [r4, #0x0]
+ add r0, r5, #0x0
+ add r0, #0x98
+ ldr r0, [r0, #0x0]
+ str r0, [r4, #0x4]
+ ldr r0, [r5, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [r4, #0x8]
+ ldr r1, _02038428 ; =0x020F2C94
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_020373D4
+ pop {r3-r5, pc}
+ nop
+_02038428: .word 0x020F2C94
+
+ thumb_func_start FUN_0203842C
+FUN_0203842C: ; 0x0203842C
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ mov r0, #0xb
+ mov r1, #0x14
+ bl FUN_02016998
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ str r0, [r4, #0x0]
+ ldr r0, [r5, #0x7c]
+ str r0, [r4, #0x4]
+ ldr r0, [r5, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [r4, #0x8]
+ ldr r0, [r5, #0xc]
+ bl FUN_02029FC8
+ str r0, [r4, #0xc]
+ add r0, r5, #0x0
+ add r0, #0x98
+ ldr r0, [r0, #0x0]
+ ldr r1, _02038468 ; =0x020F2D04
+ str r0, [r4, #0x10]
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_020373D4
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_02038468: .word 0x020F2D04
+
+ thumb_func_start FUN_0203846C
+FUN_0203846C: ; 0x0203846C
+ ldr r3, _02038474 ; =FUN_020373D4
+ add r2, r1, #0x0
+ ldr r1, _02038478 ; =0x020F2D54
+ bx r3
+ .balign 4
+_02038474: .word FUN_020373D4
+_02038478: .word 0x020F2D54
+
+ thumb_func_start FUN_0203847C
+FUN_0203847C: ; 0x0203847C
+ push {r3-r7, lr}
+ add r5, r0, #0x0
+ bl FUN_02046528
+ add r6, r0, #0x0
+ add r0, r5, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x3
+ bhi _02038544
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_020384A0: ; jump table (using 16-bit offset)
+ .short _020384A8 - _020384A0 - 2; case 0
+ .short _020384B6 - _020384A0 - 2; case 1
+ .short _020384C8 - _020384A0 - 2; case 2
+ .short _020384D6 - _020384A0 - 2; case 3
+_020384A8:
+ add r0, r5, #0x0
+ bl FUN_0204AF3C
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02038544
+_020384B6:
+ ldr r1, _02038548 ; =0x020FA5FC
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0x0
+ bl FUN_02046500
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02038544
+_020384C8:
+ add r0, r5, #0x0
+ bl FUN_0204AF84
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ b _02038544
+_020384D6:
+ ldr r1, [r4, #0xc]
+ ldr r0, [r1, #0x0]
+ cmp r0, #0x1
+ bne _020384F2
+ ldr r0, [r1, #0x18]
+ ldr r1, [r4, #0x10]
+ bl FUN_02021CE0
+ cmp r0, #0x0
+ bne _02038514
+ ldr r0, [r4, #0xc]
+ mov r1, #0x1
+ str r1, [r0, #0x14]
+ b _02038514
+_020384F2:
+ cmp r0, #0x5
+ bne _02038514
+ ldr r0, [r1, #0x18]
+ bl FUN_02021F2C
+ add r7, r0, #0x0
+ ldr r0, [r6, #0xc]
+ bl FUN_0202881C
+ add r1, r7, #0x0
+ bl FUN_02028854
+ cmp r0, #0x0
+ beq _02038514
+ ldr r0, [r4, #0xc]
+ mov r1, #0x2
+ str r1, [r0, #0x14]
+_02038514:
+ ldr r0, [r4, #0xc]
+ ldr r0, [r0, #0x14]
+ cmp r0, #0x0
+ bne _02038522
+ add r0, r5, #0x0
+ bl FUN_0203854C
+_02038522:
+ ldr r1, [r4, #0x8]
+ cmp r1, #0x0
+ beq _0203852E
+ ldr r0, [r4, #0xc]
+ ldr r0, [r0, #0x14]
+ strh r0, [r1, #0x0]
+_0203852E:
+ ldr r0, [r4, #0xc]
+ bl FUN_02077AC4
+ ldr r0, [r4, #0x10]
+ bl FUN_02021A20
+ add r0, r4, #0x0
+ bl FUN_02016A18
+ mov r0, #0x1
+ pop {r3-r7, pc}
+_02038544:
+ mov r0, #0x0
+ pop {r3-r7, pc}
+ .balign 4
+_02038548: .word 0x020FA5FC
+
+ thumb_func_start FUN_0203854C
+FUN_0203854C: ; 0x0203854C
+ push {r3-r5, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ add r0, r4, #0x0
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ ldr r0, [r4, #0xc]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x6
+ bhi _020385CA
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #0x6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02038572: ; jump table (using 16-bit offset)
+ .short _02038580 - _02038572 - 2; case 0
+ .short _02038590 - _02038572 - 2; case 1
+ .short _020385CA - _02038572 - 2; case 2
+ .short _020385CA - _02038572 - 2; case 3
+ .short _020385CA - _02038572 - 2; case 4
+ .short _020385A8 - _02038572 - 2; case 5
+ .short _020385BC - _02038572 - 2; case 6
+_02038580:
+ ldr r0, [r5, #0xc]
+ bl FUN_020238F4
+ ldr r1, [r4, #0xc]
+ add r1, #0x1c
+ bl FUN_0202395C
+ pop {r3-r5, pc}
+_02038590:
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB1C
+ ldr r1, [r4, #0x4]
+ bl FUN_0206B9B0
+ ldr r2, [r4, #0xc]
+ mov r1, #0x75
+ add r2, #0x1c
+ bl FUN_02067830
+ pop {r3-r5, pc}
+_020385A8:
+ ldr r0, [r5, #0xc]
+ bl FUN_0202881C
+ ldr r3, [r4, #0xc]
+ mov r1, #0x0
+ ldr r3, [r3, #0x18]
+ add r2, r1, #0x0
+ bl FUN_020287C0
+ pop {r3-r5, pc}
+_020385BC:
+ ldr r0, [r5, #0xc]
+ bl FUN_02024EB4
+ ldr r1, [r4, #0xc]
+ ldr r1, [r1, #0x18]
+ bl FUN_02024F18
+_020385CA:
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_020385CC
+FUN_020385CC: ; 0x020385CC
+ push {r3-r7, lr}
+ sub sp, #0x10
+ str r0, [sp, #0x4]
+ add r6, r1, #0x0
+ str r2, [sp, #0x8]
+ str r3, [sp, #0xc]
+ ldr r5, [sp, #0x2c]
+ bl FUN_02046528
+ add r7, r0, #0x0
+ mov r0, #0xb
+ mov r1, #0x14
+ bl FUN_020169D8
+ add r4, r0, #0x0
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ ldr r0, [sp, #0x28]
+ str r0, [r4, #0x4]
+ ldr r0, [sp, #0x30]
+ str r0, [r4, #0x8]
+ ldr r0, [r7, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [sp, #0x0]
+ ldr r2, [sp, #0x8]
+ ldr r3, [sp, #0xc]
+ mov r0, #0xb
+ add r1, r6, #0x0
+ bl FUN_02077A84
+ str r0, [r4, #0xc]
+ mov r0, #0xc
+ mov r1, #0xb
+ bl FUN_020219F4
+ str r0, [r4, #0x10]
+ cmp r6, #0x1
+ beq _02038620
+ cmp r6, #0x5
+ beq _02038656
+ b _02038660
+_02038620:
+ ldr r0, [r7, #0xc]
+ bl FUN_0206BB1C
+ ldr r1, [r4, #0x4]
+ bl FUN_0206B9B0
+ mov r1, #0x6f
+ mov r2, #0x0
+ add r6, r0, #0x0
+ bl FUN_020671BC
+ ldr r1, [r4, #0xc]
+ mov r2, #0x0
+ str r0, [r1, #0x10]
+ add r0, r6, #0x0
+ mov r1, #0x70
+ bl FUN_020671BC
+ ldr r1, [r4, #0xc]
+ cmp r5, #0x0
+ str r0, [r1, #0x8]
+ beq _0203866E
+ ldr r0, [r4, #0x10]
+ add r1, r5, #0x0
+ bl FUN_02021E28
+ b _0203866E
+_02038656:
+ ldr r0, [r4, #0x10]
+ add r1, r5, #0x0
+ bl FUN_02021E28
+ b _0203866E
+_02038660:
+ cmp r5, #0x0
+ beq _0203866E
+ ldr r0, [r4, #0xc]
+ add r1, r5, #0x0
+ ldr r0, [r0, #0x18]
+ bl FUN_02021E28
+_0203866E:
+ ldr r0, [sp, #0x4]
+ ldr r1, _0203867C ; =FUN_0203847C
+ add r2, r4, #0x0
+ bl FUN_0204640C
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+_0203867C: .word FUN_0203847C
+
+ thumb_func_start FUN_02038680
+FUN_02038680: ; 0x02038680
+ ldr r3, _02038688 ; =FUN_020373D4
+ add r2, r1, #0x0
+ ldr r1, _0203868C ; =0x020F2C54
+ bx r3
+ .balign 4
+_02038688: .word FUN_020373D4
+_0203868C: .word 0x020F2C54
+
+ thumb_func_start FUN_02038690
+FUN_02038690: ; 0x02038690
+ push {r3, lr}
+ add r2, r1, #0x0
+ ldr r1, _020386A0 ; =0x020F2C44
+ bl FUN_020373D4
+ mov r0, #0x1
+ pop {r3, pc}
+ nop
+_020386A0: .word 0x020F2C44
+
+ thumb_func_start FUN_020386A4
+FUN_020386A4: ; 0x020386A4
+ ldr r3, _020386AC ; =FUN_020373D4
+ add r2, r1, #0x0
+ ldr r1, _020386B0 ; =0x020F2C34
+ bx r3
+ .balign 4
+_020386AC: .word FUN_020373D4
+_020386B0: .word 0x020F2C34
+
+ thumb_func_start FUN_020386B4
+FUN_020386B4: ; 0x020386B4
+ push {r3-r5, lr}
+ sub sp, #0x10
+ add r4, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_02029ABC
+ ldr r5, _020386DC ; =0x020F2C24
+ add r3, sp, #0x0
+ add r2, r3, #0x0
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r3!, {r0-r1}
+ add r1, r2, #0x0
+ ldr r2, [r4, #0xc]
+ add r0, r4, #0x0
+ bl FUN_020373D4
+ add sp, #0x10
+ pop {r3-r5, pc}
+ .balign 4
+_020386DC: .word 0x020F2C24
+
+ thumb_func_start FUN_020386E0
+FUN_020386E0: ; 0x020386E0
+ push {r4-r6, lr}
+ sub sp, #0x10
+ ldr r3, _0203878C ; =0x020F2C64
+ add r2, sp, #0x0
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ mov r0, #0xb
+ mov r1, #0x44
+ bl FUN_020169D8
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_0202ABBC
+ str r0, [r4, #0x0]
+ ldr r0, [r5, #0xc]
+ bl FUN_02023788
+ str r0, [r4, #0x4]
+ ldr r0, [r5, #0xc]
+ mov r1, #0x2
+ bl FUN_02022610
+ str r0, [r4, #0x8]
+ ldr r0, [r5, #0xc]
+ bl FUN_02022510
+ str r0, [r4, #0xc]
+ ldr r0, [r5, #0xc]
+ bl FUN_02024DA0
+ str r0, [r4, #0x10]
+ ldr r0, [r5, #0xc]
+ bl FUN_020286EC
+ str r0, [r4, #0x14]
+ ldr r0, [r5, #0xc]
+ bl FUN_02029AFC
+ str r0, [r4, #0x18]
+ ldr r0, [r5, #0xc]
+ bl FUN_020238F4
+ str r0, [r4, #0x1c]
+ ldr r0, [r5, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [r4, #0x24]
+ ldr r0, [r5, #0xc]
+ bl FUN_02029FC8
+ str r0, [r4, #0x28]
+ add r0, r5, #0x0
+ add r0, #0x98
+ ldr r0, [r0, #0x0]
+ str r0, [r4, #0x2c]
+ ldr r0, [r5, #0xc]
+ bl FUN_02079C70
+ str r0, [r4, #0x3c]
+ ldr r0, [r5, #0xc]
+ str r0, [r4, #0x20]
+ ldr r0, [r5, #0xc]
+ bl FUN_0206BB28
+ str r0, [r4, #0x34]
+ ldr r0, [r4, #0x14]
+ bl FUN_02033830
+ str r0, [r4, #0x38]
+ ldr r0, [r5, #0xc]
+ bl FUN_0206F158
+ str r0, [r4, #0x30]
+ add r0, r5, #0x0
+ add r1, sp, #0x0
+ add r2, r4, #0x0
+ str r6, [r4, #0x40]
+ bl FUN_020373D4
+ add sp, #0x10
+ pop {r4-r6, pc}
+ .balign 4
+_0203878C: .word 0x020F2C64
+
+ thumb_func_start FUN_02038790
+FUN_02038790: ; 0x02038790
+ push {r3-r7, lr}
+ sub sp, #0x10
+ ldr r3, _02038800 ; =0x020F2C74
+ add r7, r2, #0x0
+ add r2, sp, #0x0
+ add r5, r0, #0x0
+ add r6, r1, #0x0
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ ldmia r3!, {r0-r1}
+ stmia r2!, {r0-r1}
+ mov r0, #0xb
+ mov r1, #0x28
+ bl FUN_020169D8
+ add r4, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl FUN_0202A8D8
+ str r0, [r4, #0x0]
+ ldr r0, [r5, #0xc]
+ bl FUN_0202A8E4
+ str r0, [r4, #0x4]
+ ldr r0, [r5, #0xc]
+ bl FUN_02023788
+ str r0, [r4, #0x8]
+ ldr r0, [r5, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [r4, #0x10]
+ ldr r0, [r5, #0xc]
+ bl FUN_020286EC
+ bl FUN_02028228
+ str r0, [r4, #0x14]
+ ldr r0, [r5, #0xc]
+ str r0, [r4, #0xc]
+ ldr r0, [r5, #0xc]
+ bl FUN_020286EC
+ bl FUN_02033830
+ str r0, [r4, #0x1c]
+ str r6, [r4, #0x18]
+ add r0, r5, #0x0
+ add r1, sp, #0x0
+ add r2, r4, #0x0
+ str r7, [r4, #0x24]
+ bl FUN_020373D4
+ add r0, r4, #0x0
+ add sp, #0x10
+ pop {r3-r7, pc}
+ .balign 4
+_02038800: .word 0x020F2C74
+
+ thumb_func_start FUN_02038804
+FUN_02038804: ; 0x02038804
+ ldr r3, _0203880C ; =FUN_020373D4
+ ldr r1, _02038810 ; =0x020F2D14
+ ldr r2, [r0, #0xc]
+ bx r3
+ .balign 4
+_0203880C: .word FUN_020373D4
+_02038810: .word 0x020F2D14
+
+ thumb_func_start FUN_02038814
+FUN_02038814: ; 0x02038814
+ ldr r3, _0203881C ; =FUN_020373D4
+ add r2, r1, #0x0
+ ldr r1, _02038820 ; =0x020F2D64
+ bx r3
+ .balign 4
+_0203881C: .word FUN_020373D4
+_02038820: .word 0x020F2D64
+
+ thumb_func_start FUN_02038824
+FUN_02038824: ; 0x02038824
+ push {r3-r5, lr}
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ mov r1, #0xb
+ add r2, sp, #0x0
+ bl FUN_02022534
+ ldr r1, [sp, #0x0]
+ add r4, r0, #0x0
+ cmp r1, #0x2
+ bne _02038842
+ bl FUN_02016A18
+ mov r0, #0x0
+ pop {r3-r5, pc}
+_02038842:
+ ldr r1, _02038850 ; =0x020F2BF4
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_020373D4
+ add r0, r4, #0x0
+ pop {r3-r5, pc}
+ .balign 4
+_02038850: .word 0x020F2BF4
+
+ thumb_func_start FUN_02038854
+FUN_02038854: ; 0x02038854
+ ldr r3, _0203885C ; =FUN_020373D4
+ add r2, r1, #0x0
+ ldr r1, _02038860 ; =0x020F2C04
+ bx r3
+ .balign 4
+_0203885C: .word FUN_020373D4
+_02038860: .word 0x020F2C04
+
+ thumb_func_start FUN_02038864
+FUN_02038864: ; 0x02038864
+ push {r4-r6, lr}
+ sub sp, #0x10
+ ldr r5, _02038888 ; =0x020F2C84
+ add r4, sp, #0x0
+ add r6, r0, #0x0
+ add r2, r1, #0x0
+ add r3, r4, #0x0
+ ldmia r5!, {r0-r1}
+ stmia r4!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r4!, {r0-r1}
+ add r0, r6, #0x0
+ add r1, r3, #0x0
+ bl FUN_020373D4
+ add sp, #0x10
+ pop {r4-r6, pc}
+ nop
+_02038888: .word 0x020F2C84
+
+ thumb_func_start FUN_0203888C
+FUN_0203888C: ; 0x0203888C
+ push {r4-r6, lr}
+ sub sp, #0x10
+ ldr r5, _020388B0 ; =0x020F2D84
+ add r4, sp, #0x0
+ add r6, r0, #0x0
+ add r2, r1, #0x0
+ add r3, r4, #0x0
+ ldmia r5!, {r0-r1}
+ stmia r4!, {r0-r1}
+ ldmia r5!, {r0-r1}
+ stmia r4!, {r0-r1}
+ add r0, r6, #0x0
+ add r1, r3, #0x0
+ bl FUN_020373D4
+ add sp, #0x10
+ pop {r4-r6, pc}
+ nop
+_020388B0: .word 0x020F2D84
+
+ thumb_func_start FUN_020388B4
+FUN_020388B4: ; 0x020388B4
+ push {r3-r5, lr}
+ sub sp, #0x10
+ add r4, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_0206BB1C
+ bl MOD05_021ED49C
+ add r5, r0, #0x0
+ bne _020388CC
+ bl ErrorHandling
+_020388CC:
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_020613CC
+ str r5, [sp, #0x0]
+ ldr r0, [r4, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [sp, #0x4]
+ ldr r0, [r4, #0xc]
+ bl FUN_020238F4
+ str r0, [sp, #0x8]
+ ldr r1, [r4, #0x1c]
+ add r0, r4, #0x0
+ ldr r1, [r1, #0x0]
+ bl FUN_0204AB58
+ add r1, sp, #0x0
+ strh r0, [r1, #0xc]
+ ldr r0, [r4, #0x10]
+ add r1, sp, #0x0
+ bl FUN_020863DC
+ add sp, #0x10
+ pop {r3-r5, pc}
+
+ thumb_func_start FUN_02038900
+FUN_02038900: ; 0x02038900
+ push {r3, lr}
+ add r2, r1, #0x0
+ ldr r1, _02038910 ; =0x020F2C14
+ bl FUN_020373D4
+ mov r0, #0x1
+ pop {r3, pc}
+ nop
+_02038910: .word 0x020F2C14
+
+ thumb_func_start FUN_02038914
+FUN_02038914: ; 0x02038914
+ push {r4-r7, lr}
+ sub sp, #0xc
+ add r6, r0, #0x0
+ bl FUN_02046528
+ add r4, r0, #0x0
+ ldr r0, [r4, #0xc]
+ bl FUN_020462AC
+ add r7, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_0204652C
+ add r5, r0, #0x0
+ add r0, r6, #0x0
+ bl FUN_02046530
+ add r6, r0, #0x0
+ ldr r0, [r6, #0x0]
+ cmp r0, #0x0
+ beq _02038944
+ cmp r0, #0x1
+ beq _02038956
+ b _020389C6
+_02038944:
+ add r5, #0xc
+ add r0, r4, #0x0
+ add r1, r5, #0x0
+ bl FUN_02038900
+ ldr r0, [r6, #0x0]
+ add r0, r0, #0x1
+ str r0, [r6, #0x0]
+ b _020389C6
+_02038956:
+ add r0, r4, #0x0
+ bl FUN_0204647C
+ cmp r0, #0x0
+ bne _020389C6
+ ldr r0, [r4, #0xc]
+ bl FUN_0202390C
+ str r0, [sp, #0x0]
+ bl FUN_020126FC
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x0]
+ add r6, r1, #0x0
+ bl FUN_02028930
+ str r0, [sp, #0x8]
+ ldr r0, [r5, #0x4]
+ ldr r1, [r5, #0x8]
+ ldr r2, [sp, #0x4]
+ add r3, r6, #0x0
+ bl FUN_020127C0
+ mov r2, #0x3c
+ mov r3, #0x0
+ bl _ll_sdiv
+ add r3, r0, #0x0
+ ldr r1, [sp, #0x8]
+ ldr r2, [r5, #0x0]
+ add r0, r4, #0x0
+ bl FUN_02061A8C
+ ldr r0, [r4, #0xc]
+ bl FUN_0202390C
+ ldr r1, [r5, #0x0]
+ bl FUN_02028918
+ add r0, r7, #0x0
+ bl FUN_0205F6C8
+ ldr r1, [r5, #0x18]
+ cmp r1, r0
+ ble _020389BA
+ lsl r1, r1, #0x10
+ add r0, r7, #0x0
+ lsr r1, r1, #0x10
+ bl FUN_0205F6D8
+_020389BA:
+ add r0, r5, #0x0
+ bl FUN_02016A18
+ add sp, #0xc
+ mov r0, #0x1
+ pop {r4-r7, pc}
+_020389C6:
+ mov r0, #0x0
+ add sp, #0xc
+ pop {r4-r7, pc}
+
+ thumb_func_start FUN_020389CC
+FUN_020389CC: ; 0x020389CC
+ push {r3-r7, lr}
+ add r7, r0, #0x0
+ add r6, r1, #0x0
+ bl FUN_02046528
+ add r5, r0, #0x0
+ ldr r0, [r5, #0xc]
+ bl LoadPlayerDataAddress
+ str r0, [sp, #0x0]
+ mov r0, #0x20
+ add r1, r0, #0x0
+ bl FUN_02016998
+ add r4, r0, #0x0
+ str r4, [r4, #0xc]
+ ldr r0, [r5, #0xc]
+ bl FUN_0202390C
+ bl FUN_02028930
+ str r0, [r4, #0x0]
+ bl FUN_020126FC
+ str r0, [r4, #0x4]
+ str r1, [r4, #0x8]
+ ldr r0, [r5, #0xc]
+ bl FUN_02029FC8
+ str r0, [r4, #0x14]
+ mov r0, #0x0
+ str r0, [r4, #0x18]
+ ldr r0, [sp, #0x0]
+ bl FUN_02025084
+ str r0, [r4, #0x1c]
+ lsl r1, r6, #0x18
+ ldr r0, [r5, #0xc]
+ lsr r1, r1, #0x18
+ bl FUN_02038A3C
+ str r0, [r4, #0x10]
+ ldr r0, [r5, #0xc]
+ bl FUN_02029FC8
+ mov r1, #0x5
+ bl FUN_0202A170
+ ldr r1, _02038A38 ; =FUN_02038914
+ add r0, r7, #0x0
+ add r2, r4, #0x0
+ bl FUN_0204640C
+ pop {r3-r7, pc}
+ .balign 4
+_02038A38: .word FUN_02038914
+
+ thumb_func_start FUN_02038A3C
+FUN_02038A3C: ; 0x02038A3C
+ push {r4-r7, lr}
+ sub sp, #0x14
+ str r1, [sp, #0x0]
+ bl FUN_0202881C
+ add r4, r0, #0x0
+ bl getseed_LC
+ str r0, [sp, #0x4]
+ add r0, r4, #0x0
+ bl FUN_020287A4
+ bl seedr_LC
+ ldr r0, _02038AAC ; =0x020F2BE8
+ add r1, sp, #0x8
+ mov r2, #0xc
+ bl MI_CpuCopy8
+ mov r4, #0x0
+ mov r7, #0xc
+ add r6, sp, #0x8
+_02038A68:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, #0xc
+ bhs _02038A92
+_02038A72:
+ bl rand_LC
+ add r1, r7, #0x0
+ bl _s32_div_f
+ lsl r0, r1, #0x18
+ lsr r2, r0, #0x18
+ ldrb r1, [r6, r4]
+ ldrb r0, [r6, r2]
+ strb r0, [r6, r4]
+ add r0, r5, #0x1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ strb r1, [r6, r2]
+ cmp r5, #0xc
+ blo _02038A72
+_02038A92:
+ add r0, r4, #0x1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0xc
+ blo _02038A68
+ ldr r0, [sp, #0x4]
+ bl seedr_LC
+ ldr r0, [sp, #0x0]
+ add r1, sp, #0x8
+ ldrb r0, [r1, r0]
+ add sp, #0x14
+ pop {r4-r7, pc}
+ .balign 4
+_02038AAC: .word 0x020F2BE8
+
+ thumb_func_start FUN_02038AB0
+FUN_02038AB0: ; 0x02038AB0
+ push {r4, lr}
+ bl FUN_0204652C
+ add r4, r0, #0x0
+ bl MOD06_0224D79C
+ cmp r0, #0x1
+ bne _02038ACA
+ add r0, r4, #0x0
+ bl MOD06_0224D76C
+ mov r0, #0x1
+ pop {r4, pc}
+_02038ACA:
+ mov r0, #0x0
+ pop {r4, pc}
+ .balign 4
+
+ thumb_func_start FUN_02038AD0
+FUN_02038AD0: ; 0x02038AD0
+ push {r4, lr}
+ add r4, r0, #0x0
+ bl FUN_02046528
+ add r2, r0, #0x0
+ ldr r1, [r2, #0xc]
+ ldr r2, [r2, #0x8]
+ mov r0, #0x4
+ bl MOD06_0224D70C
+ add r2, r0, #0x0
+ ldr r1, _02038AF0 ; =FUN_02038AB0
+ add r0, r4, #0x0
+ bl FUN_0204640C
+ pop {r4, pc}
+ .balign 4
+_02038AF0: .word FUN_02038AB0
+
+ thumb_func_start FUN_02038AF4
+FUN_02038AF4: ; 0x02038AF4
+ push {r4-r6, lr}
+ add r5, r0, #0x0
+ add r0, r1, #0x0
+ mov r1, #0x8
+ add r6, r2, #0x0
+ bl FUN_02016998
+ add r4, r0, #0x0
+ str r6, [r4, #0x4]
+ ldr r0, [r5, #0xc]
+ ldr r1, _02038B18 ; =0x020F2DA4
+ str r0, [r4, #0x0]
+ add r0, r5, #0x0
+ add r2, r4, #0x0
+ bl FUN_020373D4
+ add r0, r4, #0x0
+ pop {r4-r6, pc}
+ .balign 4
+_02038B18: .word 0x020F2DA4
diff --git a/arm9/asm/unk_02038C78.s b/arm9/asm/unk_02038C78.s
index dadbc8aa..9b591348 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
- bl Call_FillMemWithValue
+ bl memset
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
- bl Call_FillMemWithValue
+ bl memset
pop {r4, pc}
.balign 4
diff --git a/arm9/asm/unk_02046030.s b/arm9/asm/unk_02046030.s
index 874a600a..02b844ac 100644
--- a/arm9/asm/unk_02046030.s
+++ b/arm9/asm/unk_02046030.s
@@ -298,13 +298,13 @@ FUN_02046294: ; 0x02046294
thumb_func_start FUN_0204629C
FUN_0204629C: ; 0x0204629C
- ldr r3, _020462A8 ; =Call_FillMemWithValue
+ ldr r3, _020462A8 ; =memset
mov r2, #0xeb
mov r1, #0x0
lsl r2, r2, #0x2
bx r3
nop
-_020462A8: .word Call_FillMemWithValue
+_020462A8: .word memset
thumb_func_start FUN_020462AC
FUN_020462AC: ; 0x020462AC
@@ -4191,7 +4191,7 @@ _0204817A:
add r0, r4, #0x0
mov r1, #0x0
mov r2, #0x24
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0x0
str r0, [r4, #0x0]
str r5, [r4, #0x4]
@@ -11649,7 +11649,7 @@ _0204BBB8:
FUN_0204BBC4: ; 0x0204BBC4
push {r3-r5, lr}
add r4, r0, #0x0
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, _0204BBE4 ; =0x0000199A
bl _s32_div_f
lsl r0, r0, #0x10
@@ -11773,7 +11773,7 @@ _0204BC94:
mov r4, #0x0
b _0204BCD8
_0204BCA4:
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r6, #0x0
add r1, #0x14
add r4, r0, #0x0
@@ -25762,7 +25762,7 @@ _0205289C:
ldr r0, [r0, r1]
pop {r4-r6, pc}
_020528A4:
- bl FUN_0201B9EC
+ bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x1f
sub r1, r1, r2
@@ -25776,7 +25776,7 @@ _020528A4:
ldr r0, [r1, r0]
pop {r4-r6, pc}
_020528C0:
- bl FUN_0201B9EC
+ bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x1e
sub r1, r1, r2
@@ -25790,7 +25790,7 @@ _020528C0:
ldr r0, [r1, r0]
pop {r4-r6, pc}
_020528DC:
- bl FUN_0201B9EC
+ bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x1f
sub r1, r1, r2
@@ -25804,7 +25804,7 @@ _020528DC:
ldr r0, [r1, r0]
pop {r4-r6, pc}
_020528F8:
- bl FUN_0201B9EC
+ bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x1e
sub r1, r1, r2
@@ -25818,7 +25818,7 @@ _020528F8:
ldr r0, [r1, r0]
pop {r4-r6, pc}
_02052914:
- bl FUN_0201B9EC
+ bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x1e
sub r1, r1, r2
@@ -25832,7 +25832,7 @@ _02052914:
ldr r0, [r1, r0]
pop {r4-r6, pc}
_02052930:
- bl FUN_0201B9EC
+ bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x1e
sub r1, r1, r2
@@ -31430,7 +31430,7 @@ _0205518E:
add r0, r4, #0x0
mov r1, #0x0
mov r2, #0x3c
- bl Call_FillMemWithValue
+ bl memset
add r0, r4, #0x0
pop {r4, pc}
@@ -36030,7 +36030,7 @@ _0205745A:
add r0, r5, #0x0
mov r1, #0x0
lsl r2, r2, #0x2
- bl Call_FillMemWithValue
+ bl memset
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
- bl Call_FillMemWithValue
+ bl memset
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
- bl Call_FillMemWithValue
+ bl memset
_02057856:
add sp, #0x8
pop {r3-r7, pc}
@@ -37306,13 +37306,13 @@ _02057F7C: .word 0x021F9080
thumb_func_start FUN_02057F80
FUN_02057F80: ; 0x02057F80
- ldr r3, _02057F8C ; =Call_FillMemWithValue
+ ldr r3, _02057F8C ; =memset
mov r2, #0x4a
mov r1, #0x0
lsl r2, r2, #0x2
bx r3
nop
-_02057F8C: .word Call_FillMemWithValue
+_02057F8C: .word memset
thumb_func_start FUN_02057F90
FUN_02057F90: ; 0x02057F90
@@ -38313,7 +38313,7 @@ _0205859A:
mov r1, #0x0
add r2, r5, #0x0
add r4, r0, #0x0
- bl Call_FillMemWithValue
+ bl memset
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
- bl Call_FillMemWithValue
+ bl memset
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
- bl Call_FillMemWithValue
+ bl memset
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
- bl Call_FillMemWithValue
+ bl memset
add r0, r4, #0x0
pop {r3-r5, pc}
.balign 4
@@ -43558,7 +43558,7 @@ FUN_0205AAB0: ; 0x0205AAB0
push {r4-r6, lr}
add r5, r0, #0x0
add r4, r1, #0x0
- bl FUN_0201B9EC
+ bl rand_LC
add r6, r0, #0x0
add r0, r5, #0x0
add r1, r4, #0x0
@@ -43577,7 +43577,7 @@ FUN_0205AAD4: ; 0x0205AAD4
add r5, r1, #0x0
bl FUN_0205AAFC
add r4, r0, #0x0
- bl FUN_0201B9EC
+ bl rand_LC
add r6, r0, #0x0
add r0, r4, #0x0
add r1, r5, #0x0
@@ -47960,7 +47960,7 @@ _0205CA9A:
add r0, r4, #0x0
mov r1, #0x0
mov r2, #0x2c
- bl Call_FillMemWithValue
+ bl memset
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
- bl Call_FillMemWithValue
+ bl memset
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
- bl Call_FillMemWithValue
+ bl memset
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
- bl Call_FillMemWithValue
+ bl memset
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
- bl Call_FillMemWithValue
+ bl memset
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
- bl Call_FillMemWithValue
+ bl memset
str r5, [r4, #0x0]
ldr r0, [sp, #0x0]
add r1, r4, #0x4
@@ -50449,7 +50449,7 @@ _0205DDC2:
mov r6, #0x0
b _0205DDF2
_0205DDCA:
- bl FUN_0201B9EC
+ bl rand_LC
add r6, r0, #0x0
ldr r0, _0205DED0 ; =0x0000FFFF
add r1, r4, #0x0
@@ -50600,7 +50600,7 @@ _0205DEE0:
str r0, [r5, #0x2c]
cmp r0, #0x0
bne _0205DF24
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x29
lsl r1, r1, #0x4
bl _s32_div_f
@@ -51147,7 +51147,7 @@ _0205E2D6:
bne _0205E2DC
add r6, r7, #0x0
_0205E2DC:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x29
lsl r1, r1, #0x4
bl _s32_div_f
@@ -51320,7 +51320,7 @@ _0205E430:
mov r4, #0x0
b _0205E46A
_0205E43C:
- bl FUN_0201B9EC
+ bl rand_LC
add r4, r0, #0x0
lsl r1, r5, #0x10
ldr r0, _0205E47C ; =0x0000FFFF
@@ -53730,9 +53730,9 @@ _0205F5F8: .word 0x0000403D
FUN_0205F5FC: ; 0x0205F5FC
push {r3-r5, lr}
add r5, r0, #0x0
- bl FUN_0201B9EC
+ bl rand_LC
add r4, r0, #0x0
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r0, #0x0
lsl r1, r1, #0x10
add r0, r5, #0x0
@@ -53785,7 +53785,7 @@ FUN_0205F668: ; 0x0205F668
push {r4, lr}
bl FUN_020462AC
add r4, r0, #0x0
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x62
bl _s32_div_f
add r1, r1, #0x2
@@ -53977,7 +53977,7 @@ FUN_0205F7A0: ; 0x0205F7A0
add r0, r5, #0x0
mov r1, #0x0
lsl r2, r2, #0x6
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [sp, #0x0]
ldr r0, [r0, #0x38]
bl FUN_02055320
@@ -55519,7 +55519,7 @@ _020603F6:
bl FUN_0202AA74
cmp r0, #0x0
beq _02060430
- bl FUN_0201B9EC
+ bl rand_LC
lsl r0, r0, #0x4
lsr r6, r0, #0x10
cmp r6, #0x10
@@ -55720,7 +55720,7 @@ FUN_02060588: ; 0x02060588
lsl r0, r0, #0x2
ldr r4, [r7, r0]
_0206059C:
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, _020605D4 ; =0x000008D4
bl _s32_div_f
lsl r0, r0, #0x10
@@ -55792,7 +55792,7 @@ _02060628:
mov r6, #0x0
b _02060658
_02060630:
- bl FUN_0201B9EC
+ bl rand_LC
add r6, r0, #0x0
ldr r0, _02060684 ; =0x0000FFFF
add r1, r5, #0x0
@@ -55975,7 +55975,7 @@ FUN_02060790: ; 0x02060790
mov r1, #0x0
mov r2, #0x2c
add r4, r0, #0x0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0x0
str r0, [r4, #0x4]
str r5, [r4, #0x0]
@@ -57690,7 +57690,7 @@ FUN_02061498: ; 0x02061498
ldrb r3, [r4, #0x2]
add r0, r5, #0x0
bl FUN_02060D90
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, _020614F8 ; =0x00003334
bl _s32_div_f
lsl r0, r0, #0x10
@@ -58049,7 +58049,7 @@ FUN_02061798: ; 0x02061798
add r0, sp, #0x4
add r4, r1, #0x0
strb r2, [r0, #0x6]
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #0x3
bl _u32_div_f
add r0, sp, #0x4
@@ -58098,7 +58098,7 @@ FUN_020617D8: ; 0x020617D8
ldrb r3, [r4, #0x2]
add r0, r5, #0x0
bl FUN_02060E70
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, _02061830 ; =0x00005556
bl _s32_div_f
lsl r0, r0, #0x10
@@ -59218,7 +59218,7 @@ FUN_020620A0: ; 0x020620A0
_020620BE:
cmp r4, #0x1
ble _020620D0
- bl FUN_0201BA60
+ bl rand_MT
add r1, r4, #0x0
bl _u32_div_f
add r5, r1, #0x0
@@ -59252,7 +59252,7 @@ _020620F8:
beq _02062100
bl ErrorHandling
_02062100:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0xf1
lsl r1, r1, #0x4
bl _s32_div_f
@@ -59311,7 +59311,7 @@ FUN_02062170: ; 0x02062170
push {r3-r7, lr}
add r6, r0, #0x0
add r7, r1, #0x0
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, _02062234 ; =0x00003334
bl _s32_div_f
lsl r0, r0, #0x10
@@ -59355,7 +59355,7 @@ _020621BC: ; jump table (using 16-bit offset)
.short _0206222C - _020621BC - 2; case 10
.short _02062228 - _020621BC - 2; case 11
_020621D4:
- bl FUN_0201B9EC
+ bl rand_LC
lsl r0, r0, #0x2
lsr r4, r0, #0x10
cmp r4, #0x4
@@ -59496,7 +59496,7 @@ _020622C0: .word 0x020F78A6
FUN_020622C4: ; 0x020622C4
push {r4-r6, lr}
add r6, r1, #0x0
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0xf1
lsl r1, r1, #0x4
bl _s32_div_f
@@ -59510,7 +59510,7 @@ _020622E0:
blt _020622E6
add r5, r5, #0x1
_020622E6:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0xf1
lsl r1, r1, #0x4
bl _s32_div_f
@@ -59620,7 +59620,7 @@ _020623A4:
mov r5, #0x0
b _020623DE
_020623B0:
- bl FUN_0201B9EC
+ bl rand_LC
add r5, r0, #0x0
lsl r1, r4, #0x10
ldr r0, _020623F0 ; =0x0000FFFF
@@ -59741,7 +59741,7 @@ _02062496:
mov r5, #0x0
b _020624C6
_0206249E:
- bl FUN_0201B9EC
+ bl rand_LC
add r5, r0, #0x0
ldr r0, _02062504 ; =0x0000FFFF
add r1, r4, #0x0
@@ -59825,7 +59825,7 @@ FUN_0206252C: ; 0x0206252C
add r4, r0, #0x0
cmp r4, #0x1
ble _02062552
- bl FUN_0201BA60
+ bl rand_MT
add r1, r4, #0x0
bl _u32_div_f
add r5, r1, #0x0
@@ -63987,7 +63987,7 @@ _02064622:
add r0, r4, #0x0
mov r1, #0x0
add r2, r5, #0x0
- bl Call_FillMemWithValue
+ bl memset
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
- bl Call_FillMemWithValue
+ bl memset
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
- bl Call_FillMemWithValue
+ bl memset
pop {r4, pc}
.balign 4
@@ -65347,7 +65347,7 @@ FUN_02065054: ; 0x02065054
ldr r2, _0206506C ; =0x0000066C
mov r1, #0x0
add r4, r0, #0x0
- bl Call_FillMemWithValue
+ bl memset
add r0, r4, #0x0
pop {r4, pc}
nop
@@ -68773,9 +68773,9 @@ FUN_02066B64: ; 0x02066B64
ldr r0, [sp, #0x30]
cmp r0, #0x0
bne _02066B8E
- bl FUN_0201B9EC
+ bl rand_LC
add r4, r0, #0x0
- bl FUN_0201B9EC
+ bl rand_LC
lsl r0, r0, #0x10
orr r0, r4
str r0, [sp, #0x34]
@@ -68790,9 +68790,9 @@ _02066B8E:
ldr r7, _02066D84 ; =0xFFFF0000
add r6, r7, #0x0
_02066BA2:
- bl FUN_0201B9EC
+ bl rand_LC
add r4, r0, #0x0
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, [sp, #0x34]
lsl r0, r0, #0x10
add r3, r4, #0x0
@@ -68895,7 +68895,7 @@ _02066BDE:
bl FUN_02067960
b _02066D18
_02066C94:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x1f
str r0, [sp, #0x8]
and r0, r1
@@ -68924,7 +68924,7 @@ _02066C94:
mov r1, #0x48
add r2, sp, #0x4
bl FUN_02067960
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x1f
str r0, [sp, #0x8]
and r0, r1
@@ -69017,9 +69017,9 @@ FUN_02066D90: ; 0x02066D90
add r6, r0, #0x0
add r7, r1, #0x0
_02066D9E:
- bl FUN_0201B9EC
+ bl rand_LC
add r5, r0, #0x0
- bl FUN_0201B9EC
+ bl rand_LC
lsl r0, r0, #0x10
orr r5, r0
add r0, r5, #0x0
@@ -69060,9 +69060,9 @@ FUN_02066DD4: ; 0x02066DD4
sub r0, r0, #0x1
str r0, [sp, #0x20]
_02066DF4:
- bl FUN_0201B9EC
+ bl rand_LC
add r4, r0, #0x0
- bl FUN_0201B9EC
+ bl rand_LC
lsl r0, r0, #0x10
orr r4, r0
mov r3, #0x3
@@ -72714,7 +72714,7 @@ FUN_020688E8: ; 0x020688E8
str r2, [sp, #0x0]
cmp r6, #0x5
bne _02068900
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x1
tst r0, r1
bne _020689D4
@@ -72983,12 +72983,12 @@ FUN_02068AD8: ; 0x02068AD8
lsr r0, r0, #0x10
eor r0, r1
lsr r7, r0, #0x3
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x7
and r0, r1
lsl r0, r0, #0x10
lsr r6, r0, #0x10
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x7
and r0, r1
lsl r0, r0, #0x10
@@ -72999,7 +72999,7 @@ _02068B04:
bl FUN_0206A92C
tst r0, r7
beq _02068B34
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x1
tst r0, r1
beq _02068B26
@@ -73017,7 +73017,7 @@ _02068B26:
lsr r5, r0, #0x10
b _02068B56
_02068B34:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x1
tst r0, r1
beq _02068B56
@@ -75332,7 +75332,7 @@ FUN_02069C4C: ; 0x02069C4C
add r5, r0, #0x0
bl FUN_0206B9AC
add r6, r0, #0x0
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x1
lsl r1, r1, #0xe
cmp r0, r1
@@ -75345,7 +75345,7 @@ FUN_02069C4C: ; 0x02069C4C
cmp r0, r1
bne _02069CF2
_02069C70:
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r6, #0x0
bl _s32_div_f
add r0, r5, #0x0
@@ -75375,7 +75375,7 @@ _02069C70:
add r5, sp, #0x0
mov r6, #0x7
_02069CB8:
- bl FUN_0201B9EC
+ bl rand_LC
strb r0, [r5, #0x0]
ldrb r2, [r5, #0x0]
add r1, r2, #0x0
@@ -75527,7 +75527,7 @@ FUN_02069DC8: ; 0x02069DC8
add r5, r0, #0x0
bl FUN_0206B9AC
add r7, r0, #0x0
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x3
bl _s32_div_f
cmp r1, #0x0
@@ -75915,7 +75915,7 @@ FUN_0206A094: ; 0x0206A094
add r7, r2, #0x0
tst r0, r1
bne _0206A12E
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x64
bl _s32_div_f
add r4, r1, #0x0
@@ -77871,7 +77871,7 @@ FUN_0206AE0C: ; 0x0206AE0C
add r7, r1, #0x0
add r4, r0, #0x0
add r5, r2, #0x0
- bl FUN_0201B9D4
+ bl getseed_LC
lsl r6, r7, #0x2
str r0, [sp, #0x44]
add r0, r4, r6
@@ -77945,7 +77945,7 @@ _0206AE96:
add r0, r0, r2
add r7, r1, r0
add r0, r7, #0x0
- bl FUN_0201B9E0
+ bl seedr_LC
add r0, r4, r5
add r0, #0x29
ldrb r0, [r0, #0x0]
@@ -77953,7 +77953,7 @@ _0206AE96:
cmp r0, #0x0
ble _0206AECE
_0206AEBC:
- bl FUN_0201B9EC
+ bl rand_LC
add r7, r0, #0x0
add r0, r4, r5
add r0, #0x29
@@ -78029,7 +78029,7 @@ _0206AF3E:
add r0, r0, r2
add r7, r1, r0
add r0, r7, #0x0
- bl FUN_0201B9E0
+ bl seedr_LC
add r0, r4, r5
add r0, #0x29
ldrb r0, [r0, #0x0]
@@ -78037,7 +78037,7 @@ _0206AF3E:
cmp r0, #0x0
ble _0206AF76
_0206AF64:
- bl FUN_0201B9EC
+ bl rand_LC
add r7, r0, #0x0
add r0, r4, r5
add r0, #0x29
@@ -78122,7 +78122,7 @@ _0206AFFC:
add r0, r0, r2
add r0, r1, r0
str r0, [sp, #0x14]
- bl FUN_0201B9E0
+ bl seedr_LC
add r0, r4, r5
add r0, #0x29
ldrb r0, [r0, #0x0]
@@ -78130,7 +78130,7 @@ _0206AFFC:
cmp r0, #0x0
ble _0206B030
_0206B01E:
- bl FUN_0201B9EC
+ bl rand_LC
str r0, [sp, #0x14]
add r0, r4, r5
add r0, #0x29
@@ -78206,7 +78206,7 @@ _0206B0A2:
add r0, r0, r2
add r7, r1, r0
add r0, r7, #0x0
- bl FUN_0201B9E0
+ bl seedr_LC
add r0, r4, r5
add r0, #0x29
ldrb r0, [r0, #0x0]
@@ -78214,7 +78214,7 @@ _0206B0A2:
cmp r0, #0x0
ble _0206B0DA
_0206B0C8:
- bl FUN_0201B9EC
+ bl rand_LC
add r7, r0, #0x0
add r0, r4, r5
add r0, #0x29
@@ -78287,7 +78287,7 @@ _0206B156:
ldr r0, [sp, #0x40]
bl FUN_02016A18
ldr r0, [sp, #0x44]
- bl FUN_0201B9E0
+ bl seedr_LC
add sp, #0x50
pop {r3-r7, pc}
@@ -79377,7 +79377,7 @@ _0206B8DA:
add r0, r5, #0x0
mov r1, #0x0
lsl r2, r2, #0x4
- bl Call_FillMemWithValue
+ bl memset
mov r4, #0x0
str r4, [r5, #0x4]
str r6, [r5, #0x0]
@@ -84720,7 +84720,7 @@ FUN_0206E2F0: ; 0x0206E2F0
mov r1, #0x0
mov r2, #0x78
add r4, r0, #0x0
- bl Call_FillMemWithValue
+ bl memset
add r0, r4, #0x0
pop {r4, pc}
.balign 4
@@ -88490,7 +88490,7 @@ FUN_0206FE74: ; 0x0206FE74
ldr r2, _0206FF50 ; =0x00000B38
mov r1, #0x0
add r6, r0, #0x0
- bl Call_FillMemWithValue
+ bl memset
add r0, r4, #0x0
bl FUN_0200628C
ldr r1, _0206FF54 ; =0x000005A4
@@ -102727,7 +102727,7 @@ _020772FE:
mov r1, #0x0
lsl r2, r2, #0x4
add r4, r0, #0x0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0x12
bl FUN_02016B94
mov r1, #0x16
@@ -103277,7 +103277,7 @@ FUN_020777D4: ; 0x020777D4
ldr r0, [r5, #0x4]
cmp r0, #0x0
bne _020777FE
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x12
bl _s32_div_f
mov r0, #0x17
@@ -103289,7 +103289,7 @@ FUN_020777D4: ; 0x020777D4
_020777FE:
cmp r0, #0x1
bne _0207781A
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x12
bl _s32_div_f
mov r0, #0x17
@@ -107924,7 +107924,7 @@ FUN_02079C7C: ; 0x02079C7C
ldr r2, _02079DAC ; =0x0000069C
mov r1, #0x0
add r5, r0, #0x0
- bl Call_FillMemWithValue
+ bl memset
add r0, r4, #0x0
bl FUN_0200628C
mov r1, #0x93
@@ -122309,7 +122309,7 @@ FUN_02081214: ; 0x02081214
bl FUN_0201681C
bl FUN_020811D8
add r4, r0, #0x0
- bl FUN_0201B9D4
+ bl getseed_LC
mov r1, #0x67
lsl r1, r1, #0x6
str r0, [r4, r1]
@@ -122686,7 +122686,7 @@ _020814FE:
mov r0, #0x67
lsl r0, r0, #0x6
ldr r0, [r7, r0]
- bl FUN_0201B9E0
+ bl seedr_LC
add r0, r7, #0x0
bl FUN_0208120C
mov r0, #0x14
@@ -125265,27 +125265,27 @@ FUN_0208285C: ; 0x0208285C
push {r4, lr}
bl FUN_020126D8
add r4, r0, #0x0
- bl FUN_0201B9D4
+ bl getseed_LC
add r0, #0xa
mul r0, r4
lsl r0, r0, #0x10
lsr r0, r0, #0x10
- bl FUN_0201B9E0
+ bl seedr_LC
pop {r4, pc}
.balign 4
thumb_func_start FUN_02082878
FUN_02082878: ; 0x02082878
- ldr r3, _0208287C ; =FUN_0201B9EC
+ ldr r3, _0208287C ; =rand_LC
bx r3
.balign 4
-_0208287C: .word FUN_0201B9EC
+_0208287C: .word rand_LC
thumb_func_start FUN_02082880
FUN_02082880: ; 0x02082880
push {r4, lr}
add r4, r1, #0x0
- bl FUN_0201BA10
+ bl rand_ALT
str r0, [r4, #0x0]
lsr r0, r0, #0x10
lsl r0, r0, #0x10
@@ -126927,7 +126927,7 @@ FUN_02083454: ; 0x02083454
cmp r1, #0x1
bne _02083474
_02083464:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0xc
bl _s32_div_f
add sp, #0xc
@@ -126972,7 +126972,7 @@ _020834A6:
add r4, r4, #0x3
strb r0, [r2, r1]
_020834BE:
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r4, #0x0
bl _s32_div_f
add r0, sp, #0x0
@@ -128896,7 +128896,7 @@ _02084280:
blt _02084280
ldr r0, _020842AC ; =0x00000F6C
str r3, [r4, r0]
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0xf7
lsl r1, r1, #0x4
str r0, [r4, r1]
@@ -131946,7 +131946,7 @@ FUN_020859C0: ; 0x020859C0
ldr r2, _02085BA0 ; =0x0000042C
mov r1, #0x0
add r4, r0, #0x0
- bl Call_FillMemWithValue
+ bl memset
bl MOD62_0222E2BC
mov r1, #0x23
lsl r1, r1, #0x4
@@ -132596,7 +132596,7 @@ _02085F5E:
mov r1, #0x0
mov r2, #0x30
str r0, [r4, #0x8]
- bl Call_FillMemWithValue
+ bl memset
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]
- bl Call_FillMemWithValue
+ bl memset
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
- bl Call_FillMemWithValue
+ bl memset
add r0, r5, #0x0
bl FUN_0200628C
str r0, [r4, #0x0]
@@ -139455,7 +139455,7 @@ FUN_02089498: ; 0x02089498
mov r1, #0x0
mov r2, #0x38
add r4, r0, #0x0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0x58
str r0, [r4, #0x0]
mov r0, #0x0
@@ -140031,7 +140031,7 @@ FUN_02089960: ; 0x02089960
mov r1, #0x0
mov r2, #0x3c
add r4, r0, #0x0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0x58
str r0, [r4, #0x0]
mov r0, #0x0
diff --git a/arm9/data/rom2_2.s b/arm9/data/rom2_2.s
index 9eba6039..dcb48002 100644
--- a/arm9/data/rom2_2.s
+++ b/arm9/data/rom2_2.s
@@ -828,168 +828,168 @@ UNK_020EDB74: ; 0x020EDB74
.global UNK_020EDC7E
UNK_020EDC7E: ; 0x020EDC7E
- .byte 0x00, 0x00, 0xB7, 0x00, 0x6D, 0x01, 0x23, 0x02, 0xD9, 0x02, 0x8F, 0x03, 0x45, 0x04, 0xFB, 0x04
- .byte 0xB1, 0x05, 0x67, 0x06, 0x1D, 0x07, 0xD3, 0x07, 0x89, 0x08, 0x3F, 0x09, 0xF5, 0x09, 0xAB, 0x0A
- .byte 0x61, 0x0B, 0x17, 0x0C, 0xCD, 0x0C, 0x83, 0x0D, 0x39, 0x0E, 0xEF, 0x0E, 0xA5, 0x0F, 0x5C, 0x10
- .byte 0x12, 0x11, 0xC8, 0x11, 0x7E, 0x12, 0x34, 0x13, 0xEA, 0x13, 0xA0, 0x14, 0x56, 0x15, 0x0C, 0x16
- .byte 0xC2, 0x16, 0x78, 0x17, 0x2E, 0x18, 0xE4, 0x18, 0x9A, 0x19, 0x50, 0x1A, 0x06, 0x1B, 0xBC, 0x1B
- .byte 0x72, 0x1C, 0x28, 0x1D, 0xDE, 0x1D, 0x94, 0x1E, 0x4A, 0x1F, 0x00, 0x20, 0xB7, 0x20, 0x6D, 0x21
- .byte 0x23, 0x22, 0xD9, 0x22, 0x8F, 0x23, 0x45, 0x24, 0xFB, 0x24, 0xB1, 0x25, 0x67, 0x26, 0x1D, 0x27
- .byte 0xD3, 0x27, 0x89, 0x28, 0x3F, 0x29, 0xF5, 0x29, 0xAB, 0x2A, 0x61, 0x2B, 0x17, 0x2C, 0xCD, 0x2C
- .byte 0x83, 0x2D, 0x39, 0x2E, 0xEF, 0x2E, 0xA5, 0x2F, 0x5C, 0x30, 0x12, 0x31, 0xC8, 0x31, 0x7E, 0x32
- .byte 0x34, 0x33, 0xEA, 0x33, 0xA0, 0x34, 0x56, 0x35, 0x0C, 0x36, 0xC2, 0x36, 0x78, 0x37, 0x2E, 0x38
- .byte 0xE4, 0x38, 0x9A, 0x39, 0x50, 0x3A, 0x06, 0x3B, 0xBC, 0x3B, 0x72, 0x3C, 0x28, 0x3D, 0xDE, 0x3D
- .byte 0x94, 0x3E, 0x4A, 0x3F, 0x00, 0x40, 0xB7, 0x40, 0x6D, 0x41, 0x23, 0x42, 0xD9, 0x42, 0x8F, 0x43
- .byte 0x45, 0x44, 0xFB, 0x44, 0xB1, 0x45, 0x67, 0x46, 0x1D, 0x47, 0xD3, 0x47, 0x89, 0x48, 0x3F, 0x49
- .byte 0xF5, 0x49, 0xAB, 0x4A, 0x61, 0x4B, 0x17, 0x4C, 0xCD, 0x4C, 0x83, 0x4D, 0x39, 0x4E, 0xEF, 0x4E
- .byte 0xA5, 0x4F, 0x5C, 0x50, 0x12, 0x51, 0xC8, 0x51, 0x7E, 0x52, 0x34, 0x53, 0xEA, 0x53, 0xA0, 0x54
- .byte 0x56, 0x55, 0x0C, 0x56, 0xC2, 0x56, 0x78, 0x57, 0x2E, 0x58, 0xE4, 0x58, 0x9A, 0x59, 0x50, 0x5A
- .byte 0x06, 0x5B, 0xBC, 0x5B, 0x72, 0x5C, 0x28, 0x5D, 0xDE, 0x5D, 0x94, 0x5E, 0x4A, 0x5F, 0x00, 0x60
- .byte 0xB7, 0x60, 0x6D, 0x61, 0x23, 0x62, 0xD9, 0x62, 0x8F, 0x63, 0x45, 0x64, 0xFB, 0x64, 0xB1, 0x65
- .byte 0x67, 0x66, 0x1D, 0x67, 0xD3, 0x67, 0x89, 0x68, 0x3F, 0x69, 0xF5, 0x69, 0xAB, 0x6A, 0x61, 0x6B
- .byte 0x17, 0x6C, 0xCD, 0x6C, 0x83, 0x6D, 0x39, 0x6E, 0xEF, 0x6E, 0xA5, 0x6F, 0x5C, 0x70, 0x12, 0x71
- .byte 0xC8, 0x71, 0x7E, 0x72, 0x34, 0x73, 0xEA, 0x73, 0xA0, 0x74, 0x56, 0x75, 0x0C, 0x76, 0xC2, 0x76
- .byte 0x78, 0x77, 0x2E, 0x78, 0xE4, 0x78, 0x9A, 0x79, 0x50, 0x7A, 0x06, 0x7B, 0xBC, 0x7B, 0x72, 0x7C
- .byte 0x28, 0x7D, 0xDE, 0x7D, 0x94, 0x7E, 0x4A, 0x7F, 0x00, 0x80, 0xB7, 0x80, 0x6D, 0x81, 0x23, 0x82
- .byte 0xD9, 0x82, 0x8F, 0x83, 0x45, 0x84, 0xFB, 0x84, 0xB1, 0x85, 0x67, 0x86, 0x1D, 0x87, 0xD3, 0x87
- .byte 0x89, 0x88, 0x3F, 0x89, 0xF5, 0x89, 0xAB, 0x8A, 0x61, 0x8B, 0x17, 0x8C, 0xCD, 0x8C, 0x83, 0x8D
- .byte 0x39, 0x8E, 0xEF, 0x8E, 0xA5, 0x8F, 0x5C, 0x90, 0x12, 0x91, 0xC8, 0x91, 0x7E, 0x92, 0x34, 0x93
- .byte 0xEA, 0x93, 0xA0, 0x94, 0x56, 0x95, 0x0C, 0x96, 0xC2, 0x96, 0x78, 0x97, 0x2E, 0x98, 0xE4, 0x98
- .byte 0x9A, 0x99, 0x50, 0x9A, 0x06, 0x9B, 0xBC, 0x9B, 0x72, 0x9C, 0x28, 0x9D, 0xDE, 0x9D, 0x94, 0x9E
- .byte 0x4A, 0x9F, 0x00, 0xA0, 0xB7, 0xA0, 0x6D, 0xA1, 0x23, 0xA2, 0xD9, 0xA2, 0x8F, 0xA3, 0x45, 0xA4
- .byte 0xFB, 0xA4, 0xB1, 0xA5, 0x67, 0xA6, 0x1D, 0xA7, 0xD3, 0xA7, 0x89, 0xA8, 0x3F, 0xA9, 0xF5, 0xA9
- .byte 0xAB, 0xAA, 0x61, 0xAB, 0x17, 0xAC, 0xCD, 0xAC, 0x83, 0xAD, 0x39, 0xAE, 0xEF, 0xAE, 0xA5, 0xAF
- .byte 0x5C, 0xB0, 0x12, 0xB1, 0xC8, 0xB1, 0x7E, 0xB2, 0x34, 0xB3, 0xEA, 0xB3, 0xA0, 0xB4, 0x56, 0xB5
- .byte 0x0C, 0xB6, 0xC2, 0xB6, 0x78, 0xB7, 0x2E, 0xB8, 0xE4, 0xB8, 0x9A, 0xB9, 0x50, 0xBA, 0x06, 0xBB
- .byte 0xBC, 0xBB, 0x72, 0xBC, 0x28, 0xBD, 0xDE, 0xBD, 0x94, 0xBE, 0x4A, 0xBF, 0x00, 0xC0, 0xB7, 0xC0
- .byte 0x6D, 0xC1, 0x23, 0xC2, 0xD9, 0xC2, 0x8F, 0xC3, 0x45, 0xC4, 0xFB, 0xC4, 0xB1, 0xC5, 0x67, 0xC6
- .byte 0x1D, 0xC7, 0xD3, 0xC7, 0x89, 0xC8, 0x3F, 0xC9, 0xF5, 0xC9, 0xAB, 0xCA, 0x61, 0xCB, 0x17, 0xCC
- .byte 0xCD, 0xCC, 0x83, 0xCD, 0x39, 0xCE, 0xEF, 0xCE, 0xA5, 0xCF, 0x5C, 0xD0, 0x12, 0xD1, 0xC8, 0xD1
- .byte 0x7E, 0xD2, 0x34, 0xD3, 0xEA, 0xD3, 0xA0, 0xD4, 0x56, 0xD5, 0x0C, 0xD6, 0xC2, 0xD6, 0x78, 0xD7
- .byte 0x2E, 0xD8, 0xE4, 0xD8, 0x9A, 0xD9, 0x50, 0xDA, 0x06, 0xDB, 0xBC, 0xDB, 0x72, 0xDC, 0x28, 0xDD
- .byte 0xDE, 0xDD, 0x94, 0xDE, 0x4A, 0xDF, 0x00, 0xE0, 0xB7, 0xE0, 0x6D, 0xE1, 0x23, 0xE2, 0xD9, 0xE2
- .byte 0x8F, 0xE3, 0x45, 0xE4, 0xFB, 0xE4, 0xB1, 0xE5, 0x67, 0xE6, 0x1D, 0xE7, 0xD3, 0xE7, 0x89, 0xE8
- .byte 0x3F, 0xE9, 0xF5, 0xE9, 0xAB, 0xEA, 0x61, 0xEB, 0x17, 0xEC, 0xCD, 0xEC, 0x83, 0xED, 0x39, 0xEE
- .byte 0xEF, 0xEE, 0xA5, 0xEF, 0x5C, 0xF0, 0x12, 0xF1, 0xC8, 0xF1, 0x7E, 0xF2, 0x34, 0xF3, 0xEA, 0xF3
- .byte 0xA0, 0xF4, 0x56, 0xF5, 0x0C, 0xF6, 0xC2, 0xF6, 0x78, 0xF7, 0x2E, 0xF8, 0xE4, 0xF8, 0x9A, 0xF9
- .byte 0x50, 0xFA, 0x06, 0xFB, 0xBC, 0xFB, 0x72, 0xFC, 0x28, 0xFD, 0xDE, 0xFD, 0x94, 0xFE, 0x4A, 0xFF
- .byte 0x00, 0x00
-
+ .short 0x0000, 0x00B7, 0x016D, 0x0223, 0x02D9, 0x038F, 0x0445, 0x04FB
+ .short 0x05B1, 0x0667, 0x071D, 0x07D3, 0x0889, 0x093F, 0x09F5, 0x0AAB
+ .short 0x0B61, 0x0C17, 0x0CCD, 0x0D83, 0x0E39, 0x0EEF, 0x0FA5, 0x105C
+ .short 0x1112, 0x11C8, 0x127E, 0x1334, 0x13EA, 0x14A0, 0x1556, 0x160C
+ .short 0x16C2, 0x1778, 0x182E, 0x18E4, 0x199A, 0x1A50, 0x1B06, 0x1BBC
+ .short 0x1C72, 0x1D28, 0x1DDE, 0x1E94, 0x1F4A, 0x2000, 0x20B7, 0x216D
+ .short 0x2223, 0x22D9, 0x238F, 0x2445, 0x24FB, 0x25B1, 0x2667, 0x271D
+ .short 0x27D3, 0x2889, 0x293F, 0x29F5, 0x2AAB, 0x2B61, 0x2C17, 0x2CCD
+ .short 0x2D83, 0x2E39, 0x2EEF, 0x2FA5, 0x305C, 0x3112, 0x31C8, 0x327E
+ .short 0x3334, 0x33EA, 0x34A0, 0x3556, 0x360C, 0x36C2, 0x3778, 0x382E
+ .short 0x38E4, 0x399A, 0x3A50, 0x3B06, 0x3BBC, 0x3C72, 0x3D28, 0x3DDE
+ .short 0x3E94, 0x3F4A, 0x4000, 0x40B7, 0x416D, 0x4223, 0x42D9, 0x438F
+ .short 0x4445, 0x44FB, 0x45B1, 0x4667, 0x471D, 0x47D3, 0x4889, 0x493F
+ .short 0x49F5, 0x4AAB, 0x4B61, 0x4C17, 0x4CCD, 0x4D83, 0x4E39, 0x4EEF
+ .short 0x4FA5, 0x505C, 0x5112, 0x51C8, 0x527E, 0x5334, 0x53EA, 0x54A0
+ .short 0x5556, 0x560C, 0x56C2, 0x5778, 0x582E, 0x58E4, 0x599A, 0x5A50
+ .short 0x5B06, 0x5BBC, 0x5C72, 0x5D28, 0x5DDE, 0x5E94, 0x5F4A, 0x6000
+ .short 0x60B7, 0x616D, 0x6223, 0x62D9, 0x638F, 0x6445, 0x64FB, 0x65B1
+ .short 0x6667, 0x671D, 0x67D3, 0x6889, 0x693F, 0x69F5, 0x6AAB, 0x6B61
+ .short 0x6C17, 0x6CCD, 0x6D83, 0x6E39, 0x6EEF, 0x6FA5, 0x705C, 0x7112
+ .short 0x71C8, 0x727E, 0x7334, 0x73EA, 0x74A0, 0x7556, 0x760C, 0x76C2
+ .short 0x7778, 0x782E, 0x78E4, 0x799A, 0x7A50, 0x7B06, 0x7BBC, 0x7C72
+ .short 0x7D28, 0x7DDE, 0x7E94, 0x7F4A, 0x8000, 0x80B7, 0x816D, 0x8223
+ .short 0x82D9, 0x838F, 0x8445, 0x84FB, 0x85B1, 0x8667, 0x871D, 0x87D3
+ .short 0x8889, 0x893F, 0x89F5, 0x8AAB, 0x8B61, 0x8C17, 0x8CCD, 0x8D83
+ .short 0x8E39, 0x8EEF, 0x8FA5, 0x905C, 0x9112, 0x91C8, 0x927E, 0x9334
+ .short 0x93EA, 0x94A0, 0x9556, 0x960C, 0x96C2, 0x9778, 0x982E, 0x98E4
+ .short 0x999A, 0x9A50, 0x9B06, 0x9BBC, 0x9C72, 0x9D28, 0x9DDE, 0x9E94
+ .short 0x9F4A, 0xA000, 0xA0B7, 0xA16D, 0xA223, 0xA2D9, 0xA38F, 0xA445
+ .short 0xA4FB, 0xA5B1, 0xA667, 0xA71D, 0xA7D3, 0xA889, 0xA93F, 0xA9F5
+ .short 0xAAAB, 0xAB61, 0xAC17, 0xACCD, 0xAD83, 0xAE39, 0xAEEF, 0xAFA5
+ .short 0xB05C, 0xB112, 0xB1C8, 0xB27E, 0xB334, 0xB3EA, 0xB4A0, 0xB556
+ .short 0xB60C, 0xB6C2, 0xB778, 0xB82E, 0xB8E4, 0xB99A, 0xBA50, 0xBB06
+ .short 0xBBBC, 0xBC72, 0xBD28, 0xBDDE, 0xBE94, 0xBF4A, 0xC000, 0xC0B7
+ .short 0xC16D, 0xC223, 0xC2D9, 0xC38F, 0xC445, 0xC4FB, 0xC5B1, 0xC667
+ .short 0xC71D, 0xC7D3, 0xC889, 0xC93F, 0xC9F5, 0xCAAB, 0xCB61, 0xCC17
+ .short 0xCCCD, 0xCD83, 0xCE39, 0xCEEF, 0xCFA5, 0xD05C, 0xD112, 0xD1C8
+ .short 0xD27E, 0xD334, 0xD3EA, 0xD4A0, 0xD556, 0xD60C, 0xD6C2, 0xD778
+ .short 0xD82E, 0xD8E4, 0xD99A, 0xDA50, 0xDB06, 0xDBBC, 0xDC72, 0xDD28
+ .short 0xDDDE, 0xDE94, 0xDF4A, 0xE000, 0xE0B7, 0xE16D, 0xE223, 0xE2D9
+ .short 0xE38F, 0xE445, 0xE4FB, 0xE5B1, 0xE667, 0xE71D, 0xE7D3, 0xE889
+ .short 0xE93F, 0xE9F5, 0xEAAB, 0xEB61, 0xEC17, 0xECCD, 0xED83, 0xEE39
+ .short 0xEEEF, 0xEFA5, 0xF05C, 0xF112, 0xF1C8, 0xF27E, 0xF334, 0xF3EA
+ .short 0xF4A0, 0xF556, 0xF60C, 0xF6C2, 0xF778, 0xF82E, 0xF8E4, 0xF99A
+ .short 0xFA50, 0xFB06, 0xFBBC, 0xFC72, 0xFD28, 0xFDDE, 0xFE94, 0xFF4A
+
+ .balign 4, 0
.global UNK_020EDF50
UNK_020EDF50: ; 0x020EDF50
- .byte 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x8F, 0x00, 0x00, 0x00, 0xD6, 0x00, 0x00, 0x00
- .byte 0x1E, 0x01, 0x00, 0x00, 0x65, 0x01, 0x00, 0x00, 0xAC, 0x01, 0x00, 0x00, 0xF3, 0x01, 0x00, 0x00
- .byte 0x3A, 0x02, 0x00, 0x00, 0x81, 0x02, 0x00, 0x00, 0xC7, 0x02, 0x00, 0x00, 0x0E, 0x03, 0x00, 0x00
- .byte 0x54, 0x03, 0x00, 0x00, 0x99, 0x03, 0x00, 0x00, 0xDF, 0x03, 0x00, 0x00, 0x24, 0x04, 0x00, 0x00
- .byte 0x69, 0x04, 0x00, 0x00, 0xAE, 0x04, 0x00, 0x00, 0xF2, 0x04, 0x00, 0x00, 0x36, 0x05, 0x00, 0x00
- .byte 0x79, 0x05, 0x00, 0x00, 0xBC, 0x05, 0x00, 0x00, 0xFE, 0x05, 0x00, 0x00, 0x40, 0x06, 0x00, 0x00
- .byte 0x82, 0x06, 0x00, 0x00, 0xC3, 0x06, 0x00, 0x00, 0x04, 0x07, 0x00, 0x00, 0x44, 0x07, 0x00, 0x00
- .byte 0x83, 0x07, 0x00, 0x00, 0xC2, 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x3E, 0x08, 0x00, 0x00
- .byte 0x7B, 0x08, 0x00, 0x00, 0xB7, 0x08, 0x00, 0x00, 0xF2, 0x08, 0x00, 0x00, 0x2D, 0x09, 0x00, 0x00
- .byte 0x68, 0x09, 0x00, 0x00, 0xA1, 0x09, 0x00, 0x00, 0xDA, 0x09, 0x00, 0x00, 0x12, 0x0A, 0x00, 0x00
- .byte 0x49, 0x0A, 0x00, 0x00, 0x7F, 0x0A, 0x00, 0x00, 0xB5, 0x0A, 0x00, 0x00, 0xE9, 0x0A, 0x00, 0x00
- .byte 0x1D, 0x0B, 0x00, 0x00, 0x50, 0x0B, 0x00, 0x00, 0x82, 0x0B, 0x00, 0x00, 0xB4, 0x0B, 0x00, 0x00
- .byte 0xE4, 0x0B, 0x00, 0x00, 0x13, 0x0C, 0x00, 0x00, 0x42, 0x0C, 0x00, 0x00, 0x6F, 0x0C, 0x00, 0x00
- .byte 0x9C, 0x0C, 0x00, 0x00, 0xC7, 0x0C, 0x00, 0x00, 0xF2, 0x0C, 0x00, 0x00, 0x1B, 0x0D, 0x00, 0x00
- .byte 0x44, 0x0D, 0x00, 0x00, 0x6B, 0x0D, 0x00, 0x00, 0x92, 0x0D, 0x00, 0x00, 0xB7, 0x0D, 0x00, 0x00
- .byte 0xDB, 0x0D, 0x00, 0x00, 0xFE, 0x0D, 0x00, 0x00, 0x21, 0x0E, 0x00, 0x00, 0x42, 0x0E, 0x00, 0x00
- .byte 0x61, 0x0E, 0x00, 0x00, 0x80, 0x0E, 0x00, 0x00, 0x9E, 0x0E, 0x00, 0x00, 0xBA, 0x0E, 0x00, 0x00
- .byte 0xD6, 0x0E, 0x00, 0x00, 0xF0, 0x0E, 0x00, 0x00, 0x09, 0x0F, 0x00, 0x00, 0x21, 0x0F, 0x00, 0x00
- .byte 0x38, 0x0F, 0x00, 0x00, 0x4D, 0x0F, 0x00, 0x00, 0x61, 0x0F, 0x00, 0x00, 0x74, 0x0F, 0x00, 0x00
- .byte 0x86, 0x0F, 0x00, 0x00, 0x97, 0x0F, 0x00, 0x00, 0xA6, 0x0F, 0x00, 0x00, 0xB5, 0x0F, 0x00, 0x00
- .byte 0xC2, 0x0F, 0x00, 0x00, 0xCE, 0x0F, 0x00, 0x00, 0xD8, 0x0F, 0x00, 0x00, 0xE1, 0x0F, 0x00, 0x00
- .byte 0xEA, 0x0F, 0x00, 0x00, 0xF0, 0x0F, 0x00, 0x00, 0xF6, 0x0F, 0x00, 0x00, 0xFA, 0x0F, 0x00, 0x00
- .byte 0xFE, 0x0F, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00
- .byte 0xFE, 0x0F, 0x00, 0x00, 0xFA, 0x0F, 0x00, 0x00, 0xF6, 0x0F, 0x00, 0x00, 0xF0, 0x0F, 0x00, 0x00
- .byte 0xEA, 0x0F, 0x00, 0x00, 0xE1, 0x0F, 0x00, 0x00, 0xD8, 0x0F, 0x00, 0x00, 0xCE, 0x0F, 0x00, 0x00
- .byte 0xC2, 0x0F, 0x00, 0x00, 0xB5, 0x0F, 0x00, 0x00, 0xA6, 0x0F, 0x00, 0x00, 0x97, 0x0F, 0x00, 0x00
- .byte 0x86, 0x0F, 0x00, 0x00, 0x74, 0x0F, 0x00, 0x00, 0x61, 0x0F, 0x00, 0x00, 0x4D, 0x0F, 0x00, 0x00
- .byte 0x38, 0x0F, 0x00, 0x00, 0x21, 0x0F, 0x00, 0x00, 0x09, 0x0F, 0x00, 0x00, 0xF0, 0x0E, 0x00, 0x00
- .byte 0xD6, 0x0E, 0x00, 0x00, 0xBA, 0x0E, 0x00, 0x00, 0x9E, 0x0E, 0x00, 0x00, 0x80, 0x0E, 0x00, 0x00
- .byte 0x61, 0x0E, 0x00, 0x00, 0x42, 0x0E, 0x00, 0x00, 0x21, 0x0E, 0x00, 0x00, 0xFE, 0x0D, 0x00, 0x00
- .byte 0xDB, 0x0D, 0x00, 0x00, 0xB7, 0x0D, 0x00, 0x00, 0x92, 0x0D, 0x00, 0x00, 0x6B, 0x0D, 0x00, 0x00
- .byte 0x44, 0x0D, 0x00, 0x00, 0x1B, 0x0D, 0x00, 0x00, 0xF2, 0x0C, 0x00, 0x00, 0xC7, 0x0C, 0x00, 0x00
- .byte 0x9C, 0x0C, 0x00, 0x00, 0x6F, 0x0C, 0x00, 0x00, 0x42, 0x0C, 0x00, 0x00, 0x13, 0x0C, 0x00, 0x00
- .byte 0xE4, 0x0B, 0x00, 0x00, 0xB4, 0x0B, 0x00, 0x00, 0x82, 0x0B, 0x00, 0x00, 0x50, 0x0B, 0x00, 0x00
- .byte 0x1D, 0x0B, 0x00, 0x00, 0xE9, 0x0A, 0x00, 0x00, 0xB5, 0x0A, 0x00, 0x00, 0x7F, 0x0A, 0x00, 0x00
- .byte 0x49, 0x0A, 0x00, 0x00, 0x12, 0x0A, 0x00, 0x00, 0xDA, 0x09, 0x00, 0x00, 0xA1, 0x09, 0x00, 0x00
- .byte 0x68, 0x09, 0x00, 0x00, 0x2D, 0x09, 0x00, 0x00, 0xF2, 0x08, 0x00, 0x00, 0xB7, 0x08, 0x00, 0x00
- .byte 0x7B, 0x08, 0x00, 0x00, 0x3E, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0xC2, 0x07, 0x00, 0x00
- .byte 0x83, 0x07, 0x00, 0x00, 0x44, 0x07, 0x00, 0x00, 0x04, 0x07, 0x00, 0x00, 0xC3, 0x06, 0x00, 0x00
- .byte 0x82, 0x06, 0x00, 0x00, 0x40, 0x06, 0x00, 0x00, 0xFE, 0x05, 0x00, 0x00, 0xBC, 0x05, 0x00, 0x00
- .byte 0x79, 0x05, 0x00, 0x00, 0x36, 0x05, 0x00, 0x00, 0xF2, 0x04, 0x00, 0x00, 0xAE, 0x04, 0x00, 0x00
- .byte 0x69, 0x04, 0x00, 0x00, 0x24, 0x04, 0x00, 0x00, 0xDF, 0x03, 0x00, 0x00, 0x99, 0x03, 0x00, 0x00
- .byte 0x54, 0x03, 0x00, 0x00, 0x0E, 0x03, 0x00, 0x00, 0xC7, 0x02, 0x00, 0x00, 0x81, 0x02, 0x00, 0x00
- .byte 0x3A, 0x02, 0x00, 0x00, 0xF3, 0x01, 0x00, 0x00, 0xAC, 0x01, 0x00, 0x00, 0x65, 0x01, 0x00, 0x00
- .byte 0x1E, 0x01, 0x00, 0x00, 0xD6, 0x00, 0x00, 0x00, 0x8F, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0xB9, 0xFF, 0xFF, 0xFF, 0x71, 0xFF, 0xFF, 0xFF, 0x2A, 0xFF, 0xFF, 0xFF
- .byte 0xE2, 0xFE, 0xFF, 0xFF, 0x9B, 0xFE, 0xFF, 0xFF, 0x54, 0xFE, 0xFF, 0xFF, 0x0D, 0xFE, 0xFF, 0xFF
- .byte 0xC6, 0xFD, 0xFF, 0xFF, 0x7F, 0xFD, 0xFF, 0xFF, 0x39, 0xFD, 0xFF, 0xFF, 0xF2, 0xFC, 0xFF, 0xFF
- .byte 0xAC, 0xFC, 0xFF, 0xFF, 0x67, 0xFC, 0xFF, 0xFF, 0x21, 0xFC, 0xFF, 0xFF, 0xDC, 0xFB, 0xFF, 0xFF
- .byte 0x97, 0xFB, 0xFF, 0xFF, 0x52, 0xFB, 0xFF, 0xFF, 0x0E, 0xFB, 0xFF, 0xFF, 0xCA, 0xFA, 0xFF, 0xFF
- .byte 0x87, 0xFA, 0xFF, 0xFF, 0x44, 0xFA, 0xFF, 0xFF, 0x02, 0xFA, 0xFF, 0xFF, 0xC0, 0xF9, 0xFF, 0xFF
- .byte 0x7E, 0xF9, 0xFF, 0xFF, 0x3D, 0xF9, 0xFF, 0xFF, 0xFC, 0xF8, 0xFF, 0xFF, 0xBC, 0xF8, 0xFF, 0xFF
- .byte 0x7D, 0xF8, 0xFF, 0xFF, 0x3E, 0xF8, 0xFF, 0xFF, 0x00, 0xF8, 0xFF, 0xFF, 0xC2, 0xF7, 0xFF, 0xFF
- .byte 0x85, 0xF7, 0xFF, 0xFF, 0x49, 0xF7, 0xFF, 0xFF, 0x0E, 0xF7, 0xFF, 0xFF, 0xD3, 0xF6, 0xFF, 0xFF
- .byte 0x98, 0xF6, 0xFF, 0xFF, 0x5F, 0xF6, 0xFF, 0xFF, 0x26, 0xF6, 0xFF, 0xFF, 0xEE, 0xF5, 0xFF, 0xFF
- .byte 0xB7, 0xF5, 0xFF, 0xFF, 0x81, 0xF5, 0xFF, 0xFF, 0x4B, 0xF5, 0xFF, 0xFF, 0x17, 0xF5, 0xFF, 0xFF
- .byte 0xE3, 0xF4, 0xFF, 0xFF, 0xB0, 0xF4, 0xFF, 0xFF, 0x7E, 0xF4, 0xFF, 0xFF, 0x4C, 0xF4, 0xFF, 0xFF
- .byte 0x1C, 0xF4, 0xFF, 0xFF, 0xED, 0xF3, 0xFF, 0xFF, 0xBE, 0xF3, 0xFF, 0xFF, 0x91, 0xF3, 0xFF, 0xFF
- .byte 0x64, 0xF3, 0xFF, 0xFF, 0x39, 0xF3, 0xFF, 0xFF, 0x0E, 0xF3, 0xFF, 0xFF, 0xE5, 0xF2, 0xFF, 0xFF
- .byte 0xBC, 0xF2, 0xFF, 0xFF, 0x95, 0xF2, 0xFF, 0xFF, 0x6E, 0xF2, 0xFF, 0xFF, 0x49, 0xF2, 0xFF, 0xFF
- .byte 0x25, 0xF2, 0xFF, 0xFF, 0x02, 0xF2, 0xFF, 0xFF, 0xDF, 0xF1, 0xFF, 0xFF, 0xBE, 0xF1, 0xFF, 0xFF
- .byte 0x9F, 0xF1, 0xFF, 0xFF, 0x80, 0xF1, 0xFF, 0xFF, 0x62, 0xF1, 0xFF, 0xFF, 0x46, 0xF1, 0xFF, 0xFF
- .byte 0x2A, 0xF1, 0xFF, 0xFF, 0x10, 0xF1, 0xFF, 0xFF, 0xF7, 0xF0, 0xFF, 0xFF, 0xDF, 0xF0, 0xFF, 0xFF
- .byte 0xC8, 0xF0, 0xFF, 0xFF, 0xB3, 0xF0, 0xFF, 0xFF, 0x9F, 0xF0, 0xFF, 0xFF, 0x8C, 0xF0, 0xFF, 0xFF
- .byte 0x7A, 0xF0, 0xFF, 0xFF, 0x69, 0xF0, 0xFF, 0xFF, 0x5A, 0xF0, 0xFF, 0xFF, 0x4B, 0xF0, 0xFF, 0xFF
- .byte 0x3E, 0xF0, 0xFF, 0xFF, 0x32, 0xF0, 0xFF, 0xFF, 0x28, 0xF0, 0xFF, 0xFF, 0x1F, 0xF0, 0xFF, 0xFF
- .byte 0x16, 0xF0, 0xFF, 0xFF, 0x10, 0xF0, 0xFF, 0xFF, 0x0A, 0xF0, 0xFF, 0xFF, 0x06, 0xF0, 0xFF, 0xFF
- .byte 0x02, 0xF0, 0xFF, 0xFF, 0x01, 0xF0, 0xFF, 0xFF, 0x00, 0xF0, 0xFF, 0xFF, 0x01, 0xF0, 0xFF, 0xFF
- .byte 0x02, 0xF0, 0xFF, 0xFF, 0x06, 0xF0, 0xFF, 0xFF, 0x0A, 0xF0, 0xFF, 0xFF, 0x10, 0xF0, 0xFF, 0xFF
- .byte 0x16, 0xF0, 0xFF, 0xFF, 0x1F, 0xF0, 0xFF, 0xFF, 0x28, 0xF0, 0xFF, 0xFF, 0x32, 0xF0, 0xFF, 0xFF
- .byte 0x3E, 0xF0, 0xFF, 0xFF, 0x4B, 0xF0, 0xFF, 0xFF, 0x5A, 0xF0, 0xFF, 0xFF, 0x69, 0xF0, 0xFF, 0xFF
- .byte 0x7A, 0xF0, 0xFF, 0xFF, 0x8C, 0xF0, 0xFF, 0xFF, 0x9F, 0xF0, 0xFF, 0xFF, 0xB3, 0xF0, 0xFF, 0xFF
- .byte 0xC8, 0xF0, 0xFF, 0xFF, 0xDF, 0xF0, 0xFF, 0xFF, 0xF7, 0xF0, 0xFF, 0xFF, 0x10, 0xF1, 0xFF, 0xFF
- .byte 0x2A, 0xF1, 0xFF, 0xFF, 0x46, 0xF1, 0xFF, 0xFF, 0x62, 0xF1, 0xFF, 0xFF, 0x80, 0xF1, 0xFF, 0xFF
- .byte 0x9F, 0xF1, 0xFF, 0xFF, 0xBE, 0xF1, 0xFF, 0xFF, 0xDF, 0xF1, 0xFF, 0xFF, 0x02, 0xF2, 0xFF, 0xFF
- .byte 0x25, 0xF2, 0xFF, 0xFF, 0x49, 0xF2, 0xFF, 0xFF, 0x6E, 0xF2, 0xFF, 0xFF, 0x95, 0xF2, 0xFF, 0xFF
- .byte 0xBC, 0xF2, 0xFF, 0xFF, 0xE5, 0xF2, 0xFF, 0xFF, 0x0E, 0xF3, 0xFF, 0xFF, 0x39, 0xF3, 0xFF, 0xFF
- .byte 0x64, 0xF3, 0xFF, 0xFF, 0x91, 0xF3, 0xFF, 0xFF, 0xBE, 0xF3, 0xFF, 0xFF, 0xED, 0xF3, 0xFF, 0xFF
- .byte 0x1C, 0xF4, 0xFF, 0xFF, 0x4C, 0xF4, 0xFF, 0xFF, 0x7E, 0xF4, 0xFF, 0xFF, 0xB0, 0xF4, 0xFF, 0xFF
- .byte 0xE3, 0xF4, 0xFF, 0xFF, 0x17, 0xF5, 0xFF, 0xFF, 0x4B, 0xF5, 0xFF, 0xFF, 0x81, 0xF5, 0xFF, 0xFF
- .byte 0xB7, 0xF5, 0xFF, 0xFF, 0xEE, 0xF5, 0xFF, 0xFF, 0x26, 0xF6, 0xFF, 0xFF, 0x5F, 0xF6, 0xFF, 0xFF
- .byte 0x98, 0xF6, 0xFF, 0xFF, 0xD3, 0xF6, 0xFF, 0xFF, 0x0E, 0xF7, 0xFF, 0xFF, 0x49, 0xF7, 0xFF, 0xFF
- .byte 0x85, 0xF7, 0xFF, 0xFF, 0xC2, 0xF7, 0xFF, 0xFF, 0x00, 0xF8, 0xFF, 0xFF, 0x3E, 0xF8, 0xFF, 0xFF
- .byte 0x7D, 0xF8, 0xFF, 0xFF, 0xBC, 0xF8, 0xFF, 0xFF, 0xFC, 0xF8, 0xFF, 0xFF, 0x3D, 0xF9, 0xFF, 0xFF
- .byte 0x7E, 0xF9, 0xFF, 0xFF, 0xC0, 0xF9, 0xFF, 0xFF, 0x02, 0xFA, 0xFF, 0xFF, 0x44, 0xFA, 0xFF, 0xFF
- .byte 0x87, 0xFA, 0xFF, 0xFF, 0xCA, 0xFA, 0xFF, 0xFF, 0x0E, 0xFB, 0xFF, 0xFF, 0x52, 0xFB, 0xFF, 0xFF
- .byte 0x97, 0xFB, 0xFF, 0xFF, 0xDC, 0xFB, 0xFF, 0xFF, 0x21, 0xFC, 0xFF, 0xFF, 0x67, 0xFC, 0xFF, 0xFF
- .byte 0xAC, 0xFC, 0xFF, 0xFF, 0xF2, 0xFC, 0xFF, 0xFF, 0x39, 0xFD, 0xFF, 0xFF, 0x7F, 0xFD, 0xFF, 0xFF
- .byte 0xC6, 0xFD, 0xFF, 0xFF, 0x0D, 0xFE, 0xFF, 0xFF, 0x54, 0xFE, 0xFF, 0xFF, 0x9B, 0xFE, 0xFF, 0xFF
- .byte 0xE2, 0xFE, 0xFF, 0xFF, 0x2A, 0xFF, 0xFF, 0xFF, 0x71, 0xFF, 0xFF, 0xFF, 0xB9, 0xFF, 0xFF, 0xFF
- .byte 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x8F, 0x00, 0x00, 0x00, 0xD6, 0x00, 0x00, 0x00
- .byte 0x1E, 0x01, 0x00, 0x00, 0x65, 0x01, 0x00, 0x00, 0xAC, 0x01, 0x00, 0x00, 0xF3, 0x01, 0x00, 0x00
- .byte 0x3A, 0x02, 0x00, 0x00, 0x81, 0x02, 0x00, 0x00, 0xC7, 0x02, 0x00, 0x00, 0x0E, 0x03, 0x00, 0x00
- .byte 0x54, 0x03, 0x00, 0x00, 0x99, 0x03, 0x00, 0x00, 0xDF, 0x03, 0x00, 0x00, 0x24, 0x04, 0x00, 0x00
- .byte 0x69, 0x04, 0x00, 0x00, 0xAE, 0x04, 0x00, 0x00, 0xF2, 0x04, 0x00, 0x00, 0x36, 0x05, 0x00, 0x00
- .byte 0x79, 0x05, 0x00, 0x00, 0xBC, 0x05, 0x00, 0x00, 0xFE, 0x05, 0x00, 0x00, 0x40, 0x06, 0x00, 0x00
- .byte 0x82, 0x06, 0x00, 0x00, 0xC3, 0x06, 0x00, 0x00, 0x04, 0x07, 0x00, 0x00, 0x44, 0x07, 0x00, 0x00
- .byte 0x83, 0x07, 0x00, 0x00, 0xC2, 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x3E, 0x08, 0x00, 0x00
- .byte 0x7B, 0x08, 0x00, 0x00, 0xB7, 0x08, 0x00, 0x00, 0xF2, 0x08, 0x00, 0x00, 0x2D, 0x09, 0x00, 0x00
- .byte 0x68, 0x09, 0x00, 0x00, 0xA1, 0x09, 0x00, 0x00, 0xDA, 0x09, 0x00, 0x00, 0x12, 0x0A, 0x00, 0x00
- .byte 0x49, 0x0A, 0x00, 0x00, 0x7F, 0x0A, 0x00, 0x00, 0xB5, 0x0A, 0x00, 0x00, 0xE9, 0x0A, 0x00, 0x00
- .byte 0x1D, 0x0B, 0x00, 0x00, 0x50, 0x0B, 0x00, 0x00, 0x82, 0x0B, 0x00, 0x00, 0xB4, 0x0B, 0x00, 0x00
- .byte 0xE4, 0x0B, 0x00, 0x00, 0x13, 0x0C, 0x00, 0x00, 0x42, 0x0C, 0x00, 0x00, 0x6F, 0x0C, 0x00, 0x00
- .byte 0x9C, 0x0C, 0x00, 0x00, 0xC7, 0x0C, 0x00, 0x00, 0xF2, 0x0C, 0x00, 0x00, 0x1B, 0x0D, 0x00, 0x00
- .byte 0x44, 0x0D, 0x00, 0x00, 0x6B, 0x0D, 0x00, 0x00, 0x92, 0x0D, 0x00, 0x00, 0xB7, 0x0D, 0x00, 0x00
- .byte 0xDB, 0x0D, 0x00, 0x00, 0xFE, 0x0D, 0x00, 0x00, 0x21, 0x0E, 0x00, 0x00, 0x42, 0x0E, 0x00, 0x00
- .byte 0x61, 0x0E, 0x00, 0x00, 0x80, 0x0E, 0x00, 0x00, 0x9E, 0x0E, 0x00, 0x00, 0xBA, 0x0E, 0x00, 0x00
- .byte 0xD6, 0x0E, 0x00, 0x00, 0xF0, 0x0E, 0x00, 0x00, 0x09, 0x0F, 0x00, 0x00, 0x21, 0x0F, 0x00, 0x00
- .byte 0x38, 0x0F, 0x00, 0x00, 0x4D, 0x0F, 0x00, 0x00, 0x61, 0x0F, 0x00, 0x00, 0x74, 0x0F, 0x00, 0x00
- .byte 0x86, 0x0F, 0x00, 0x00, 0x97, 0x0F, 0x00, 0x00, 0xA6, 0x0F, 0x00, 0x00, 0xB5, 0x0F, 0x00, 0x00
- .byte 0xC2, 0x0F, 0x00, 0x00, 0xCE, 0x0F, 0x00, 0x00, 0xD8, 0x0F, 0x00, 0x00, 0xE1, 0x0F, 0x00, 0x00
- .byte 0xEA, 0x0F, 0x00, 0x00, 0xF0, 0x0F, 0x00, 0x00, 0xF6, 0x0F, 0x00, 0x00, 0xFA, 0x0F, 0x00, 0x00
- .byte 0xFE, 0x0F, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00
+ .word 0x00000000, 0x00000047, 0x0000008F, 0x000000D6
+ .word 0x0000011E, 0x00000165, 0x000001AC, 0x000001F3
+ .word 0x0000023A, 0x00000281, 0x000002C7, 0x0000030E
+ .word 0x00000354, 0x00000399, 0x000003DF, 0x00000424
+ .word 0x00000469, 0x000004AE, 0x000004F2, 0x00000536
+ .word 0x00000579, 0x000005BC, 0x000005FE, 0x00000640
+ .word 0x00000682, 0x000006C3, 0x00000704, 0x00000744
+ .word 0x00000783, 0x000007C2, 0x00000800, 0x0000083E
+ .word 0x0000087B, 0x000008B7, 0x000008F2, 0x0000092D
+ .word 0x00000968, 0x000009A1, 0x000009DA, 0x00000A12
+ .word 0x00000A49, 0x00000A7F, 0x00000AB5, 0x00000AE9
+ .word 0x00000B1D, 0x00000B50, 0x00000B82, 0x00000BB4
+ .word 0x00000BE4, 0x00000C13, 0x00000C42, 0x00000C6F
+ .word 0x00000C9C, 0x00000CC7, 0x00000CF2, 0x00000D1B
+ .word 0x00000D44, 0x00000D6B, 0x00000D92, 0x00000DB7
+ .word 0x00000DDB, 0x00000DFE, 0x00000E21, 0x00000E42
+ .word 0x00000E61, 0x00000E80, 0x00000E9E, 0x00000EBA
+ .word 0x00000ED6, 0x00000EF0, 0x00000F09, 0x00000F21
+ .word 0x00000F38, 0x00000F4D, 0x00000F61, 0x00000F74
+ .word 0x00000F86, 0x00000F97, 0x00000FA6, 0x00000FB5
+ .word 0x00000FC2, 0x00000FCE, 0x00000FD8, 0x00000FE1
+ .word 0x00000FEA, 0x00000FF0, 0x00000FF6, 0x00000FFA
+ .word 0x00000FFE, 0x00000FFF, 0x00001000, 0x00000FFF
+ .word 0x00000FFE, 0x00000FFA, 0x00000FF6, 0x00000FF0
+ .word 0x00000FEA, 0x00000FE1, 0x00000FD8, 0x00000FCE
+ .word 0x00000FC2, 0x00000FB5, 0x00000FA6, 0x00000F97
+ .word 0x00000F86, 0x00000F74, 0x00000F61, 0x00000F4D
+ .word 0x00000F38, 0x00000F21, 0x00000F09, 0x00000EF0
+ .word 0x00000ED6, 0x00000EBA, 0x00000E9E, 0x00000E80
+ .word 0x00000E61, 0x00000E42, 0x00000E21, 0x00000DFE
+ .word 0x00000DDB, 0x00000DB7, 0x00000D92, 0x00000D6B
+ .word 0x00000D44, 0x00000D1B, 0x00000CF2, 0x00000CC7
+ .word 0x00000C9C, 0x00000C6F, 0x00000C42, 0x00000C13
+ .word 0x00000BE4, 0x00000BB4, 0x00000B82, 0x00000B50
+ .word 0x00000B1D, 0x00000AE9, 0x00000AB5, 0x00000A7F
+ .word 0x00000A49, 0x00000A12, 0x000009DA, 0x000009A1
+ .word 0x00000968, 0x0000092D, 0x000008F2, 0x000008B7
+ .word 0x0000087B, 0x0000083E, 0x00000800, 0x000007C2
+ .word 0x00000783, 0x00000744, 0x00000704, 0x000006C3
+ .word 0x00000682, 0x00000640, 0x000005FE, 0x000005BC
+ .word 0x00000579, 0x00000536, 0x000004F2, 0x000004AE
+ .word 0x00000469, 0x00000424, 0x000003DF, 0x00000399
+ .word 0x00000354, 0x0000030E, 0x000002C7, 0x00000281
+ .word 0x0000023A, 0x000001F3, 0x000001AC, 0x00000165
+ .word 0x0000011E, 0x000000D6, 0x0000008F, 0x00000047
+ .word 0x00000000, 0xFFFFFFB9, 0xFFFFFF71, 0xFFFFFF2A
+ .word 0xFFFFFEE2, 0xFFFFFE9B, 0xFFFFFE54, 0xFFFFFE0D
+ .word 0xFFFFFDC6, 0xFFFFFD7F, 0xFFFFFD39, 0xFFFFFCF2
+ .word 0xFFFFFCAC, 0xFFFFFC67, 0xFFFFFC21, 0xFFFFFBDC
+ .word 0xFFFFFB97, 0xFFFFFB52, 0xFFFFFB0E, 0xFFFFFACA
+ .word 0xFFFFFA87, 0xFFFFFA44, 0xFFFFFA02, 0xFFFFF9C0
+ .word 0xFFFFF97E, 0xFFFFF93D, 0xFFFFF8FC, 0xFFFFF8BC
+ .word 0xFFFFF87D, 0xFFFFF83E, 0xFFFFF800, 0xFFFFF7C2
+ .word 0xFFFFF785, 0xFFFFF749, 0xFFFFF70E, 0xFFFFF6D3
+ .word 0xFFFFF698, 0xFFFFF65F, 0xFFFFF626, 0xFFFFF5EE
+ .word 0xFFFFF5B7, 0xFFFFF581, 0xFFFFF54B, 0xFFFFF517
+ .word 0xFFFFF4E3, 0xFFFFF4B0, 0xFFFFF47E, 0xFFFFF44C
+ .word 0xFFFFF41C, 0xFFFFF3ED, 0xFFFFF3BE, 0xFFFFF391
+ .word 0xFFFFF364, 0xFFFFF339, 0xFFFFF30E, 0xFFFFF2E5
+ .word 0xFFFFF2BC, 0xFFFFF295, 0xFFFFF26E, 0xFFFFF249
+ .word 0xFFFFF225, 0xFFFFF202, 0xFFFFF1DF, 0xFFFFF1BE
+ .word 0xFFFFF19F, 0xFFFFF180, 0xFFFFF162, 0xFFFFF146
+ .word 0xFFFFF12A, 0xFFFFF110, 0xFFFFF0F7, 0xFFFFF0DF
+ .word 0xFFFFF0C8, 0xFFFFF0B3, 0xFFFFF09F, 0xFFFFF08C
+ .word 0xFFFFF07A, 0xFFFFF069, 0xFFFFF05A, 0xFFFFF04B
+ .word 0xFFFFF03E, 0xFFFFF032, 0xFFFFF028, 0xFFFFF01F
+ .word 0xFFFFF016, 0xFFFFF010, 0xFFFFF00A, 0xFFFFF006
+ .word 0xFFFFF002, 0xFFFFF001, 0xFFFFF000, 0xFFFFF001
+ .word 0xFFFFF002, 0xFFFFF006, 0xFFFFF00A, 0xFFFFF010
+ .word 0xFFFFF016, 0xFFFFF01F, 0xFFFFF028, 0xFFFFF032
+ .word 0xFFFFF03E, 0xFFFFF04B, 0xFFFFF05A, 0xFFFFF069
+ .word 0xFFFFF07A, 0xFFFFF08C, 0xFFFFF09F, 0xFFFFF0B3
+ .word 0xFFFFF0C8, 0xFFFFF0DF, 0xFFFFF0F7, 0xFFFFF110
+ .word 0xFFFFF12A, 0xFFFFF146, 0xFFFFF162, 0xFFFFF180
+ .word 0xFFFFF19F, 0xFFFFF1BE, 0xFFFFF1DF, 0xFFFFF202
+ .word 0xFFFFF225, 0xFFFFF249, 0xFFFFF26E, 0xFFFFF295
+ .word 0xFFFFF2BC, 0xFFFFF2E5, 0xFFFFF30E, 0xFFFFF339
+ .word 0xFFFFF364, 0xFFFFF391, 0xFFFFF3BE, 0xFFFFF3ED
+ .word 0xFFFFF41C, 0xFFFFF44C, 0xFFFFF47E, 0xFFFFF4B0
+ .word 0xFFFFF4E3, 0xFFFFF517, 0xFFFFF54B, 0xFFFFF581
+ .word 0xFFFFF5B7, 0xFFFFF5EE, 0xFFFFF626, 0xFFFFF65F
+ .word 0xFFFFF698, 0xFFFFF6D3, 0xFFFFF70E, 0xFFFFF749
+ .word 0xFFFFF785, 0xFFFFF7C2, 0xFFFFF800, 0xFFFFF83E
+ .word 0xFFFFF87D, 0xFFFFF8BC, 0xFFFFF8FC, 0xFFFFF93D
+ .word 0xFFFFF97E, 0xFFFFF9C0, 0xFFFFFA02, 0xFFFFFA44
+ .word 0xFFFFFA87, 0xFFFFFACA, 0xFFFFFB0E, 0xFFFFFB52
+ .word 0xFFFFFB97, 0xFFFFFBDC, 0xFFFFFC21, 0xFFFFFC67
+ .word 0xFFFFFCAC, 0xFFFFFCF2, 0xFFFFFD39, 0xFFFFFD7F
+ .word 0xFFFFFDC6, 0xFFFFFE0D, 0xFFFFFE54, 0xFFFFFE9B
+ .word 0xFFFFFEE2, 0xFFFFFF2A, 0xFFFFFF71, 0xFFFFFFB9
+ .word 0x00000000, 0x00000047, 0x0000008F, 0x000000D6
+ .word 0x0000011E, 0x00000165, 0x000001AC, 0x000001F3
+ .word 0x0000023A, 0x00000281, 0x000002C7, 0x0000030E
+ .word 0x00000354, 0x00000399, 0x000003DF, 0x00000424
+ .word 0x00000469, 0x000004AE, 0x000004F2, 0x00000536
+ .word 0x00000579, 0x000005BC, 0x000005FE, 0x00000640
+ .word 0x00000682, 0x000006C3, 0x00000704, 0x00000744
+ .word 0x00000783, 0x000007C2, 0x00000800, 0x0000083E
+ .word 0x0000087B, 0x000008B7, 0x000008F2, 0x0000092D
+ .word 0x00000968, 0x000009A1, 0x000009DA, 0x00000A12
+ .word 0x00000A49, 0x00000A7F, 0x00000AB5, 0x00000AE9
+ .word 0x00000B1D, 0x00000B50, 0x00000B82, 0x00000BB4
+ .word 0x00000BE4, 0x00000C13, 0x00000C42, 0x00000C6F
+ .word 0x00000C9C, 0x00000CC7, 0x00000CF2, 0x00000D1B
+ .word 0x00000D44, 0x00000D6B, 0x00000D92, 0x00000DB7
+ .word 0x00000DDB, 0x00000DFE, 0x00000E21, 0x00000E42
+ .word 0x00000E61, 0x00000E80, 0x00000E9E, 0x00000EBA
+ .word 0x00000ED6, 0x00000EF0, 0x00000F09, 0x00000F21
+ .word 0x00000F38, 0x00000F4D, 0x00000F61, 0x00000F74
+ .word 0x00000F86, 0x00000F97, 0x00000FA6, 0x00000FB5
+ .word 0x00000FC2, 0x00000FCE, 0x00000FD8, 0x00000FE1
+ .word 0x00000FEA, 0x00000FF0, 0x00000FF6, 0x00000FFA
+ .word 0x00000FFE, 0x00000FFF
.global UNK_020EE658
UNK_020EE658: ; 0x020EE658
diff --git a/arm9/global.inc b/arm9/global.inc
index bc7eb9da..febe7982 100644
--- a/arm9/global.inc
+++ b/arm9/global.inc
@@ -28,7 +28,7 @@
.extern CTRDG_ReadAgbFlash
.extern CTRDG_TerminateForPulledOut
.extern CTRDG_WriteAndVerifyAgbFlashAsync
-.extern Call_FillMemWithValue
+.extern memset
.extern ConvertUIntToDecimalString
.extern DC_FlushAll
.extern DC_FlushRange
@@ -873,12 +873,12 @@
.extern FUN_0201B988
.extern FUN_0201B9A0
.extern FUN_0201B9B8
-.extern FUN_0201B9D4
-.extern FUN_0201B9E0
-.extern FUN_0201B9EC
-.extern FUN_0201BA10
-.extern FUN_0201BA1C
-.extern FUN_0201BA60
+.extern getseed_LC
+.extern seedr_LC
+.extern rand_LC
+.extern rand_ALT
+.extern seedr_MT
+.extern rand_MT
.extern FUN_0201BBD0
.extern FUN_0201BC84
.extern FUN_0201BCBC
@@ -6199,3 +6199,4 @@
.extern FUN_020110BC
.extern FUN_0201DED0
.extern FUN_02012710
+.extern FUN_02013764
diff --git a/arm9/modules/04/asm/arm_04.s b/arm9/modules/04/asm/arm_04.s
index ff24ae38..61edcd55 100644
--- a/arm9/modules/04/asm/arm_04.s
+++ b/arm9/modules/04/asm/arm_04.s
@@ -27478,7 +27478,7 @@ _021F0708:
mov r0, r4
mov r1, #0
mov r2, #0x210
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0
ldmia sp!, {r4, r5, r6, pc}
_021F072C:
@@ -28619,7 +28619,7 @@ MOD04_021F1668: ; 0x021F1668
ldmeqia sp!, {r4, r5, r6, pc}
mov r1, #0
mov r2, #0x490
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [sp]
mov r3, #0
strb r3, [r0]
@@ -31477,7 +31477,7 @@ _021F3F08:
_021F3F50:
mov r1, #0
mov r2, #0x20
- bl Call_FillMemWithValue
+ bl memset
ldr r1, [r5, #0x1a0]
mov r0, #0
str r1, [r4, #4]
@@ -32038,7 +32038,7 @@ _021F4710:
_021F4790:
mov r1, #0
mov r2, #0x308
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [sp, #0x3c]
ldr r1, [sp, #0x2c]
str r0, [r4, #0x304]
@@ -34817,7 +34817,7 @@ _021F6EE8:
_021F6F10:
mov r1, #0
mov r2, #0x20
- bl Call_FillMemWithValue
+ bl memset
ldr r1, [r6, #0x1c]
ldr r0, _021F717C ; =0x00000201
str r1, [r4]
@@ -34886,7 +34886,7 @@ _021F6FEC:
_021F7014:
mov r1, #0
mov r2, #0x204
- bl Call_FillMemWithValue
+ bl memset
ldr r1, [r6, #0x1c]
mov r0, #0
str r1, [r4]
@@ -35344,7 +35344,7 @@ MOD04_021F7674: ; 0x021F7674
ldmeqia sp!, {r4, r5, r6, r7, pc}
mov r1, #0
mov r2, #0x40
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0x64
str r0, [r4]
str r6, [r4, #4]
@@ -37410,7 +37410,7 @@ _021F939C:
ldr r1, [sp, #0x40]
ldr r2, [sp, #0x44]
mov r0, r7
- bl Call_FillMemWithValue
+ bl memset
mov r0, r6
bl atol
str r0, [r8, fp]
@@ -38001,7 +38001,7 @@ _021F9C5C:
ldr r1, [sp, #0x58]
ldr r2, [sp, #0x5c]
mov r0, r8
- bl Call_FillMemWithValue
+ bl memset
mov r0, r5
str fp, [r8, #0x24]
bl atol
@@ -38420,7 +38420,7 @@ _021FA27C:
add r8, r7, fp
ldr r1, [sp, #0x70]
mov r0, r8
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [sp, #0x2c]
ldr r1, [r0, #4]
mov r0, r6
@@ -38951,7 +38951,7 @@ MOD04_021FA9F0: ; 0x021FA9F0
_021FAA2C:
mov r1, #0
mov r2, #0x144
- bl Call_FillMemWithValue
+ bl memset
str r7, [r4]
mvn r0, #0
str r0, [r4, #4]
@@ -44663,7 +44663,7 @@ MOD04_021FF790: ; 0x021FF790
beq _021FF930
mov r1, #0
mov r2, #0xa0
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [sp]
str r5, [r0]
ldr r0, [sp]
@@ -44848,7 +44848,7 @@ MOD04_021FFA10: ; 0x021FFA10
ldmeqia sp!, {r4, r5, r6, r7, pc}
mov r1, #0
mov r2, #0x44
- bl Call_FillMemWithValue
+ bl memset
mvn r0, #0
str r0, [r4]
str r6, [r4, #0x3c]
diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s
index ea3a41c6..4fb96baa 100644
--- a/arm9/modules/05/asm/module_05.s
+++ b/arm9/modules/05/asm/module_05.s
@@ -11025,7 +11025,7 @@ _021DC998:
ldr r2, [r4, #8]
ldr r0, [r0, r1]
mov r1, #0
- bl Call_FillMemWithValue
+ bl memset
b _021DCA04
_021DC9FE:
ldr r0, [r4, #0xc]
@@ -11443,7 +11443,7 @@ _021DCD14:
_021DCD26:
ldr r2, _021DCD60 ; =0x00000F68
mov r1, #0
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [r4, #0xc]
ldr r2, _021DCD64 ; =0x00000F62
str r5, [r0]
@@ -11498,7 +11498,7 @@ _021DCD80:
_021DCD92:
mov r1, #0
mov r2, #0x64
- bl Call_FillMemWithValue
+ bl memset
_021DCD9A:
mov r0, #1
pop {r4, pc}
@@ -11640,7 +11640,7 @@ MOD05_021DCE74: ; 0x021DCE74
mov r1, #0
add r0, #0x10
mov r2, #0x30
- bl Call_FillMemWithValue
+ bl memset
add r5, #0xfc
ldr r1, [r5]
ldr r0, [r4, #0x10]
@@ -11973,7 +11973,7 @@ _021DD11E:
add r0, r4, #0
mov r1, #0
mov r2, #0x3c
- bl Call_FillMemWithValue
+ bl memset
pop {r4, pc}
thumb_func_start MOD05_021DD130
@@ -13157,7 +13157,7 @@ _021DD9CC:
ldr r4, [r6, #8]
mov r0, #0
str r0, [r4]
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #3
bl _u32_div_f
add r5, r1, #0
@@ -13165,7 +13165,7 @@ _021DD9CC:
ldr r0, [r6, #4]
lsr r1, r1, #0x10
bl FUN_02020208
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #0x14
bl _u32_div_f
add r2, r5, #1
@@ -13197,12 +13197,12 @@ _021DDA12:
_021DDA32:
mov r0, #0
str r0, [r4, #0xc]
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #3
bl _u32_div_f
add r0, r1, #1
str r0, [r4, #4]
- bl FUN_0201BA60
+ bl rand_MT
ldr r1, _021DDA74 ; =0x0000010E
bl _u32_div_f
mov r0, #0xf
@@ -13266,7 +13266,7 @@ _021DDAA2:
ldr r0, [r5, #4]
cmp r1, r0
ble _021DDAE4
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #0xa
bl _u32_div_f
cmp r1, #7
@@ -13637,7 +13637,7 @@ _021DDD9A:
add r4, r0, #0
beq _021DDE6A
ldr r5, [r4, #8]
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #3
and r1, r0
lsl r1, r1, #0x10
@@ -13650,7 +13650,7 @@ _021DDD9A:
str r0, [r5, #0x14]
str r0, [r5, #0x18]
str r0, [r5, #0x20]
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #0x3c
str r0, [sp, #0x14]
bl _s32_div_f
@@ -13672,12 +13672,12 @@ _021DDDEC:
sub r0, #0x20
_021DDDF0:
str r0, [r5, #4]
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #1
and r0, r1
add r0, r0, #4
str r0, [r5, #8]
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #1
and r0, r1
add r0, r0, #1
@@ -13686,7 +13686,7 @@ _021DDDF0:
str r0, [r5]
ldr r0, [sp, #8]
str r0, [r5, #0x1c]
- bl FUN_0201BA60
+ bl rand_MT
ldr r1, _021DDE74 ; =0x0000019E
bl _u32_div_f
sub r1, #0x20
@@ -13700,7 +13700,7 @@ _021DDDF0:
ldr r0, [sp, #4]
cmp r6, r0
blt _021DDE48
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #0x14
bl _u32_div_f
mov r0, #0x27
@@ -13710,7 +13710,7 @@ _021DDDF0:
str r0, [sp, #0x1c]
b _021DDE5C
_021DDE48:
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #0x14
bl _u32_div_f
mov r0, #7
@@ -14228,7 +14228,7 @@ _021DE22E:
str r0, [r5, #0x14]
mov r0, #0
str r0, [r5]
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #0x2a
bl _u32_div_f
add r0, r1, #4
@@ -14260,7 +14260,7 @@ _021DE22E:
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #0x69
lsl r1, r1, #2
bl _u32_div_f
@@ -15589,7 +15589,7 @@ _021DECE4:
ldr r5, [r4, #8]
mov r0, #0
str r0, [r5]
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #0x14
bl _u32_div_f
add r1, #0xf
@@ -15614,7 +15614,7 @@ _021DECE4:
ldr r0, _021DEDA8 ; =0x021F683C
ldr r0, [r0, r6]
str r0, [r5, #0x14]
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #0xfa
lsl r1, r1, #2
bl _u32_div_f
@@ -15636,7 +15636,7 @@ _021DED4E:
add r0, sp, #0xc
add r1, r4, #0
bl MOD05_021DD168
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #0x18
bl _u32_div_f
ldr r0, _021DEDB0 ; =0x00000106
@@ -15644,7 +15644,7 @@ _021DED4E:
str r0, [sp, #0xc]
lsl r0, r0, #0xc
str r0, [sp, #0xc]
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #0xc0
bl _u32_div_f
sub r1, #0x40
@@ -16498,12 +16498,12 @@ _021DF430:
ldr r5, [r6, #8]
mov r0, #0
str r0, [r5]
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #6
bl _u32_div_f
add r1, #0x12
str r1, [r5, #4]
- bl FUN_0201BA60
+ bl rand_MT
add r7, r0, #0
mov r1, #3
and r7, r1
@@ -16547,14 +16547,14 @@ _021DF492:
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #0x18
bl _u32_div_f
mov r0, #1
lsl r0, r0, #8
add r0, r1, r0
str r0, [sp, #0x18]
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #0xa8
bl _u32_div_f
ldr r0, [sp, #0x18]
@@ -16951,12 +16951,12 @@ _021DF7D6:
ldr r5, [r4, #8]
mov r0, #0
str r0, [r5]
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #5
bl _u32_div_f
add r0, r1, #7
str r0, [r5, #4]
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #0xfa
lsl r1, r1, #2
bl _u32_div_f
@@ -16976,30 +16976,30 @@ _021DF80C:
str r0, [r5, #8]
mov r0, #1
str r0, [r5, #0xc]
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #6
bl _u32_div_f
add r0, r1, #3
str r0, [r5, #0x10]
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #5
bl _u32_div_f
add r0, r1, #4
str r0, [r5, #0x14]
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #0x14
bl _u32_div_f
str r1, [sp, #8]
add r0, sp, #0x10
add r1, r4, #0
bl MOD05_021DD168
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #6
lsl r1, r1, #6
bl _u32_div_f
sub r1, #0x40
str r1, [sp, #0x10]
- bl FUN_0201BA60
+ bl rand_MT
lsl r0, r0, #0x18
lsr r1, r0, #0x18
ldr r0, [sp, #0x10]
@@ -17027,13 +17027,13 @@ _021DF80C:
mov r1, #0xce
sub r7, r1, r0
bpl _021DF89E
- bl FUN_0201BA60
+ bl rand_MT
neg r1, r7
bl _u32_div_f
sub r1, r6, r1
b _021DF8AA
_021DF89E:
- bl FUN_0201BA60
+ bl rand_MT
add r1, r7, #0
bl _u32_div_f
add r1, r6, r1
@@ -17048,7 +17048,7 @@ _021DF8AA:
str r0, [r5, #4]
b _021DF8C6
_021DF8BC:
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #3
and r0, r1
str r0, [sp, #8]
@@ -17150,12 +17150,12 @@ _021DF958:
_021DF978:
b _021DFA96
_021DF97A:
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #0x14
bl _u32_div_f
add r1, #0xa
str r1, [r4, #8]
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #3
bl _u32_div_f
add r0, r1, #5
@@ -17178,12 +17178,12 @@ _021DF9A2:
ldr r0, [r4, #4]
mov r1, #0x10
bl MOD05_021DC6D4
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #0x14
bl _u32_div_f
add r1, #0xa
str r1, [r4, #8]
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #3
bl _u32_div_f
add r0, r1, #5
@@ -17212,12 +17212,12 @@ _021DF9E2:
ldr r0, [r4, #0xc]
cmp r1, r0
bgt _021DFA50
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #0xf
bl _u32_div_f
add r1, #0xa
str r1, [r4, #8]
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #3
bl _u32_div_f
add r0, r1, #7
@@ -17231,12 +17231,12 @@ _021DFA26:
ldr r0, [r4, #0xc]
cmp r1, r0
blt _021DFA50
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #0x14
bl _u32_div_f
add r1, #0xa
str r1, [r4, #8]
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #3
bl _u32_div_f
add r0, r1, #5
@@ -17840,7 +17840,7 @@ _021DFEF6:
ldr r5, [r4, #8]
mov r0, #0
str r0, [r5]
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #3
bl _u32_div_f
add r7, r1, #0
@@ -17888,7 +17888,7 @@ _021DFEF6:
str r0, [r5, #8]
mov r0, #0
str r0, [r5, #0xc]
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #3
and r1, r0
mov r0, #0x64
@@ -17915,11 +17915,11 @@ _021DFEF6:
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
- bl FUN_0201BA60
+ bl rand_MT
ldr r1, _021DFFFC ; =0x000001FF
and r0, r1
str r0, [sp, #0x18]
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #0x30
bl _u32_div_f
mov r0, #0
@@ -17992,7 +17992,7 @@ _021E0032:
ldr r0, [r4, #4]
cmp r1, r0
ble _021E0076
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #0xa
bl _u32_div_f
cmp r1, #5
@@ -18496,7 +18496,7 @@ _021E0436:
add r4, r0, #0
beq _021E050E
ldr r5, [r4, #8]
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #3
and r1, r0
lsl r1, r1, #0x10
@@ -18507,7 +18507,7 @@ _021E0436:
str r0, [r5, #0x10]
mov r0, #0
str r0, [r5, #0x14]
- bl FUN_0201BA60
+ bl rand_MT
lsr r1, r0, #0x1f
lsl r2, r0, #0x1f
sub r2, r2, r1
@@ -18522,14 +18522,14 @@ _021E0474:
mvn r0, r0
_021E0478:
str r0, [r5, #4]
- bl FUN_0201BA60
+ bl rand_MT
mov r0, #1
str r0, [r5, #0xc]
ldr r0, [sp, #0xc]
str r0, [r5]
ldr r0, [sp, #8]
str r0, [r5, #0x18]
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #0x14
bl _u32_div_f
add r1, #0xa
@@ -18543,7 +18543,7 @@ _021E0478:
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
- bl FUN_0201BA60
+ bl rand_MT
ldr r1, _021E0518 ; =0x0000019E
bl _u32_div_f
ldr r0, [sp, #0x10]
@@ -18556,7 +18556,7 @@ _021E0478:
ldr r0, [sp, #4]
cmp r6, r0
blt _021E04DE
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #0x14
bl _u32_div_f
mov r0, #0x27
@@ -18565,7 +18565,7 @@ _021E0478:
str r0, [sp, #0x24]
b _021E04F0
_021E04DE:
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #0x14
bl _u32_div_f
mov r0, #7
@@ -18731,7 +18731,7 @@ _021E060E:
str r0, [r4, #4]
mov r0, #0
str r0, [r4, #0x14]
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #0x1e
lsl r1, r1, #4
bl _u32_div_f
@@ -18739,7 +18739,7 @@ _021E060E:
str r1, [r4, #0x18]
mov r0, #0
str r0, [r4, #0x1c]
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #3
bl _u32_div_f
cmp r1, #0
@@ -18788,13 +18788,13 @@ _021E0678:
ldr r0, [r4, #8]
cmp r0, #0xc8
bne _021E069E
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #0xf
bl _u32_div_f
str r1, [r4, #0x10]
b _021E06BE
_021E069E:
- bl FUN_0201BA60
+ bl rand_MT
add r7, r0, #0
ldr r1, [r4, #0x18]
mov r0, #0x32
@@ -19012,7 +19012,7 @@ _021E084C:
add r5, r0, #0
beq _021E0932
ldr r4, [r5, #8]
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #0xe
bl _u32_div_f
add r6, r1, #0
@@ -19024,7 +19024,7 @@ _021E084C:
lsr r0, r0, #0x1e
add r0, r6, r0
asr r6, r0, #2
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #0x19
bl _u32_div_f
add r2, r1, #0
@@ -19038,7 +19038,7 @@ _021E084C:
str r0, [r4, #4]
mov r0, #0
str r0, [r4, #8]
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #1
and r0, r1
str r0, [r4, #0xc]
@@ -19060,36 +19060,36 @@ _021E08BA: ; jump table
.short _021E08E0 - _021E08BA - 2 ; case 3
.short _021E08FA - _021E08BA - 2 ; case 4
_021E08C4:
- bl FUN_0201BA60
+ bl rand_MT
ldr r1, _021E0938 ; =0x000001FF
and r0, r1
sub r0, #0x80
str r0, [sp, #8]
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #0xc0
bl _u32_div_f
add r1, #8
str r1, [sp, #0xc]
b _021E0912
_021E08E0:
- bl FUN_0201BA60
+ bl rand_MT
ldr r1, _021E0938 ; =0x000001FF
and r0, r1
sub r0, #0x80
str r0, [sp, #8]
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #0x7f
and r0, r1
add r0, #0x40
str r0, [sp, #0xc]
b _021E0912
_021E08FA:
- bl FUN_0201BA60
+ bl rand_MT
ldr r1, _021E0938 ; =0x000001FF
and r0, r1
sub r0, #0x80
str r0, [sp, #8]
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #0x1f
and r0, r1
add r0, #0xa0
@@ -20116,7 +20116,7 @@ MOD05_021E1100: ; 0x021E1100
add r4, r1, #0
mov r1, #0
add r5, r0, #0
- bl Call_FillMemWithValue
+ bl memset
mov r2, #0x6b
add r1, r5, #0
lsl r2, r2, #2
@@ -20196,7 +20196,7 @@ MOD05_021E117C: ; 0x021E117C
ldr r2, _021E11C8 ; =0x0000062C
add r0, r4, #0
mov r1, #0
- bl Call_FillMemWithValue
+ bl memset
pop {r4, pc}
nop
_021E11C4: .word 0xFFFF1FFF
@@ -20445,7 +20445,7 @@ _021E1396:
mov r2, #0x47
mov r1, #0
lsl r2, r2, #2
- bl Call_FillMemWithValue
+ bl memset
str r7, [r4, #4]
ldr r0, [r7, #0xc]
bl FUN_020462AC
@@ -21000,7 +21000,7 @@ _021E17BE:
mov r7, #1
b _021E182E
_021E17DE:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x64
bl _s32_div_f
cmp r1, #0x32
@@ -21576,7 +21576,7 @@ _021E1C18:
mov r2, #0xb6
mov r1, #0
lsl r2, r2, #2
- bl Call_FillMemWithValue
+ bl memset
str r5, [sp]
add r0, sp, #0x20
ldrb r0, [r0, #0x10]
@@ -24683,7 +24683,7 @@ MOD05_021E3474: ; 0x021E3474
mov r1, #0
mov r2, #0x4c
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
ldr r0, _021E34B4 ; =MOD05_021E34B8
add r1, r4, #0
mov r2, #5
@@ -25083,7 +25083,7 @@ MOD05_021E3768: ; 0x021E3768
mov r1, #0
mov r2, #0x30
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
ldr r0, _021E379C ; =0x04000048
mov r1, #0x3f
ldrh r2, [r0]
@@ -25419,7 +25419,7 @@ MOD05_021E39FC: ; 0x021E39FC
mov r1, #0
mov r2, #0x48
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
ldr r0, _021E3A40 ; =0x04000048
mov r5, #0x3f
ldrh r2, [r0]
@@ -26327,7 +26327,7 @@ MOD05_021E4140: ; 0x021E4140
mov r1, #0
mov r2, #0x30
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
add r0, r4, #0
pop {r4, pc}
.balign 4, 0
@@ -26445,7 +26445,7 @@ MOD05_021E4220: ; 0x021E4220
mov r1, #0
mov r2, #0x30
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
add r0, r4, #0
pop {r4, pc}
.balign 4, 0
@@ -26645,7 +26645,7 @@ MOD05_021E4394: ; 0x021E4394
mov r1, #0
mov r2, #0xcc
add r7, r0, #0
- bl Call_FillMemWithValue
+ bl memset
mov r4, #0
add r5, r7, #0
_021E43AE:
@@ -27042,7 +27042,7 @@ MOD05_021E4688: ; 0x021E4688
mov r1, #0
mov r2, #0x24
add r7, r0, #0
- bl Call_FillMemWithValue
+ bl memset
mov r4, #0
add r5, r7, #0
_021E46A0:
@@ -27176,7 +27176,7 @@ MOD05_021E4788: ; 0x021E4788
mov r1, #0
mov r2, #0xe8
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
add r0, r4, #0
pop {r4, pc}
@@ -27638,7 +27638,7 @@ MOD05_021E4AE4: ; 0x021E4AE4
mov r1, #0
mov r2, #0x2c
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [sp]
lsl r1, r5, #3
str r0, [r4]
@@ -27766,7 +27766,7 @@ MOD05_021E4BE8: ; 0x021E4BE8
add r1, r4, #0
add r2, r5, #0
add r6, r0, #0
- bl Call_FillMemWithValue
+ bl memset
add r0, r6, #0
pop {r4, r5, r6, pc}
@@ -28364,7 +28364,7 @@ _021E500A:
add r0, r4, #0
mov r1, #0
mov r2, #0x28
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [sp]
add r2, r4, #0
str r0, [r4]
@@ -32832,7 +32832,7 @@ _021E72CC:
add r0, r4, #0
mov r1, #0
add r2, r5, #0
- bl Call_FillMemWithValue
+ bl memset
add r0, r4, #0
pop {r3, r4, r5, pc}
.balign 4, 0
@@ -33109,7 +33109,7 @@ _021E74E8:
add r0, r4, #0
mov r1, #0
add r2, r5, #0
- bl Call_FillMemWithValue
+ bl memset
add r0, r4, #0
pop {r3, r4, r5, pc}
.balign 4, 0
@@ -35786,7 +35786,7 @@ _021E8912:
str r0, [r4, #0xc]
mov r1, #0
mov r2, #0x20
- bl Call_FillMemWithValue
+ bl memset
ldr r5, [r4, #0xc]
bl MOD05_021E3768
str r0, [r5, #0x1c]
@@ -35968,7 +35968,7 @@ _021E8A92:
str r0, [r4, #0xc]
mov r1, #0
mov r2, #0x20
- bl Call_FillMemWithValue
+ bl memset
ldr r5, [r4, #0xc]
bl MOD05_021E3768
str r0, [r5, #0x1c]
@@ -36851,7 +36851,7 @@ _021E916E:
str r0, [r7, #0xc]
mov r1, #0
lsl r2, r2, #4
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [r7, #0x10]
ldr r4, [r7, #0xc]
ldr r1, [r0, #0x20]
@@ -37257,7 +37257,7 @@ _021E94D4:
str r0, [r6, #0xc]
mov r1, #0
lsl r2, r2, #2
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [r6, #0x10]
ldr r4, [r6, #0xc]
ldr r1, [r0, #0x20]
@@ -37617,7 +37617,7 @@ _021E97D6:
str r0, [r7, #0xc]
mov r1, #0
lsl r2, r2, #2
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [r7, #0x10]
ldr r4, [r7, #0xc]
ldr r1, [r0, #0x20]
@@ -38075,7 +38075,7 @@ _021E9B98:
str r0, [r1, #0xc]
mov r1, #0
lsl r2, r2, #6
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [sp, #0x1c]
ldr r4, [r0, #0xc]
ldr r0, [r0, #0x10]
@@ -38733,7 +38733,7 @@ _021EA110:
str r0, [r5, #0xc]
mov r1, #0
lsl r2, r2, #4
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [r5, #0x10]
ldr r4, [r5, #0xc]
ldr r1, [r0, #0x20]
@@ -39064,7 +39064,7 @@ _021EA3D8:
str r0, [r1, #0xc]
mov r1, #0
lsl r2, r2, #2
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [sp, #0x18]
mov r2, #1
ldr r4, [r0, #0xc]
@@ -39650,7 +39650,7 @@ _021EA8B2:
str r0, [r4, #0xc]
mov r1, #0
lsl r2, r2, #2
- bl Call_FillMemWithValue
+ bl memset
ldr r5, [r4, #0xc]
mov r1, #1
add r0, r5, #0
@@ -39936,7 +39936,7 @@ _021EAB14:
str r0, [r6, #0xc]
mov r1, #0
lsl r2, r2, #4
- bl Call_FillMemWithValue
+ bl memset
ldr r4, [r6, #0xc]
mov r1, #4
add r0, r4, #0
@@ -40244,7 +40244,7 @@ _021EAD8E:
str r0, [r1, #0xc]
mov r1, #0
lsl r2, r2, #4
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [sp, #0x14]
mov r1, #6
ldr r4, [r0, #0xc]
@@ -40732,7 +40732,7 @@ _021EB18E:
str r0, [r5, #0xc]
mov r1, #0
lsl r2, r2, #2
- bl Call_FillMemWithValue
+ bl memset
ldr r4, [r5, #0xc]
mov r1, #1
add r0, r4, #0
@@ -41258,7 +41258,7 @@ _021EB5E4:
mov r1, #0
mov r2, #0x38
str r0, [r4, #0xc]
- bl Call_FillMemWithValue
+ bl memset
mov r0, #2
mov r1, #0
bl FUN_0201E6E4
@@ -41478,7 +41478,7 @@ _021EB7A2:
str r0, [r5, #0xc]
mov r1, #0
lsl r2, r2, #4
- bl Call_FillMemWithValue
+ bl memset
ldr r4, [r5, #0xc]
mov r1, #1
add r0, r4, #0
@@ -42161,7 +42161,7 @@ _021EBD20:
str r0, [r5, #0xc]
mov r1, #0
lsl r2, r2, #2
- bl Call_FillMemWithValue
+ bl memset
ldr r4, [r5, #0xc]
mov r1, #4
add r0, r4, #0
@@ -43595,7 +43595,7 @@ _021EC8EC:
blt _021EC8D8
cmp r7, #2
bne _021EC90E
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, _021EC940 ; =0x00007FFF
cmp r0, r1
blo _021EC90A
@@ -43615,7 +43615,7 @@ _021EC90E:
bl FUN_020672BC
cmp r0, #0xe5
bne _021EC938
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, _021EC940 ; =0x00007FFF
cmp r0, r1
blo _021EC932
@@ -43642,7 +43642,7 @@ MOD05_021EC944: ; 0x021EC944
bl MOD05_021EC8A8
add r1, r0, #0
bpl _021EC960
- bl FUN_0201BA60
+ bl rand_MT
add r1, r0, #0
ldr r0, [sp]
bl FUN_02023CB8
@@ -43658,7 +43658,7 @@ _021EC960:
add r6, r0, #0
lsl r7, r7, #4
_021EC978:
- bl FUN_0201BA60
+ bl rand_MT
add r4, r0, #0
bl FUN_02068884
cmp r6, r0
@@ -43730,7 +43730,7 @@ _021EC9E0:
add r6, sp, #8
add r7, #2
_021EC9F4:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #6
sub r1, r1, r5
bl _s32_div_f
@@ -43749,7 +43749,7 @@ _021EC9F4:
add r6, #1
mov r7, #0x1f
_021ECA1E:
- bl FUN_0201B9EC
+ bl rand_LC
lsr r1, r0, #0x1f
lsl r0, r0, #0x1f
sub r0, r0, r1
@@ -44532,7 +44532,7 @@ MOD05_021ED00C: ; 0x021ED00C
mov r5, #0
_021ED044:
add r0, r4, #0
- bl FUN_0201BA10
+ bl rand_ALT
add r4, r0, #0
add r0, r6, #0
add r1, r4, #0
@@ -44987,7 +44987,7 @@ _021ED3AC:
ldr r0, [sp]
bl MOD05_021ED320
add r4, r0, #0
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x64
mul r1, r0
add r0, r1, #0
@@ -45434,7 +45434,7 @@ _021ED6B4:
beq _021ED788
_021ED774:
add r0, r7, #0
- bl FUN_0201BA10
+ bl rand_ALT
add r7, r0, #0
ldr r0, [sp, #0x2c]
add r1, r7, #0
@@ -52111,7 +52111,7 @@ MOD05_021F0ADC: ; 0x021F0ADC
mov r0, #0
mvn r0, r0
strb r0, [r4]
- bl FUN_0201B9EC
+ bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x1c
sub r1, r1, r2
@@ -52240,7 +52240,7 @@ _021F0BE0:
blt _021F0C0C
mov r0, #0
strb r0, [r4, #1]
- bl FUN_0201B9EC
+ bl rand_LC
lsr r1, r0, #0x1f
lsl r2, r0, #0x1c
sub r2, r2, r1
@@ -57512,7 +57512,7 @@ _021F33E2:
ldr r2, [sp, #8]
add r0, r4, #0
mov r1, #0
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [sp]
strh r6, [r4]
strh r0, [r4, #2]
@@ -57639,7 +57639,7 @@ MOD05_021F34DC: ; 0x021F34DC
mov r1, #0
mov r2, #0x58
add r5, r0, #0
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [sp, #8]
str r0, [r5]
add r0, r7, #0
@@ -58023,7 +58023,7 @@ _021F382E:
ldr r0, [r4, #0xc]
mov r1, #0
add r2, r5, #0
- bl Call_FillMemWithValue
+ bl memset
pop {r3, r4, r5, pc}
.balign 4, 0
@@ -58036,7 +58036,7 @@ MOD05_021F383C: ; 0x021F383C
add r0, r4, #0
mov r1, #0
mov r2, #0x60
- bl Call_FillMemWithValue
+ bl memset
pop {r4, pc}
.balign 4, 0
@@ -59993,7 +59993,7 @@ MOD05_021F46C8: ; 0x021F46C8
mov r1, #0
lsl r2, r2, #2
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
mov r2, #0x63
mov r0, #0
add r1, r4, #0
@@ -60072,13 +60072,13 @@ _021F4732:
add r0, #0xc
mov r1, #0
lsl r2, r2, #6
- bl Call_FillMemWithValue
+ bl memset
mov r2, #0x63
lsl r2, r2, #2
add r0, r4, r2
mov r1, #0
sub r2, #0xc
- bl Call_FillMemWithValue
+ bl memset
mov r0, #1
str r0, [r4]
mov r0, #0
@@ -60929,7 +60929,7 @@ _021F4DDE:
bl FUN_0202A9C0
cmp r5, r0
bne _021F4E42
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x29
lsl r1, r1, #4
bl _s32_div_f
@@ -61031,7 +61031,7 @@ MOD05_021F4EE4: ; 0x021F4EE4
push {r4, r5, r6, lr}
add r6, r0, #0
add r5, r1, #0
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x29
lsl r1, r1, #4
bl _s32_div_f
@@ -61085,7 +61085,7 @@ _021F4F3E:
MOD05_021F4F44: ; 0x021F4F44
push {r3, r4, r5, lr}
add r4, r0, #0
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x29
lsl r1, r1, #4
bl _s32_div_f
@@ -61148,7 +61148,7 @@ _021F4FA8:
MOD05_021F4FAC: ; 0x021F4FAC
push {r3, r4, r5, lr}
add r4, r0, #0
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x29
lsl r1, r1, #4
bl _s32_div_f
@@ -61752,7 +61752,7 @@ MOD05_021F5400: ; 0x021F5400
mov r1, #0
mov r2, #0x78
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
ldr r1, [r5, #8]
add r0, r4, #0
bl FUN_020B80B4
@@ -62048,7 +62048,7 @@ MOD05_021F5608: ; 0x021F5608
mov r1, #0x11
mov r2, #0x20
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #1
str r0, [sp]
add r0, r5, #0
@@ -62512,7 +62512,7 @@ _021F59C4:
add r0, r4, #0
mov r1, #0
add r2, r5, #0
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [sp]
str r0, [r4]
ldr r0, [sp, #4]
@@ -63125,7 +63125,7 @@ _021F5E24:
MOD05_021F5E30: ; 0x021F5E30
push {r4, lr}
add r4, r0, #0
- bl FUN_0201B9EC
+ bl rand_LC
lsr r1, r0, #0x1f
lsl r0, r0, #0x1e
sub r0, r0, r1
@@ -63454,7 +63454,7 @@ _021F6088:
add r0, r4, #0
mov r1, #0
add r2, r5, #0
- bl Call_FillMemWithValue
+ bl memset
add r0, r4, #0
pop {r3, r4, r5, pc}
.align 2, 0
@@ -63654,7 +63654,7 @@ MOD05_021F61F4: ; 0x021F61F4
add r4, r0, #0
mov r1, #0
mov r2, #0x34
- bl Call_FillMemWithValue
+ bl memset
str r6, [r4]
mov r0, #0
str r0, [r4, #0xc]
@@ -63896,7 +63896,7 @@ _021F63AC:
str r0, [r5, #4]
mov r1, #0
add r2, r6, #0
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s
index b31dfde1..d9c1c402 100644
--- a/arm9/modules/06/asm/module_06.s
+++ b/arm9/modules/06/asm/module_06.s
@@ -589,7 +589,7 @@ MOD06_02239B08: ; 0x02239B08
add r0, r4, #0
mov r1, #0
mov r2, #0x74
- bl Call_FillMemWithValue
+ bl memset
mov r0, #4
add r1, r5, #0
bl MOD06_0223AC78
@@ -1813,7 +1813,7 @@ MOD06_0223A428: ; 0x0223A428
mov r1, #0
mov r2, #0x4c
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
add r0, r5, #0
bl FUN_0201EB64
str r0, [r4]
@@ -2101,7 +2101,7 @@ MOD06_0223A644: ; 0x0223A644
mov r1, #0
mov r2, #0x24
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #3
str r0, [r4, #0x1c]
add r0, r4, #0
@@ -2253,7 +2253,7 @@ MOD06_0223A75C: ; 0x0223A75C
mov r1, #0
lsl r2, r2, #6
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0x4b
str r5, [r4]
mov r1, #5
@@ -2683,7 +2683,7 @@ _0223AA8A:
add r0, r7, #0
mov r1, #0
mov r2, #0xdc
- bl Call_FillMemWithValue
+ bl memset
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD06_0223AAB0
@@ -2931,7 +2931,7 @@ MOD06_0223AC78: ; 0x0223AC78
add r4, r0, #0
mov r1, #0
lsl r2, r2, #6
- bl Call_FillMemWithValue
+ bl memset
str r6, [r4, #4]
mov r0, #0
str r0, [r4]
@@ -3614,7 +3614,7 @@ MOD06_0223B19C: ; 0x0223B19C
add r6, r0, #0
mov r1, #0
lsl r2, r2, #4
- bl Call_FillMemWithValue
+ bl memset
add r0, r6, #0
mov r1, #0x62
add r2, r5, #0
@@ -3845,7 +3845,7 @@ MOD06_0223B348: ; 0x0223B348
add r4, r0, #0
mov r1, #0
mov r2, #0x90
- bl Call_FillMemWithValue
+ bl memset
add r0, r4, #4
add r1, r5, #0
bl MOD06_0223A3F0
@@ -3993,7 +3993,7 @@ MOD06_0223B458: ; 0x0223B458
add r6, r0, #0
mov r1, #0
mov r2, #0xd4
- bl Call_FillMemWithValue
+ bl memset
add r0, r6, #0
add r0, #0xc4
add r1, r7, #0
@@ -4514,7 +4514,7 @@ MOD06_0223B828: ; 0x0223B828
add r6, r0, #0
mov r1, #0
mov r2, #0xec
- bl Call_FillMemWithValue
+ bl memset
add r0, r6, #0
add r0, #0xd8
str r4, [r0]
@@ -5149,7 +5149,7 @@ _0223BD2E:
add r2, sp, #0x20
bl MOD06_0223CF14
add r6, r0, #0
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x29
lsl r1, r1, #4
bl _s32_div_f
@@ -6016,7 +6016,7 @@ MOD06_0223C470: ; 0x0223C470
add r0, r5, #0
add r0, #0x74
strh r1, [r0]
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x29
lsl r1, r1, #4
bl _s32_div_f
@@ -6060,7 +6060,7 @@ _0223C4D4:
bls _0223C4EC
mov r4, #0x64
_0223C4EC:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x29
lsl r1, r1, #4
bl _s32_div_f
@@ -6144,7 +6144,7 @@ _0223C580:
MOD06_0223C584: ; 0x0223C584
push {r3, r4, r5, lr}
add r4, r1, #0
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x29
lsl r1, r1, #4
bl _s32_div_f
@@ -6165,7 +6165,7 @@ _0223C5A8:
thumb_func_start MOD06_0223C5AC
MOD06_0223C5AC: ; 0x0223C5AC
push {r4, lr}
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x29
lsl r1, r1, #4
bl _s32_div_f
@@ -6255,7 +6255,7 @@ _0223C644:
thumb_func_start MOD06_0223C648
MOD06_0223C648: ; 0x0223C648
push {r4, lr}
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x29
lsl r1, r1, #4
bl _s32_div_f
@@ -6300,7 +6300,7 @@ MOD06_0223C694: ; 0x0223C694
push {r4, r5, r6, lr}
add r5, r0, #0
mov r4, #0
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x29
lsl r1, r1, #4
bl _s32_div_f
@@ -6452,7 +6452,7 @@ MOD06_0223C78C: ; 0x0223C78C
ldrb r0, [r1, #0xe]
cmp r0, #0x1c
bne _0223C7C6
- bl FUN_0201B9EC
+ bl rand_LC
lsl r0, r0, #1
lsr r5, r0, #0x10
cmp r5, #2
@@ -6471,7 +6471,7 @@ _0223C7AC:
lsr r0, r0, #0x18
pop {r3, r4, r5, pc}
_0223C7C6:
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, _0223C7E4 ; =0x00000A3E
bl _s32_div_f
lsl r0, r0, #0x10
@@ -6504,7 +6504,7 @@ _0223C7FC:
lsl r0, r2, #0x18
_0223C802:
lsr r4, r0, #0x18
- bl FUN_0201B9EC
+ bl rand_LC
sub r1, r4, r5
add r1, r1, #1
lsl r1, r1, #0x18
@@ -6523,7 +6523,7 @@ _0223C802:
cmp r0, #0x2e
bne _0223C84C
_0223C82C:
- bl FUN_0201B9EC
+ bl rand_LC
lsl r0, r0, #1
lsr r7, r0, #0x10
cmp r7, #2
@@ -6574,7 +6574,7 @@ MOD06_0223C854: ; 0x0223C854
beq _0223C8E0
cmp r0, #0xff
beq _0223C8E0
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, _0223C964 ; =0x00005556
bl _s32_div_f
lsl r0, r0, #0x10
@@ -6597,7 +6597,7 @@ _0223C8A6:
_0223C8BE:
cmp r0, #0x1c
bne _0223C8E0
- bl FUN_0201B9EC
+ bl rand_LC
lsl r0, r0, #1
lsr r4, r0, #0x10
cmp r4, #2
@@ -6708,7 +6708,7 @@ _0223C998:
ldrb r0, [r5, #0xe]
cmp r0, #0x38
bne _0223CA28
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, _0223CA68 ; =0x00005556
bl _s32_div_f
lsl r0, r0, #0x10
@@ -7125,7 +7125,7 @@ MOD06_0223CCDC: ; 0x0223CCDC
mov r2, #0
add r3, sp, #0x10
bl MOD06_0223D2DC
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, _0223CD78 ; =0x00001746
bl _s32_div_f
lsl r0, r0, #0x10
@@ -7149,7 +7149,7 @@ _0223CD1A:
cmp r0, #0x2e
bne _0223CD4C
_0223CD36:
- bl FUN_0201B9EC
+ bl rand_LC
lsl r0, r0, #1
lsr r6, r0, #0x10
cmp r6, #2
@@ -7360,7 +7360,7 @@ _0223CEB6:
mov r0, #0
pop {r4, r5, r6, r7, pc}
_0223CEBC:
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r4, #0
bl _s32_div_f
add r0, sp, #0x10
@@ -7384,7 +7384,7 @@ MOD06_0223CED4: ; 0x0223CED4
ldrb r0, [r0, #0x14]
cmp r1, r0
bne _0223CF0E
- bl FUN_0201B9EC
+ bl rand_LC
lsl r0, r0, #1
lsr r4, r0, #0x10
cmp r4, #2
@@ -7499,7 +7499,7 @@ _0223CFAC:
sub r0, r0, #5
cmp r4, r0
bgt _0223CFCA
- bl FUN_0201B9EC
+ bl rand_LC
lsl r0, r0, #1
lsr r4, r0, #0x10
cmp r4, #2
@@ -7698,7 +7698,7 @@ _0223D134:
mov r0, #0
pop {r4, r5, r6, r7, pc}
_0223D148:
- bl FUN_0201B9EC
+ bl rand_LC
lsl r0, r0, #1
lsr r4, r0, #0x10
cmp r4, #2
@@ -7722,7 +7722,7 @@ _0223D16E:
mov r4, #0
b _0223D19E
_0223D176:
- bl FUN_0201B9EC
+ bl rand_LC
add r4, r0, #0
ldr r0, _0223D1B8 ; =0x0000FFFF
add r1, r5, #0
@@ -7823,7 +7823,7 @@ _0223D222:
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #4]
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, [sp, #4]
bl _s32_div_f
ldrb r0, [r5, #0x11]
@@ -7870,7 +7870,7 @@ MOD06_0223D27C: ; 0x0223D27C
cmp r0, #0x2e
bne _0223D2D8
_0223D296:
- bl FUN_0201B9EC
+ bl rand_LC
lsl r0, r0, #1
lsr r6, r0, #0x10
cmp r6, #2
@@ -8037,7 +8037,7 @@ MOD06_0223D3B4: ; 0x0223D3B4
mov r1, #0
lsl r2, r2, #2
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
add r0, r4, #0
pop {r4, pc}
@@ -18827,7 +18827,7 @@ _02242C0E:
mov r2, #0x11
mov r1, #0
lsl r2, r2, #4
- bl Call_FillMemWithValue
+ bl memset
add r2, sp, #0x10
ldrb r2, [r2, #0x10]
ldr r3, [sp, #0x24]
@@ -23252,7 +23252,7 @@ _02244DF4:
mov r2, #2
b _02244E10
_02244DF8:
- bl FUN_0201B9EC
+ bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x1f
sub r1, r1, r2
@@ -23611,7 +23611,7 @@ _02245098:
add r2, sp, #0x24
add r3, sp, #0x28
bl MOD06_0224CDB8
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, _02245110 ; =0x00001556
bl _s32_div_f
lsl r0, r0, #0x10
@@ -23644,7 +23644,7 @@ MOD06_02245114: ; 0x02245114
add r7, r0, #0
mov r4, #0
_02245132:
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, _0224518C ; =0x0000071D
bl _s32_div_f
lsl r0, r0, #0x10
@@ -26507,7 +26507,7 @@ MOD06_022466C0: ; 0x022466C0
mov r1, #0
lsl r2, r2, #2
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
str r5, [r4, #0x60]
add r0, r4, #0
pop {r3, r4, r5, pc}
@@ -30637,7 +30637,7 @@ _02248644:
add r0, r4, #0
mov r1, #0
add r2, r5, #0
- bl Call_FillMemWithValue
+ bl memset
add r0, r4, #0
pop {r3, r4, r5, pc}
.align 2, 0
@@ -30818,7 +30818,7 @@ _0224879E:
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
_022487AC:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x29
lsl r1, r1, #4
bl _s32_div_f
@@ -31661,7 +31661,7 @@ _02248E32:
ldrb r0, [r0]
pop {r3, r4, r5, pc}
_02248E3E:
- bl FUN_0201BA60
+ bl rand_MT
add r1, r4, #0
bl _u32_div_f
add r0, sp, #0
@@ -32194,7 +32194,7 @@ MOD06_022491FC: ; 0x022491FC
mov r0, #0
pop {r4, pc}
_0224921E:
- bl FUN_0201BA60
+ bl rand_MT
add r1, r4, #0
bl _u32_div_f
add r0, sp, #0
@@ -39609,7 +39609,7 @@ _0224CBA0:
add r0, r4, #0
mov r1, #0
add r2, r5, #0
- bl Call_FillMemWithValue
+ bl memset
add r0, r4, #0
pop {r3, r4, r5, pc}
.align 2, 0
@@ -39651,7 +39651,7 @@ _0224CBE0:
_0224CBF0:
mov r7, #0
_0224CBF2:
- bl FUN_0201B9EC
+ bl rand_LC
lsl r0, r0, #4
lsr r5, r0, #0x10
cmp r5, #0x10
@@ -39709,7 +39709,7 @@ MOD06_0224CC60: ; 0x0224CC60
push {r4, r5, r6, r7, lr}
sub sp, #0x4c
add r5, r0, #0
- bl FUN_0201B9EC
+ bl rand_LC
lsl r0, r0, #1
lsr r4, r0, #0x10
cmp r4, #2
@@ -41087,7 +41087,7 @@ MOD06_0224D70C: ; 0x0224D70C
add r4, r0, #0
mov r1, #0
lsl r2, r2, #2
- bl Call_FillMemWithValue
+ bl memset
str r5, [r4, #0x18]
str r7, [r4, #0x14]
str r6, [r4, #8]
@@ -41132,7 +41132,7 @@ MOD06_0224D76C: ; 0x0224D76C
add r0, r4, #0
mov r1, #0
lsl r2, r2, #2
- bl Call_FillMemWithValue
+ bl memset
add r0, r4, #0
bl FUN_02016A18
pop {r4, pc}
@@ -43366,7 +43366,7 @@ MOD06_0224E948: ; 0x0224E948
mov r2, #0xdc
add r4, r3, #0
ldr r7, [sp, #0x28]
- bl Call_FillMemWithValue
+ bl memset
add r0, r6, #0
add r0, #0x78
mov r1, #0x8d
@@ -43519,7 +43519,7 @@ MOD06_0224EA64: ; 0x0224EA64
add r0, r4, #0
mov r1, #0
mov r2, #0xf0
- bl Call_FillMemWithValue
+ bl memset
add r0, r4, #0
add r0, #0xdc
mov r1, #4
@@ -43633,7 +43633,7 @@ MOD06_0224EB30: ; 0x0224EB30
add r0, r4, #0
mov r1, #0
mov r2, #0xf0
- bl Call_FillMemWithValue
+ bl memset
add r0, r4, #0
add r0, #0xdc
mov r1, #4
@@ -43667,7 +43667,7 @@ MOD06_0224EB78: ; 0x0224EB78
add r0, r4, #0
mov r1, #0
mov r2, #0xf0
- bl Call_FillMemWithValue
+ bl memset
add r0, r4, #0
add r0, #0xdc
mov r1, #4
@@ -43805,7 +43805,7 @@ MOD06_0224EC5C: ; 0x0224EC5C
strb r1, [r0, #1]
ldr r0, [sp, #8]
mov r1, #0
- bl Call_FillMemWithValue
+ bl memset
mov r1, #0x6e
ldr r0, [sp, #8]
lsl r1, r1, #2
@@ -44057,7 +44057,7 @@ MOD06_0224EE54: ; 0x0224EE54
mov r2, #0xcc
add r7, r0, #0
add r5, r3, #0
- bl Call_FillMemWithValue
+ bl memset
ldr r1, [sp]
add r0, r7, #0
bl MOD05_021F5400
@@ -44103,7 +44103,7 @@ _0224EEAC:
add r0, r7, #0
mov r1, #0
mov r2, #0xcc
- bl Call_FillMemWithValue
+ bl memset
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD06_0224EEC8
@@ -44228,7 +44228,7 @@ MOD06_0224EF98: ; 0x0224EF98
add r0, r5, #0
mov r1, #0
lsl r2, r2, #4
- bl Call_FillMemWithValue
+ bl memset
ldr r0, _0224F024 ; =0x00000CFC
mov r1, #4
add r0, r5, r0
diff --git a/arm9/modules/07/asm/module_07.s b/arm9/modules/07/asm/module_07.s
index 1afc6bca..9ec5f07f 100644
--- a/arm9/modules/07/asm/module_07.s
+++ b/arm9/modules/07/asm/module_07.s
@@ -16,7 +16,7 @@ MOD07_02211E60: ; 0x02211E60
ldr r2, _02211E8C ; =0x00000B84
mov r1, #0
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
ldr r0, _02211E90 ; =0x00000B7F
str r5, [r4]
mov r1, #0
@@ -733,7 +733,7 @@ _02212450:
_02212454:
sub r0, r0, #6
ldrsb r4, [r5, r0]
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r4, #0
bl _s32_div_f
lsr r0, r4, #0x1f
@@ -744,7 +744,7 @@ _02212454:
asr r6, r0, #0x10
ldr r0, _02212580 ; =0x00000B7D
ldrsb r4, [r5, r0]
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r4, #0
bl _s32_div_f
lsr r0, r4, #0x1f
@@ -3504,7 +3504,7 @@ _02213AC2:
add r0, r6, r4
mov r1, #0
mov r2, #0x20
- bl Call_FillMemWithValue
+ bl memset
add r0, r5, #1
lsl r0, r0, #0x10
lsr r5, r0, #0x10
@@ -3795,7 +3795,7 @@ MOD07_02213D30: ; 0x02213D30
add r0, r4, r0
mov r1, #0
mov r2, #0x90
- bl Call_FillMemWithValue
+ bl memset
ldr r1, [r4]
add r0, r4, #0
ldr r1, [r1, #4]
diff --git a/arm9/modules/08/asm/module_08.s b/arm9/modules/08/asm/module_08.s
index b9678da6..9bc92d95 100644
--- a/arm9/modules/08/asm/module_08.s
+++ b/arm9/modules/08/asm/module_08.s
@@ -170,7 +170,7 @@ _02211F78:
mov r2, #0x69
mov r1, #0
lsl r2, r2, #2
- bl Call_FillMemWithValue
+ bl memset
mov r1, #0x47
str r5, [r4]
mov r0, #0
@@ -195,7 +195,7 @@ _02211FAC:
mov r2, #0x47
mov r1, #0
lsl r2, r2, #2
- bl Call_FillMemWithValue
+ bl memset
mov r1, #0
str r1, [r4, #0xc]
str r1, [r4, #0x18]
@@ -991,7 +991,7 @@ MOD08_0221252C: ; 0x0221252C
_02212544:
mov r1, #0
mov r2, #0x3c
- bl Call_FillMemWithValue
+ bl memset
add r0, r5, #0
add r0, #0x90
ldrh r0, [r0]
@@ -4277,7 +4277,7 @@ MOD08_02213DA8: ; 0x02213DA8
_02213DC0:
mov r1, #0
mov r2, #0x4c
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0
str r0, [r4]
strb r0, [r4, #5]
@@ -6119,7 +6119,7 @@ MOD08_02214BC4: ; 0x02214BC4
mov r1, #0
mov r2, #0x3c
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #1
strb r0, [r4]
ldr r0, [r5, #0x18]
@@ -6194,7 +6194,7 @@ MOD08_02214C64: ; 0x02214C64
mov r1, #0
mov r2, #0x3c
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #2
strb r0, [r4]
ldr r0, [r5, #0x18]
@@ -6252,7 +6252,7 @@ MOD08_02214CDC: ; 0x02214CDC
mov r1, #0
mov r2, #0x3c
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #1
strb r0, [r4]
ldr r0, [r5, #0x18]
@@ -6328,7 +6328,7 @@ MOD08_02214D80: ; 0x02214D80
mov r1, #0
mov r2, #0x3c
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #4
strb r0, [r4]
ldr r0, [r5, #0x18]
@@ -6377,7 +6377,7 @@ MOD08_02214DE4: ; 0x02214DE4
mov r1, #0
mov r2, #0x3c
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #5
strb r0, [r4]
ldr r0, [r5, #0x18]
@@ -14196,7 +14196,7 @@ MOD08_022187F4: ; 0x022187F4
ldr r2, _02218864 ; =0x00000624
mov r1, #0
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
cmp r4, #0
bne _02218816
bl ErrorHandling
@@ -14320,7 +14320,7 @@ _022188F8:
add r0, r4, #0
mov r1, #0
mov r2, #0x20
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [sp, #0x34]
bl MOD08_022189A0
add r6, r0, #0
@@ -22324,7 +22324,7 @@ _0221C8F4:
ldr r1, _0221CAF4 ; =0x0000A0C0
add r0, #0x44
strh r1, [r0]
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #5
bl _s32_div_f
add r1, #0x23
@@ -22364,7 +22364,7 @@ _0221C94E:
ldr r1, _0221CAF8 ; =0x000056C0
add r0, #0x44
strh r1, [r0]
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #5
bl _s32_div_f
add r1, #0x23
@@ -22372,7 +22372,7 @@ _0221C94E:
str r1, [r4, #0x3c]
pop {r3, r4, r5, r6, pc}
_0221C9A0:
- bl FUN_0201B9EC
+ bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x1f
sub r1, r1, r2
@@ -22407,7 +22407,7 @@ _0221C9D2:
add sp, #4
pop {r3, r4, r5, r6, pc}
_0221C9E4:
- bl FUN_0201B9EC
+ bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x1f
sub r1, r1, r2
@@ -22439,7 +22439,7 @@ _0221CA0E:
add sp, #4
pop {r3, r4, r5, r6, pc}
_0221CA26:
- bl FUN_0201B9EC
+ bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x1f
sub r1, r1, r2
@@ -22471,7 +22471,7 @@ _0221CA50:
add sp, #4
pop {r3, r4, r5, r6, pc}
_0221CA68:
- bl FUN_0201B9EC
+ bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x1f
sub r1, r1, r2
@@ -29035,7 +29035,7 @@ _02220010:
strb r0, [r4, #0xc]
b _02220092
_02220020:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0xa
bl _s32_div_f
add r5, r1, #0
@@ -29290,7 +29290,7 @@ _022201FE:
add r1, r5, #0
add r1, #0x21
strb r0, [r1]
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0xa
bl _s32_div_f
ldr r0, [sp, #0x14]
@@ -29299,7 +29299,7 @@ _022201FE:
add r0, r5, #0
add r0, #0x22
strb r1, [r0]
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #6
bl _s32_div_f
add r0, r5, #0
@@ -29321,7 +29321,7 @@ _022201FE:
lsl r0, r0, #3
str r0, [sp, #0x18]
add r7, r1, r0
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #6
ldrsh r1, [r7, r1]
bl _s32_div_f
@@ -29331,7 +29331,7 @@ _022201FE:
lsl r0, r0, #0x10
asr r0, r0, #0x10
str r0, [sp, #0x10]
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #4
ldrsh r1, [r7, r1]
bl _s32_div_f
@@ -30100,7 +30100,7 @@ MOD08_022208A0: ; 0x022208A0
add r6, r4, #2
add r5, r4, #4
_022208D4:
- bl FUN_0201B9EC
+ bl rand_LC
lsr r1, r0, #0x1f
lsl r2, r0, #0x1e
sub r2, r2, r1
@@ -33630,7 +33630,7 @@ MOD08_02222654: ; 0x02222654
mov r1, #0
mov r2, #0x68
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
ldr r1, _022227BC ; =MOD08_022224E0
str r5, [r4]
add r0, r5, #0
@@ -34043,7 +34043,7 @@ MOD08_022229C8: ; 0x022229C8
add r4, r0, #0
mov r1, #0
mov r2, #0x50
- bl Call_FillMemWithValue
+ bl memset
str r5, [r4]
add r0, r5, #0
bl MOD08_02212504
@@ -34119,7 +34119,7 @@ MOD08_02222A78: ; 0x02222A78
add r4, r0, #0
mov r1, #0
mov r2, #0x40
- bl Call_FillMemWithValue
+ bl memset
str r5, [r4]
add r0, r5, #0
bl MOD08_02212460
@@ -44768,7 +44768,7 @@ _02228086:
add r0, r4, #0
mov r1, #0
add r2, r5, #0
- bl Call_FillMemWithValue
+ bl memset
add r0, r4, #0
pop {r3, r4, r5, pc}
@@ -47110,7 +47110,7 @@ _02229136:
bl MOD08_022280C4
cmp r0, #1
bne _0222928C
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x14
bl _s32_div_f
add r1, #0xa
@@ -47458,7 +47458,7 @@ _022293F6:
bl MOD08_022280C4
cmp r0, #1
bne _0222954C
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x14
bl _s32_div_f
add r1, #0xa
@@ -48137,7 +48137,7 @@ _0222993C:
add r0, #0x21
strb r2, [r0]
bl MOD08_0221268C
- bl FUN_0201B9EC
+ bl rand_LC
lsr r1, r0, #0x1f
lsl r0, r0, #0x1f
sub r0, r0, r1
diff --git a/arm9/modules/09/asm/module_09.s b/arm9/modules/09/asm/module_09.s
index e0510cd2..f2efcdad 100644
--- a/arm9/modules/09/asm/module_09.s
+++ b/arm9/modules/09/asm/module_09.s
@@ -22,7 +22,7 @@ _02211E6E:
ldr r2, _02211EDC ; =0x00002090
add r4, r0, #0
mov r1, #0
- bl Call_FillMemWithValue
+ bl memset
str r5, [r4]
ldr r0, [r5, #8]
bl MOD11_0222FF68
@@ -12661,7 +12661,7 @@ MOD09_022186F0: ; 0x022186F0
ldr r2, _02218784 ; =0x0000115C
add r4, r0, #0
mov r1, #0
- bl Call_FillMemWithValue
+ bl memset
str r5, [r4]
ldr r0, [r5]
bl MOD11_0222FF68
diff --git a/arm9/modules/11/asm/module_11.s b/arm9/modules/11/asm/module_11.s
index 63ecac82..820d6e96 100644
--- a/arm9/modules/11/asm/module_11.s
+++ b/arm9/modules/11/asm/module_11.s
@@ -671,7 +671,7 @@ MOD11_0222DB50: ; 0x0222DB50
mov r0, #0
add r2, r5, #0
bl MIi_CpuClear16
- bl FUN_0201B9D4
+ bl getseed_LC
ldr r1, _0222DF0C ; =0x00002430
str r0, [r4, r1]
add r0, sp, #0x20
@@ -695,7 +695,7 @@ MOD11_0222DB50: ; 0x0222DB50
add r0, r2, r0
add r0, r3, r0
add r0, r5, r0
- bl FUN_0201B9E0
+ bl seedr_LC
bl MOD11_0222EF30
str r0, [r4]
bl FUN_02015F1C
@@ -1381,7 +1381,7 @@ _0222E1AC:
bl MOD11_0222EFD4
ldr r0, _0222E254 ; =0x00002430
ldr r0, [r4, r0]
- bl FUN_0201B9E0
+ bl seedr_LC
add r0, r4, #0
bl MOD11_02231474
cmp r0, #0
@@ -3095,7 +3095,7 @@ MOD11_0222F01C: ; 0x0222F01C
push {r3, r4, r5, lr}
sub sp, #0x50
add r4, r0, #0
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, _0222F0B8 ; =0x000023FB
ldrb r2, [r4, r1]
lsl r0, r2, #0x1f
@@ -13196,7 +13196,7 @@ MOD11_02233DE4: ; 0x02233DE4
mov r4, #5
b _02233E36
_02233E1C:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #3
and r0, r1
cmp r0, #2
@@ -13204,7 +13204,7 @@ _02233E1C:
add r4, r0, #2
b _02233E36
_02233E2C:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #3
and r0, r1
add r4, r0, #2
@@ -14440,7 +14440,7 @@ MOD11_022347B0: ; 0x022347B0
add r0, r5, #0
bl MOD11_0223A404
add r6, r0, #0
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r4, #1
bl _s32_div_f
mov r0, #0x4d
@@ -14886,7 +14886,7 @@ _02234AF6:
ldr r6, _02234BD0 ; =0x0000308C
mov r7, #0x1e
_02234B22:
- bl FUN_0201B9EC
+ bl rand_LC
lsr r2, r0, #0x1f
lsl r0, r0, #0x1e
ldr r1, [r5, #0x64]
@@ -15701,7 +15701,7 @@ _0223518E:
_0223519E:
ldr r7, _02235238 ; =0x00002D4C
_022351A0:
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r6, #0
bl _s32_div_f
ldr r2, [r4, #0x64]
@@ -16386,7 +16386,7 @@ _022356AA:
add r0, r1, r0
lsl r0, r0, #0x10
lsr r5, r0, #0x10
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x64
bl _s32_div_f
cmp r1, r5
@@ -16474,7 +16474,7 @@ _02235784:
add r0, r1, r0
lsl r0, r0, #0x10
lsr r5, r0, #0x10
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x64
bl _s32_div_f
cmp r1, r5
@@ -16800,7 +16800,7 @@ MOD11_02235A2C: ; 0x02235A2C
ldr r4, _02235A7C ; =0x00002D4C
mov r7, #0xc0
_02235A3C:
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, _02235A80 ; =0x000001D3
bl _s32_div_f
add r0, r1, #1
@@ -16892,7 +16892,7 @@ MOD11_02235A84: ; 0x02235A84
mul r2, r7
add r1, r5, r2
strh r3, [r1, r0]
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, _02235B3C ; =0x00002DC8
ldr r4, [r5, #0x6c]
add r3, r5, r1
@@ -17250,7 +17250,7 @@ _02235D7E:
add r1, r5, r1
add r0, r3, #2
strh r4, [r1, r0]
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, _02235E14 ; =0x00002DC8
ldr r2, [r5, #0x6c]
add r4, r5, r1
@@ -17716,7 +17716,7 @@ _02236156:
_02236180:
mov r7, #0x1e
_02236182:
- bl FUN_0201B9EC
+ bl rand_LC
lsr r1, r0, #0x1f
lsl r0, r0, #0x1e
sub r0, r0, r1
@@ -18218,7 +18218,7 @@ _02236572:
add r4, r6, r0
mov r0, #0xc0
mul r5, r0
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, [r4, r5]
lsl r1, r1, #0x13
lsr r1, r1, #0x1e
@@ -18519,7 +18519,7 @@ _022367DE:
beq _02236844
mov r7, #5
_022367EA:
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r6, #0
bl _s32_div_f
ldr r0, [sp, #0xc]
@@ -19809,7 +19809,7 @@ MOD11_02237220: ; 0x02237220
add r0, r5, #0
bl MOD11_0223A404
add r4, r0, #0
- bl FUN_0201B9EC
+ bl rand_LC
lsl r0, r0, #0x18
lsr r0, r0, #0x18
cmp r0, #0x66
@@ -19865,7 +19865,7 @@ MOD11_02237290: ; 0x02237290
ldrb r0, [r4, r0]
cmp r0, #0
bne _0223731C
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x64
bl _s32_div_f
ldr r0, _0223732C ; =0x00003120
@@ -21218,7 +21218,7 @@ _02237D7E:
_02237D8A:
cmp r7, #0
beq _02237DA8
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r7, #0
bl _s32_div_f
lsl r1, r1, #1
@@ -23903,12 +23903,12 @@ _02239222:
ldr r0, [sp, #8]
cmp r0, #0
bne _022392EC
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0xa
bl _s32_div_f
cmp r1, #0
bne _022392EC
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x64
bl _s32_div_f
add r5, r1, #0
@@ -23997,7 +23997,7 @@ _02239324:
blt _0223932E
bl ErrorHandling
_0223932E:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x64
bl _s32_div_f
ldr r2, [sp, #0xc]
@@ -24714,7 +24714,7 @@ _022398F0:
bne _022398F8
bl ErrorHandling
_022398F8:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x64
bl _s32_div_f
cmp r1, r4
@@ -24797,7 +24797,7 @@ _0223999C:
_022399A0:
mov r4, #0x1e
_022399A2:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x64
bl _s32_div_f
cmp r1, r4
@@ -25527,7 +25527,7 @@ _02239F82:
blt _02239F74
cmp r4, #0
beq _02239FB0
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r4, #0
bl _s32_div_f
lsl r1, r1, #2
@@ -25719,7 +25719,7 @@ MOD11_0223A0D8: ; 0x0223A0D8
str r0, [sp]
cmp r6, #0x40
bne _0223A126
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x64
bl _s32_div_f
ldr r0, [sp]
@@ -29776,7 +29776,7 @@ _0223C1CC:
add r6, r0, #0
mov r5, #0
_0223C1E0:
- bl FUN_0201B9EC
+ bl rand_LC
cmp r0, r6
bhs _0223C1EE
add r5, r5, #1
@@ -33367,7 +33367,7 @@ _0223DE26:
mov r6, #0
add r5, r4, #0
_0223DE2A:
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, _0223DE70 ; =0x0000310C
add r6, r6, #1
strh r0, [r5, r1]
@@ -36661,7 +36661,7 @@ MOD11_0223F770: ; 0x0223F770
str r0, [r4, #8]
mov r0, #0x27
str r0, [r4, #0xc]
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0xa
bl _s32_div_f
mov r0, #0x4e
@@ -36707,7 +36707,7 @@ MOD11_0223F7CC: ; 0x0223F7CC
str r0, [r4, #8]
mov r0, #0x27
str r0, [r4, #0xc]
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0xa
bl _s32_div_f
mov r0, #0x4e
@@ -36857,7 +36857,7 @@ _0223F8F6:
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_0223F90E:
- bl FUN_0201B9EC
+ bl rand_LC
lsl r0, r0, #0x18
ldr r1, _0223FAEC ; =0x00002D74
add r2, r4, r7
@@ -36911,7 +36911,7 @@ _0223F968:
ldr r0, _0223FAEC ; =0x00002D74
ldrb r0, [r1, r0]
str r0, [sp, #0x1c]
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, [sp, #0x1c]
lsl r0, r0, #0x18
add r1, r5, r1
@@ -36942,7 +36942,7 @@ _0223F968:
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_0223F9B6:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #3
add r7, r0, #0
and r7, r1
@@ -37004,7 +37004,7 @@ _0223FA2E:
sub r0, r0, r5
lsl r0, r0, #0x18
lsr r5, r0, #0x18
- bl FUN_0201B9EC
+ bl rand_LC
lsl r0, r0, #0x18
lsr r7, r0, #0x18
cmp r7, r5
@@ -37665,7 +37665,7 @@ _0223FF42:
mov r0, #0x20
tst r0, r1
beq _0223FF9E
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #5
bl _s32_div_f
cmp r1, #0
@@ -37990,7 +37990,7 @@ _022401CA:
mov r0, #7
tst r0, r1
beq _02240276
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #1
tst r0, r1
beq _02240204
@@ -38084,7 +38084,7 @@ _0224028C:
bl MOD11_02246D1C
cmp r0, #0x62
beq _022402E0
- bl FUN_0201B9EC
+ bl rand_LC
lsr r1, r0, #0x1f
lsl r2, r0, #0x1e
sub r2, r2, r1
@@ -38130,7 +38130,7 @@ _022402E8:
mov r1, #0x46
lsl r1, r1, #2
str r0, [r4, r1]
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #1
tst r0, r1
beq _02240326
@@ -38799,7 +38799,7 @@ _0224082A:
lsl r0, r0, #0x10
lsr r4, r0, #0x10
_02240846:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x64
bl _s32_div_f
add r0, r1, #1
@@ -39874,7 +39874,7 @@ _0224106A:
bne _022410D0
cmp r7, #0x40
bne _022410A4
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x64
bl _s32_div_f
ldr r0, [sp]
@@ -42995,7 +42995,7 @@ MOD11_02242870: ; 0x02242870
cmp r0, #0
beq _0224290A
_022428B8:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x64
bl _s32_div_f
cmp r1, r6
@@ -47053,7 +47053,7 @@ _02244760:
_02244776:
cmp r6, r4
bne _02244784
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #1
tst r0, r1
bne _02244786
@@ -47098,7 +47098,7 @@ _022447B0:
_022447C6:
cmp r6, r4
bne _022448B4
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #1
tst r0, r1
beq _022448B4
@@ -47140,7 +47140,7 @@ _022447FE:
_02244814:
cmp r6, r4
bne _022448B4
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #1
tst r0, r1
beq _022448B4
@@ -47182,7 +47182,7 @@ _0224484C:
_02244862:
cmp r6, r4
bne _022448B4
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #1
tst r0, r1
beq _022448B4
@@ -47197,7 +47197,7 @@ _02244876:
_0224487E:
cmp r6, r4
bne _022448B4
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #1
tst r0, r1
beq _022448B4
@@ -47515,7 +47515,7 @@ _02244AF4:
bne _02244AFC
bl ErrorHandling
_02244AFC:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x64
bl _s32_div_f
cmp r1, r6
@@ -47584,7 +47584,7 @@ _02244B7C:
bne _02244B84
bl ErrorHandling
_02244B84:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x64
bl _s32_div_f
cmp r1, r7
@@ -47803,7 +47803,7 @@ _02244D26:
mov r1, #2
tst r0, r1
beq _02244D6E
- bl FUN_0201B9EC
+ bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x1f
sub r1, r1, r2
@@ -47974,7 +47974,7 @@ _02244E72:
ldr r1, [r1, r2]
cmp r1, #0
beq _02244EA0
- bl FUN_0201B9EC
+ bl rand_LC
lsl r0, r0, #0x1f
lsr r1, r0, #0x1d
add r0, sp, #0x14
@@ -48897,7 +48897,7 @@ _02245594:
ldr r0, _022455F4 ; =0x000021A0
mov r1, #6
strb r1, [r2, r0]
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, _022455F8 ; =0x0000310C
add r4, r4, #1
strh r0, [r5, r1]
@@ -51716,7 +51716,7 @@ MOD11_02246B58: ; 0x02246B58
mov r0, #1
cmp r6, #0x70
blo _02246B76
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x70
bl _u32_div_f
add r6, r1, #0
@@ -51925,7 +51925,7 @@ MOD11_02246CCC: ; 0x02246CCC
mov r6, #1
b _02246D14
_02246CF0:
- bl FUN_0201B9EC
+ bl rand_LC
ldr r2, [r5, #0x64]
mov r1, #0xc0
mul r1, r2
@@ -52489,7 +52489,7 @@ _0224711C:
add r0, r1, r0
lsl r0, r0, #0x18
lsr r7, r0, #0x18
- bl FUN_0201B9EC
+ bl rand_LC
lsr r1, r0, #0x1f
lsl r2, r0, #0x18
sub r2, r2, r1
@@ -53154,7 +53154,7 @@ _02247616:
ldr r0, [r0, r1]
cmp r0, #0
beq _02247696
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0xa
bl _s32_div_f
cmp r1, #3
@@ -54095,7 +54095,7 @@ _02247D2C:
cmp r5, #0x96
blo _02247D3C
bne _02247DCE
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #1
tst r0, r1
beq _02247DCE
@@ -54109,7 +54109,7 @@ _02247D46:
cmp r5, #0x78
blo _02247D56
bne _02247DCE
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #1
tst r0, r1
beq _02247DCE
@@ -54138,7 +54138,7 @@ _02247D98:
cmp r5, #0x50
blo _02247DA8
bne _02247DCE
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #1
tst r0, r1
beq _02247DCE
@@ -54154,7 +54154,7 @@ _02247DB2:
blo _02247DC6
cmp r5, r0
bne _02247DCE
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #1
tst r0, r1
beq _02247DCE
@@ -54209,7 +54209,7 @@ _02247E08:
add r2, r5, #0
bl MOD11_022473F8
add r6, r0, #0
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r6, #0
bl _s32_div_f
mov r0, #0xc0
@@ -54329,7 +54329,7 @@ _02247E88:
ldrh r0, [r0, r2]
cmp r0, #0
beq _02247F38
- bl FUN_0201B9EC
+ bl rand_LC
lsl r0, r0, #0x1f
lsr r1, r0, #0x1d
add r0, sp, #0xc0
@@ -54826,7 +54826,7 @@ MOD11_022482A4: ; 0x022482A4
mov r2, #2
bl MOD11_02230308
str r0, [sp, #4]
- bl FUN_0201B9EC
+ bl rand_LC
mov r3, #1
add r2, r0, #0
and r2, r3
@@ -54972,7 +54972,7 @@ _022483C6:
mov r0, #1
tst r0, r1
beq _022483E6
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0xa
bl _s32_div_f
cmp r1, #3
@@ -55212,12 +55212,12 @@ _0224859A:
mov r0, #1
tst r0, r1
beq _02248650
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0xa
bl _s32_div_f
cmp r1, #3
bge _02248650
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #3
bl _s32_div_f
cmp r1, #0
@@ -55320,7 +55320,7 @@ _02248688:
mov r0, #1
tst r0, r1
beq _02248770
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0xa
bl _s32_div_f
cmp r1, #3
@@ -55394,7 +55394,7 @@ _02248712:
mov r0, #1
tst r0, r1
beq _02248770
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0xa
bl _s32_div_f
cmp r1, #3
@@ -55480,7 +55480,7 @@ _022487AC:
ldr r0, [r1, r0]
cmp r0, #0
beq _0224887A
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0xa
bl _s32_div_f
cmp r1, #3
@@ -56763,7 +56763,7 @@ _02249168:
add r5, r4, r5
mov r7, #5
_02249172:
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r7, #0
bl _s32_div_f
add r0, r5, r1
@@ -57892,7 +57892,7 @@ _02249A12:
ldr r7, _02249A64 ; =0x00002D59
add r5, r4, r5
_02249A1A:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #5
bl _s32_div_f
add r0, r5, r1
@@ -59201,7 +59201,7 @@ _0224A3F2:
mov r7, #5
mov r6, #0xc0
_0224A3FC:
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r7, #0
bl _s32_div_f
ldr r0, [r4, #0x64]
@@ -60051,7 +60051,7 @@ _0224AA5A:
mov r7, #5
mov r6, #0xc0
_0224AA64:
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r7, #0
bl _s32_div_f
ldr r0, [r4, #0x6c]
@@ -62697,7 +62697,7 @@ MOD11_0224BF10: ; 0x0224BF10
push {r4, lr}
add r4, r1, #0
beq _0224BF36
- bl FUN_0201B9EC
+ bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x1c
sub r1, r1, r2
@@ -62809,7 +62809,7 @@ _0224BFC4:
bls _0224BFE0
mov r5, #4
_0224BFE0:
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, _0224C040 ; =0x0225E244
ldrb r1, [r1, r5]
bl _s32_div_f
@@ -64007,7 +64007,7 @@ MOD11_0224C84C: ; 0x0224C84C
beq _0224C890
cmp r2, #0x79
beq _0224C890
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #1
tst r0, r1
beq _0224C88C
@@ -72933,7 +72933,7 @@ MOD11_02250F94: ; 0x02250F94
ldrb r1, [r2, r1]
bl _s32_div_f
add r5, r0, #0
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0xff
bl _s32_div_f
cmp r1, r5
@@ -73222,7 +73222,7 @@ _0225122E:
add r4, r4, #1
cmp r4, #4
blt _0225121C
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r7, #0
bl _s32_div_f
lsl r1, r1, #2
@@ -88682,7 +88682,7 @@ _02258C1E:
strb r0, [r4, #4]
mov r0, #0xa
strb r0, [r4, #5]
- bl FUN_0201B9EC
+ bl rand_LC
lsr r1, r0, #0x1f
lsl r3, r0, #0x1d
ldrb r2, [r4, #5]
diff --git a/arm9/modules/13/asm/module_13_arm2.s b/arm9/modules/13/asm/module_13_arm2.s
index d5e257e5..4a499200 100644
--- a/arm9/modules/13/asm/module_13_arm2.s
+++ b/arm9/modules/13/asm/module_13_arm2.s
@@ -17010,7 +17010,7 @@ _0222CC8C:
add r0, sp, #0
mov r2, r4
mov r1, #0x2a
- bl Call_FillMemWithValue
+ bl memset
add r0, sp, #0
mov r1, r5
bl MOD13_0222C788
diff --git a/arm9/modules/13/asm/module_13_thumb.s b/arm9/modules/13/asm/module_13_thumb.s
index 3dcc0731..5cb48aa3 100644
--- a/arm9/modules/13/asm/module_13_thumb.s
+++ b/arm9/modules/13/asm/module_13_thumb.s
@@ -7170,7 +7170,7 @@ MOD13_0221AA64: ; 0x0221AA64
beq _0221AA82
mov r1, #0
add r2, r4, #0
- bl Call_FillMemWithValue
+ bl memset
_0221AA82:
add r0, r5, #0
add sp, #4
@@ -11705,7 +11705,7 @@ _0221CDE0:
add r0, r0, r1
add r1, r7, #0
mov r2, #0x20
- bl Call_FillMemWithValue
+ bl memset
ldr r0, _0221CE88 ; =0x02241E90
ldr r0, [r0, #0x5c]
cmp r0, #1
@@ -12253,7 +12253,7 @@ MOD13_0221D1E0: ; 0x0221D1E0
add r0, r5, #0
mov r1, #0
add r2, r6, #0
- bl Call_FillMemWithValue
+ bl memset
add r0, r5, #0
add r1, r7, #0
add r2, r4, #0
diff --git a/arm9/modules/16/asm/module_16.s b/arm9/modules/16/asm/module_16.s
index 9b9e30bb..839501c6 100644
--- a/arm9/modules/16/asm/module_16.s
+++ b/arm9/modules/16/asm/module_16.s
@@ -250,7 +250,7 @@ _021D76C2:
ldr r2, _021D77D0 ; =0x00001D10
add r0, r4, #0
mov r1, #0
- bl Call_FillMemWithValue
+ bl memset
str r7, [r4, #4]
ldr r0, [r5, #0x1c]
str r0, [r4, #8]
@@ -2301,7 +2301,7 @@ MOD16_021D8628: ; 0x021D8628
add r0, r4, #0
mov r1, #0
lsl r2, r2, #6
- bl Call_FillMemWithValue
+ bl memset
pop {r4, pc}
thumb_func_end MOD16_021D8628
@@ -4566,7 +4566,7 @@ MOD16_021D9798: ; 0x021D9798
ldr r2, _021D988C ; =0x00001770
mov r1, #0
add r5, r0, #0
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [r4]
str r0, [r5]
ldr r1, [r4, #8]
@@ -5017,7 +5017,7 @@ _021D9AAE:
ldr r2, _021D9CA8 ; =0x000003DA
add r0, r6, #0
mov r1, #0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0
str r0, [sp, #0x24]
ldr r1, _021D9CA8 ; =0x000003DA
@@ -5030,7 +5030,7 @@ _021D9ACC:
ldr r2, _021D9CA8 ; =0x000003DA
add r0, r4, #0
mov r1, #0
- bl Call_FillMemWithValue
+ bl memset
mov r1, #0
ldr r0, [sp, #0x48]
str r1, [sp, #0x20]
@@ -5081,7 +5081,7 @@ _021D9B16:
str r2, [sp, #0x24]
mov r1, #0
lsl r2, r2, #1
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0
str r0, [sp, #0x20]
ldr r0, [sp, #0x24]
@@ -5109,7 +5109,7 @@ _021D9B6A:
str r2, [sp, #0x24]
mov r1, #0
lsl r2, r2, #1
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0
str r0, [sp, #0x20]
ldr r0, [sp, #0x24]
@@ -5137,7 +5137,7 @@ _021D9BA6:
str r2, [sp, #0x24]
mov r1, #0
lsl r2, r2, #1
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0
str r0, [sp, #0x20]
ldr r0, [sp, #0x24]
@@ -5165,7 +5165,7 @@ _021D9BE2:
str r2, [sp, #0x24]
mov r1, #0
lsl r2, r2, #1
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0
str r0, [sp, #0x20]
ldr r0, [sp, #0x24]
@@ -5193,7 +5193,7 @@ _021D9C1E:
str r2, [sp, #0x24]
mov r1, #0
lsl r2, r2, #1
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0
str r0, [sp, #0x20]
ldr r1, [r5]
@@ -6623,7 +6623,7 @@ _021DA60E:
add r0, r4, #0
mov r1, #0
mov r2, #0x48
- bl Call_FillMemWithValue
+ bl memset
mov r0, #5
str r0, [r4, #8]
str r5, [r4, #0x44]
@@ -7584,7 +7584,7 @@ _021DACB2:
add r0, r4, #0
mov r1, #0
mov r2, #0x30
- bl Call_FillMemWithValue
+ bl memset
add r0, r5, #0
bl MOD16_021D7A38
str r0, [r4]
@@ -7686,7 +7686,7 @@ _021DAD92:
add r0, r4, #0
mov r1, #0
mov r2, #0x30
- bl Call_FillMemWithValue
+ bl memset
add r0, r5, #0
bl MOD16_021D7A38
str r0, [r4]
@@ -7750,7 +7750,7 @@ _021DAE26:
add r0, r4, #0
mov r1, #0
mov r2, #0x30
- bl Call_FillMemWithValue
+ bl memset
add r0, r5, #0
bl MOD16_021D7A38
str r0, [r4]
@@ -8271,7 +8271,7 @@ _021DB268:
ldr r0, [r4, #0xc]
mov r1, #0
lsl r2, r2, #4
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [r5, #8]
str r0, [r4, #0x10]
ldr r0, [r5]
@@ -10427,7 +10427,7 @@ _021DC11E:
add r0, r4, #0
mov r1, #0
mov r2, #0x38
- bl Call_FillMemWithValue
+ bl memset
add r0, r5, #0
bl MOD16_021D7AD8
str r0, [r4]
@@ -10585,7 +10585,7 @@ _021DC24C:
ldr r0, [r5, #8]
mov r1, #0
mov r2, #0x24
- bl Call_FillMemWithValue
+ bl memset
ldr r1, [r5, #8]
add r0, r4, #0
bl MOD16_021DC4D4
@@ -12543,7 +12543,7 @@ MOD16_021DD1A0: ; 0x021DD1A0
mov r1, #0
lsl r2, r2, #2
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [r5, #4]
bl MOD16_021D9EC4
mov r1, #0x51
@@ -14004,7 +14004,7 @@ _021DDCB8:
add r0, r4, #0
mov r1, #0
mov r2, #0x28
- bl Call_FillMemWithValue
+ bl memset
add r0, r6, #0
mov r1, #0
bl MOD16_021D7B5C
@@ -14068,7 +14068,7 @@ _021DDD34:
add r0, r4, #0
mov r1, #0
add r2, r7, #0
- bl Call_FillMemWithValue
+ bl memset
add r0, r4, #0
add r1, r6, #0
add r2, r5, #0
@@ -14141,7 +14141,7 @@ _021DDDAC:
ldr r0, [r5, #8]
mov r1, #0
mov r2, #0x24
- bl Call_FillMemWithValue
+ bl memset
ldr r1, _021DDDD8 ; =0x000004CD
ldr r0, [r5, #8]
add r2, r4, #0
@@ -14251,7 +14251,7 @@ _021DDE72:
ldr r0, [r4, #8]
mov r1, #0
mov r2, #0x3c
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
@@ -16121,7 +16121,7 @@ _021DEC76:
add r0, r4, #0
mov r1, #0
mov r2, #0x38
- bl Call_FillMemWithValue
+ bl memset
add r0, r5, #0
bl MOD16_021D7AD8
str r0, [r4]
@@ -16178,7 +16178,7 @@ _021DECE8:
add r0, r4, #0
mov r1, #0
add r2, r7, #0
- bl Call_FillMemWithValue
+ bl memset
add r0, r5, #0
add r1, r4, #0
add r2, r6, #0
@@ -16465,7 +16465,7 @@ _021DEEDC:
str r0, [r4, #8]
mov r1, #0
mov r2, #0x64
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
@@ -18120,7 +18120,7 @@ _021DFB6A:
add r0, r4, #0
mov r1, #0
mov r2, #0x9c
- bl Call_FillMemWithValue
+ bl memset
add r0, r4, #0
ldr r1, _021DFBB4 ; =0x0000FFFF
str r4, [r5, #8]
@@ -18360,7 +18360,7 @@ _021DFD32:
str r0, [r4, #8]
mov r1, #0
lsl r2, r2, #2
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
@@ -25484,7 +25484,7 @@ _021E3016:
add r0, r4, #0
mov r1, #0
mov r2, #0x34
- bl Call_FillMemWithValue
+ bl memset
str r4, [r6, #8]
ldr r1, [r5]
ldr r0, _021E3070 ; =0x00001744
@@ -25621,7 +25621,7 @@ _021E310A:
ldr r2, _021E31D4 ; =0x00000844
str r0, [r4, #8]
mov r1, #0
- bl Call_FillMemWithValue
+ bl memset
ldr r5, [r4, #8]
ldr r0, [r7, #4]
mov r1, #0
@@ -27212,13 +27212,13 @@ MOD16_021E3DBC: ; 0x021E3DBC
add r0, #0xec
mov r1, #0
lsl r2, r2, #2
- bl Call_FillMemWithValue
+ bl memset
mov r2, #0x47
lsl r2, r2, #4
add r0, r6, r2
mov r1, #0
sub r2, #0xec
- bl Call_FillMemWithValue
+ bl memset
add r0, r6, #0
add r0, #0xc4
ldr r0, [r0]
@@ -27978,7 +27978,7 @@ _021E435A:
add r0, r4, #0
mov r1, #0
mov r2, #0x28
- bl Call_FillMemWithValue
+ bl memset
str r4, [r5, #8]
add r0, r4, #0
add r1, r6, #0
@@ -28062,7 +28062,7 @@ _021E43E8:
str r0, [r4, #8]
mov r1, #0
mov r2, #0x2c
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
@@ -29142,7 +29142,7 @@ _021E4BDE:
add r0, r4, #0
mov r1, #0
mov r2, #0x20
- bl Call_FillMemWithValue
+ bl memset
add r0, r5, #0
bl MOD16_021D7AD8
str r0, [r4]
@@ -29313,7 +29313,7 @@ _021E4D00:
str r0, [r4, #8]
mov r1, #0
mov r2, #0x74
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
@@ -31520,7 +31520,7 @@ _021E5DA4:
str r0, [r4, #8]
mov r1, #0
mov r2, #0xd0
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [r4, #8]
ldr r1, [r7, #0xc]
add r0, #0xc8
@@ -33918,7 +33918,7 @@ _021E6F2A:
add r0, r4, #0
mov r1, #0
mov r2, #0x20
- bl Call_FillMemWithValue
+ bl memset
add r0, r5, #0
bl MOD16_021D7AD8
str r0, [r4]
@@ -34041,7 +34041,7 @@ _021E6FE4:
str r0, [r4, #8]
mov r1, #0
mov r2, #0x58
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
@@ -35664,7 +35664,7 @@ _021E7C58:
add r0, r4, #0
mov r1, #0
add r2, r7, #0
- bl Call_FillMemWithValue
+ bl memset
add r0, r5, #0
add r1, r4, #0
add r2, r6, #0
@@ -35750,7 +35750,7 @@ MOD16_021E7CE4: ; 0x021E7CE4
mov r1, #0
mov r2, #0x3c
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
mov r1, #0
add r2, r4, #0
mov r0, #4
@@ -35850,7 +35850,7 @@ _021E7DA2:
str r0, [r4, #8]
mov r1, #0
mov r2, #0xc4
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
@@ -37791,7 +37791,7 @@ _021E8C82:
add r0, r4, #0
mov r1, #0
mov r2, #0x34
- bl Call_FillMemWithValue
+ bl memset
add r0, r5, #0
bl MOD16_021D7B00
str r0, [r4]
@@ -37878,7 +37878,7 @@ _021E8D3C:
add r0, r4, #0
mov r1, #0
add r2, r7, #0
- bl Call_FillMemWithValue
+ bl memset
add r0, r5, #0
add r1, r4, #0
add r2, r6, #0
@@ -38074,7 +38074,7 @@ _021E8E9E:
str r0, [r4, #8]
mov r1, #0
mov r2, #0x28
- bl Call_FillMemWithValue
+ bl memset
ldr r1, [r7, #8]
ldr r0, [r4, #8]
str r1, [r0]
@@ -39035,7 +39035,7 @@ _021E95E2:
add r0, r4, #0
mov r1, #0
mov r2, #0x34
- bl Call_FillMemWithValue
+ bl memset
add r0, r5, #0
bl MOD16_021D7B14
str r0, [r4]
@@ -39267,7 +39267,7 @@ _021E9774:
str r0, [r4, #8]
mov r1, #0
mov r2, #0x28
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
@@ -40948,7 +40948,7 @@ _021EA3C2:
str r0, [r4, #8]
mov r1, #0
lsl r2, r2, #4
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
@@ -42567,7 +42567,7 @@ MOD16_021EAFB4: ; 0x021EAFB4
mov r1, #0
mov r2, #0x70
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
ldr r2, [r5, #4]
add r0, r4, #0
add r1, r6, #0
@@ -42688,7 +42688,7 @@ _021EB0B0:
str r0, [r4, #8]
mov r1, #0
mov r2, #0x74
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
@@ -46275,7 +46275,7 @@ _021ECBE0:
add r0, r4, #0
mov r1, #0
add r2, r7, #0
- bl Call_FillMemWithValue
+ bl memset
add r0, r5, #0
add r1, r4, #0
add r2, r6, #0
@@ -46465,7 +46465,7 @@ _021ECD2C:
str r0, [r4, #8]
mov r1, #0
mov r2, #0x40
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
@@ -47659,7 +47659,7 @@ _021ED618:
add r0, r4, #0
mov r1, #0
mov r2, #0x20
- bl Call_FillMemWithValue
+ bl memset
add r0, r6, #0
bl MOD16_021D7B48
str r0, [r4]
@@ -47827,7 +47827,7 @@ _021ED738:
str r0, [r4, #8]
mov r1, #0
mov r2, #0xc4
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [r4, #8]
mov r1, #1
add r0, #0xb8
@@ -50034,7 +50034,7 @@ _021EE848:
str r0, [r4, #8]
mov r1, #0
mov r2, #0x30
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
@@ -50960,7 +50960,7 @@ MOD16_021EEF0C: ; 0x021EEF0C
add r4, r0, #0
mov r1, #0
lsl r2, r2, #2
- bl Call_FillMemWithValue
+ bl memset
add r0, r4, #0
add r1, r5, #0
bl MOD16_021EEFA4
@@ -52576,7 +52576,7 @@ _021EFBAA:
add r0, r5, #0
mov r1, #0
mov r2, #0x20
- bl Call_FillMemWithValue
+ bl memset
pop {r3, r4, r5, pc}
.align 2, 0
thumb_func_end MOD16_021EFBA4
@@ -52755,7 +52755,7 @@ _021EFCEA:
lsl r0, r0, #2
strb r7, [r1, r0]
_021EFCFC:
- bl FUN_0201B9EC
+ bl rand_LC
lsr r1, r0, #0x1f
lsl r2, r0, #0x1c
sub r2, r2, r1
@@ -52984,7 +52984,7 @@ _021EFE9C:
add r3, r3, #2
cmp r2, #4
blt _021EFE6A
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r4, #0
bl _s32_div_f
add r0, sp, #0
@@ -53160,7 +53160,7 @@ _021EFFE6:
add r2, r2, #2
cmp r1, #4
blt _021EFFBA
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r4, #0
bl _s32_div_f
add r0, sp, #0x10
@@ -53232,7 +53232,7 @@ _021F0070:
add r2, r2, #2
cmp r4, #4
blt _021F0056
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r6, #0
bl _s32_div_f
add r0, sp, #0x1c
@@ -53441,7 +53441,7 @@ MOD16_021F01FC: ; 0x021F01FC
add r0, r5, #0
bl MOD16_021F2D54
add r6, r0, #0
- bl FUN_0201B9EC
+ bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x18
sub r1, r1, r2
@@ -53471,7 +53471,7 @@ MOD16_021F0238: ; 0x021F0238
add r0, r5, #0
bl MOD16_021F2D54
add r6, r0, #0
- bl FUN_0201B9EC
+ bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x18
sub r1, r1, r2
@@ -53501,7 +53501,7 @@ MOD16_021F0274: ; 0x021F0274
add r0, r5, #0
bl MOD16_021F2D54
add r6, r0, #0
- bl FUN_0201B9EC
+ bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x18
sub r1, r1, r2
@@ -53531,7 +53531,7 @@ MOD16_021F02B0: ; 0x021F02B0
add r0, r5, #0
bl MOD16_021F2D54
add r6, r0, #0
- bl FUN_0201B9EC
+ bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x18
sub r1, r1, r2
@@ -55180,7 +55180,7 @@ _021F0F88:
beq _021F0FC2
cmp r6, #0
beq _021F0FC2
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #1
tst r0, r1
beq _021F0FBA
@@ -59600,7 +59600,7 @@ _021F3122:
str r0, [sp, #0x20]
b _021F3214
_021F3132:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0xb
bl _s32_div_f
ldr r0, [sp, #0x64]
@@ -59644,7 +59644,7 @@ _021F3170:
add r4, r0, #0
b _021F3214
_021F318E:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x64
bl _s32_div_f
cmp r1, #5
@@ -60483,7 +60483,7 @@ _021F3730:
mov r0, #2
tst r0, r1
beq _021F37D8
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #3
bl _s32_div_f
cmp r1, #2
@@ -60820,7 +60820,7 @@ _021F3A58:
mov r0, #2
tst r0, r1
beq _021F3A7E
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #3
bl _s32_div_f
cmp r1, #2
@@ -60884,7 +60884,7 @@ _021F3AE4:
mov r0, #2
tst r0, r1
beq _021F3B0A
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #3
bl _s32_div_f
cmp r1, #2
@@ -61062,7 +61062,7 @@ _021F3C5A:
ldr r0, [sp, #0xb0]
cmp r0, #0
bne _021F3C82
- bl FUN_0201B9EC
+ bl rand_LC
lsr r1, r0, #0x1f
lsl r2, r0, #0x1f
sub r2, r2, r1
@@ -61128,7 +61128,7 @@ _021F3CE8:
ldr r0, [sp, #0xb0]
cmp r0, #0
bne _021F3D10
- bl FUN_0201B9EC
+ bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x1f
sub r1, r1, r2
@@ -61235,7 +61235,7 @@ _021F3D78:
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021F3DC2:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0xa
bl _s32_div_f
cmp r1, #0
@@ -61313,7 +61313,7 @@ _021F3E18:
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021F3E62:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0xa
bl _s32_div_f
cmp r1, #0
@@ -61348,7 +61348,7 @@ MOD16_021F3E90: ; 0x021F3E90
bl MOD16_021F3D3C
cmp r0, #0
beq _021F3EB8
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #3
bl _s32_div_f
cmp r1, #0
@@ -61496,7 +61496,7 @@ _021F3F62:
ldr r0, [sp, #0x10]
cmp r0, r1
bne _021F3FE6
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #1
tst r0, r1
beq _021F3FE6
@@ -61776,7 +61776,7 @@ _021F4182:
mov r0, #2
tst r0, r1
beq _021F4232
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, [sp, #0x24]
bl _s32_div_f
cmp r1, #0
@@ -61855,7 +61855,7 @@ _021F42A4:
ldrh r0, [r6, r7]
cmp r0, #0
bne _021F42C8
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #1
tst r0, r1
beq _021F42C8
@@ -61874,7 +61874,7 @@ _021F42C8:
ldrb r0, [r1, r0]
cmp r0, #0
bne _021F42EE
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #1
tst r0, r1
beq _021F42EE
@@ -61912,7 +61912,7 @@ _021F4308:
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021F4322:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #1
tst r0, r1
beq _021F433A
diff --git a/arm9/modules/17/asm/module_17.s b/arm9/modules/17/asm/module_17.s
index 2a6f2e72..2703b8a1 100644
--- a/arm9/modules/17/asm/module_17.s
+++ b/arm9/modules/17/asm/module_17.s
@@ -19,7 +19,7 @@ MOD17_021D74E0: ; 0x021D74E0
mov r1, #0
add r2, r6, #0
str r0, [r4]
- bl Call_FillMemWithValue
+ bl memset
str r5, [r4, #4]
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
@@ -1616,7 +1616,7 @@ MOD17_021D8088: ; 0x021D8088
mov r1, #0
lsl r2, r2, #2
str r0, [r4, #0x30]
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0x77
str r0, [r4, #0x34]
pop {r4, pc}
@@ -1978,7 +1978,7 @@ MOD17_021D8358: ; 0x021D8358
ldr r2, [sp]
mov r1, #0
str r0, [r5]
- bl Call_FillMemWithValue
+ bl memset
add r0, r4, #0
add r1, r7, #0
bl FUN_02020C44
@@ -1993,7 +1993,7 @@ MOD17_021D8358: ; 0x021D8358
mov r1, #0
add r2, r4, #0
str r0, [r5, #8]
- bl Call_FillMemWithValue
+ bl memset
add r0, r6, #0
add r1, r7, #0
bl FUN_02020C44
@@ -2055,7 +2055,7 @@ MOD17_021D83E4: ; 0x021D83E4
ldr r2, _021D84D8 ; =0x000006D8
mov r1, #0
add r5, r0, #0
- bl Call_FillMemWithValue
+ bl memset
ldr r0, _021D84DC ; =MOD17_021D8FC8
add r1, r5, #0
bl FUN_02015F10
@@ -2545,7 +2545,7 @@ MOD17_021D8818: ; 0x021D8818
ldr r2, _021D897C ; =0x000006D8
mov r1, #0
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
ldr r0, _021D8980 ; =MOD17_021D8FC8
add r1, r4, #0
bl FUN_02015F10
@@ -5604,7 +5604,7 @@ MOD17_021D9FD4: ; 0x021D9FD4
add r0, r4, #0
mov r1, #0
mov r2, #0x88
- bl Call_FillMemWithValue
+ bl memset
pop {r4, pc}
.align 2, 0
thumb_func_end MOD17_021D9FD4
@@ -6485,7 +6485,7 @@ _021DA5EE:
add r0, r6, #0
mov r1, #0
mov r2, #0x8c
- bl Call_FillMemWithValue
+ bl memset
pop {r4, r5, r6, pc}
thumb_func_end MOD17_021DA5E0
@@ -6601,7 +6601,7 @@ _021DA6B8:
str r0, [r5]
mov r0, #0x12
str r0, [r4]
- bl FUN_0201BA60
+ bl rand_MT
ldr r2, [sp, #0x10]
mov r1, #0x6c
sub r1, r1, r2
@@ -6609,7 +6609,7 @@ _021DA6B8:
ldr r0, [r5]
add r0, r0, r1
str r0, [r5]
- bl FUN_0201BA60
+ bl rand_MT
ldr r2, [sp, #0x14]
mov r1, #0x7d
sub r1, r1, r2
@@ -7506,7 +7506,7 @@ _021DAD04:
ldr r0, [r4, #0x28]
mov r1, #0
mul r2, r3
- bl Call_FillMemWithValue
+ bl memset
mov r0, #1
str r0, [r5, #0x3c]
pop {r3, r4, r5, r6, r7, pc}
@@ -7987,7 +7987,7 @@ MOD17_021DB038: ; 0x021DB038
str r0, [r5]
mov r1, #0
mov r2, #0x34
- bl Call_FillMemWithValue
+ bl memset
ldr r1, [r5]
ldr r0, [sp, #0x18]
str r4, [r1, #4]
@@ -8316,14 +8316,14 @@ _021DB2C2:
add r1, sp, #0x14
add r2, sp, #0x10
bl MOD17_021DBC08
- bl FUN_0201BA60
+ bl rand_MT
ldr r2, [sp, #0x14]
mov r1, #0x6c
sub r1, r1, r2
bl _u32_div_f
add r1, #0xa
str r1, [sp, #0xc]
- bl FUN_0201BA60
+ bl rand_MT
ldr r2, [sp, #0x10]
mov r1, #0x7d
sub r1, r1, r2
@@ -9282,7 +9282,7 @@ _021DBA0E:
ldr r0, [r5]
mov r1, #0
add r2, r4, #0
- bl Call_FillMemWithValue
+ bl memset
str r6, [r5, #4]
pop {r4, r5, r6, pc}
thumb_func_end MOD17_021DB9F4
@@ -9762,7 +9762,7 @@ MOD17_021DBD4C: ; 0x021DBD4C
add r0, r4, #0
mov r1, #0
mov r2, #0x2c
- bl Call_FillMemWithValue
+ bl memset
pop {r4, pc}
thumb_func_end MOD17_021DBD4C
@@ -10428,7 +10428,7 @@ MOD17_021DC248: ; 0x021DC248
add r0, r4, #0
mov r1, #0
mov r2, #0x20
- bl Call_FillMemWithValue
+ bl memset
pop {r4, pc}
.align 2, 0
thumb_func_end MOD17_021DC248
@@ -11366,7 +11366,7 @@ MOD17_021DC950: ; 0x021DC950
mov r2, #0x52
mov r1, #0
lsl r2, r2, #2
- bl Call_FillMemWithValue
+ bl memset
_021DC96A:
mov r0, #2
tst r0, r6
@@ -11588,7 +11588,7 @@ _021DCB22:
add r0, r4, #0
mov r1, #0
lsl r2, r2, #2
- bl Call_FillMemWithValue
+ bl memset
pop {r4, pc}
thumb_func_end MOD17_021DCA80
@@ -12454,7 +12454,7 @@ _021DD192:
add r0, r5, #0
mov r1, #0
mov r2, #0x94
- bl Call_FillMemWithValue
+ bl memset
pop {r3, r4, r5, pc}
thumb_func_end MOD17_021DD178
@@ -13202,7 +13202,7 @@ MOD17_021DD6DC: ; 0x021DD6DC
mov r1, #0
lsl r2, r2, #2
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0x8b
ldr r1, [r5, #0x68]
lsl r0, r0, #2
@@ -13272,7 +13272,7 @@ MOD17_021DD778: ; 0x021DD778
mov r1, #0
lsl r2, r2, #2
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0x8b
ldr r1, [r5, #0x68]
lsl r0, r0, #2
@@ -13795,7 +13795,7 @@ MOD17_021DDB58: ; 0x021DDB58
mov r1, #0
lsl r2, r2, #2
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
ldr r0, _021DDC28 ; =MOD17_021DDD40
add r1, r4, #0
bl FUN_02015F10
diff --git a/arm9/modules/18/asm/module_18.s b/arm9/modules/18/asm/module_18.s
index 5f5307af..acbd812b 100644
--- a/arm9/modules/18/asm/module_18.s
+++ b/arm9/modules/18/asm/module_18.s
@@ -1079,7 +1079,7 @@ _02239E96:
mvn r0, r0
pop {r3, r4, r5, r6, r7, pc}
_02239EA8:
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r5, #0
bl _s32_div_f
ldr r0, _02239EF4 ; =0x02251380
@@ -14722,7 +14722,7 @@ _0224072E:
ldrh r1, [r1, #0x16]
strh r2, [r0, #8]
strh r1, [r0, #0xa]
- bl FUN_0201B9EC
+ bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x1e
sub r1, r1, r2
@@ -19641,7 +19641,7 @@ _02242DD2:
ldrb r1, [r4, r0]
add r1, r1, #1
strb r1, [r4, r0]
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0xa
bl _s32_div_f
add r1, #0x7b
@@ -22737,13 +22737,13 @@ _022445F6:
str r0, [r5]
str r0, [r5, #4]
str r0, [r5, #8]
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x7d
lsl r1, r1, #2
bl _s32_div_f
add r1, #0x32
str r1, [r4]
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x7d
lsl r1, r1, #2
bl _s32_div_f
@@ -29675,7 +29675,7 @@ MOD18_02247BB8: ; 0x02247BB8
mov r4, #0
add r7, sp, #0x14
_02247C0A:
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #0xc
bl _u32_div_f
add r2, r1, #0
diff --git a/arm9/modules/28/asm/module_28.s b/arm9/modules/28/asm/module_28.s
index 46ecca3d..3f9efbbe 100644
--- a/arm9/modules/28/asm/module_28.s
+++ b/arm9/modules/28/asm/module_28.s
@@ -820,12 +820,12 @@ _02254E50: .word 0x00000165
MOD28_02254E54: ; 0x02254E54
push {r3, r4, r5, lr}
add r5, r0, #0
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #0x3f
and r0, r1
sub r0, #0x20
lsl r4, r0, #0xc
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #0x3f
and r0, r1
sub r0, #0x20
diff --git a/arm9/modules/36/asm/module_36.s b/arm9/modules/36/asm/module_36.s
index 540a137b..ef3e3e9e 100644
--- a/arm9/modules/36/asm/module_36.s
+++ b/arm9/modules/36/asm/module_36.s
@@ -1439,7 +1439,7 @@ _022552D8:
ldr r0, [r4, #0x60]
cmp r0, #0
beq _0225539A
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #7
and r0, r1
str r0, [r4, #0x6c]
diff --git a/arm9/modules/37/asm/module_37.s b/arm9/modules/37/asm/module_37.s
index 5ca3e405..e4fc7ad1 100644
--- a/arm9/modules/37/asm/module_37.s
+++ b/arm9/modules/37/asm/module_37.s
@@ -213,7 +213,7 @@ _022549AC:
bl MOD37_02254A18
cmp r0, #0
beq _022549DE
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #1
and r0, r1
str r0, [r4, #8]
diff --git a/arm9/modules/52/asm/module_52.s b/arm9/modules/52/asm/module_52.s
index 5afd3f96..f52ea869 100644
--- a/arm9/modules/52/asm/module_52.s
+++ b/arm9/modules/52/asm/module_52.s
@@ -170,7 +170,7 @@ MOD52_021D7604: ; 0x021D7604
add r0, r5, #0
bl FUN_0202881C
add r4, r0, #0
- bl FUN_0201BA60
+ bl rand_MT
add r2, r0, #0
add r0, r4, #0
mov r1, #1
@@ -180,7 +180,7 @@ MOD52_021D7604: ; 0x021D7604
add r0, r5, #0
bl FUN_020238F4
add r4, r0, #0
- bl FUN_0201BA60
+ bl rand_MT
add r7, r0, #0
cmp r6, #0
beq _021D7656
diff --git a/arm9/modules/53/asm/module_53.s b/arm9/modules/53/asm/module_53.s
index 912604c0..5e63549a 100644
--- a/arm9/modules/53/asm/module_53.s
+++ b/arm9/modules/53/asm/module_53.s
@@ -45,7 +45,7 @@ _021D74F6:
ldr r2, _021D7640 ; =0x0000940C
mov r1, #0
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0x27
bl FUN_02016B94
str r0, [r4]
diff --git a/arm9/modules/54/asm/module_54.s b/arm9/modules/54/asm/module_54.s
index 4f56ad9c..529bf315 100644
--- a/arm9/modules/54/asm/module_54.s
+++ b/arm9/modules/54/asm/module_54.s
@@ -46,7 +46,7 @@ _021D74F6:
ldr r2, _021D7638 ; =0x00004A60
mov r1, #0
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0x33
bl FUN_02016B94
str r0, [r4]
diff --git a/arm9/modules/57/asm/module_57.s b/arm9/modules/57/asm/module_57.s
index 30506d65..a25b99a6 100644
--- a/arm9/modules/57/asm/module_57.s
+++ b/arm9/modules/57/asm/module_57.s
@@ -41,7 +41,7 @@ MOD57_021D74E0: ; 0x021D74E0
ldr r2, _021D76F0 ; =0x00003320
mov r1, #0
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
add r0, r5, #0
bl FUN_0200628C
add r1, r4, #0
diff --git a/arm9/modules/58/asm/module_58.s b/arm9/modules/58/asm/module_58.s
index c3ad3a0b..f41e981d 100644
--- a/arm9/modules/58/asm/module_58.s
+++ b/arm9/modules/58/asm/module_58.s
@@ -51,7 +51,7 @@ _021D9A36:
ldr r2, _021D9B74 ; =0x00005CB0
mov r1, #0
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0x27
bl FUN_02016B94
str r0, [r4]
diff --git a/arm9/modules/59/asm/module_59.s b/arm9/modules/59/asm/module_59.s
index 8353fb56..ec8b9a53 100644
--- a/arm9/modules/59/asm/module_59.s
+++ b/arm9/modules/59/asm/module_59.s
@@ -19,7 +19,7 @@ MOD59_021D74E0: ; 0x021D74E0
mov r1, #0
mov r2, #0xb4
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0x52
str r0, [r4]
add r0, r5, #0
@@ -4427,7 +4427,7 @@ MOD59_021D9868: ; 0x021D9868
mov r1, #0
mov r2, #0x28
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0x53
str r0, [r4]
mov r0, #0
diff --git a/arm9/modules/60/asm/module_60.s b/arm9/modules/60/asm/module_60.s
index 431bfc00..ffbc157e 100644
--- a/arm9/modules/60/asm/module_60.s
+++ b/arm9/modules/60/asm/module_60.s
@@ -23,7 +23,7 @@ MOD60_021D74E0: ; 0x021D74E0
mov r1, #0
lsl r2, r2, #2
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
add r0, r5, #0
bl FUN_02024FD8
ldrh r1, [r4, #0x18]
diff --git a/arm9/modules/61/asm/module_61.s b/arm9/modules/61/asm/module_61.s
index fc773305..beb43d8a 100644
--- a/arm9/modules/61/asm/module_61.s
+++ b/arm9/modules/61/asm/module_61.s
@@ -20,7 +20,7 @@ MOD61_021D74E0: ; 0x021D74E0
mov r1, #0
mov r2, #0xbc
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0x29
str r0, [r4]
add r0, r5, #0
diff --git a/arm9/modules/63/asm/module_63.s b/arm9/modules/63/asm/module_63.s
index 19156654..ea56905d 100644
--- a/arm9/modules/63/asm/module_63.s
+++ b/arm9/modules/63/asm/module_63.s
@@ -52,7 +52,7 @@ MOD63_021D74E0: ; 0x021D74E0
mov r1, #0
lsl r2, r2, #2
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0x1e
str r0, [r4]
mov r0, #0x1d
@@ -3066,7 +3066,7 @@ MOD63_021D8D10: ; 0x021D8D10
mov r1, #0
lsl r2, r2, #2
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0x4c
str r0, [r4]
mov r1, #0
@@ -3077,10 +3077,10 @@ MOD63_021D8D10: ; 0x021D8D10
ldr r0, _021D8D94 ; =0x021C4918
strb r1, [r0, #5]
bl FUN_0201E7A0
- bl FUN_0201B9D4
+ bl getseed_LC
str r0, [r4, #0x14]
mov r0, #0
- bl FUN_0201B9E0
+ bl seedr_LC
mov r0, #1
pop {r4, pc}
.align 2, 0
@@ -3205,7 +3205,7 @@ MOD63_021D8E68: ; 0x021D8E68
add r4, r0, #0
bl FUN_0200E31C
ldr r0, [r4, #0x14]
- bl FUN_0201B9E0
+ bl seedr_LC
add r0, r5, #0
bl FUN_0200627C
mov r0, #0x4c
@@ -4000,11 +4000,11 @@ MOD63_021D9498: ; 0x021D9498
ldr r0, [r5, #0x44]
mov r1, #0
add r2, r4, #0
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [r5, #0x4c]
mov r1, #0
add r2, r6, #0
- bl Call_FillMemWithValue
+ bl memset
add r0, r5, #0
mov r1, #4
add r0, #0x3b
@@ -7201,7 +7201,7 @@ MOD63_021DAEF8: ; 0x021DAEF8
add r4, r0, #0
mov r1, #0
lsl r2, r2, #2
- bl Call_FillMemWithValue
+ bl memset
add r0, r4, #0
bl MOD63_021DAFEC
add r0, r4, #0
@@ -7227,7 +7227,7 @@ MOD63_021DAF20: ; 0x021DAF20
mov r1, #0
add r2, r6, #0
str r0, [r4, #4]
- bl Call_FillMemWithValue
+ bl memset
str r5, [r4]
add r0, r4, #0
pop {r4, r5, r6, pc}
@@ -7639,7 +7639,7 @@ _021DB248:
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
- bl FUN_0201B9EC
+ bl rand_LC
lsr r1, r0, #0x1f
lsl r2, r0, #0x19
sub r2, r2, r1
@@ -7649,7 +7649,7 @@ _021DB248:
add r0, #0x40
lsl r0, r0, #0xc
str r0, [sp, #4]
- bl FUN_0201B9EC
+ bl rand_LC
lsr r1, r0, #0x1f
lsl r2, r0, #0x1a
sub r2, r2, r1
@@ -7823,13 +7823,13 @@ _021DB3A8:
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0xe0
bl _s32_div_f
add r1, #0xa
lsl r0, r1, #0xc
str r0, [sp, #4]
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x38
bl _s32_div_f
ldr r0, _021DB41C ; =0x0000013A
diff --git a/arm9/modules/64/asm/module_64.s b/arm9/modules/64/asm/module_64.s
index 6c647c40..b9de9e0d 100644
--- a/arm9/modules/64/asm/module_64.s
+++ b/arm9/modules/64/asm/module_64.s
@@ -24,7 +24,7 @@ _021D7504:
ldr r2, _021D7630 ; =0x000006B4
add r0, r5, #0
mov r1, #0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0x25
lsl r0, r0, #4
add r0, r5, r0
@@ -1006,7 +1006,7 @@ MOD64_021D7D18: ; 0x021D7D18
add r4, r3, #0
mov r1, #0
mov r2, #0x98
- bl Call_FillMemWithValue
+ bl memset
add r0, r5, #0
add r1, r6, #0
add r2, r4, #0
@@ -1033,7 +1033,7 @@ MOD64_021D7D50: ; 0x021D7D50
add r5, r0, #0
mov r1, #0
mov r2, #0x98
- bl Call_FillMemWithValue
+ bl memset
add r0, r5, #0
add r1, r4, #0
add r2, r6, #0
@@ -1135,7 +1135,7 @@ _021D7E28:
add r0, r5, #0
mov r1, #0
mov r2, #0x98
- bl Call_FillMemWithValue
+ bl memset
pop {r3, r4, r5, pc}
thumb_func_end MOD64_021D7E04
diff --git a/arm9/modules/66/asm/module_66.s b/arm9/modules/66/asm/module_66.s
index ba9ed1dd..db284cc3 100644
--- a/arm9/modules/66/asm/module_66.s
+++ b/arm9/modules/66/asm/module_66.s
@@ -21,7 +21,7 @@ MOD66_021D74E0: ; 0x021D74E0
mov r1, #0
mov r2, #0xe4
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
ldr r0, _021D7534 ; =0x00000139
str r5, [r4, #0x2c]
ldrb r0, [r5, r0]
@@ -871,7 +871,7 @@ MOD66_021D7BB4: ; 0x021D7BB4
mov r1, #0
lsl r2, r2, #4
str r0, [r4, #0x34]
- bl Call_FillMemWithValue
+ bl memset
mov r0, #1
pop {r4, pc}
.align 2, 0
@@ -3780,7 +3780,7 @@ MOD66_021D9228: ; 0x021D9228
mov r2, #0x1c
mov r1, #0
mul r2, r3
- bl Call_FillMemWithValue
+ bl memset
ldrh r0, [r7]
mov r6, #0
ldr r5, _021D9344 ; =0x021D990C
@@ -4130,7 +4130,7 @@ _021D94DA:
mov r2, #0x18
mov r1, #0
mul r2, r3
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [sp]
mov r4, #0
str r0, [r6]
diff --git a/arm9/modules/67/asm/module_67.s b/arm9/modules/67/asm/module_67.s
index 5227f694..11ce834a 100644
--- a/arm9/modules/67/asm/module_67.s
+++ b/arm9/modules/67/asm/module_67.s
@@ -46,7 +46,7 @@ MOD67_021D74E0: ; 0x021D74E0
ldr r2, _021D75C8 ; =0x00001068
mov r1, #0
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0x2a
bl FUN_02016B94
str r0, [r4]
diff --git a/arm9/modules/68/asm/module_68.s b/arm9/modules/68/asm/module_68.s
index 22fdf851..ef69cd9e 100644
--- a/arm9/modules/68/asm/module_68.s
+++ b/arm9/modules/68/asm/module_68.s
@@ -42,7 +42,7 @@ MOD68_021D74E0: ; 0x021D74E0
mov r1, #0
lsl r2, r2, #2
add r5, r0, #0
- bl Call_FillMemWithValue
+ bl memset
add r0, r4, #0
bl FUN_0200628C
mov r1, #0x7e
diff --git a/arm9/modules/69/asm/module_69.s b/arm9/modules/69/asm/module_69.s
index d09cc9ed..0236e100 100644
--- a/arm9/modules/69/asm/module_69.s
+++ b/arm9/modules/69/asm/module_69.s
@@ -3422,10 +3422,10 @@ MOD69_0222F1B0: ; 0x0222F1B0
mov r0, #0x3f
bl FUN_02016998
str r0, [sp, #0x28]
- bl FUN_0201B9EC
+ bl rand_LC
str r0, [sp, #0x20]
ldr r0, _0222F348 ; =0x00003594
- bl FUN_0201B9E0
+ bl seedr_LC
mov r0, #0
ldr r4, [sp, #0x28]
str r0, [sp, #0x24]
@@ -3458,7 +3458,7 @@ _0222F1EE:
mov r0, #0
str r0, [sp, #0x1c]
_0222F206:
- bl FUN_0201B9EC
+ bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x13
sub r1, r1, r2
@@ -3471,7 +3471,7 @@ _0222F206:
lsl r0, r0, #0x10
asr r0, r0, #0x10
str r0, [sp, #8]
- bl FUN_0201B9EC
+ bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x13
sub r1, r1, r2
@@ -3484,7 +3484,7 @@ _0222F206:
lsl r0, r0, #0x10
asr r0, r0, #0x10
str r0, [sp, #4]
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x29
lsl r1, r1, #4
bl _s32_div_f
@@ -3517,7 +3517,7 @@ _0222F25C:
strh r0, [r4, #0x28]
strh r0, [r4, #0x2a]
strh r0, [r4, #0x2c]
- bl FUN_0201B9EC
+ bl rand_LC
lsr r1, r0, #0x1f
lsl r2, r0, #0x17
sub r2, r2, r1
@@ -3528,7 +3528,7 @@ _0222F25C:
lsl r0, r0, #8
add r0, r1, r0
strh r0, [r4, #0x2e]
- bl FUN_0201B9EC
+ bl rand_LC
lsr r1, r0, #0x1f
lsl r2, r0, #0x17
sub r2, r2, r1
@@ -3539,7 +3539,7 @@ _0222F25C:
lsl r0, r0, #8
add r0, r1, r0
strh r0, [r4, #0x30]
- bl FUN_0201B9EC
+ bl rand_LC
lsr r1, r0, #0x1f
lsl r2, r0, #0x17
sub r2, r2, r1
@@ -3557,7 +3557,7 @@ _0222F25C:
add r6, r6, #6
cmp r7, #4
blt _0222F25C
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #7
and r0, r1
sub r5, r0, #1
@@ -3594,7 +3594,7 @@ _0222F2FA:
b _0222F1EE
_0222F320:
ldr r0, [sp, #0x20]
- bl FUN_0201B9E0
+ bl seedr_LC
ldr r0, [sp, #0x28]
mov r2, #0
str r2, [r0]
diff --git a/arm9/modules/71/asm/module_71.s b/arm9/modules/71/asm/module_71.s
index 6ce817e2..5bc5cb22 100644
--- a/arm9/modules/71/asm/module_71.s
+++ b/arm9/modules/71/asm/module_71.s
@@ -957,7 +957,7 @@ _0222DDD8:
bl FUN_02031190
cmp r0, #0
bne _0222DE04
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, _0222E0F0 ; =0x00000445
bl _s32_div_f
lsl r0, r0, #0x10
@@ -2157,7 +2157,7 @@ MOD70_0222E76C: ; 0x0222E76C
ldr r0, _0222E844 ; =0x0000221C
mov r1, #0xff
ldr r0, [r5, r0]
- bl Call_FillMemWithValue
+ bl memset
ldr r0, [r4, #4]
mov r1, #0x1a
bl FUN_020239A0
diff --git a/arm9/modules/73/asm/module_73.s b/arm9/modules/73/asm/module_73.s
index 554e804f..8fe29b6b 100644
--- a/arm9/modules/73/asm/module_73.s
+++ b/arm9/modules/73/asm/module_73.s
@@ -31,7 +31,7 @@ MOD73_021D74F0: ; 0x021D74F0
ldr r2, _021D757C ; =0x000015E8
add r5, r0, #0
mov r1, #0
- bl Call_FillMemWithValue
+ bl memset
str r5, [r4, #0x18]
mov r1, #0x38
str r1, [r5]
@@ -3073,7 +3073,7 @@ _021D8E12:
mov r1, #4
add r0, r7, r0
add r2, r1, #0
- bl Call_FillMemWithValue
+ bl memset
ldr r0, _021D8E7C ; =0x00001428
ldr r0, [r7, r0]
cmp r0, #1
@@ -3513,7 +3513,7 @@ MOD73_021D9120: ; 0x021D9120
mov r1, #0
lsl r2, r2, #4
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
mov r1, #0x1a
lsl r1, r1, #4
str r5, [r4, r1]
@@ -3569,7 +3569,7 @@ _021D9174:
add r0, r6, #0
mov r1, #0
mov r2, #0x34
- bl Call_FillMemWithValue
+ bl memset
_021D91AA:
ldr r0, [sp]
add r6, #0x34
@@ -4260,7 +4260,7 @@ MOD73_021D96B0: ; 0x021D96B0
mov r1, #0
lsl r2, r2, #4
add r5, r0, #0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0x42
lsl r0, r0, #2
str r4, [r5, r0]
@@ -4280,7 +4280,7 @@ _021D96D6:
add r0, r4, #0
mov r1, #0
lsl r2, r2, #4
- bl Call_FillMemWithValue
+ bl memset
pop {r4, pc}
thumb_func_end MOD73_021D96C8
@@ -4716,7 +4716,7 @@ MOD73_021D9A28: ; 0x021D9A28
mov r1, #0
mov r2, #0x34
add r7, r3, #0
- bl Call_FillMemWithValue
+ bl memset
str r6, [r5, #0x18]
ldr r0, [sp, #0x1c]
str r4, [r5, #0x14]
@@ -4740,7 +4740,7 @@ _021D9A5A:
add r0, r4, #0
mov r1, #0
mov r2, #0x34
- bl Call_FillMemWithValue
+ bl memset
pop {r4, pc}
.align 2, 0
thumb_func_end MOD73_021D9A4C
@@ -5294,12 +5294,12 @@ _021D9E7C:
thumb_func_start MOD73_021D9E80
MOD73_021D9E80: ; 0x021D9E80
- ldr r3, _021D9E88 ; =Call_FillMemWithValue
+ ldr r3, _021D9E88 ; =memset
mov r1, #0
mov r2, #0x78
bx r3
.align 2, 0
-_021D9E88: .word Call_FillMemWithValue
+_021D9E88: .word memset
thumb_func_end MOD73_021D9E80
thumb_func_start MOD73_021D9E8C
@@ -5314,7 +5314,7 @@ _021D9E9A:
add r0, r4, #0
mov r1, #0
mov r2, #0x78
- bl Call_FillMemWithValue
+ bl memset
pop {r4, pc}
.align 2, 0
thumb_func_end MOD73_021D9E8C
@@ -5634,7 +5634,7 @@ MOD73_021DA0E0: ; 0x021DA0E0
mov r2, #0x20
add r5, r0, #0
add r7, r3, #0
- bl Call_FillMemWithValue
+ bl memset
str r4, [r5, #0x14]
str r6, [r5, #0x18]
str r7, [r5, #0x1c]
@@ -5654,7 +5654,7 @@ _021DA10A:
add r0, r4, #0
mov r1, #0
mov r2, #0x20
- bl Call_FillMemWithValue
+ bl memset
pop {r4, pc}
.align 2, 0
thumb_func_end MOD73_021DA0FC
@@ -5807,7 +5807,7 @@ MOD73_021DA210: ; 0x021DA210
mov r1, #0
mov r2, #0x34
add r7, r3, #0
- bl Call_FillMemWithValue
+ bl memset
str r6, [r5, #0x1c]
ldr r0, [sp, #0x1c]
str r4, [r5, #0x20]
@@ -5833,7 +5833,7 @@ _021DA242:
add r0, r4, #0
mov r1, #0
mov r2, #0x34
- bl Call_FillMemWithValue
+ bl memset
pop {r4, pc}
thumb_func_end MOD73_021DA234
@@ -6581,12 +6581,12 @@ _021DA818: .word 0x0001020F
thumb_func_start MOD73_021DA81C
MOD73_021DA81C: ; 0x021DA81C
- ldr r3, _021DA824 ; =Call_FillMemWithValue
+ ldr r3, _021DA824 ; =memset
mov r1, #0
ldr r2, _021DA828 ; =0x00000414
bx r3
.align 2, 0
-_021DA824: .word Call_FillMemWithValue
+_021DA824: .word memset
_021DA828: .word 0x00000414
thumb_func_end MOD73_021DA81C
@@ -6602,7 +6602,7 @@ _021DA83A:
ldr r2, _021DA848 ; =0x00000414
add r0, r4, #0
mov r1, #0
- bl Call_FillMemWithValue
+ bl memset
pop {r4, pc}
nop
_021DA848: .word 0x00000414
@@ -6714,17 +6714,17 @@ _021DA900:
ldr r0, [sp, #0x60]
bl MOD73_021DAB30
_021DA906:
- bl FUN_0201BA60
+ bl rand_MT
lsl r0, r0, #0x10
lsr r6, r0, #0x10
- bl FUN_0201BA60
+ bl rand_MT
add r1, sp, #0x9c
ldrb r1, [r1, #0x11]
bl _u32_div_f
add r0, sp, #0x9c
ldrb r0, [r0, #0x10]
add r4, r0, r1
- bl FUN_0201BA60
+ bl rand_MT
add r1, sp, #0x9c
ldrb r1, [r1, #0x13]
bl _u32_div_f
@@ -6752,7 +6752,7 @@ _021DA906:
str r3, [sp, #0x68]
ldrsh r4, [r1, r2]
str r0, [sp, #0x78]
- bl FUN_0201BA60
+ bl rand_MT
ldr r1, [sp, #0xa0]
bl _u32_div_f
ldr r0, [sp, #0x9c]
@@ -7008,7 +7008,7 @@ _021DAB3E:
add r0, r4, #0
mov r1, #0
mov r2, #0x80
- bl Call_FillMemWithValue
+ bl memset
pop {r4, pc}
thumb_func_end MOD73_021DAB30
@@ -7292,12 +7292,12 @@ _021DAD72:
thumb_func_start MOD73_021DAD78
MOD73_021DAD78: ; 0x021DAD78
- ldr r3, _021DAD80 ; =Call_FillMemWithValue
+ ldr r3, _021DAD80 ; =memset
mov r1, #0
mov r2, #0x80
bx r3
.align 2, 0
-_021DAD80: .word Call_FillMemWithValue
+_021DAD80: .word memset
thumb_func_end MOD73_021DAD78
thumb_func_start MOD73_021DAD84
@@ -7312,7 +7312,7 @@ _021DAD92:
add r0, r4, #0
mov r1, #0
mov r2, #0x80
- bl Call_FillMemWithValue
+ bl memset
pop {r4, pc}
.align 2, 0
thumb_func_end MOD73_021DAD84
@@ -7595,7 +7595,7 @@ MOD73_021DAF70: ; 0x021DAF70
add r4, r1, #0
mov r1, #0
add r5, r0, #0
- bl Call_FillMemWithValue
+ bl memset
str r4, [r5, #4]
pop {r3, r4, r5, pc}
nop
@@ -7614,7 +7614,7 @@ _021DAF96:
ldr r2, _021DAFA4 ; =0x0000090C
add r0, r4, #0
mov r1, #0
- bl Call_FillMemWithValue
+ bl memset
pop {r4, pc}
nop
_021DAFA4: .word 0x0000090C
@@ -8639,7 +8639,7 @@ MOD73_021DB698: ; 0x021DB698
ldr r0, [r5, #4]
cmp r0, #0
bge _021DB70A
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #5
add r6, r0, #0
bl _u32_div_f
@@ -8905,7 +8905,7 @@ MOD73_021DB884: ; 0x021DB884
add r4, r0, #0
mov r1, #0
mov r2, #0x68
- bl Call_FillMemWithValue
+ bl memset
add r0, r4, #0
add r0, #0xc
bl MOD73_021DB680
diff --git a/arm9/modules/74/asm/module_74.s b/arm9/modules/74/asm/module_74.s
index ef22a35a..5ac99cc2 100644
--- a/arm9/modules/74/asm/module_74.s
+++ b/arm9/modules/74/asm/module_74.s
@@ -23,7 +23,7 @@ MOD74_021D74E0: ; 0x021D74E0
mov r1, #0
lsl r2, r2, #2
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
ldrh r0, [r5, #4]
strh r0, [r4, #8]
ldrh r0, [r5, #6]
diff --git a/arm9/modules/75/asm/module_75.s b/arm9/modules/75/asm/module_75.s
index 4cbcb3a7..00cfbad8 100644
--- a/arm9/modules/75/asm/module_75.s
+++ b/arm9/modules/75/asm/module_75.s
@@ -40,7 +40,7 @@ MOD75_021E6BA0: ; 0x021E6BA0
ldr r2, _021E6D60 ; =0x000004A4
mov r1, #0
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
add r0, r5, #0
bl FUN_0200628C
add r1, r4, #0
diff --git a/arm9/modules/76/asm/module_76.s b/arm9/modules/76/asm/module_76.s
index a9f0e6ba..45716ea0 100644
--- a/arm9/modules/76/asm/module_76.s
+++ b/arm9/modules/76/asm/module_76.s
@@ -21,7 +21,7 @@ MOD76_021D74E0: ; 0x021D74E0
mov r1, #0
lsl r2, r2, #2
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
add r0, r5, #0
bl FUN_0200628C
str r0, [r4]
diff --git a/arm9/modules/77/asm/module_77.s b/arm9/modules/77/asm/module_77.s
index 8f4fe450..1e602cbc 100644
--- a/arm9/modules/77/asm/module_77.s
+++ b/arm9/modules/77/asm/module_77.s
@@ -36,7 +36,7 @@ MOD77_021D74E0: ; 0x021D74E0
ldr r2, _021D75DC ; =0x0000C32C
mov r1, #0
add r5, r0, #0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0x32
str r0, [r5]
ldr r0, _021D75E0 ; =0x020ECAC4
diff --git a/arm9/modules/78/asm/module_78.s b/arm9/modules/78/asm/module_78.s
index 199957df..dbda846c 100644
--- a/arm9/modules/78/asm/module_78.s
+++ b/arm9/modules/78/asm/module_78.s
@@ -20,7 +20,7 @@ MOD78_021D74E0: ; 0x021D74E0
mov r1, #0
mov r2, #0xa0
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
add r0, r5, #0
bl FUN_0200628C
add r5, r0, #0
diff --git a/arm9/modules/79/asm/module_79_arm.s b/arm9/modules/79/asm/module_79_arm.s
index 6e80c08e..9c6a0246 100644
--- a/arm9/modules/79/asm/module_79_arm.s
+++ b/arm9/modules/79/asm/module_79_arm.s
@@ -452,7 +452,7 @@ _02212A98:
mov r0, r4
mov r1, #0
mov r2, #0x24
- bl Call_FillMemWithValue
+ bl memset
ldmia sp!, {r4, pc}
.align 2, 0
_02212AAC: .word 0x02216888
@@ -1475,7 +1475,7 @@ _0221384C:
mov r2, #0x184
ldr r4, [r0, r5, lsl #2]
mov r0, r4
- bl Call_FillMemWithValue
+ bl memset
mov r0, #1
str r0, [r4]
ldr r0, _022139C4 ; =0x02217134
diff --git a/arm9/modules/80/asm/module_80.s b/arm9/modules/80/asm/module_80.s
index a7342cac..de0e7672 100644
--- a/arm9/modules/80/asm/module_80.s
+++ b/arm9/modules/80/asm/module_80.s
@@ -1399,7 +1399,7 @@ _0222DFE4:
ldr r2, _0222E108 ; =0x00001044
mov r1, #0
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0x3e
bl FUN_02016B94
str r0, [r4, #4]
@@ -15859,7 +15859,7 @@ MOD80_022353B4: ; 0x022353B4
bl FUN_02022840
mov r0, #0x1f
str r0, [r4, #0x2c]
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, _022353EC ; =0x00000445
bl _s32_div_f
lsl r0, r0, #0x10
diff --git a/arm9/modules/81/asm/module_81.s b/arm9/modules/81/asm/module_81.s
index aaa6085d..b52f32e8 100644
--- a/arm9/modules/81/asm/module_81.s
+++ b/arm9/modules/81/asm/module_81.s
@@ -3248,7 +3248,7 @@ MOD81_022396E8: ; 0x022396E8
str r1, [r4, r0]
add r0, r0, #4
str r1, [r4, r0]
- bl FUN_0201BA60
+ bl rand_MT
add r1, r4, #0
add r1, #0xbc
str r0, [r1]
@@ -3300,7 +3300,7 @@ _02239790:
add r0, r5, #0
add r0, #0xbc
ldr r0, [r0]
- bl FUN_0201BA1C
+ bl seedr_MT
add r0, r5, #0
bl FUN_02016A18
_022397A0:
@@ -4154,17 +4154,17 @@ MOD81_02239E00: ; 0x02239E00
add r3, sp, #0x60
bl MOD81_022387A8
ldr r0, _02239F18 ; =0x035947D1
- bl FUN_0201BA1C
+ bl seedr_MT
mov r0, #0
str r0, [sp, #0x14]
add r4, r7, #0
_02239E9A:
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #0xe8
bl _u32_div_f
add r6, r1, #0
add r6, #0xc
- bl FUN_0201BA60
+ bl rand_MT
mov r1, #0x71
lsl r1, r1, #2
bl _u32_div_f
diff --git a/arm9/modules/82/asm/module_82.s b/arm9/modules/82/asm/module_82.s
index c13e4a07..73c58a93 100644
--- a/arm9/modules/82/asm/module_82.s
+++ b/arm9/modules/82/asm/module_82.s
@@ -649,7 +649,7 @@ _0222DA48:
ldr r2, _0222DB58 ; =0x00000EC8
mov r1, #0
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0x44
bl FUN_02016B94
str r0, [r4, #4]
diff --git a/arm9/modules/83/asm/module_83.s b/arm9/modules/83/asm/module_83.s
index b660fc3c..4bd1653b 100644
--- a/arm9/modules/83/asm/module_83.s
+++ b/arm9/modules/83/asm/module_83.s
@@ -1925,7 +1925,7 @@ MOD83_0222E48C: ; 0x0222E48C
mov r1, #0
lsl r2, r2, #2
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0x51
bl FUN_02016B94
str r0, [r4]
@@ -6512,7 +6512,7 @@ MOD83_02230954: ; 0x02230954
ldr r2, _022309FC ; =0x00002998
mov r1, #0
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0x56
bl FUN_02016B94
str r0, [r4]
@@ -9733,7 +9733,7 @@ MOD83_022323A8: ; 0x022323A8
ldr r2, _0223240C ; =0x00003CF4
mov r1, #0
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0x57
bl FUN_02016B94
ldr r1, _02232410 ; =0x0000299C
@@ -11393,7 +11393,7 @@ MOD83_02233168: ; 0x02233168
ldr r2, _022331B4 ; =0x00003CF4
mov r1, #0
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
ldr r0, _022331B8 ; =0x0000299C
mov r1, #0x1e
str r6, [r4, r0]
@@ -17640,7 +17640,7 @@ MOD83_0223600C: ; 0x0223600C
mov r1, #0
add r0, r4, r0
mov r2, #0x4c
- bl Call_FillMemWithValue
+ bl memset
ldr r0, _022360BC ; =0x00000498
mov r3, #0x1b
add r1, r0, #0
@@ -18512,7 +18512,7 @@ MOD83_02236764: ; 0x02236764
ldr r2, _022367F0 ; =0x00012608
mov r1, #0
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0x4e
bl FUN_02016B94
str r0, [r4, #0x20]
@@ -22822,7 +22822,7 @@ MOD83_022387A0: ; 0x022387A0
mov r1, #0
add r2, r4, #0
add r5, r0, #0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0
add r1, r0, #0
bl FUN_0200E3A0
@@ -22993,7 +22993,7 @@ MOD83_022388E4: ; 0x022388E4
mov r2, #0x54
add r5, r0, #0
add r7, r3, #0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #1
str r0, [r5, #4]
str r0, [r5, #8]
diff --git a/arm9/modules/84/asm/module_84.s b/arm9/modules/84/asm/module_84.s
index e295fcbb..a0ac6143 100644
--- a/arm9/modules/84/asm/module_84.s
+++ b/arm9/modules/84/asm/module_84.s
@@ -1670,7 +1670,7 @@ _021D82CC:
add r2, r4, r1
ldr r1, _021D8434 ; =0x000002BA
strb r0, [r2, r1]
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, _021D8428 ; =0x00001220
ldr r1, [r4, r1]
lsl r1, r1, #3
@@ -1705,7 +1705,7 @@ _021D8340:
add r5, r4, #0
add r5, #0x18
_021D8358:
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, _021D8428 ; =0x00001220
ldr r1, [r4, r1]
sub r1, r1, r7
@@ -1748,7 +1748,7 @@ _021D8358:
cmp r7, r0
blt _021D8358
_021D83B0:
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #3
bl _s32_div_f
add r5, r1, #0
@@ -1787,7 +1787,7 @@ _021D83E8:
bl FUN_02024674
ldr r1, _021D8434 ; =0x000002BA
strb r0, [r4, r1]
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0xaf
lsl r1, r1, #2
str r0, [r4, r1]
@@ -2922,7 +2922,7 @@ MOD84_021D8C54: ; 0x021D8C54
str r2, [r4, r0]
add r1, #0xa
strh r2, [r4, r1]
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, _021D8CD0 ; =0x00000DFC
strh r0, [r4, r1]
add r0, r5, #0
@@ -2986,7 +2986,7 @@ MOD84_021D8CEC: ; 0x021D8CEC
add r4, r0, #0
ldr r0, _021D8D08 ; =0x00000DFC
ldrh r0, [r4, r0]
- bl FUN_0201B9E0
+ bl seedr_LC
add r0, r4, #0
bl MOD84_021D9044
add r0, r4, #0
@@ -3393,7 +3393,7 @@ _021D8FE4:
b _021D9034
_021D9028:
ldr r0, _021D9040 ; =0x00003485
- bl FUN_0201B9E0
+ bl seedr_LC
add sp, #0x6c
mov r0, #1
pop {r4, r5, r6, r7, pc}
@@ -3551,7 +3551,7 @@ _021D90F6:
mov r0, #0x4e
lsl r0, r0, #0xe
str r0, [r4, #0x18]
- bl FUN_0201B9EC
+ bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x19
sub r1, r1, r2
@@ -3563,7 +3563,7 @@ _021D90F6:
str r0, [r4, #0x1c]
mov r0, #0
str r0, [r4, #0x20]
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, _021D9200 ; =0x00000667
bl _s32_div_f
ldr r0, _021D9204 ; =0x00000666
@@ -3573,7 +3573,7 @@ _021D90F6:
str r0, [r4, #0x30]
mov r0, #0
str r0, [r4, #0x28]
- bl FUN_0201B9EC
+ bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x1f
sub r1, r1, r2
@@ -3583,7 +3583,7 @@ _021D90F6:
add r0, r0, #2
lsl r0, r0, #0xc
str r0, [r4, #0x2c]
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0xc
bl _s32_div_f
add r0, r1, #4
@@ -3759,7 +3759,7 @@ _021D92AE:
mov r0, #0x4e
lsl r0, r0, #0xe
str r0, [r4, #0x18]
- bl FUN_0201B9EC
+ bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x19
sub r1, r1, r2
@@ -3771,7 +3771,7 @@ _021D92AE:
str r0, [r4, #0x1c]
mov r0, #0
str r0, [r4, #0x20]
- bl FUN_0201B9EC
+ bl rand_LC
ldr r1, _021D938C ; =0x00000667
bl _s32_div_f
ldr r0, _021D9390 ; =0x00000666
@@ -3781,7 +3781,7 @@ _021D92AE:
str r0, [r4, #0x30]
mov r0, #0
str r0, [r4, #0x28]
- bl FUN_0201B9EC
+ bl rand_LC
lsr r2, r0, #0x1f
lsl r1, r0, #0x1f
sub r1, r1, r2
@@ -3791,7 +3791,7 @@ _021D92AE:
add r0, r0, #2
lsl r0, r0, #0xc
str r0, [r4, #0x2c]
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0xc
bl _s32_div_f
add r0, r1, #4
diff --git a/arm9/modules/85/asm/module_85.s b/arm9/modules/85/asm/module_85.s
index a8184ceb..3b342aa7 100644
--- a/arm9/modules/85/asm/module_85.s
+++ b/arm9/modules/85/asm/module_85.s
@@ -1482,7 +1482,7 @@ _021D810C:
add r0, r4, #0
mov r1, #0
add r2, r5, #0
- bl Call_FillMemWithValue
+ bl memset
add r0, r4, #0
pop {r3, r4, r5, pc}
.align 2, 0
@@ -1587,7 +1587,7 @@ MOD85_021D81C8: ; 0x021D81C8
mov r4, #0
lsl r6, r7, #0x11
_021D81D2:
- bl FUN_0201B9EC
+ bl rand_LC
add r1, r7, #0
bl _s32_div_f
add r0, r5, #0
@@ -6759,7 +6759,7 @@ _021DA7B4:
thumb_func_start MOD85_021DA7B8
MOD85_021DA7B8: ; 0x021DA7B8
push {r3, lr}
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #0x64
bl _u32_div_f
add r0, r1, #0
@@ -7481,7 +7481,7 @@ _021DAD08: .word 0x021E0240
MOD85_021DAD0C: ; 0x021DAD0C
push {r4, lr}
add r4, r0, #0
- bl FUN_0201B9EC
+ bl rand_LC
mov r1, #6
bl _s32_div_f
str r1, [r4, #0x34]
diff --git a/arm9/modules/86/asm/module_86.s b/arm9/modules/86/asm/module_86.s
index f31782bf..9c974657 100644
--- a/arm9/modules/86/asm/module_86.s
+++ b/arm9/modules/86/asm/module_86.s
@@ -19,7 +19,7 @@ MOD86_021D74E0: ; 0x021D74E0
mov r1, #0
mov r2, #0x44
add r4, r0, #0
- bl Call_FillMemWithValue
+ bl memset
mov r0, #0x54
str r0, [r4]
add r0, r5, #0
diff --git a/arm9/src/FUN_02000DE4.c b/arm9/src/FUN_02000DE4.c
index 033ef4ce..851f39b8 100644
--- a/arm9/src/FUN_02000DE4.c
+++ b/arm9/src/FUN_02000DE4.c
@@ -149,8 +149,8 @@ THUMB_FUNC void FUN_02000F4C(int arg0, int arg1)
}
extern void FUN_0201265C(struct Unk21C4818 *, struct Unk21C4828 *);
-extern void FUN_0201BA1C(int);
-extern void FUN_0201B9E0(int);
+extern void seedr_MT(int);
+extern void seedr_LC(int);
void FUN_02000FA4(void)
{
@@ -160,8 +160,8 @@ void FUN_02000FA4(void)
{
int r4 = gUnknown21C48B8.unk2C;
int r5 = ((sp0.unk4 + sp0.unk8) << 24) + (spC.unk0 + ((256 * spC.unk4 * spC.unk8) << 16) + (sp0.unk0 << 16));
- FUN_0201BA1C(r4 + r5);
- FUN_0201B9E0(r4 + r5);
+ seedr_MT(r4 + r5);
+ seedr_LC(r4 + r5);
}
}